我这样做:
[Embed(source = "../lib/hfront.swf")]
private var charfront1Class : Class;
private var charfront1:MovieClip = new charfront1Class;
为了在FlashDevelop中创建一个movieclip对象。因为没有选项(如在CS5中)可以为库对象提供一个固有的类。
我需要做的是能够在我的角色走动时切换正在显示的影片剪辑。我是否必须为每个动画片段创建一个单独的类,并将其调用进出可见性?或者有更好的方法,一种“切换”我当前班级指向哪个影片剪辑的方法?
由于
答案 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);
}