2012-06-29 2 views
0

Я пытаюсь добавить сценарий кадров через:Проблемы с addFrameScript на примере

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 к основной временной шкале, но не к экземпляру на временной шкале (как в примере выше).

Очевидно, есть кое-что, что мне не хватает ... есть ли способ проследить мой сценарий кадров, чтобы увидеть, добавляется ли он даже?

ответ

1

Проблема заключается в том, что добавляемые функции addFrameScript не принимают аргументов. поэтому все, что функ вы передаете в сусле должна возвращать функцию без аргументов

так что ваш dispatchFrameEvent должен выглядеть следующим образом

private function dispatchFrameEvent(labelName:String):Function { 
    return function func():void{ 
    dispatchEvent(new Event(labelName, true)); 
    } 
} 
Смежные вопросы