2010-10-20 77 views
0

這是我的問題。我正在嘗試將[Loader對象]轉換爲MovieClip,但無法完成。請參閱代碼中的評論以查看我的問題。我想這樣做的原因是因爲我的代碼中有其他動畫片段,我喜歡能夠使用這些代碼而不是將代碼轉換爲與加載器對象一起使用。AS3 - 將裝載機轉換爲MOVIECLIP

謝謝。

var myLoader:Loader = new Loader(); 
    myLoader.load(new URLRequest("http://www.google.com/images/logos/ps_logo2.png"));/*load the image*/ 
    //addChild(myLoader); //Don't use this methoad. 
    /*REMOVE the comment above to see the google logo, and ADD comment the myMovieClip.addChild(myLoader) on line 13 
    trace("myLoader = " + myLoader); 
    /*CONVERTING THE LOADER INTO MOVIECLIP*/ 
    //Converting [object Loader] into MovieClip 
    var myMovieClip:MovieClip = new MovieClip(); 
    //Add the MovieClip to replace the Loader. 
    /*the code below doesn't work because you can't add a child to a 
    loader but this i'm not adding to the loader. I am adding to the 
    movieClip*/ 
    myMovieClip.addChild(myLoader); //this code doesn't work.******* THIS IS LINE 13********** 
    trace("LoadLogos = " + myMovieClip); 
stage.addEventListener(MouseEvent.MOUSE_DOWN, onMousePress); 
function onMousePress(evt:MouseEvent):void{ trace(evt.target); } 
+0

我已經添加了onMousePress,因此我們可以識別當前對象 – dngo 2010-10-20 17:19:23

回答

1

上面您的代碼應該可以正常工作,只是確保你添加myMovieClip到顯示列表中也是如此。

+0

您是如何做到這一點的? – dngo 2010-10-20 16:17:52

+0

addChild(myMovieClip); – 2010-10-20 17:05:48

0
 
var mc:MovieClip = new MovieClip(); 
var myLoader:Loader = new Loader(); 
myLoader.load(new URLRequest("http://www.google.com/images/logos/ps_logo2.png")); 
mc.addChild(myLoader); 
addChild(mc); 

您的裝載機可能不會立即顯示,因爲這將需要時間來加載其內容,以確保內容已被加載,你可以聽一個完整的事件

 
var mc:MovieClip = new MovieClip(); 
addChild(mc); 

var myLoader:Loader = new Loader(); 
myLoader.contentLoaderInfo.addEventListener(Event.COMPLETE , completeHandler); 
myLoader.load(new URLRequest("http://www.google.com/images/logos/ps_logo2.png")); 

function completeHandler(event:Event):void 
{ 
    mc.addChild(myLoader); 
} 
+0

我明白你的觀點,但事實並非如此。您的代碼不會將Loader對象轉換爲MovieClip對象。我測試了你的代碼,新的圖像仍然是Loader對象。 stage.addEventListener(MouseEvent.MOUSE_DOWN,onMousePress); function onMousePress(evt:MouseEvent):void { \t trace(evt.target); \t} – dngo 2010-10-20 17:15:13

+0

我找到了我的問題的答案。謝謝。 – dngo 2010-10-20 17:32:47

+0

您不需要將加載程序轉換爲MovieClip,只需將加載程序添加到MovieClip中,即可使用MovieClip方法爲圖像與應用程序進行交互。 Loader只是一個容器,一個加載圖像的工具,而MovieClip是另一個具有附加功能的容器。實際上,它甚至不必是一個MovieClip,您可以使用Sprite代替。 – PatrickS 2010-10-20 18:49:41

0
`(loader.content as MovieClip)` 
+0

-1,這是行不通的。加載的內容不是影片剪輯,只有當您加載SWF時,才能使用它,他正在加載PNG。 – 2010-10-21 02:33:37

+0

剛剛檢查:拋出TypeError:錯誤#2007如果PNG – www0z0k 2010-10-21 09:47:16