Actionscript - problème variables dans une fonctions

cs_neymo Messages postés 2 Date d'inscription lundi 25 octobre 2004 Statut Membre Dernière intervention 2 mars 2005 - 2 mars 2005 à 13:43
cs_neymo Messages postés 2 Date d'inscription lundi 25 octobre 2004 Statut Membre Dernière intervention 2 mars 2005 - 2 mars 2005 à 14:35
Bonjour, j'ai le problème suivant :

J'ai un petits script que j'ai récupéré sur le net et adapté à mes besoins. Ayant quelques notions de prog, j'aimerais bien progrésser et aprendre l'action script... Pour ce faire je suis allé consulté les différents tutoriaux .. et je me suis dit que j'allais essayé de structurer un peu mon animation en créant une fonction action script que j'appellerai chaque fois que j'en ai besoin.. (c la que ça coince..)

Je vous explique en gros le but du truk...

Au fait mon animation fera office de page d'accueil avec plusieurs images en rotation. Le fait de cliquer sur une de ces images ouvrira une autre page du site..
(genre un menu tournant.. )

Voici le code d'origine fonctionnel :

onClipEvent(load){
y=100;
speed=3;
radius=100;
xcenter=250;
ycenter=100;
zcenter=100;
angle=120;
fl=150;
}
onClipEvent(enterFrame){
z=Math.sin(angle*Math.PI/180)*radius+zcenter;
scale=fl/(fl+z);
x=Math.cos(angle*Math.PI/180)*radius;
_x=x*scale+xcenter;
_y=y*scale+ycenter; _xscale_yscale scale*100;
angle+=speed;
if(angle>359){
angle-=360;
}
}

on (release) {

//Goto Webpage Behavior
getURL("toto.htm","_blank");
//End Behavior

}
//appell de la fonction
MoveSkulls(this.picture1, "toto.html");

et mon code maintenant :

MoveSkulls = function(clip, LinkURL)
{
clip.onLoad = function()
{
this.y=100;
this.speed=3;
this.radius=100;
this.xcenter=250;
this.ycenter=100;
this.zcenter=100;
this.angle=AngleValue;
this.fl=150;
}



clip.onEnterFrame = function()
{
var z=Math.sin(this.angle*Math.PI/180)*this.radius+this.zcenter;
var scale=this.fl/(this.fl+z);
var x=Math.cos(this.angle*Math.PI/180)*this.radius;
_x=x*scale+this.xcenter;
_y=y*scale+this.ycenter; _xscale_yscale scale*100;
this.angle+=this.speed;
if(this.angle>359)
{
this.angle-=360;
}
}



//Ici il faut cibler ton clip avec l'image !!!
clip.onRelease = function()
{
//Goto Webpage Behavior
getURL(LinkURL,"_blank");
//End Behavior


}


};


//On appelle la fonction en ciblant correctement le clip sur lequel mettre cet effet
MoveSkulls(this.picture1, "toto.html");

Le lien il fonctionne, par contre l'image ne tourne pas comme elle serait sencé le faire... quelqu'un aurait-il une idée du pourquoi ? ..

merci d'avance pour votre aide... là je desespère...

2 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
2 mars 2005 à 14:11
ben déjà, je pourrais te dire que tous tes "this" lorsque tu définis les variables sont inutiles ...
Ensuite, tu devrais éviter de mettre des évènements de clips et de laisser les codes en dur sur les Frames avec des onEnterFrame = function().
Déjà tu feras un code correct...

Et pour finir, si ton but est de faire tourner un clip, je ne vois nulle part la propriété "_rotation" dans ton code .. je ne vois alors pas comment tu pourrais le faire tourner !

Peg'
0
cs_neymo Messages postés 2 Date d'inscription lundi 25 octobre 2004 Statut Membre Dernière intervention 2 mars 2005
2 mars 2005 à 14:35
@peg : Ben justement sur un autre forum d'aide quelqu'un m'a dit qu'il fallait mettre les "this"

Pour les événements de clips.. là aussi c'est la même personne qui m'a conseillé cette méthode..

Mon intention était justement de faire un code correct car avant ça, le code "original" ci-dessus était entièrement répété (mis à part l'angle de départ, et l'url qui eux changeaient)... comme action d'un clip..et comme c 'est un menu, ya plusieurs fois les memes choses qui se répétaient..

Oui , mon but est bien de faire "tourner" un clip sur 360° ..avec un effet 3d (comme si il tournait à plat..) le code d'origine marche parfaitement ...c'est juste ma façon de le modifier qui ne joue pas...

et c'est là que j'aurais besoin d'un petit coup de main...
0
Rejoignez-nous