更改影片剪辑
问题描述:
我这样做:更改影片剪辑
[Embed(source = "../lib/hfront.swf")]
private var charfront1Class : Class;
private var charfront1:MovieClip = new charfront1Class;
为了创造的FlashDevelop MovieClip对象。因为没有选择(如在CS5中)给内部对象一个固有的类。
我需要做的是能够在我的角色走过时切换显示哪个影片剪辑。我是否必须为每个动画片段创建一个单独的类并将它们调入和调出?还是有更好的方法,“切换”我当前班级指向哪个电影片段的方法?
谢谢
答
首先,嵌入是不正确的。如果您嵌入整个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);
}