0

現在の私のコードはそのままです

setcustomlocation.addEventListener(MouseEvent.CLICK,customlocation2);

function customlocation2(e:MouseEvent):void
{
    locationinput.text = FlashingWon.Won1.name.text;
}

入力テキストフィールドの値を動的テキストにコピーするようにしようとしています。ただし、次のエラーがスローされます

TypeError: エラー #1009: null オブジェクト参照のプロパティまたはメソッドにアクセスできません。main/customlocation2()[main::frame1:9] で

別のムービークリップ内のムービークリップの動的テキストフィールドと通信できないとしか思えません。

4

2 に答える 2

0

了解しました。遅れてすみません、私は休日に出かけました。私はあなたの例を開いて、問題がどこにあるかを見ることができます:

1)FlashingWon最初のフレームでdynoTextを開始するときに到達しようとしているのでvar dynoText = FlashingWon.Won1.getChildByName('name_txt');、FlashingWon要素は5番目のフレームでのみ使用できます。つまり、最初のフレームに追加して5番目のフレームまで非表示にしない限り、まだ完全に参照することはできません。(行goto1の後に必要な場合は、関数で表示することができますgoToAndStop(5)

2)Won1AS3で制限されたスティングである要素'name'でTextFieldを呼び出したので、必要に応じてname_txtまたはlabelに変更すると機能します。

それがどのように機能したか教えてください。

于 2013-01-02T10:03:09.917 に答える
0

まず、MovieClip の動的 TextField と通信できることを 100% 確信できます。

あなたの説明から、入力から動的にコピーしたいことがわかりました。しかし、あなたのコードから、ダイナミックから入力に取っていることがわかります。チェックしてください:

// This will copy in such a way: input <= wonText 
locationinput.text = FlashingWon.Won1.name.text;

// This will copy from input
FlashingWon.Won1.name.text = locationinput.text;

とにかく、あなたが得るエラーはこれとは何の関係もありません.TextFieldの1つが'found'ではないことにすでに気付いているようです。このため、ベスト プラクティスをお勧めします。使用するオブジェクトのインスタンスを作成し、ステージから getChildByName メソッドを使用してそれらを設定します。このようにして、取得したい子にスペルミスやミス構造があった場合、すぐに(特に構築または初期化でこれを行う場合)。

そのようです:

var inputText: TextField;
var dynoText: TextField;

コンストラクターまたはその他のレベルで、vars に適切な値を与えます。

inputText = getChildByName('locationinput') as TextField;
dynoText = FlashingWon.Won1.getChildByName('name') as TextField;

このようにして、指定したオブジェクトの下にこの 2 つの textFields のいずれかが見つからなかったかどうかをすぐに知ることができ、スペルを間違える場所が 1 つしかありません。また、TextField でコード補完が得られます。

最後にコピーテキスト部分:

dynoText.text = inputText.text;

それが役に立てば幸い。

于 2012-12-13T07:50:18.803 に答える