У меня очень странная проблема с простым тестом, который я пытаюсь сделать в AS3.AS3: действия внутри динамически добавленного видеоклипа не работают
У меня есть две функции на моем первом кадре:
function function1():void {
trace ('function1 executed');
mc.gotoAndStop (2);
function2();
}
function function2():void {
trace ('function2 executed');
var test_mc:test_lib = new test_lib();
addChild (test_mc);
}
Как вы можете видеть, function1 изменяет рамку на «МК», а также называет function2, который добавляет клип ребенок фильм из библиотеки на стадии ,
Function1 вызывается внутри другого простого мувика, на 60-й кадр, например, так:
Object(parent).function1();
Этот ребенок клип, который добавляется, это просто черный квадрат с действием следа на его первый кадр ,
Действие трассировки должно работать, как только ребенок добавляется, но это не так. Однако, если я удаляю или комментирую строку mc.gotoAndStop(2)
, действие трассировки работает нормально. Он также работает, если я положил mc.gotoAndStop(2)
ПОСЛЕ того, как я вызываю функцию2.
Я не понимаю, почему это происходит.
Это произошло в более крупном проекте, в котором я работал, поэтому я решил изолировать проблему в новом файле и создать пример выше. Это очень странно.
Я не знаю, почему это не работает, но я знаю, как это исправить. Вызов 'function2' с задержкой (например, 1 мс). 'setTimeout (function2, 1);' Он работает! – subdan
Странно, да? Как я уже сказал, он работает, если я просто позвоню mc.gotoAndStop (2) ПОСЛЕ функции2(); Я просто хотел знать, почему это происходит. Кажется, это ошибка. – DanielFox