par Alnitak94 Mer 30 Mar - 22:08
Bonjour,
Très bon tuto, très pédagogique, j'ai pu le réaliser sans aucun soucis malgré mon tres faible niveau en FLASH.
Cependant j'ai essayé de l'intégré à un site web que je fais, un site perso pour montrer mes créations.
Le site est tout en flash et contient plusieurs pages (accueil, parcours, travaux et contact)
J'ai créé le carrousel composé de miniatures de mes différents projets sur ma page travaux en modifiant la position sur l'axe des X et l'axe des Y pour qu'il s'imbrique bien dans ma mise en page. Voila donc le code qui se situe sur la page "travaux"
- Code:
stop();
var rotX:Number = 200;
var rotY:Number;
var Centre:Number = Stage.height/3;
var vitesse:Number = 0.3
var sceneH:Number = Stage.height;
var sceneW:Number = Stage.width
var nbI:Number = 14;
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(){
if (this == _level0.Ic0)gotoAndStop("Image 1");
if (this == _level0.Ic1)gotoAndStop("Image 2");
if (this == _level0.Ic2)gotoAndStop("Image 3");
if (this == _level0.Ic3)gotoAndStop("Image 4");
if (this == _level0.Ic4)gotoAndStop("Image 5");
if (this == _level0.Ic5)gotoAndStop("Image 6");
if (this == _level0.Ic6)gotoAndStop("Image 7");
if (this == _level0.Ic7)gotoAndStop("Image 8");
if (this == _level0.Ic8)gotoAndStop("Image 9");
if (this == _level0.Ic9)gotoAndStop("Image 10");
if (this == _level0.Ic10)gotoAndStop("Image 11");
if (this == _level0.Ic11)gotoAndStop("Image 12");
}
//_____________________○○○---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 >= 60) {
rotY = 60;
}
//_____○○○---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/1.6;
//_____________________○○○---angle des clips sur l'axe y
this['Ic'+i]._y = rotY*Math.sin(angle+2*Math.PI*i/nbI)+sceneH/1.7;
//_____________________○○○---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+180) && this._xmouse > (sceneW/2-rotX-180))
{
//_____________________○○○---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;
}
}
}
}
1 er petit problème : les mouvement de ma souris pour le défilement du carrousel ont pour origine le centre de ma scène et non pas celui du carrousel. Que dois je faire ?
Ensuite j'ai rajouté quelques lignes de code qu'avait donné un des membre du forum plus haut pour que lorsque je clic sur une des icônes de mon carrousel cela m'envoie sur une nouvelle page. Dans ce cas précis je voudrais que les miniatures de mes projets renvoient a une page avec mes projet en plein écran. Hors le carrousel reste actif et visible (il ne disparaît pas). Du coup tout se superpose. Que dois je faire ? Je suis vraiment débutant alors si c'est possible de m'expliquer clairement.
Pour la suite, en ce qui concerne le retour sur le carrousel une fois que je clic sur mes projets en plein écran je devrait pouvoir me débrouiller.
Merci d'avance !