Forums Développement Multimédia

Les formations Mediabox
Les formations Mediabox

Modulo c'est aussi facile qu'utile

Compatible ActionScript 3. Cliquer pour en savoir plus sur les compatibilités.Par Nataly, le 23 avril 2013


Avertissement

Ce texte n'est pas un tuto mais la “conversion” d'un billet de blog à vocation didactique. Lequel billet reproduisait pour sa plus grosse partie un message du forum (ça va vous suivez ? :mrgreen:).
Tout ça pour excuser la forme peu orthodoxe de ce qui suit : j'ai préféré laisser un lien vers le message en question plutôt que le reproduire dans cette page, pour cause de balises incompatibles et de “je vais pas tout recommencer” :-P


Rien \o/
Si ce n'est connaitre la division ;)

Modulo, qu'est-ce que c'est ?

Citation : “Le modulo pour moi, c'était des math de haut niveau !”



Dans la catégorie, sus aux idées reçues je vais donc profiter de la conversation d'où j'extrais ce commentaire pour faire un tout petit billet sur le modulo.


Le modulo c'est le reste de la division du premier terme par le second.
Dit en clair : a%b c'est le reste de la division de a par b.
Dit en chiffres 17%5 vaut 2 (17 que divise 5 égal 3, reste 2).

Et c'est super utile par exemple pour disposer des objets selon un certain nombre de lignes et de colonnes.

lire l'explication détaillée

Exemples

Lilive avait eu la bonne idée d'illustrer le billet de quelques exemples de mise en œuvre du modulo \o/

Afficher depuis combien de temps le swf s'exécute

import flash.utils.getTimer;
 
var time:int = getTimer(); // temps en millisecondes
time = time / 1000; // temps en secondes
var sec:int = time % 60;
var min:int = time / 60;
trace("Temps écoulé: " + min + " minutes et " + sec + " secondes");

Un objet sur trois

En reprenant le placement d'objets sur une grille, et en supposant qu'on veuille afficher un peu plus gros un objet sur 3 :

var nbCol:int=10;
var nbLig:int=6;
var nbTot:int=nbLig*nbCol;
var espace:int= 5
 
for (var i:int=0; i<nbTot; i++) {
            var laCase:Mv_Case0=new Mv_Case0();
            laCase.y=int(i/nbCol)*(laCase.height+espace);
            laCase.x=i%nbCol*(laCase.width+espace);
            if (i % 3 == 0) laCase.scaleX = laCase.scaleY = 1.25;
            addChild(laCase);
}