Travelling sinus wave

gimbalock Messages postés 3 Date d'inscription mercredi 18 avril 2007 Statut Membre Dernière intervention 15 août 2007 - 15 août 2007 à 01:51
cs_Girou Messages postés 1203 Date d'inscription lundi 10 mars 2003 Statut Membre Dernière intervention 23 juillet 2009 - 16 août 2007 à 08:55
Bonjour à tous,
Je reconre un petit problème en action script sur les APIdrawings.
Je cherche a dessiner une sinusoide qu se propage. Je dessine la sinusoides, je l'efface (avec clear), et je la redessine décalée ce qui devrait donner l'illusion de mouvement.
Qd je mets l'instruction clear().... tout s'efface...; qd elle n'y est pas tout se supperpose.....qq chose m'as échappé, c'est sur... voici mon code (simplex) :

this.createEmptyMovieClip("canvas_mc",1);
this.canvas_mc._x = 50;
this.canvas_mc._y = 50;

this.canvas_mc.lineStyle(2,0x000000,100);
this.canvas_mc.moveTo(50,0);

var i;
var b;
var count;
count=0;

onEnterFrame = function(){

count ++;

for(i=0; i<870; i++)

{
this.canvas_mc.lineStyle(2,0x000000,100);

b = 40*(Math.sin(0.5*count+i/10));
this.canvas_mc.lineTo(i+50,b);
}

this.canvas_mc.clear();

}
merci d'avance....

3 réponses

gimbalock Messages postés 3 Date d'inscription mercredi 18 avril 2007 Statut Membre Dernière intervention 15 août 2007
15 août 2007 à 01:57
Bonjour à tous, Je reconre un petit problème en action script sur les APIdrawings. Je cherche a dessiner une sinusoide qu se propage. Je dessine la sinusoides, je l'efface (avec clear), et je la redessine décalée ce qui devrait donner l'illusion de mouvement. Qd je mets l'instruction clear().... tout s'efface...; qd elle n'y est pas tout se supperpose.....qq chose m'as échappé, c'est sur... voici mon code (simplex) :

this.createEmptyMovieClip("canvas_mc",1);
this.canvas_mc._x = 50;
this.canvas_mc._y = 50;
this.canvas_mc.lineStyle(2,0x000000,100); this.canvas_mc.moveTo(50,0);
var i;
var b;
var count;
count=0;
onEnterFrame = function(){
count ++;
for(i=0; i<870; i++) {
this.canvas_mc.lineStyle(2,0x000000,100);
b = 40*(Math.sin(0.5*count+i/10));
this.canvas_mc.lineTo(i+50,b); }
this.canvas_mc.clear(); }

expliquer moi Clear().....
c'est mieux la présentation non?
merci d'avance....
Gimbalock
0
gimbalock Messages postés 3 Date d'inscription mercredi 18 avril 2007 Statut Membre Dernière intervention 15 août 2007
15 août 2007 à 08:25
onjour à tous, Je reconre un petit problème en action script sur les APIdrawings. Je cherche a dessiner une sinusoide qu se propage. Je dessine la sinusoides, je l'efface (avec clear), et je la redessine décalée ce qui devrait donner l'illusion de mouvement. Qd je mets l'instruction clear().... tout s'efface...; qd elle n'y est pas tout se supperpose.....qq chose m'as échappé, c'est sur... voici mon code (simplex) :


this.createEmptyMovieClip("canvas_mc",1);
this.canvas_mc._x = 50;
this.canvas_mc._y = 50;
this.canvas_mc.lineStyle(2,0x000000,100);
this.canvas_mc.moveTo(50,0);
var i;
var b;
var count;
count=0;

onEnterFrame = function(){
count ++;
for(i=0; i<870; i++) {
this.canvas_mc.lineStyle(2,0x000000,100);
b = 40*(Math.sin(0.5*count+i/10));
this.canvas_mc.lineTo(i+50,b); }
this.canvas_mc.clear(); }


expliquer moi Clear()..... c'est mieux la présentation non? merci d'avance.... Gimbalock
0
cs_Girou Messages postés 1203 Date d'inscription lundi 10 mars 2003 Statut Membre Dernière intervention 23 juillet 2009 2
16 août 2007 à 08:55
Hello,

essaye tout simplement en mettant le clear() au tout début de la fonction onEnterFrame.
Je me demande si ton soucis c'est que flash n'a pas le temps de redessiner le clip (je croit qu'il fait cela justement lors du onEnterFrame) que déjà tu l'éfface.

onEnterFrame = function(){
   this.canvas_mc.clear();
   count ++; 
   this.canvas_mc.lineStyle(2,0x000000,100); 
   for(i=0; i<870; i++) { 
       b = 40*(Math.sin(0.5*count+i/10));
      this.canvas_mc.lineTo(i+50,b);
   }
}

P.S. attention, flash calcul en radian si j'ai bonne mémoire
J'ai aussi sorti le lineStyle de la boucle, il n'est pas nécessaire de redéfinir le style a chaque passage de la boucle puisqu'il ne change pas.

@+
0
Rejoignez-nous