2016-10-19 65 views
0

以下教程我設法湊齊從外部XML文件導入圖像以下。如何刪除這個孩子形象的Flash/AS3

但我該如何刪除它?

我已經閱讀了關於removeChild之,但它看起來像它需要有傳遞給它一個裁判,我不知道裁判是什麼。我嘗試了一些我認爲可能的事情,包括(圖片),但他們都扔了訪問未定義的屬性錯誤。

這是我使用導入代碼:

var imgrequest:URLRequest = new URLRequest(artwork); 
var loader:Loader = new Loader(); 

    loader.contentLoaderInfo.addEventListener(Event.COMPLETE, on_loadComplete); 

    function on_loadComplete(e:Event):void { 
     var image:DisplayObject = loader.content;  
      image.x = 0; 
      image.y = 4; 
      image.width = 150; 
      image.height = 150; 
     addChild(image);  
     Bitmap(image).smoothing = true; 
    } 
    loader.load(imgrequest); 

什麼我需要做刪除它?

回答

0

當你聲明一組大括號裏面的變量,該變量只有那些括號內的存在。所以當你嘗試使用該變量去除圖像(它仍然存在於大括號外)時......沒有骰子。

所以,你需要找到一種方法來存儲與導致更持久訪問對象的方法是像這樣的一個全局變量或將它放在一個陣列(其同樣被全球存儲)。現在你可以做

image.parent.removeChild(image); 

,或者如果它是一個數組

array[ind].parent.removeChild(array[ind]); 

其中ind是要刪除該數組元素的索引。

0

使用addChild(image);確實將在後面使用removeChild(image);不起作用後?

也可以嘗試宣告var image:DisplayObject;以外的任何功能(現在可以通用於所有功能),然後在您的on_loadComplete第一線可以簡單地image = loader.content;
另外removeChild將會理解image當它稍後在另一個函數中使用時。

+0

約會進行時,當你終於回答是開放的年齡標籤......如果上了年紀的答案(由@NealDavies)的作品,那麼請紀念他的一個是正確的。 –