AS2 : Une histoire de couleurs... - Flash/ActionScript - Programmation
Marsh Posté le 04-08-2010 à 21:35:56
Le pire, c'est que tes methodes, en plus d'être appelé sont DECLARÉS dans ton onEnterFrame, c'est très crade... (Zedlefou, si tu passe par là... )
Code :
|
Et dans ton clip parent, tu met le code monOccurence.changeCouleur(); à chaque frame (image clé) ou tu veux que ça change.
Je suis pas sûre du typage des fonctions, AS2 c'est relou avec sa sur-tolérence (du fait que ton code marche tel que tu l'as mis).
Je suis pas sure des majuscule sur certain typage, je crois que certains changent en AS3...
Bref, passe à l'AS3, ça sera plus simple
Marsh Posté le 05-08-2010 à 12:02:18
abais a écrit : Le pire, c'est que tes methodes, en plus d'être appelé sont DECLARÉS dans ton onEnterFrame, c'est très crade... (Zedlefou, si tu passe par là... )
|
Bon j'ai bien évidemment passé du temps dessus pour essayer de régler le problème.
Code :
|
Le coup du decimalToHex je l'ai trouvé sur le net, j'ai pas assez de bouteille pour penser à des trucs aussi farfelus
Mais une fois penché sur le code je me suis dit que le 20 ne voulait rien dire. J'ai trouvé que % était modulo et j'ai mieux pigé le truc.
J'ai remplacé les random par des Math.round(Math.random), j'ai l'impression que le random() est moins satisfaisant en terme d'aléa, mais je me trompe peut-être, enfin reste que du coup j'utilise un offset pour limiter la plage d'aléas, et je peux créer des zones de couleurs différentes.
Donc je résume. Je définis ma fonction (ici coloRandom) au niveau supérieur, et je l'appelle sur la timeline de ce clip ? Autant mettre le code sur _root non ?
Je sais que c'est pas très malin de déclarer les fonctions dans un this.onEnterFrame, mais c'est plus facile à comprendre quand on n'a ni l'habitude ni une forte abstraction
Marsh Posté le 05-08-2010 à 12:31:55
Oui, ça devrait etre modulo 16 en hexa...
var d0 = Math.floor(d /16);
var d1 = d % 16;
...
Pour les declarations dans l'onEnterFrame, tu devrais avoir honte toute ta vie ! Et si je fais une dédicasse à Zed, c'est parceque j'avais fait pareil, alors que je débutais comme toi, il y a 2-3ans...
Sinon oui, met le plus possible dans le root, je ne connais pas l'architecture de ton .fla...
Fais gaffe juste à tes linkage, si tu declare ta fonction dans le root, assure toi que ...
myColor = new Color(this.carre.unite);
myColor.setRGB(Couleur);
... vise le bon clip !
La methode, tu l'appel du root aussi (tu peux le faire de n'importe ou, le principe est de mettre un bon chemin...
Si ta fonction est declaré dans root et que tu veux l'appeler d'un sous-clip, alors tu devras faire : _root.coloRandom() ou _parent.coloRandom()
Marsh Posté le 05-08-2010 à 12:46:17
Je viens de voir qu'en AS2, on instanciait un objet Color à partir de nombre entre 0 et 1 pour les RVB...
Du coup, pour avoir une couleur au pif :
var maCouleur:Color = new Color(Math.random(),Math.random(),Math.random());
Bref...
Ça remet en cause ton script, la conversion en hexa devient inutile...
Marsh Posté le 05-08-2010 à 15:40:57
abais a écrit : Je viens de voir qu'en AS2, on instanciait un objet Color à partir de nombre entre 0 et 1 pour les RVB... |
Ah oui pas mal...
Bon faudra que je me mette à l'AS3, ça deviens urgent
Marsh Posté le 04-08-2010 à 17:10:02
Voila, j'ai une occurence que je souhaiterais voir changer de couleur à chaque fois que j'arrive sur une frame précise du clip-père. J'ai tenté de faire un code à partir de solutions trouvés sur internet, mais je bloque sur un souci.
La fonction marche, à savoir qu'en arrivant sur la frame la couleur change, mais elle change alors sans cesse. Si je fais un delete la couleur appliquée est retirée.
Voila le code :
La var Couleur est superflue.
En fait ce qui m'arrangerait, c'est que cette fonction ne s'exécute qu'une seule fois et que son effet perdure.
Si quelqu'un à la gentillesse de me donner un petit indice, j'en serais très heureux
Message édité par lxl ihsahn lxl le 04-08-2010 à 17:18:32
---------------
[YouTube] Le Cerveau Lent : vulgarisation sciences cognitives ◦ [url=https://forum.hardware.fr/hfr/AchatsVentes/Photo-Audio-Video/vds-pentax-samyang-sujet_644991_1.htm]Vente Penta