私のメインステージにはすでに2つのTLFテキストボックスがあります。プロパティインスペクタウィンドウでは、これらのインスタンス名に "txt1"と "txt2"を付けます。Flashはステージ「インスタンス#」のオブジェクトに自動的に名前を付けます
私は単一のmouseupイベントを発生させようとしており、発生したテキストボックスを特定しています。
マイドキュメントクラスは、次のコードを持っています
package {
import flash.display.Sprite;
import flash.events.KeyboardEvent;
public class SingleEvent extends Sprite{
public function SingleEvent() {
// constructor code
root.addEventListener(KeyboardEvent.KEY_UP, textChanged,false,0,true);
}
private function textChanged(e:KeyboardEvent){
trace(e.target.name);
trace(" " + e.target);
switch(e.target){
case txt1:
trace("txt1 is active");
break;
case txt2:
trace("txt2 is active");
break;
default:
break;
}
}
}
}
出力例は次のとおりです。
instance15
[object Sprite]
instance21
[object Sprite]
オブジェクトがステージ上に既にあるので、私はそれらを認識するために点滅取得する方法を確認していません"instance#"の代わりに "txt1"と "txt2"としてください。 .nameプロパティを設定しようとしましたが効果がありませんでした。
公開設定では、「ステージインスタンスを自動的に宣言します」が選択されています。
また、複数のスライダーコンポーネントに対して1つの変更イベントを設定することはできますか?以下は発火しません:Flash Playerがコンストラクタが呼び出された時点でTLFTextFieldsを初期化していないようだ任意のヒント
使用しているFlashのバージョンは何ですか?それは問題ではありませんが、あなたのコードは完全にうまく動作します。 – sberry
ああ...私はそれを取り戻す。私はあなたがあなたの質問にTLFの要因に気づいていない、CS5を使用して参照してください。ダイナミックからTLFに変更するときと同じ動作をします。 – sberry
はいCS5。それは動的テキストのためにはうまくいきません。私は変更し、そのような種類のテキストを使用する必要があります。しかし、私はTLFを使用していたので、きれいに見えます。 – meowMIX3R