gotoAndStop (label) завершается с ошибкой 2109 - PullRequest
1 голос
/ 11 ноября 2011

У меня есть два фрагмента ролика:

mov1 has frames with labels in such sequence ("item"," btn", "win", "loose")
mov2 has frames with labels in such sequence (" ", "item", "win", "loose")

Это два стандартных фрагмента ролика, управляемых одним классом MovItem.В конструкторе MovItem я инициирую:

public function MovItem(item_mc:MovieClip )
        {
            this.item_mc.addEventListener( MouseEvent.CLICK, dispatchEvent );

            //this.item_mc.gotoAndStop('btn');
            this.item_mc.gotoAndStop(1);        
        }

В веб-версии все работает правильно, но в AIR 2.6 для Android происходит сбой с ошибкой:

Error #2109: Frame label btw not found.

на gotoAndStop('btn'); на элементе, которыйУ меня нет такого ярлыка.

И когда я gotoAndStop(1); на этом предмете, все работает отлично.Все должно быть замечательно, но метка 'btw' на втором мувиклипе расположена на втором кадре.

Как я могу легко это исправить без полной переделки ресурсов .fla?Почему он работает в веб-приложении, но в AIR не работает?Спасибо за ваше время.

1 Ответ

2 голосов
/ 11 ноября 2011

На самом деле это происходит как в веб-версии, так и в версии AIR, поскольку mov2 не имеет фрейма с именем btn.

В веб-версии вы получите предупреждение компилятора, но вместо выхода из приложения он просто игнорирует gotoAndStop(). Однако при компиляции в AIR компилятор находится в строгом режиме, который преобразует предупреждения компилятора в ошибки и не позволяет компилировать, пока они не будут исправлены.

В любом случае, плохая практика - вызывать функцию, которая, как вы знаете, ошибочна (особенно в методе конструктора), поэтому вы должны передать кадр конструктору в качестве параметра (если они идут на разные номера фреймов) или явно указать это номер кадра, например gotoAndStop(2) (если все они идут с одинаковым номером кадра).

Также убедитесь, что вы не ошиблись в кадре, так как в вашем вопросе вы указали btn и btw.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...