Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   загрузка swf с помощью URLLoader (http://www.flasher.ru/forum/showthread.php?t=191939)

iflamberg 08.01.2013 14:47

загрузка swf с помощью URLLoader
 
Вот, скажем, с помощью URLLoader у меня загружается множество разных материалов. В том чесле несколько swf. И хочу я этот swf на сцене отобразить. Как мне это сделать?

вроде должен быть код, похожий на этот, но не выходит =/
Код AS3:

...
var loader:URLLoader = new URLLoader (new URLRequest("1.swf"));
loader.addEventListener (Event.COMPLETE, loadCompleteHandler);
...
 
                private function loadCompleteHandler (e:Event):void {
                        var loader:URLLoader = e.target as URLLoader;
                        loader.dataFormat = URLLoaderDataFormat.BINARY;
                        var l:Loader = new Loader();
                        l.loadBytes(loader.data);
}


strangedk 08.01.2013 15:08

Нужно подписываться на событие до того как оно может возникнуть:

Код AS3:

var request:URLRequest = new URLRequest("1.swf");
var loader:URLLoader = new URLLoader ();
loader.addEventListener (Event.COMPLETE, loadCompleteHandler);
 
loader.load(request);

И кстати, а почему бы вам не грузить сразу Loader'ом, без бубнов?

gloomyBrain 08.01.2013 15:12

Цитата:

вроде должен быть код, похожий на этот, но не выходит =/
А какой код есть и что именно не выходит? И кстати, убедитесь в наличии addChild(loader),так тоже бывает =)

iflamberg 08.01.2013 15:32

2strangedk:
Что-то ты не то говоришь. Событие всегда возникает в следующем кадре, даже если грузить из локальной файловой системы, это 100%. Код всегда отработает, где бы ты не вешал слушатель, до запуска загрузки или после. В том коде, что у меня в примере, если сделать trace (loader.data); в loadCompleteHandler, то увидишь данные.
Почему бы не грузить сразу Loader'ом? Ну не знаю. Я хотел сделать что-то типа универсального загрузчика, что-то аналогичное либе BulkLoader, но свое. Грузить все подряд URLLoader'ом, а потом уже преобразовывать показалось годной идеей.
2gloomyBrain:
вот такой код, что в примере и есть. А ошибка возникает на l.loadBytes(ba); А addChild мне и не нужен. Потому что из загруженной флешки я планирую взять отдельные именованные мувики и перенести их на сцену. И, да, это работает, если заменить URLLoader обычным Loader'ом.

strangedk 08.01.2013 15:55

Цитата:

Сообщение от iflamberg (Сообщение 1114261)
2strangedk:
Что-то ты не то говоришь. Событие всегда возникает в следующем кадре, даже если грузить из локальной файловой системы, это 100%. Код всегда отработает, где бы ты не вешал слушатель, до запуска загрузки или после.

А, так. Ну ок, удачной отладки :)

alatar 08.01.2013 16:05

Цитата:

Сообщение от iflamberg (Сообщение 1114261)
А ошибка возникает на l.loadBytes(ba);

Номер и описание ошибки предлагаете устанавливать телепатически?

iflamberg 08.01.2013 17:46

О, код ошибки. Извеняюсь. Просто подумал, что, раз некоторые гуру вроде _etc, умеют выкусывать из загруженной флешки шрифты или программно создавать MovieClip с несколькими кадрами, то моя ошибка для них должна быть очевидна.
А там "дурная" ошибка.
Цитата:

[Fault] exception, information=TypeError: Error #1034: Ошибка типа Coercion: невозможно преобразовать "CWSèçxœäœX“Y·¨W¡„" ¡ H‚tP@tB/‚BHè ½IS:¨ÄÐDŠF,€JUDQDTtÄ2:ãÝÁ™¿ÜSîï9÷œÿ¹÷yæ}&|ÙßþÖ^{*µ×úöŽI€Û°¦@ÂðãZ!€ÉÞÀ`c²…•\RdDT¬1úk«Bh\\Œ±–Vbb¢f¢žfôÞ-###-m]-]]
ÔB#69*Î/I#*VQa›ÜjA±{Ãb⢣äØûùGÇÇmUPø£ۤȘ¿t«éí¤©•䣥£©*Åî526ßä½—±͔ÝJÎ*Â/6TÎqotpPl,êÞ/BÎÜy“œ†œ|*
---прикоцано позже---
А, понял. Нужно было всего лишь
Код AS3:

                        var l:Loader = new Loader();
                        l.loadBytes(loader.data);

исправить чуть-чуть
Код AS3:

                        var l:Loader = new Loader();
                        l.loadBytes(ByteArray(loader.data));


alatar 08.01.2013 17:58

Умение программно создавать MovieClip и получение информации из graphics не предполагают наличие телепатических способностей.

caseyryan 08.01.2013 18:58

А так сработает?
Код AS3:

var loader:URLLoader = new URLLoader ();
loader.dataFormat = URLLoaderDataFormat.BINARY;
loader.addEventListener (Event.COMPLETE, loadCompleteHandler);
loader.load(new URLRequest("1.swf"));
 
function loadCompleteHandler (e:Event):void {
        var loader:URLLoader = e.target as URLLoader;
        var l:Loader = new Loader();
        l.loadBytes(loader.data as ByteArray);
}


GoodWin74 08.01.2013 22:05

По теме Loader подскажите, пожалуйста. Загрузил SWF с 3 кадрами с помощью Loader и добавил на сцену. Как управлять кадрами(остановка, переход на какой то кадр и тд)?
Пробовал Loader.content.gotoAndStop(0) не получается ...


Часовой пояс GMT +4, время: 02:00.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.