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.