0

オブジェクトがステージ上に存在するかどうかを確認して削除する関数内に、次のコード スニペットがあります。

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

で変更しようとしましstagethisroot、常にこのエラーが発生しますArgumentError: Error #2025: The supplied DisplayObject must be a child of the caller

4

3 に答える 3

3

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

この問題を解決する 1 つの方法は、削除しようとしているオブジェクトが実際に を使用してコンテナーの子であるかどうかを確認することですcontainssubmitButton削除する一部のオブジェクト (および)に対してこれを行っていますが、他の一部のオブジェクトに対しては行ってsaveinfoButtonいません。

、およびこれらの がコンテナ内にあるかどうかを確認するために使用する if ステートメントのremoveChild呼び出しをラップしてみてください。txtldr.content_closeButtoncontainsDisplayObject

于 2010-03-23T16:35:29.407 に答える
0

試してみてください:

e.currentTarget.parent.removeChild(txt);  
e.currentTarget.parent.removeChild(ldr.content)  
etc.
于 2010-03-23T11:35:43.147 に答える
0

これを試して:

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)) {
于 2012-09-10T00:53:15.500 に答える