我真的用这个把头发拉了出来。 Flash游戏,容器swf使用loader类加载img。
图像是将在关卡上使用的地图。
我遇到的问题是我原来每个级别加载地图图像,转换为位图,然后我们创建x和y用于colision检测。
问题在于游戏正在加载,有时地图图像加载了。 它还指出每个级别都加载了相同的图像,如果上面发生在第3级,第4级,则非常烦人。
所以我需要一种方法来加载父级中的图像,但是它可供子级使用,但它必须在位图上可用才能工作。
这是我的代码
父母SWF:
(此代码在构造函数中)
var mImageLoader = new Loader();
var anImageURLRequest:URLRequest = new URLRequest('http://example.com/Level-map.png');
mImageLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
mImageLoader.load(anImageURLRequest);
然后在构造函数
之外加载子SWF儿童SWF:
map1 = Bitmap(mImageLoader.content);
bmd1 = map1.bitmapData;
addChild(map1);
显然上面的方法不起作用,但最理想的是我需要它如何工作 有人有任何想法吗?
真正需要在加载孩子swf
的图像后访问加载器对象由于
安德鲁
答案 0 :(得分:1)
如果父SWF具有对加载的子SWF的引用,则可以只设置子属性或调用子方法来传递位图。这就是我所说的:
// Child.as
public function setBitmap(value:Bitmap):void
{
addChild(value);
}
// Parent.as
public function Parent()
{
// load child
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadedChild);
loader.load('Child.swf');
}
private function loadedChild(event:Event):void
{
var loaderInfo:LoaderInfo = event.currentTarget as LoaderInfo;
loaderInfo.removeEventListener(Event.COMPLETE, loadedChild);
// 'bitmap' contains the reference to your Bitmap
var child:Child = loaderInfo.content as Child;
child.setBitmap(bitmap);
}