これは私を悩ましています。私の目標は、テキストフィールドを介してテキストをステージに書き込むことです(同時に複数のテキストフィールドがあります)。しかし、ボタンを一度にすべてのテキストを削除できるようにしたい。AS3エラー#2025:提供されたDisplayObjectは呼び出し元の子でなければなりません。子を削除しようとしているとき
私は望んだとおりのテキストを持っています。ステージは、テキストフィールドのない親
stage.addEventListener(MouseEvent.MOUSE_UP, mUp);
function mUp(MouseEvent): void {
var textfield = new TextField();
textfield.type = TextFieldType.INPUT
textfield.x = mouseX;
textfield.y = mouseY;
stage.focus = textfield;
textfield.selectable = false;
stage.addChild(textfield); // adding the child here
}
function erase(evt: MouseEvent): void { //triggers when button is clicked
stage.removeChild(textfield) //trying to remove the child, but throws the error
}
されています:
だから基本的に私は、彼らはもう見ていないので、テキストフィールドの子を削除するには、ボタンをしたいが、私はこのエラーを得続ける、ここに私のコードです?私はそれに子供のようにテックスフィールドを追加しましたので、私はなぜそうは見えません。
これは非常にstraightfoward見て、私は問題を見ていないよ、どんな手助けが
var board: Sprite = new Sprite(); // displayobjectcontainer to hold the textfields
addChild(board);
var textfield:TextField; // Declared outside the functions
listener.addEventListener(MouseEvent.MOUSE_UP, mUp); // I added an object on the stage to catch my mouse input instead of the stage, so that it doesn't trigger when I click my button
function mUp(evt:MouseEvent):void
{
textfield = new TextField(); // I have this still so it will create a new textfield on every mUP
textfield.type = TextFieldType.INPUT
textfield.x = mouseX;
textfield.y = mouseY;
stage.focus = textfield;
textfield.selectable = false;
board.addChild(textfield); // adding the child to the sprite now
}
function erase(evt:MouseEvent):void
{
board.removeChild(textfield) //trying to remove the child, but still throws the error
}
私はOPで自分のコードを改訂しました。 しかし、それでも同じエラーが発生します。あなたが言ったことをすべて変更したと思います。これは私が配列を使用する必要がありますか?私はそれらをDisplayObjectContainerに格納することを前提としていたでしょうが、動作していないか、何か他のものが欠けていますか? – user3418126
上記のことを気にしないで、私の明確な機能はまだ子供が追加されて表示されません実現する、私は回避策を見つけるだろう、助けをありがとう – user3418126
@ user3418126 'textfield'という名前であなたのプロジェクトに何か他にありますか?エラーはボタンを押すたびに発生しますか? 'erase()'の 'trace(textfield.parent);から何を得るのですか? – null