Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Внешний прелоадер и обращение к stage (http://www.flasher.ru/forum/showthread.php?t=175316)

zmeevolk 14.02.2012 18:24

Внешний прелоадер и обращение к stage
 
Здравствуйте,

Есть внешний прелоадер:
Код AS3:

package {
        import flash.display.MovieClip;
        import flash.net.URLLoader;
        import flash.net.URLRequest;
        import flash.events.Event;
        import flash.events.ProgressEvent;
        import flash.display.Loader;
 
        public class MainPreloader extends MovieClip {
                private var _preloader:Preloader;
                private var _loader:Loader;
                private var _myMovie:MovieClip;
 
                public function MainPreloader():void {
                        addPreloader();
                        addLoader();
                }
                private function addPreloader():void {
                        _preloader = new Preloader();
                        _preloader.x = stage.stageWidth/2;
                        _preloader.y = stage.stage.stageHeight/2;
                        addChild(_preloader);
                        _preloader.gotoAndStop(1);
                }
                private function addLoader():void {
                        var url:URLRequest = new URLRequest('myswf.swf');
                        _loader = new Loader();
                        _loader.load(url);                       
                        _loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, progressLstnr);
                        _loader.contentLoaderInfo.addEventListener(Event.INIT, onCompleteLstnr);
                }
                private function onCompleteLstnr(e:Event):void {
                        trace("DONE!!!");
                        _preloader.percent_txt = null;
                        removeChild(_preloader);
                        _myMovie = MovieClip(_loader.content)
                        addChild(_myMovie);
 
                }
                private function progressLstnr(e:ProgressEvent):void {
                        var percent:Number = e.bytesLoaded/e.bytesTotal;
                        _preloader.percent_txt.text = Math.ceil(percent * 100).toString() + " %";
                        _preloader.gotoAndStop(Math.ceil(percent * 100))
                }
        }
}

Если загружаемый файл обращается к стейдж, выдает ошибку. Например:
Код AS1/AS2:

stage.stageWidth

не работает, но если задать ширину вручную - все гуд. Что делать, если есть только скомпиленая swf, которая должна подгружатся?

КорДум 14.02.2012 18:27

Event.ADD_TO_STAGE в подгружаемой нужно слушать.

MikroAcse 14.02.2012 18:45

Код AS3:

addEventListener(Event.ADDED_TO_STAGE,startFunctions)
function startFunctions(e:Event){
stage.stageWidth
}

Более подробно.
Сам с таким сталкивался.

Цитата:

Что делать, если есть только скомпиленая swf, которая должна подгружатся?
Если у тебя нет .fla, то ничего.

zmeevolk 14.02.2012 18:57

Так в том-то и все дело что .фла нету, а свф-ок таких, к которым нужно приделать прелоадер довольно много. Неужели ничего нельзя сделать?

Добавлено через 36 секунд
Не могу ничего слушать в подгружаемой, нет исходников

MikroAcse 14.02.2012 19:31

Цитата:

Неужели ничего нельзя сделать?
Нельзя.
Это была бы дыра в безопасности.

zmeevolk 14.02.2012 19:58

Цитата:

Сообщение от MikroAcse (Сообщение 1062833)
Нельзя.
Это была бы дыра в безопасности.

Как же быть?

MikroAcse 14.02.2012 20:05

Цитата:

Неужели ничего нельзя сделать?
Цитата:

Как же быть?
Это одинаковые вопросы.

Ответ:
Ничего нельзя поделать.

zmeevolk 14.02.2012 20:35

Цитата:

Сообщение от MikroAcse (Сообщение 1062836)
Это одинаковые вопросы.

Ответ:
Ничего нельзя поделать.

Meгапечально

Nooob 14.02.2012 22:17

делать addChild _loadera не после загрузки, а до. (только если код подгружаемой был в кадрах)

dimarik 15.02.2012 12:44

Можно пропатчить байткод налету.


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

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