Событие Flex SWFLoader.COMPLETE не запускается

При попытке загрузить растровое изображение в SWFLoader событие Event.COMPLETE не запускается.

mySWFLoader.source = new Bitmap(Bitmap(someEvent.content).bitmapData);

но если я использую URL-адрес в качестве источника, запускается полное событие:

mySWFLoader.source = "http://example.com/123.jpg";

Есть ли какое-то ограничение при использовании Bitmap в качестве источника?


person Yeti    schedule 31.08.2009    source источник


Ответы (2)


Я считаю, что если вы используете данные, которые уже существуют в памяти (что будет с вашим растровым изображением), то операция загрузки не произойдет. Его можно использовать сразу после строительства. Я знаю, что прикрепление фильмов в AS2 работало именно так. Если бы он был частью библиотеки, вы могли бы использовать его сразу, и никаких событий загрузки не произошло бы.

person Herms    schedule 31.08.2009
comment
Спасибо за эту информацию. Но что, если я хочу инициировать событие после установки для него растрового изображения? Есть ли простой способ сделать это? - person Yeti; 31.08.2009
comment
dispatchEvent() является общедоступным методом, поэтому вы можете просто создать событие и вызвать с ним mySWFLoader.dispatchEvent(). - person Herms; 31.08.2009
comment
Вы также можете написать простое расширение SWFLoader, которое обертывает установщик исходного кода и вызывает какое-то пользовательское событие, но я не уверен, насколько легко было бы сказать в установщике, будет ли установленный исходный код готов немедленно. - person Herms; 31.08.2009
comment
Это звучит как хорошая идея. Можно проверить тип данных источника и, если это растровое изображение, запустить событие COMPLETE. Я создал и использую подкласс SWFLoader, который автоматически включает сглаживание после загрузки изображения. Думаю, я тоже добавлю эту функцию. Спасибо за подсказку! - person Yeti; 31.08.2009

Использовать

mySWFLoader.addEventListener(Event.ADDED,handleSwfLoadComplete);

Он срабатывает, когда контент фактически создается и добавляется в список отображения.

Я столкнулся с той же проблемой. Проблема в том, что когда вы используете Bitmap or Class в качестве источника, содержимое заполняется только после создания экземпляра Bitmap or class.

Это происходит в swfLoader.loadContent, который в конечном итоге добавляет вновь созданный контент в displayList в качестве дочернего элемента загрузчика и, в конечном итоге, отправляет событие ADDED.

person Ilan Avigdor    schedule 09.01.2017