Pour ce premier tutoriel, j'ai décidé de coder en AS2, mais sachez qu'une version codé en AS3 sera bientôt disponible. Voici donc à quoi ressemblera votre carrousel une fois le tuto terminé:
Voici le fichier source:
Carroussel.fla
Voici le code utilisé:
- Code:
var rotX:Number = 120;
var rotY:Number;
var Centre:Number = Stage.height/2;
var vitesse:Number = 0.4;
var sceneW:Number = Stage.width;
var sceneH:Number = Stage.height;
var nbI:Number = 10;
var angle:Number = 1;
var i:Number;
for(i=0;i<nbI;i++)
{
//_____________________○○○---lier les clips à la scéne____
this.attachMovie('Icone'+i,'Ic'+i,i);
//_____________________○○○---clic sur les images____
this['Ic'+i].onRelease=function(){
trace (this);
}
//_____________________○○○---positionnement des clips au centre de la scéne____
this['Ic'+i]._y = sceneH /2;
}
//_____________________○○○---rotation des clips____
onEnterFrame=function(){
//_____________________○○○---Rayon de rotation de l'axe y (en pixels)
rotY = ( Centre - this._ymouse );
if (rotY <= -5) {
rotY = -5;
}
else if (rotY >= 70) {
rotY = 70;
}
//_____○○○---remise a zero de l'angle aprés tour complet
if (angle > (2*Math.PI))
{
angle = 0;
}else{
for(i=0; i<nbI; i++){
//_____________________○○○---rotation des clips sur l'axe x
this['Ic'+i]._x = rotX*Math.cos(angle+2*Math.PI*i/nbI)+sceneW/2;
//_____________________○○○---angle des clips sur l'axe y
this['Ic'+i]._y = rotY*Math.sin(angle+2*Math.PI*i/nbI)+sceneH/2;
//_____________________○○○---mise a jour de la taille du clip (60%->premier plan, 40%->arriere plan)
this['Ic'+i]._xscale=60/2*(Math.sin(angle+2*Math.PI*i/nbI)+ 1)+50;
this['Ic'+i]._yscale=this['Ic'+i]._xscale;
//_____________________○○○---gestion de la profondeur (en pixels);
this['Ic'+i].swapDepths(rotX*Math.sin(angle+2*Math.PI*i/nbI));
}
//_____________________○○○---Gestion de la rotation en fonction de la souris(x)
if(this._xmouse < (sceneW/2+rotX+120) && this._xmouse > (sceneW/2-rotX-120))
{
//_____________________○○○---Gestion de la rotation en fonction de la souris(y)
if(this._ymouse < sceneH && this._ymouse > 0)
{
//_____________________○○○---Gestion de la vitesse
angle=angle+(this._xmouse-sceneW/2)/sceneH*vitesse;
}
}
}
}
Dernière édition par artkabis le Sam 22 Aoû - 19:49, édité 5 fois