2013-07-08 2 views
0

я хочу, чтобы закрепить клипу скорость воспроизведения в два раза больше времени, вот кодкак манипулировать мувиклипом с вложенным мувиклипом внутри?

mc.addEventListener(Event.ENTER_FRAME,function(e:Event):void{ 
    mc.nextFrame(); 
}); 

это работает, если фильм клип был только один level.but с вложенным мувиклипом, он не может помочь. при вызове mc.stop(); вложенный ролик не будет останавливаться. Я отправляю различное событие, например, введите фрейм, EXIT FRAME, RENDER, чтобы их родительская надежда заставила их переместиться к следующему кадру, но вложенный клип просто не сдвинется.

подумал, что есть один способ, чтобы получить весь объект movieclip под этим мувиклипом, чтобы заставить их двигаться, но это не очень хороший выбор, так как я не могу предсказать, какой там код.

ответ

1

Вы можете использовать функцию следующим образом:

function callOnChildren(container:DisplayObjectContainer, method:String, args:Array = null):void 
{ 
    for(var i:int = 0; i < container.numChildren; i++) 
    { 
     var child:DisplayObject = container.getChildAt(i); 
     child[method].apply(child, args); 
    } 
} 

А затем вызвать nextFrame() на всех детей, например, так:

callOnChildren(mc, "nextFrame"); 

Другие методы работы тоже:

callOnChildren(mc, "gotoAndStop", [3]); 
+0

я упомянул это нехороший выбор. Хотя он может работать в некоторой ситуации. – user2003548

+0

надеется, что есть какой-то способ имитировать действие ввода кадра, не ожидая его вызова. – user2003548

+0

@ user2003548 Как вы ожидаете ссылки на детей, если вы не перебираете их? Даже в типичном сценарии у вас есть все элементы в списке типов и перебирайте их. – Marty

Смежные вопросы