Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Проблема с Loader (http://www.flasher.ru/forum/showthread.php?t=150307)

Idon 09.02.2011 17:38

Проблема с Loader
 
Добрый день,

в папке лежит 3 файла:
preloader.swf,
game.swf,
banner.swf


Есть preloader.swf, который загружает game.swf и добавляет его на сцену.

Здесь всё ок. Всё загружается и работает.
Дальше,
Скажем, в game.swf есть на сцене два спрайта: gameContent и bannerContainer

В какой-то момент(например, по кнопке) game.swf должен загрузить banner.swf и добавить его в bannerContainer. Для этого в одном из методов game.swf... короче, вот он:

Код AS3:

                private function loadBanner(url:String):void {
                        var lr:Loader = new Loader();
                        var complete:Function = function(e:Event):void {
                                log.msg("loading banner complete");
                                lr.contentLoaderInfo.removeEventListener(Event.COMPLETE, complete);
                                lr.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, ioerr);
                                lr.contentLoaderInfo.removeEventListener(IOErrorEvent.NETWORK_ERROR, ioerr);
                                bannerContainer.addChild(lr);
                        }
                        var ioerr:Function = function(e:IOErrorEvent):void {
                                lr.contentLoaderInfo.removeEventListener(Event.COMPLETE, complete);
                                lr.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, ioerr)
                                lr.contentLoaderInfo.removeEventListener(IOErrorEvent.NETWORK_ERROR, ioerr)
                                log.msg("IOError loading Banner: "+e);
                        }                       
 
                        lr.contentLoaderInfo.addEventListener(Event.COMPLETE, complete);
                        lr.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioerr)
                        lr.contentLoaderInfo.addEventListener(IOErrorEvent.NETWORK_ERROR, ioerr)
                        var req:URLRequest = new URLRequest("banner.swf");
                        try {
                                lr.load(req);
                        } catch (err:Error) { log.msg("Error loading banner: "+err); }                       
                }

Вот тут начинается что-то странное. В bannerContainer добавляется еще один game.swf...

Причём, в IDE всё ок.
Но в инете происходит такой вот косяк. Уже голову сломал. Ошибки секурности не бросаются.
Все swf имеют одинаковый fps, если что.

gloomyBrain 09.02.2011 17:44

Код AS3:

try {
        lr.load(req);
} catch (err:Error) { log.msg("Error loading banner: "+err); }

Это бессмысленная конструкция, т.к. метод load никогда не выбросит исключение

По поводу загрузки одного в другое - попробуйте дать документ-классам всех swf-файлов разные названия

Цитата:

Все swf имеют одинаковый fps, если что.
Всем загруженным swf-кам выставляется fps корневой флешки (то есть той, которая в себя грузит все остальные)

Idon 09.02.2011 17:52

gloomyBrain, спасибо! Разные имена документ-классов решили проблему

mikhailk 09.02.2011 18:09

можно было грузить внешние флешки в разные домены

gloomyBrain 09.02.2011 18:39

Это явно выходит за рамки приведенного выше кода =)


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

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