Problème pour récupérer une variable stockée dans un tableau

franck_dev Messages postés 2 Date d'inscription lundi 23 mai 2005 Statut Membre Dernière intervention 24 janvier 2010 - 22 janv. 2010 à 19:08
franck_dev Messages postés 2 Date d'inscription lundi 23 mai 2005 Statut Membre Dernière intervention 24 janvier 2010 - 24 janv. 2010 à 19:40
Bonjour,
cela fait peu de temps que je me suis mis au flash(carrousel),et j'ai un soucis dans mon script.Sur l'évenemement clic, je n'arrive pas à récupérer l'url stocké dans mon tableau.Il m'ouvre une page web "adresse indéfinie".
Voici le code, qqn peut-il me dire ou j'ai fauté d'avance merci :

//Rayon de rotation (en pixels) autour de l'axe y
var Rx:Number=120;

//Nombre d'icones (pas plus que 10, quoique...)
var N:Number=3;


//création du tableau contenat les adresse web
var myLink=["www.google.fr","www.google.fr","www.google.fr"];

//Attachement des icones
var i:Number;
for(i=0;i<N;i++)
{
//Attache le ieme clip a la scene
_root.attachMovie('MonClip'+i,'ID'+i,i);

//click
//_root['ID'+i].onPress=function(){trace(this._name);}

_root['ID'+i].onPress=function(){geturl("http://" + myLink[i] + "/", "_blank");}


//position initial du ieme clip en y (milieu de scene)
_root['ID'+i]._y=80/2;

}


//rotation des clips
var angle:Number=0;
_root.onEnterFrame=function(){

//si l'angle a fait un tour alors remise a zero de l'angle
if (angle>2*Math.PI)
{
angle=0;
}
else
{
for(i=0;i<N;i++)
{

//rotation du i_eme clip sur x
_root['ID'+i]._x=Rx*Math.cos(angle+2*Math.PI*i/N)+480/2;

//mise a jour de la taille du clip (60%->premier plan, 40%->arriere plan)
_root['ID'+i]._xscale=60/2*(Math.sin(angle+2*Math.PI*i/N)+ 1)+40;
_root['ID'+i]._yscale=_root['ID'+i]._xscale;

//mise a jour de z (profondeur en pixels);
_root['ID'+i].swapDepths(Rx*Math.sin(angle+2*Math.PI*i/N));
}

//rotation normale sans souris
//0.1 correspond a la vitesse (-0.1 selon le sens)
//angle=angle+0.1;

//rotation commandée par la souris
//conditions sur x
if(_root._xmouse<(480/2+Rx) && _root._xmouse>(480/2-Rx))
{
//conditions sur y
if(_root._ymouse<80 && _root._ymouse>0)
{
//0.7 correspond a la vitesse
angle=angle+(_root._xmouse-480/2)/480*0.7;
}
}

}
}

Franck_dev

2 réponses

blunt1337 Messages postés 72 Date d'inscription lundi 10 décembre 2007 Statut Membre Dernière intervention 11 octobre 2011
23 janv. 2010 à 09:59
Salut, il faut que l'objet ID+i se souvienne du 'i', car après la boucle 'i' vaut 4, et ca n'est pas dans le tableau.
Pour cela change par ca :
_root['ID'+i].num = i;
_root['ID'+i].onPress=function(){geturl("http://" + myLink[this.num] + "/", "_blank");}
0
franck_dev Messages postés 2 Date d'inscription lundi 23 mai 2005 Statut Membre Dernière intervention 24 janvier 2010
24 janv. 2010 à 19:40
Bonjour blunt1337,
merci beaucoup pour ton aide. Cela marche parfaitement.
Encore merci.
franck_dev
0