{
導入flash . display . movie clip;
導入flash . events . *;
//創建類Duck繼承MovipClip
公共類Duck擴展MovieClip
{
//創建以下常量分別表示寬度和高度。
私有常量寬度:Number = 550
私有const HEIGHT:Number = 400;
//速度
私var _hspeed:數字;
私有var _ v speed:Number;
//方向猥褻兒童
私有var _ dir:int;
private var _ live:Boolean;
私有var _ tmpY:Number;
//是否停止運動的布爾值。
public var可擦除:Boolean
//靜態變量
靜態公共var得分:Number = 100;
公共函數Duck()
{
//在第壹幀停止播放頭。
this . gotoandstop(1);
//初始化變量值dir = 1;
dir = 1;
//將live賦值為true
this.live = true
//註冊幀速率事件
addEventListener(事件。ENTER_FRAME,fly);
}
//幀率事件執行功能
公共函數飛行(e:事件):無效
{
//下面的條件語句是判斷dir的值是1還是-1,在舞臺中心左側是1,右側是-1;這通常用於控制方向。
如果(this.x & lt寬度/ 2)
{
dir = 1;
}
如果(this.x & gt寬度- this.width / 2)
{
dir =-1;
}
//這個原理近似於上面所說的。
如果(this.y & lt- this.height / 2)
{
this.erasable = true
//刪除幀率事件。
this.removeEventListener(事件。ENTER_FRAME,fly);
}
//讓對象移動,方向由dir控制。
this . x+= dir * h speed;
this . y+= v speed;
}
公共函數die(e:Event):void
{
this . gotoandstop(2);
//讓對象旋轉,旋轉的方向由dir控制。
this . rotation+= dir *(this . y-this。_ tmpY)/10;
//這是控件Y坐標,但實際上這是壹個緩沖運動。
this.y += ((this.y - this。_ tmpY)-v speed)/10;
if(hspeed & gt;0)
{
h speed-= h speed/10;
}
//控制移動
this . x+= hspeed * dir;
如果(this.y & gt高度)
{
this.erasable = true
}
}
//這是靜態方法,屬於類方法,不是實例。它有四個參數。
靜態公共函數buildDuck(startX:Number,startY:Number,hspd:Number,vspd:Number):Duck
{
//這個靜態方法類似於克隆的功能,但又不同於克隆。就是生成壹個新的Duck對象,設置x,y,hspeed,vspeed的屬性值。
var duck:Duck =新鴨();
duck.x = startX
duck.y = startY
duck.hspeed = hspd
duck . v speed = vspd;
回鴨;
}
//設置屬性hspeed的值。
公共函數集hspeed(值:數字):void
{
_ hspeed = value
}
//獲取屬性hspeed的值。
公共函數get hspeed():Number
{
return _ hspeed
}
//設置屬性vspeed的值。
公共函數集vspeed(值:數字):void
{
_ vspeed = value
}
//獲取屬性vspeed的值。
公共函數get vspeed():Number
{
return _ vspeed
}
//設置dir屬性的值。
公共函數集dir(value:int):void
{
_ dir = value
this . scalex = _ dir *-1;
}
//獲取dir屬性的值。
公共函數get dir():int
{
return _ directory;
}
//外部live接口,是設置live的屬性值。
公共函數集live(值:布爾值):void
{
_ live = value
if (_live == false)
{
//在這裏給_tmpY賦值。是當前對象的y坐標。默認情況下,不分配該值,僅當_vive=false時才分配該值。
這個。_ tmpY = this.y
//註冊幀速率事件
this.removeEventListener(事件。ENTER_FRAME,fly);
//註冊幀速率事件
this.addEventListener(事件。ENTER_FRAME,die);
}
}
//live外部屬性接口。這就是live的價值。
公共函數get live():布爾值
{
返回_直播;
}
}
}