我有这个非常简单的ImageLoader类:
package
{
//
import flash.display.MovieClip;
import flash.events.Event;
import flash.events.ProgressEvent;
import flash.net.URLRequest;
import flash.display.Loader;
//
public class ImageLoader extends MovieClip
{
var imageLoader:Loader;
public function ImageLoader(img:String)
{
loadAsset(img);
}
//
function loadAsset(url:String):void
{
//warning here
preloader.visible = true;
imageLoader = new Loader();
imageLoader.load(new URLRequest(url));
imageLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, imageLoading);
imageLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, imageLoaded);
}
//;
function imageLoaded(evt:Event):void
{
//warning here
imageLoaderClip.addChild(imageLoader);
preloader.visible = false;
}
//
function imageLoading(evt:ProgressEvent):void
{
var loaded:Number = evt.bytesLoaded / evt.bytesTotal;
updateProgress(loaded);
}
//
function updateProgress(value:Number)
{
preloader.progress.width = value * preloader.bar.width;
}
}
}
如果这是DocumentClass,这项工作非常完美。 但是,如果DocumentClass就像这样:
package {
import flash.display.MovieClip;
public class LoadTest extends MovieClip {
public function LoadTest() {
var img = new ImageLoader("DSC04550.JPG");
}
}
}
由于舞台动画片段“preloader”和“imageLoaderClip”的存在,这不再起作用了。
哪种方法可以让事情发挥作用?我想将ImageLoader类的引用作为参数传递。在处理像这样的情况时,还有其他(更好的)方法吗?