Preload extern swf results in weid behavior. It this normal?
Hello,
I tried to load an external swf file. In this swf file i have an embeded movie so that i see the preloader in action.
What happens is, that while preloading i hear the movie playing in the background.
So when the external swf is at for example 20% preloading the timeline is already playing in the external swf.
Isn't that weird?
I also noticed that the Event.INIT get's executed sooner for example at 17% progress. This should be at 100% is it not?
And in CS3 i get the error while previewing the bandwidth profiler:
Error #2044: Unhandled IOErrorEvent:. text=Error #2036: Load Never Completed.
Does anyone know what is going wrong?
Regards,
Chris
This is the code i use:
package {
import flash.display.LineScaleMode;
import flash.display.DisplayObject;
import flash.net.URLRequest;
import flash.display.Loader;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.ProgressEvent;
import flash.display.MovieClip;
/**
* @7111211 chris
*/
public class PreloadMain extends MovieClip {
private var _loaderSprite:Sprite;
private var _request : URLRequest;
private var _loader : Loader;
private var _myMovie:Sprite;
public function PreloadMain() {
addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(event:Event):void {
_request = new URLRequest("../swf/main.swf");
_loader = new Loader();
_loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, loadProgress, false, 0, true);
_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadingComplete, false, 0, true);
_loader.contentLoaderInfo.addEventListener(Event.INIT, loadInit)
_loader.load(_request);
drawLoader();
}
private function drawLoader():void {
trace("draw");
_loaderSprite = new Sprite();
_loaderSprite.graphics.lineStyle(1, 0x000000,1,false, LineScaleMode.NORMAL );
_loaderSprite.graphics.beginFill(0x0000FF, 1);
_loaderSprite.graphics.drawRect(0, 0, 150, 20);
_loaderSprite.graphics.endFill();
_loaderSprite.x = stage.stageWidth/2 -_loaderSprite.width/2 ;
_loaderSprite.y = stage.stageHeight/2 - _loaderSprite.height/2;
addChild(_loaderSprite);
}
function loadProgress(event:ProgressEvent):void
{
var percentLoaded:Number = event.bytesLoaded / event.bytesTotal;
percentLoaded = Math.round(percentLoaded * 100);
_loaderSprite.scaleX = percentLoaded/100;
trace("loaded " +String(uint(percentLoaded)) + "%" );
//this.percentLoaded.text = String(uint(percentLoaded)) + "%";
}
function loadingComplete(event:Event):void
{
removeChild(_loaderSprite);
_myMovie = Sprite(_loader.content);
addChild(_myMovie);
_loader.contentLoaderInfo.removeEventListener( ProgressEvent.PROGRESS, loadProgress);
_loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, loadingComplete);
_loader = null;
trace("Load Complete");
}
function loadInit(event:Event):void {
trace("load Init");
}
}
}