Aide - Recherche - Membres - Calendrier
Version complète : Première image de chaque frame repeinte trop tot
Centre de Formation Flash - Forums Adobe Flash > Adobe Flash > Programmation Actionscript > Actionscript 3
The Riddler
Bonjour à tous,

voila mon problème dans le fichier fla ci joint.

Le fla dispose d'un clip "objet" en forme de rond sur la frame 1 et d'un clip "objet" en forme de rectangle sur la frame2.

Le code as3 est le suivant:

Action Script


for (var i=0; i<=this.totalFrames; i++)
{
this.addFrameScript(i, null);
this.addFrameScript(i, Paint);
}


function Paint()
{
var colorTransform :ColorTransform = new ColorTransform();
colorTransform.color=5000;
objet.transform.colorTransform=colorTransform;
}


mon probleme est que dans le fichier swf destination si je parcoure frame par frame, mes objets flickerent du gris a la couleur demandée au moment de l'affichage comme si le paint se faisait apres que la premiere image soit repainte


The Riddler
Est ce quelqu'un comprend mon problème?
The Riddler
Apparemment une solution serait de pouvoir rendre le clip invisible avant que la MainTimeLine l'ajoute a la scène... En gros il faudra avoir acces au code de la MainTimeLine.

Quelqu'un sait il comment faire?
The Riddler
up
paodao
salut
j'ai testé ton fla et j'ai pas vue de probleme

mais j'ai peux etre pas compris le probleme (surement meme icon_wink.gif )

a+
The Riddler
Citation (paodao @ Nov 28 2008, 09:03 AM) *
salut
j'ai testé ton fla et j'ai pas vue de probleme

mais j'ai peux etre pas compris le probleme (surement meme icon_wink.gif )

a+

ben avec ce fla compilé en flash9, au moment ou la frame change, que le carré passe au rond ou que le rond passe au carré; on voit la couleur grise un bref instant avant la couleur bleu...
The Riddler
Citation (The Riddler @ Nov 28 2008, 09:19 AM) *
ben avec ce fla compilé en flash9, au moment ou la frame change, que le carré passe au rond ou que le rond passe au carré; on voit la couleur grise un bref instant avant la couleur bleu...

Un nouveau fla avec lequel c peut etre plus visible
C le meme résultat avec flash10

pour résumer le problème c'est comment peindre le clip avant qu'il ne soit posé sur la scène...
paodao
j'ai pas flash 10 icon_wink.gif

par contre j'ai beau regardé je constate pas ce que tu dis
au lieu de mettre un carre et un rond met 2 fois la meme forme (2 rond ou 2 carre)
et regarde si sa clignote
chez moi ca clignote pas

a+
The Riddler
Citation (paodao @ Nov 28 2008, 09:31 AM) *
j'ai pas flash 10 icon_wink.gif

par contre j'ai beau regardé je constate pas ce que tu dis
au lieu de mettre un carre et un rond met 2 fois la meme forme (2 rond ou 2 carre)
et regarde si sa clignote
chez moi ca clignote pas

a+

Ci joint le test.swf final fonctionnant sur flash9
il tourne en boucle au lancement.
Je clique sur "en avant" et la boucle s'arrete
Ensuite je fais "en arriere" et la je constate le probleme
puis je fais "en avant" et le probleme est également la

dans le test.swf ci joint, on voit brievement les clips se peindre en bleu avant de passer en noir !!
Nelchaël
Oui, quand on utilise "En avant" ou en "En arrière", c'est apparemment comme si un updateAfterEvent était fait.
D'ailleurs, tu peux faire pareil avec un clic par exemple sur un bouton et un updateAfterEvent :
Au clic, la fonction envoie sur une image clé et fait un updateAfterEvent, un rafraîchissement a lieu, puis le code de l'image clé atteinte s'exécute, puis un nouveau rafraîchissement a lieu.

Comme test il y a plus simple, ce n'est pas un problème spécifique à la couleur.
Un simple clip.x+=100; permet d'observer les mêmes choses.
The Riddler
Citation (Nelchaël @ Nov 28 2008, 10:47 AM) *
Oui, quand on utilise "En avant" ou en "En arrière", c'est apparemment comme si un updateAfterEvent était fait.
D'ailleurs, tu peux faire pareil avec un clic par exemple sur un bouton et un updateAfterEvent :
Au clic, la fonction envoie sur une image clé et fait un updateAfterEvent, un rafraîchissement a lieu, puis le code de l'image clé atteinte s'exécute, puis un nouveau rafraîchissement a lieu.

Comme test il y a plus simple, ce n'est pas un problème spécifique à la couleur.
Un simple clip.x+=100; permet d'observer les mêmes choses.

oui ce n'est pas spécifique à la couleur ... mais comment contourner ce problème pour être plus clean ?
Nelchaël
Quelques idées :
- Faire ce que tu disais, rendre le clip invisible. Pour cela, tu peux mettre alpha=0 dans ses propriétés ou le positionner en dehors de la scène visible. Il faut ensuite le réafficher par code.
- Cacher "En avant" et "En arrière" dans le menu. Si besoin, définir des fonctions équivalentes dans le menu.
- Mettre ton animation dans un sous-clip pour que les boutons "En avant" et "En arrière" n'agissent pas dessus.
Mais bon, ça ne me paraît très important ce problème, je pense que peu d'utilisateurs utilisent "En avant" et "En arrière".
dada
Salut,

Moi je laisserai tomber l'usage de la timeline pour çà, et surtout l'usage d'une méthode non documentée. smile.gif Utiliser ce genre de méthode t'expose au danger de devoir recoder ton effet si un jour Adobe décide de la supprimer pour changer le comportement interne du Flash Player vis-à-vis de la timeline. wink.gif
The Riddler
Citation (dada @ Nov 28 2008, 02:25 PM) *
Salut,

Moi je laisserai tomber l'usage de la timeline pour çà, et surtout l'usage d'une méthode non documentée. smile.gif Utiliser ce genre de méthode t'expose au danger de devoir recoder ton effet si un jour Adobe décide de la supprimer pour changer le comportement interne du Flash Player vis-à-vis de la timeline. wink.gif


ben en fait mon probleme est pas tellement le "en avant en arriere".. j'ai juste isolé le probleme dans un cas simple...
Mais imaginons que j'ai un clip différent sur chaque frame qui défilent dans une animation qu'on veut mettre une couleur personnsalisable on tombe dans ce probleme la
dada
Je constate le problème uniquement en utilisant "en avant/arrière", fonctionnalité dont tu peux tout à fait te passer en créant deux boutons nextFrame et prevFrame.
The Riddler
Le problème ne se constate pas que sur les boutons "en avant" et "en arriere"
Voici deux fichiers ci joints, le fla et le swf
Le long rectangle bleu sert de bouton pour faire défiler les frames et on constate régulièrement le meme problème.
The Riddler
Up
Je ne trouve nulle part sur le web une quelconque référence a ce probleme
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'informations, la mise en page et les images, veuillez cliquer ici.
Invision Power Board © 2001-2009 Invision Power Services, Inc.