Здравствуйте. Такая вот проблема. Сделал прелоадер на 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 минуты
Людииии! Откликнитееееесь!