Problème de migration vers AS3

Résolu
cs_cdedecmoi Messages postés 6 Date d'inscription mardi 25 octobre 2005 Statut Membre Dernière intervention 15 novembre 2010 - 15 nov. 2010 à 12:30
cs_cdedecmoi Messages postés 6 Date d'inscription mardi 25 octobre 2005 Statut Membre Dernière intervention 15 novembre 2010 - 15 nov. 2010 à 18:41
Bonjours ! Je reviens aujourd'hui pour un nouveau problème...
Ayant mon animation qui marcher bien, une erreur a bien évidemment voulu se glisser dans mon flash, donc enfaite j'ai migrer vers AS3 pour je ne sais quel raison, mais maitenant, l'action script doit donc changer, mais après correction des erreurs...Mon animation ne marche plus... Pouvais vous m'éclairer s'il vous plait ?
Merci d'avance a tous ceux qui essayeront de m'aider !
On parle donc d'un carrousel a 5 images
Mon Code avant :

//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=5;

//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('salut');}


//position initial du ieme clip en y (milieu de scene)
root['ID'+i]._y=450/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)+610/2;

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

         _root['ID'+i]._alpha=100/2*(Math.sin(angle+2*Math.PI*i/N)+ 1)+50;

//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

//0.7 correspond a la vitesse
angle=angle+0.025;

 }
 }


Il m'indique des erreurs avec _root, j'enlève donc le underscore, sa marche =D, ensuite je traite le problème de migration avec onenterframe, donc voici mon code final :

//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=5;

//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('salut');}


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

}

//rotation des clips
 var angle:Number=0;
 addEventListener(Event.ENTER_FRAME, enterFrame);
function enterFrame(e:Event):void
{
    // Ton code ici
 
 //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)+610/2;

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

         root['ID'+i]._alpha=100/2*(Math.sin(angle+2*Math.PI*i/N)+ 1)+50;

//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

//0.7 correspond a la vitesse
angle=angle+0.025;

 }
 }

Plus aucune erreur =D
Mais plus aucune animation...
Un petit coup de pouce s'il vous plaît

5 réponses

pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
15 nov. 2010 à 17:05
en fait, il n'existe pas vraiment de "migration" entre as2 et as3, il faut souvent réécrire entièrement le code.
si je te dis que "onPress" et "attachMovie" n'existent plus et n'ont pas été remplacés, mais complètement transformés dans une autre méthode, ça t'aide ?

Sans parler du fait que flash 10 propose directement des choses en 3D pour ce que tu sembles vouloir faire.

Peg'
3
BBFUNK01 Messages postés 1310 Date d'inscription jeudi 16 juillet 2009 Statut Membre Dernière intervention 20 juin 2014 6
15 nov. 2010 à 14:19
Hello,

si ton fichier est bien en as3 ça ne marchera effectivement pas : en as3 les "_" n'ont plus lieu d'être pour tous les paramètres tels que "_x", "_y", "_xscale", et "_yscale", par conséquent il faut écrire à la place :
"x", "y", "xscale", et "yscale"... Mais à vérifier tout de même quand à la syntaxe car je code en as2 donc je ne suis pas formel.

A plus ,

BBFUNK01
//C'est en forgeant qu'on devient forgeron... ;-) ;
0
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
15 nov. 2010 à 15:21
il s'agit de "x", "y" et de "scaleX" et "scaleY" plus précisément.
Il y a un chapitre sur la migration as2=>as3 dans la doc live d'as3.

Peg'
0
cs_cdedecmoi Messages postés 6 Date d'inscription mardi 25 octobre 2005 Statut Membre Dernière intervention 15 novembre 2010
15 nov. 2010 à 17:02
Merci de vos aides =D
Mais mon problème persiste :s j'ai donc désormais ce code ci :
//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=5;

//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('salut');}


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

}

//rotation des clips
 var angle:Number=0;
 addEventListener(Event.ENTER_FRAME, enterFrame);
function enterFrame(e:Event):void
{
    // Ton code ici
 
 //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)+610/2;

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

         root['ID'+i].alpha=100/2*(Math.sin(angle+2*Math.PI*i/N)+ 1)+50;

//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

//0.7 correspond a la vitesse
angle=angle+0.025;

 }
 }
0

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

Posez votre question
cs_cdedecmoi Messages postés 6 Date d'inscription mardi 25 octobre 2005 Statut Membre Dernière intervention 15 novembre 2010
15 nov. 2010 à 18:41
Bon...Je vais voir pour changer et rester en AS2 alors, parce que sa m'embête vraiment de m'être casser la tête pour rien surtout pour recommencer...Merci beaucoup quand même !
0
Rejoignez-nous