2011-09-08 54 views
0

我真的用這個拉我的頭髮。 Flash遊戲,容器swf使用加載器類加載img。動作Flash遊戲需要傳遞裝載機類對象到外部swf

圖像是將在關卡上使用的地圖。

im問題是我原來有每個級別加載地圖圖像,轉換爲位圖,我們它創建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); 

顯然上述不工作,但理想情況是我需要它的工作 任何人有任何想法?

真正需要它的映像加載後訪問Loader對象frmo子SWF

感謝

安德魯

回答

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); 
} 
+0

我最終將圖像添加到html,並允許閃存訪問緩存的圖像,但你是一個更好的解決方案,真正的問題,謝謝 – atmd