2016-10-19 34 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)的作品,那么请纪念他的一个是正确的。 –