Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Конфликт прелоадера и # -тега в адресной строке (http://www.flasher.ru/forum/showthread.php?t=175034)

Vasya Pupkin 08.02.2012 13:34

Конфликт прелоадера и # -тега в адресной строке
 
Здравствуйте. Такая вот проблема. Сделал прелоадер на AS3.
При просмотре ролика(в момент загрузки), когда адресная строка не имеет в конце # например: example.ru прелоадер работает (видна анимация). Если в конце адресной строки поставить # например: example.ru# или example.ru#foto или example.ru/test.html#foto прелоадер не работает. При перезагрузке кэш чищу.

Ролик компилирую в FP 9.
В actionscrip settings в поле Preloader methot выбрал "Custom preloader loop".
В первом кадре находится символ, который привязан к классу MyPreloader (см. ниже ). Кадр весит 70Kb.
Во втором кадре находится Bitmap и stop(); кадр весит 4МB
Код класса прелоадера:
Код AS3:

package  {
        import flash.display.MovieClip;
        import flash.display.LoaderInfo;
        import flash.display.DisplayObject;
        import flash.events.Event;
        import flash.events.ProgressEvent;
        import flash.events.IOErrorEvent;
        import flash.errors.IOError;
        import flash.display.DisplayObjectContainer;
        import flash.text.TextField;
 
        public class MyPreloader extends MovieClip{
                protected var _loaderinfoobj:LoaderInfo;
                protected var _displayobjparent:DisplayObjectContainer;
                protected var _progress:Boolean=false;
                protected var _x_:*=null;
                protected var _y_:*=null;
                public var txt:TextField;
                public function MyPreloader(loaderinfo:*=null,displayObjParent:Object=null,xx:*=null,yy:*=null,progres:Boolean=true) {
                        // constructor code
                        trace("SubaruPreloader создан");
                        if(loaderinfo!=null){
                                _loaderinfoobj=loaderinfo as LoaderInfo;
                        }
                        _x_=xx;
                        _y_=yy;
                        _progress=progres;
                        this.addEventListener(Event.ADDED_TO_STAGE,_onAddedToStage);
                        if(displayObjParent!=null){
                                _displayobjparent=(displayObjParent as DisplayObjectContainer);
                                trace("SubaruPreloader ",_displayobjparent);
                                _displayobjparent.addChild(this);
                        }
 
 
                }
                protected function _onIOErrore(e:IOErrorEvent):void{
                        e.currentTarget.removeEventListener(IOErrorEvent.IO_ERROR,_onIOErrore);
                        e.currentTarget.removeEventListener(Event.COMPLETE,_onComplete);
                        end();
                }
                protected function _onComplete(e:Event):void{
                        e.currentTarget.removeEventListener(Event.COMPLETE,_onComplete);
                        e.currentTarget.removeEventListener(IOErrorEvent.IO_ERROR,_onIOErrore);
                        end();
                }
                protected function _onProgress(e:ProgressEvent):void{
                        trace("progress", e.bytesLoaded+" / "+e.bytesTotal)
                        txt.text=String(Math.floor(100*e.bytesLoaded/e.bytesTotal));
                        if(e.bytesLoaded/e.bytesTotal>=1){
                                e.currentTarget.removeEventListener(IOErrorEvent.IO_ERROR,_onIOErrore);
                                e.currentTarget.removeEventListener(ProgressEvent.PROGRESS,_onProgress);
                        }
                }
                protected function _onAddedToStage(e:Event):void{
                        trace("SubaruPreloader  присоединен к stage");
                        txt.visible=_progress;
                        _displayobjparent=(_displayobjparent==null)?this.parent:_displayobjparent;
                        if(_x_!=null){
                                x=Number(_x_);
                        }
                        if(_y_!=null){
                                y=Number(_y_);
                        }
 
                        e.currentTarget.removeEventListener(Event.ADDED_TO_STAGE,_onAddedToStage);
 
                        if(_loaderinfoobj!=null){
                                if(_progress){
                                        trace("_loaderinfoobj.addEventListener(ProgressEvent.PROGRESS,_onProgress);")
                                        trace("_loaderinfoobj =",_loaderinfoobj)
                                        _loaderinfoobj.addEventListener(ProgressEvent.PROGRESS,_onProgress);
                                }
                                _loaderinfoobj.addEventListener(Event.COMPLETE,_onComplete);
                                _loaderinfoobj.addEventListener(IOErrorEvent.IO_ERROR,_onIOErrore);
                        }else{
                                if(loaderInfo.bytesLoaded/loaderInfo.bytesTotal<1){
                                        _loaderinfoobj=loaderInfo;
                                        _loaderinfoobj.addEventListener(Event.COMPLETE,_onComplete);
                                        _loaderinfoobj.addEventListener(IOErrorEvent.IO_ERROR,_onIOErrore);
                                        if(_progress){
                                                trace("stage.loaderInfo.addEventListener(ProgressEvent.PROGRESS,_onProgress);");
                                                trace("_loaderinfoobj =",_loaderinfoobj)
                                                _loaderinfoobj.addEventListener(ProgressEvent.PROGRESS,_onProgress);
                                        }
                                }
                        }
                }
                public function end():void{
                        stop();
                        die();
                }
                public function die(e:Event=null):void{
                        trace("MyPreloader  удален со stage");
                        try{if(e!=null){e.currentTarget.removeEventListener(e.type,die)}}catch(r:Error){}
                        try{_loaderinfoobj.removeEventListener(Event.COMPLETE,_onComplete);}catch(r:Error){}
                        try{_loaderinfoobj.removeEventListener(IOErrorEvent.IO_ERROR,_onIOErrore);}catch(r:Error){}
                        try{_loaderinfoobj.removeEventListener(ProgressEvent.PROGRESS,_onProgress);}catch(r:Error){}
                        stop();
                        if(this.parent!=null){this.parent.removeChild(this)}
                }
 
        }
 
}

Добавлено через 3 часа 3 минуты
Людииии! Откликнитееееесь!


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

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