在FlashDevelop(或其他没有图形的IDE)中更改动画片段

时间:2011-09-23 18:23:04

标签: actionscript-3 ide flashdevelop

我这样做:

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

为了在FlashDevelop中创建一个movieclip对象。因为没有选项(如在CS5中)可以为库对象提供一个固有的类。

我需要做的是能够在我的角色走动时切换正在显示的影片剪辑。我是否必须为每个动画片段创建一个单独的类,并将其调用进出可见性?或者有更好的方法,一种“切换”我当前班级指向哪个影片剪辑的方法?

由于

1 个答案:

答案 0 :(得分:1)

首先嵌入不正确。如果您嵌入了整个SWF,那么您将无法控制其时间轴。

要拥有一个可以操作的MovieClip,必须嵌入此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个嵌入式动画的(天真)示例(作为扩展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);
}