Forum de discussion
Forum « Flash et Shockwave » (archives)
Re: Tticket à gratter : mask, attachMovie, enterFrame
Envoyé: 6 octobre 2004, 12h43 par dada
si tu débutes tout juste sur Flash, tu commences peut-être un peu hard, sauf si tu as déjà des notions en programmation.
J'ai fait mijoter un ptit exemple de "grattage" de ticket :
Dans la bibliothèque, il te faut 2 clips :
- 1 clip nommé 'fond' qui contient l'image qui devra apparaître sous le grattage, et que tu places sur la scène, nom d'occurence :'fond'.
- 1 clip nommé 'rond' qui contient une forme quelconque qui servira à gratter. Ce clip doit être exporté pour Action Script (clic droit sur le clip dans la biblio, puis liaison).
Ensuite, il faut sélectionner la première image du scénario, ouvrir le panneau 'Actions' (F9) et placer le script suivant :
---------------------------------------
this.createEmptyMovieClip('masque', 1);
fond.setMask(masque);
i = 1;
this.onMouseDown = function() {
masque.onEnterFrame = function() {
if (fond.hitTest(_xmouse, _ymouse)) {
this.attachMovie('rond', 'rond'+i, i++, {_x:_xmouse, _y:_ymouse});
}
};
};
this.onMouseUp = function() {
delete masque.onEnterFrame;
};
-------------------------------------
Quelques explications :
Ce script créé un clip vide par dessus le clip 'fond' posé sur la scène, et le définit comme masque appliqué au clip 'fond'.
Ensuite, à chaque fois qu'on clique sur le fond, on importe (dans le masque et à la position de la souris) 1 occurence du clip rond.
Note :Une occurence par image est importée, comme je mets mon projet en 30ips, si je clique pendant 1 minute, il y aura 60*30 = 1800 occurences du clip rond dans le masque. C'est à savoir car, sans optimisation, ceci peut occasionner des ralentissements dans l'animation, à voir...
Si tu ne sais pas créer un clip, ou donner un nom d'occurence, n'oublie que l'aide de Flash est assez bien faite, et une recherche avec un bon mot clef donne rapidement une solution ;-)
Si tu as besoin de précisions ou explications complémentaires sur le code, n'hésites pas...
++
dada
Réponses
|