参看下面的代码:
package{
import flash.display.Sprite;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.events.Event;
import flash.geom.Point;
public class RectangleAnimation extends Sprite{
private var rec:Sprite
private var pointA:Point;
private var pointB:Point;
private var pointC:Point;
private var pointD:Point;
private var speed:int = 2;
function RectangleAnimation(){
stage.align = StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.NO_SCALE;
init();
drawRec();
}
private function init():void{
rec = new Sprite();
rec.x = 100;
rec.y = 100;
rec.addEventListener(Event.ENTER_FRAME, onUpdateRec);
addChild(rec);
pointA = new Point(0,0);
pointB = new Point(400, 0);
pointC = new Point(400, 200);
pointD = new Point(0, 200);
}
private function drawRec():void{
rec.graphics.clear();
rec.graphics.moveTo(pointA.x, pointA.y);
rec.graphics.lineStyle(0, 0, 1);
rec.graphics.lineTo(pointB.x, pointB.y);
rec.graphics.lineTo(pointC.x, pointC.y);
rec.graphics.lineTo(pointD.x, pointD.y);
rec.graphics.lineTo(pointA.x, pointA.y);
}
private function onUpdateRec(evt:Event):void{
pointA.x += speed;
pointB.x += -speed;
drawRec();
if (pointA.x >100 || pointA.x < (-50)){
speed *= -1;
}
}
}
}