例外ArgumentError:エラー#2025:供給DisplayObjectが発信者にエラーの子でなければなりません - AS

StackOverflow https://stackoverflow.com/questions/2492036

質問

私は、オブジェクトがステージ上に存在し、それを除去するかどうかをチェックすることが関数内のコードスニペットを有します

public function closeContent(e:MouseEvent):void { 
    removeChild(txt);
    removeChild(ldr.content);
    removeChild(_closeButton);
    container_mc.visible = false;
    statusText.text="";
    if (contains(submitButton)) {
        removeChild(submitButton);
    }
    if (contains(saveinfoButton)) {
        removeChild(saveinfoButton);
    }
}

私はstagethisに変更rootしようとしたが、常にこのエラーが出るArgumentError: Error #2025: The supplied DisplayObject must be a child of the caller

役に立ちましたか?

解決

あなたは明らかにこのコードDisplayObjectの子ではないことをremoveChildDisplayObjectContainerを削除しようとしていることをエラー信号がから実行されます。

この問題を解決する1つの方法は、削除しようとしているオブジェクトが実際containsを使用して、コンテナの子であるかどうかを確認することです。あなたはなく、いくつかの他のために、あなたは(submitButtonsaveinfoButton)を除去しているオブジェクトの一部のためにこれをやっている。

使用removeChildはこれらtxtsがコンテナ内にあるかどうかを確認することをif文でldr.content_closeButtoncontainsためDisplayObject呼び出しをラップしてみます。

他のヒント

をお試しください

e.currentTarget.parent.removeChild(txt);  
e.currentTarget.parent.removeChild(ldr.content)  
etc.

これを試してみてください

public function closeContent(e:MouseEvent):void { 
    removeChild(txt);
    removeChild(ldr.content);
    removeChild(_closeButton);
    container_mc.visible = false;
    statusText.text="";
    if (contains(submitButton)) {
        removeChild(submitButton);
        removeChild(saveinfoButton);
    }
}

あなたが&&条件付きで除去するために、両方のアイテムを追加することができる場合があります。

    if (contains(submitButton && saveinfoButton)) {
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top