Carroussel et lien sur images tournantes

demetrope Messages postés 1 Date d'inscription lundi 3 octobre 2011 Statut Membre Dernière intervention 11 octobre 2011 - 11 oct. 2011 à 14:46
aerolyte Messages postés 465 Date d'inscription mardi 17 avril 2007 Statut Membre Dernière intervention 4 mai 2013 - 11 oct. 2011 à 22:47
Salut à tous,
Tout d'abord merçi au gens qui prendront le temps d’essayer de m'aider.
Alors pour la suite j'ai récupérer sur votre site un carrousselreflect en .fla pour faire le header de mon site, sur celui-ci aucun il marche niquel est j'ai pus le transformer comme je le souhaitais mais je bloque, je vous explique je souhaite insérer une url de redirection vers les différentes section de mon site sur les images qui défile, mais je n'y arrive pas, pour le moment j'ai essayé d'apporter des modifs à ce bout de code:
//ajout d'un ecouteur sur le ieme clip
this.getChildAt(i).addEventListener(MouseEvent.CLICK, OnClick);


et ici:
//Fonction de click sur les icones
function OnClick ( pEvt:MouseEvent ):void
{
trace("salut");
}



Mais la je bloque si vous besoin je vous mets une partie du code plus complète:


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

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

//angle de rotation des clips autour de l'axe z
var angle:Number=0;

//Reference pour la definition des clips
var Reference:Class;

//Attachement des icones
for(var i:Number=0;i<N;i++)
{

// extraction des références de classe
Reference = Class (getDefinitionByName ( "MonClip"+i ));

// ajout à la liste d'affichage
this.addChild (  DisplayObject ( new Reference() ) );

//Nom du clip
this.getChildAt(i).name='ID'+i;

//position initial du ieme clip en y (milieu de scene)
this.getChildAt(i).y=stage.stageHeight/2;

//ajout d'un ecouteur sur le ieme clip
this.getChildAt(i).addEventListener(MouseEvent.CLICK, OnClick);


}

for(i=0;i<N;i++)
{

// extraction des références de classe
Reference = Class (getDefinitionByName ( "MonClip"+i ));

// ajout à la liste d'affichage
this.addChild ( DisplayObject ( new Reference() ) );

//Nom du clip
this.getChildAt(i+N).name='ID'+i+N;

//position initial du ieme clip en y (milieu de scene)
this.getChildAt(i+N).y=stage.stageHeight/2+64+20;


this.getChildAt(i+N).alpha=0.1;
this.getChildAt(i+N).scaleY*=-1;


}
//Fonction de click sur les icones
function OnClick ( pEvt:MouseEvent ):void
{
trace("salut");
}

//ecouteur enter_frame
stage.addEventListener ( Event.ENTER_FRAME, Main );

function Main ( pEvt:Event ):void
{
 //variable temporaire pour la profondeur
 var z:Number;
 
 //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
this.getChildByName('ID'+i).x=Rx*Math.cos(angle+2*Math.PI*i/N)+stage.stageWidth/2;


//rotation du i_eme clip sur x
this.getChildByName('ID'+i+N).x=Rx*Math.cos(angle+2*Math.PI*i/N)+stage.stageWidth/2;			

//mise a jour de la taille du clip (60%->premier plan, 40%->arriere plan)
this.getChildByName('ID'+i).scaleX=0.6/2*(Math.sin(angle+2*Math.PI*i/N)+ 1)+0.4;
this.getChildByName('ID'+i).scaleY=getChildByName('ID'+i).scaleX;

this.getChildByName('ID'+i+N).scaleX=getChildByName('ID'+i).scaleX;
this.getChildByName('ID'+i+N).scaleY=-getChildByName('ID'+i).scaleX;		

this.getChildByName('ID'+i+N).y=32*getChildByName('ID'+i).scaleX+stage.stageHeight/2;
this.getChildByName('ID'+i).y=-32*getChildByName('ID'+i).scaleX+stage.stageHeight/2;

//mise a jour de z (profondeur);
z=(N-1)*(Math.sin(angle+2*Math.PI*i/N)+1)/2;

this.setChildIndex(this.getChildByName('ID'+i), int(z+10));
this.setChildIndex(this.getChildByName('ID'+i+N), int(z));

 	}

//rotation commandée par la souris
//conditions sur x
if(stage.mouseX<(stage.stageWidth/2+Rx) && stage.mouseX>(stage.stageWidth/2-Rx))
{
//conditions sur y
if(stage.mouseY<stage.stageHeight && stage.mouseY>0)
{
//0.7 correspond a la vitesse
angle=angle+(stage.mouseX-stage.stageWidth/2)/stage.stageWidth*0.7;
}
}

 }	
}


Merçi d'avançe à vous.

1 réponse

aerolyte Messages postés 465 Date d'inscription mardi 17 avril 2007 Statut Membre Dernière intervention 4 mai 2013 1
11 oct. 2011 à 22:47
Bonjour
sur celui-ci aucun il marche niquel est j'ai pus le transformer comme je le souhaitais


euh j'ai des sérieux doute aux vues de ton bout de code posé ici.
Déja , j'ai du mal a savoir situ as fait de l'as2 ou de l'as3.

1/Pourquoi utilises-tu:
Reference = Class (getDefinitionByName ( "MonClip"+i ));

Je pense que tu t'y prend très mal, comme l'illustre ta débauche de ligne avec :
this.getChildAt(i+N)
this.getChildByName('ID'+i)

Et je soupsonne que tu ne nourri pas ton carroussel avec un xml qui te sera d'ailleur plus qu'utilise si tu veux ajouter des liens aux images.

2/vive les boucles successive qui servent a rien.
d'ailleur l'ecriture de la 2eme devraiy poser des pbs

for(var i:Number=0;i<N;i++)
{

// extraction des références de classe
Reference = Class (getDefinitionByName ( "MonClip"+i ));

// ajout à la liste d'affichage
this.addChild (  DisplayObject ( new Reference() ) );

//Nom du clip
this.getChildAt(i).name='ID'+i;

//position initial du ieme clip en y (milieu de scene)
this.getChildAt(i).y=stage.stageHeight/2;

//ajout d'un ecouteur sur le ieme clip
this.getChildAt(i).addEventListener(MouseEvent.CLICK, OnClick);


}

for(i=0;i<N;i++)
{

// extraction des références de classe
Reference = Class (getDefinitionByName ( "MonClip"+i ));

// ajout à la liste d'affichage
this.addChild ( DisplayObject ( new Reference() ) );

//Nom du clip
this.getChildAt(i+N).name='ID'+i+N;

//position initial du ieme clip en y (milieu de scene)
this.getChildAt(i+N).y=stage.stageHeight/2+64+20;


this.getChildAt(i+N).alpha=0.1;
this.getChildAt(i+N).scaleY*=-1;


}

Avant de continuer sur ton pb reprend ton code

Cordialement
0