0

我认为我应该很聪明并制作/复制一个效果很好的 removeAllChildren 函数。但是现在我得到“错误 #2069:Loader 类没有实现这个方法”如果我理解正确的话,是因为我在 Sprite 中有一张加载的图片。(但我几乎可以肯定,当我构建这个函数时,它可以使用与现在相同类型的图片。)我不知道如何绕过它。认为捕获错误应该以某种方式起作用,但没有成功。还是我做错了什么?

这是R类中的图片

public static var picture:Class;
    [Embed(source="picture.png")] 

孩子:

private var bg:Sprite=new R.picture;
canvas.addchild(bg);

我的 removechildren 功能:

public static function removeAllChildren(doc:*):void {
while(doc.numChildren){
  if (doc.getChildAt(0) is DisplayObjectContainer)
        removeAllChildren(doc.getChildAt(0));
            doc.removeChildAt(0);


                }

        }
4

1 回答 1

1

您正在发送类型为Loader的 removeAllChildren 函数参数

来自加载器参考

Loader 类重写了它继承的以下方法,因为 Loader 对象只能有一个子显示对象——它加载的显示对象。调用以下方法会引发异常:addChild()、addChildAt()、removeChild()、removeChildAt() 和 setChildIndex()。要移除加载的显示对象,您必须从其父 DisplayObjectContainer 子数组中移除 Loader 对象。

public static function removeAllChildren(doc:*):void {
    if(doc is Loader && doc.parent != null)
    {
        doc.parent.removeChild(doc);
        return;
    }
    while(doc.numChildren){
        if (doc.getChildAt(0) is DisplayObjectContainer){
            removeAllChildren(doc.getChildAt(0));
        }
        doc.removeChildAt(0);
       }
 }
于 2013-10-26T23:15:50.340 回答