События Complete / Progress не запускаются для управления изображениями со встроенным контентом - PullRequest
1 голос
/ 24 марта 2009

У меня есть следующий тег MXML:

<mx:Image id="image" width="100%" height="100%" 
              source="@Embed('../assets/Test.swf')" 
              complete="completeHandler(event)" 
              progress="progressHandler(event)"/>

Но по какой-то причине мои функции completeHandler / progressHandler не вызываются. Причина, по которой мне нужно завершить событие, заключается в том, что я хочу манипулировать растровыми данными после загрузки изображения. В creationComplete данные растрового изображения по-прежнему нулевые. Почему не проходят эти события?

Изменить: Актив правильно отображается в моем приложении - поэтому я знаю, что актив находится в правильном месте (в любом случае, встраивание гарантирует, что во время компиляции).

Ответы [ 4 ]

0 голосов
/ 16 июня 2014

Это, кажется, ожидаемое поведение здесь!

Из документации:

Событие хода выполнения не гарантируется. Полное событие может быть получено без отправки каких-либо событий прогресса. Это может произойти, когда загруженный контент является локальным файлом.

Так что я думаю, что эта часть может объяснить, почему в вашем примере не отслеживаются события прогресса.

Отправляется после завершения загрузки контента. В отличие от события complete, это событие отправляется для всех типов источников. Обратите внимание, что для контента, загружаемого через Loader, отправляются как готовые, так и полные события. Для других типов источников, таких как встраивания, отправляется только готовое.

В нем четко сказано, что вы должны прислушиваться к ГОТОВЫМ событиям, а не ЗАВЕРШИТЬ при работе со встроенными источниками;)

0 голосов
/ 25 марта 2009

Если вы используете встроенный ресурс, свойства ширины / высоты сразу доступны для исходного объекта:

var mySource:Object = new embeddedClass();
m_myWidth = mySource.width;
m_myHeight = mySource.height;
m_image = new Image();
m_image.source = mySource;

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

0 голосов
/ 21 августа 2009

Итак, вам просто нужно добавить прослушиватель Event.COMPLETE непосредственно в loader.contentLoaderInfo, а не в загрузчик. Я не могу поверить, что это не в его документах.

0 голосов
/ 24 марта 2009

Проверьте ваш путь активов. Скорее всего, swf находится не по правильному пути или не копируется в папку assets в каталоге debug-build / release-build.

...