[flash] boucle for avec rollover

bomberwaterman Messages postés 538 Statut Membre -  
bomberwaterman Messages postés 538 Statut Membre -
Bonjour,
j'ai un probleme avec une boucle for, voici le code

for (var i=1; i<n+1; i++)
{
var cd=this["cd_"+i];

cd.onRollOver = function ()
{
cd._alpha = 100;
}

cd.onRollOut = function ()
{
cd._alpha = 20;
}

}

en fait l'histoire du rollOver marche pas, l'alpha ne change pas, je precise que je ne suis pas a la racine de l'animation, alors est ce que ya une histoir de this ou _root ?

merci
A voir également:

8 réponses

Mimiste Messages postés 1159 Statut Membre 206
 
non en fait tu laisse tout a l'interieur et tu stock cette variable "cd" dans un tableau a la fin de ta boucle

En fait a chaque tour de boucle tu ne fais pas l'alpha, tu cré un evenement onrollover qui en ce declenchant va regler l'alpha de l'objet contenu dans cd. Le souci comme je t'ai dis c'est qu'a chaque tour de boucle tu ecrase cd. A la fin de ta boucle tu devrai avoir un truc du genre

var tab = new array(); //je declare un nouveau tableau
for (var i=1; i<n+1; i++)
{
var cd=this["cd_"+i];

cd.onRollOver = function ()
{
cd._alpha = 100;
}

cd.onRollOut = function ()
{
cd._alpha = 20;
}

tab.push(cd); // Je sauve la variable cd dans une nouvelle case du tableau ainsi rien ne sera perdu au prochain tour de boucle
} 

1
Joy_^ Messages postés 55 Statut Membre 110
 
Bonjour,

mais non rien à voir, la variable cd ne s'écrase pas, il faut juste dans ton code mettre

cd.onRollOver = function ()
{
this._alpha = 100;
}

cd.onRollOut = function ()
{
this._alpha = 20;
}

à l'intérieur de tes fonctions tu remplaces cd par this

voilà ;)
1
Mimiste Messages postés 1159 Statut Membre 206
 
en AS3 ? AS2 ?

dans tous les cas toute manière il y aura un problème a cause du fait que ta variable cd tu l'écrase a chaque tour de boucle... Donc fatalement les rollover que t'a défini au tour de boucle précédent sont écrasés.

Il faut qu'a chaque tour de boucle tu stock la variable cd dans un tableau

c'est déjà un premier point ^^
0
bomberwaterman Messages postés 538 Statut Membre 66
 
re, merci d'avoir repondu, c'est de l'as 2.

Sinon pour la variable que j'ecrase, comment faut-il faire? Je dois stocker dans un tableau quelle variable?
Je ne vois pas pourquoi ça ecrase ma variable en faite, je pensais que lors de chaque tour de ma boucle for l'alpha de chaque cd_ se ferait.

Je met seulement

var cd=this["cd_"+i];

dans la boucle for et les rollover a lexterieur?

a+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
bomberwaterman Messages postés 538 Statut Membre 66
 
cool merci jvai testé ce weekend
a+
0
bomberwaterman Messages postés 538 Statut Membre 66
 
donc, j'ai testé voici le nouveau code :

for (var i=1; i<n+1; i++)
{
var cd=this["cd_"+i];
var pp=this["pp_"+i];
cd._alpha = 60;

pp._alpha = 60;

cd.onRollOver = function ()
{
this._alpha = 100;
pp._alpha = 100;

}

cd.onRollOut = function ()
{
this._alpha = 60;
pp._alpha = 60;
}
}

et c'est la que ça se corse, en fait j'ai des images en dessous des cadres (nommées pp_1,pp_2 etc) le probleme c'est que lalpha ne sapplique pas a ces photos. Pourtant le changement dalpha fonctionne en passant sur le cadre mais uniquement sur le cadre. Il doit y avoir une histoire de profondeur ou de level, jai rein compris à l'aide et les forums je n'en trouve pas.

qqun a t-il une idée?

merci
0
bomberwaterman Messages postés 538 Statut Membre 66
 
up !
0
bomberwaterman Messages postés 538 Statut Membre 66
 
up svp!
0