Flash отладчик ведет себя не так, как проигрыватель с AS3 и Events - PullRequest
0 голосов
/ 15 июня 2011

Почему это работает на отладчике flash professional, но приносит null на скомпилированном SWF?

var firstParameter:SomeObject = new SomeObject();
someLoader = new Loader();
someLoader.contentLoaderInfo.addEventListener(
    Event.COMPLETE
  , function(evt) {
      onLoaded(evt, firstParameter);
    }
  , false
);

function onLoaded (evt:Event, param:SomeObject):void {
    mcOnSceneForTracing.text = param; // this is used for SWF debugging
}

Для записи:

  • Чтобы все работало без проблемэто может быть «решено» путем создания отдельной области видимости .Однако здесь я задаюсь вопросом, почему тогда этот пример работает хотя бы на отладчике, по крайней мере.
  • И, пожалуйста, если у вас есть лучший способ, кроме использования двух анонимных функций для pass параметры, переменные, значения, что угодно через Событие, скажи !Я не желаю продлить Событие , хотя.Тоже 2005.
  • mcOnSceneForTracing - это то, что я использую для «трассировки» вне отладчика.Предложения также принимаются здесь для лучшего (и более простого) способа сделать это!Я слышал Vizzy это хорошо, но еще не пробовал.

1 Ответ

1 голос
/ 15 июня 2011

Я думаю, что при загрузке вашего ресурса из проигрывателя отладчика операция завершается мгновенно, и, таким образом, firstParameter доступно, когда вызывается ваша функция анонимного прослушивателя, но при запуске SWF в другом месте операция загрузки занимает больше времени,а затем ссылка на firstParameter теряется, поскольку это локальная переменная.

...