2011-09-23 145 views
0

我這樣做:更改影片剪輯

[Embed(source = "../lib/hfront.swf")] 
    private var charfront1Class : Class; 
    private var charfront1:MovieClip = new charfront1Class; 

爲了創造的FlashDevelop MovieClip對象。因爲沒有選擇(如在CS5中)給內部對象一個固有的類。

我需要做的是能夠在我的角色走過時切換顯示哪個影片剪輯。我是否必須爲每個動畫片段創建一個單獨的類並將它們調入和調出?還是有更好的方法,「切換」我當前班級指向哪個電影片段的方法?

謝謝

回答

1

首先,嵌入是不正確的。如果您嵌入整個SWF,那麼您將無法控制其時間軸。

爲了有一個影片剪輯,你可以操縱你必須嵌入該SWF的象徵:

[Embed(source = "../lib/hfront.swf", symbol="walk")] 
private var walkClass : Class; 
private var walk:MovieClip = new walkClass; 

[Embed(source = "../lib/hfront.swf", symbol="run")] 
private var runClass : Class; 
private var run:MovieClip = new runClass; 

其次,確定你確實調用stop()爲每個動畫或者它們將運行(與消耗的CPU)即使他們不在顯示列表中。

最後這裏示出2個嵌入anims(如延伸的Sprite一類的兒童)的(幼稚)例如:

// current anim 
private var current:MovieClip; 

// showAnim("run") or showAnim("walk") 
public function showAnim(anim:String):void { 
    if (current) { current.stop(); removeChild(current); } 
    current = this[anim]; 
    addChild(current); 
    current.gotoAndPlay(1); 
}