[FLASH MX2004] [AS2] Rectangle
Salut
dans ma classe rectangle j'ai aujouté cette méthode
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| public function _dessinerProg(Void):Void
{
cords= [{x:0, y:0},{x:0, y:nLongueur},{x:nLargeur, y:nLongueur},{x:nLargeur,y:0}] ;
_mc.lineStyle(nEpaisseur,sBordure,100);
_mc.moveTo(0,0);
//Proxy.create(object, function, parameter)
_mc.onEnterFrame = Proxy.create(this,sendIntoOrbit, _mc);
}
private function sendIntoOrbit(mc:MovieClip):Void
{
var speed:Number = 1/25;
var position:Number = 0;
var t:Number;
position+=speed;
var n:Number = Math.floor(position);
var ptA:Object = cords[n];
if(n != nbr - 1)
{
var ptB:Object =cords[n+1];
}else{
var ptB:Object= cords[0];
}
var x:Number =super.barycentre(ptA.x, ptB.x, position - n);
var y:Number= super.barycentre(ptA.y, ptB.y, position - n);
_mc.lineTo(x,y);
if(t >= nbr){t = 0;}
} |
mais byzarement pta et ptrB sont toujours a 0 :( pourtant celle ci fonctionne
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| var cords:Object = new Object();
cords = [{x:0, y:0},{x:0, y:100},{x:100, y:100},{x:100, y:0}] ;
var nbr:Number = 4;
var speed:Number = 1/25;
var position:Number = 0;
// Dessine le carré
this.lineStyle(0, 0xFF0000, 100);
this.moveTo(0,0);
_root.onEnterFrame = function() {
position+=speed
var n:Number = Math.floor(position);
ptA = this.cords[n];
if(n != nbr - 1) {
ptB = this.cords[n+1];
} else {ptB = cords[0];}
x = barycentre(ptA.x, ptB.x, position - n);
y= barycentre(ptA.y, ptB.y, position - n);
this.lineTo(x,y);
if(t >= nbr) {t = 0;}
}
////
function barycentre(a:Number,b:Number,t:Number):Number {
return (1 - t)*a + t*b;
} |
merci