0

我正在尝试通过以下方式添加框架脚本:

private function addFrameScript(mc:MovieClip, label:String, func:Function, arg:*):void {
    var labels:Array = mc.currentLabels;
    var i:int = labels.length;

    while (--i > -1) {
        if (FrameLabel(labels[i]).name == label) {
            mc.addFrameScript(FrameLabel(labels[i]).frame-1, func(arg));
            return;
        }
    }



    trace("WARNING: The label '" + label + "' does not exist in the MovieClip '" + mc.name + "'");
}

private function dispatchFrameEvent(labelName:String):void {
    dispatchEvent(new Event(labelName, true));
}

addFrameScript(instanceName, "end", dispatchFrameEvent, "end");

但它似乎没有添加,我不知道为什么。通常我会将 Frame 脚本添加到主时间轴,但不会添加到时间轴上的实例(如上例所示)。

显然我缺少一些东西......有没有办法追踪我的框架脚本以查看它是否被添加?

4

1 回答 1

1

这里的问题是添加的 addFrameScript 函数没有参数。所以无论你传入什么 func 必须返回一个没有参数的函数

所以你的 dispatchFrameEvent 应该是这样的

private function dispatchFrameEvent(labelName:String):Function {
   return function func():void{
     dispatchEvent(new Event(labelName, true));
   }
}
于 2012-07-26T18:08:49.710 回答