【问题标题】:How can I remove this child image Flash / AS3如何删除此子图像 Flash / AS3
【发布时间】:2016-10-19 22:10:34
【问题描述】:

按照教程,我设法将以下内容拼凑在一起,从外部 XML 文件导入图像。

但是我该如何移除它呢?

我已经阅读了 removeChild 但它看起来需要将 ref 传递给它,我不确定那个 ref 是什么。我尝试了一些我认为可能的事情,包括(图像),但它们都抛出了 Access of undefined property 错误。

这是我用来导入的代码:

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);

我需要做什么才能删除它?

【问题讨论】:

    标签: actionscript-3 flash removechild


    【解决方案1】:

    当您在一组花括号内声明变量时,该变量仅存在于这些括号内。因此,当您尝试使用该变量删除图像(它仍然存在于大括号之外)时......没有骰子。

    因此,您需要找到一种方法来存储该图像,该方法会产生更永久可访问的对象,例如全局变量或将其放入数组(同样全局存储)。现在你可以做

    image.parent.removeChild(image);
    

    或者如果它在一个数组中

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

    其中ind 是您要删除的数组元素的索引。

    【讨论】:

      【解决方案2】:

      使用addChild(image); 之后,以后使用removeChild(image); 不起作用吗?

      还可以尝试在任何函数之外声明var image:DisplayObject;(现在可以对所有函数通用),然后在您的on_loadComplete 中,第一行可以简单地为image = loader.content;。
      还有removeChild稍后在另一个函数中使用时会理解image。

      【讨论】:

      • 当你终于回答一个打开了很久的标签时,那个尴尬的时刻......如果旧答案(@NealDavies)有效,那么请将他的答案标记为正确。
      猜你喜欢
      • 2015-01-04
      • 1970-01-01
      • 2010-10-09
      • 2011-08-25
      • 1970-01-01
      • 2023-04-10
      • 1970-01-01
      • 1970-01-01
      • 2022-01-02
      相关资源
      最近更新 更多