Probleme de classe avec MovieClip

cs_Remoh Messages postés 5 Date d'inscription jeudi 19 août 2004 Statut Membre Dernière intervention 2 octobre 2011 - 22 sept. 2011 à 15:54
BunoCS Messages postés 15330 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 novembre 2022 - 22 sept. 2011 à 16:10
Bonjour,
J'ai une classe avec un constructeur d'un cygne.
je souhaite qu'il soit autonomme, c'est à dire qu'il se déplace tout seul dans un rectangle. j'arrive a faire cela, mais des que j'essaye de changer le movie clip, cela ne marche pas.
De pus, qu'il soit autonomme dans son apparition, pas de glisse-deposer dans la scène. en gros faire un attachmovie dans la classe. Si je fais un trace("test"); dans le constructeur et que dans la scène je mets var Cygne:Cygne= new Cygne();
il apparait deux traces, comme si le constructeur est appelé lors de ma déclaration et lors de l'apparition dans la scène puisque je fais un attachmovie dans le constructeur.

import flash.geom.*;

class Cygne extends MovieClip{

var Mare:Rectangle;
var Direction:Number;
var Vitesse:Number;
var Position:Point;
var LargeurCase:Number;
var HauteurCase:Number;
var TailleLargCase:Number;
var TailleHautCase:Number;
var Destination:Point;

function Cygne(ConstParam:Boolean,xOrg:Number,yOrg:Number,Larg:Number,Long:Number,CaseLarg:Number,CaseHaut:Number,TaileCaseLarg:Number,TaileCaseHaut:Number){
Mare = new Rectangle(xOrg,yOrg,Larg,Long);
Position = new Point(Math.floor(Math.random() * CaseLarg),Math.floor(Math.random() * CaseHaut));
Direction = 1;
Vitesse = 0;
LargeurCase = CaseLarg;
HauteurCase = CaseHaut;
TailleLargCase = TaileCaseLarg;
TailleHautCase = TaileCaseHaut;
trace("test");
if(ConstParam==true)
{
ChangeVitesseDirection();
InitPosition();
setInterval(Nager,10,Position,LargeurCase,HauteurCase,TailleLargCase,TailleHautCase,Mare,Vitesse,Direction);
}
}

function ChangeVitesseDirection()
{

_root.attachMovie("Cygne"+Direction,"Cygne",2,{_x:((Position.x * TailleLargCase) + Mare.x),_y:((Position.y * TailleHautCase) + Mare.y)});
if(Vitesse == 0)
_root.Cygne.gotoAndStop(1);
else
_root.Cygne.gotoAndPlay(1);
}

function InitPosition(){
_root.Cygne._x = (Position.x * TailleLargCase) + Mare.x;
_root.Cygne._y = (Position.y * TailleHautCase) + Mare.y;
}

function Nager(Dest,LargeurCase,HauteurCase,TailleLargCase,TailleHautCase,Mare,Vitesse,Direction){

if(_root.Cygne._x <> ((Dest.x * TailleLargCase) + Mare.x))
{
if(_root.Cygne._x < ((Dest.x * TailleLargCase) + Mare.x))
{
_root.Cygne._x++;
Vitesse=1;
Direction=3;
_root.ChangeVitesseDirection();
}
else
{
_root.Cygne._x--;
Vitesse=1;
Direction=2;
_root.ChangeVitesseDirection();
}
}
else if(_root.Cygne._y <> ((Dest.y * TailleHautCase) + Mare.y))
{
if(_root.Cygne._y < ((Dest.y * TailleHautCase) + Mare.y))
{
_root.Cygne._y++;
Vitesse=1;
Direction=1;
_root.ChangeVitesseDirection();
}
else
{
_root.Cygne._y--;
Vitesse=1;
Direction=4;
_root.ChangeVitesseDirection();
}
}
else
{
Dest.x = Math.floor(Math.random() * LargeurCase);
Dest.y = Math.floor(Math.random() * HauteurCase);
}
}
}

//*****Scene

var MyCygne:Cygne = new Cygne(true,0,0,320,320,10,10,32,32);



Deux questions:

1°) Comment faire pour n'appeler que le contructeur "var MyCygne:Cygne = new Cygne(true,0,0,320,320,10,10,32,32);" je suis pas passer par un system D avec un param ConstParam:Boolean.


2°) Comment faire des:
this.swapDepths("Curseur");
Curseur.removeMovieClip();
attachMovie("Curseur","Curseur",1,{_x:_xmouse,_y:_ymouse});

en classe. Merci d'avance.

1 réponse

BunoCS Messages postés 15330 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 novembre 2022 103
22 sept. 2011 à 16:10
Hello,
Rien à voir avec un bug sur CS: attention à la section dans laquelle tu postes!
Je déplaces du côté Flash.


@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
0