2011-09-23 144 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); 
}