動的テキストを「聴く」方法はありますか?ステージ上にこのダイナミックテキストフィールドがあり、ダイナミックテキストが変更されたら関数を呼び出す必要があります。イベントリスナーを追加しようとしましたが、INPUTテキストでのみ動作するようです。助言がありますか? ありがとうactionscript 3トラック動的テキスト変更
答えて
CHANGE
イベントを試しましたか?入力されていないものを含め、すべてのタイプのTextFieldで機能するはずです。
この質問が示すように、入力テキストのみがCHANGEイベントを送出します。 http://stackoverflow.com/questions/977847/as3-textbox-change-event-not-firing – annonymously
あなたが言ったように、入力テキストディスパッチCHANGEイベントだけです。あなたは、おそらくこのように、それを回避する必要があります:
var oldText:String = "";
function changeEnterFrame (e:Event) {
if (oldText != textField.text) {
// Do your stuff here
}
oldText = textField.text;
}
addEventListener(Event.ENTER_FRAME, changeEnterFrame);
@ annonymouslyの答えは動作しますが、(そのことについて、または任意の変更)のテキストの変更を待つのenterFrameリスナーを取り付ける良いアイデアではありません - テキストがまったく変更されない場合は、回避できれば、1秒間に何回もコードを実行するのはなぜですか?実際には、監視したい新しいテキストフィールドインスタンスごとに何度も何度もやり直さなければならないということは言うまでもありません。
実際の変更に対応する方が良いです。これは、独自のプロパティ設定によって発生します。あなたは、単にTextFieldクラスを拡張して上書きセッターをのhtmlTextおよび/またはテキストの変更イベントをディスパッチする必要があります。
override public function set text (text : String) : void {
super.text = text;
dispatchEvent (new Event (Event.CHANGE);
}
よろしくお願いします。他のすべてのヘルパーにも感謝します。 – jazz
あなたがテキストの変更イベントを聞くことを可能にする非常に単純なサブクラスを書くことができます。
Sublass:
package
{
import flash.events.Event;
import flash.text.TextField;
public class CustomTextField extends TextField
{
public function CustomTextField()
{
super();
}
override public function set text(value:String):void
{
if(super.text != value)
{
super.text = value;
dispatchEvent(new Event(Event.CHANGE, true));
}
}
}
}
使用例:
package
{
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
public class CustomTextFieldTest extends Sprite
{
private var tf:CustomTextField;
public function CustomTextFieldTest()
{
tf = new CustomTextField();
tf.x = tf.y = 10;
tf.width = tf.height = 200;
tf.addEventListener(Event.CHANGE, onTfChange);
addChild(tf);
stage.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
}
private function onTfChange(e:Event):void {
trace("text changed, new text: '" + tf.text + "'");
}
private function onMouseDown(e:MouseEvent):void {
tf.text = "some random text: " + Math.round(100 * Math.random());
}
}
}
おっと、@ weltraumpiratさんの答えを逃しました:) – skozin
- 1. Actionscript 3動的テキストが自動的に一番下までスクロール
- 2. Actionscript 3と動的マスク
- 3. Flash Actionscript 3テキストをテキストボックス内に移動
- 4. ラジオグループの動的テキスト変更
- 5. ActionScript 3動的呼び出しボタン
- 6. ActionScript 3の任意の動的プロパティ
- 7. ActionScript 3.0の動的変数
- 8. 目的:プレーヤーのトラックを変更する
- 9. Video.jsのキャプション 'トラック'を動的に変更できません
- 10. LINQトラックの変更
- 11. 動的にテキストを変更するqlabel
- 12. Androidリストビュー行テキスト動的に変更
- 13. ActionScript 3:アニメーションダイナミックテキストインスタンスのテキストを設定する
- 14. 変更テキストの色(GTK + 3)
- 15. ActionScript 3.0、動的スクロールバー
- 16. GoogleアナリティクスのFlash(ActionScript 2)トラックGETURL #anchor
- 17. 異なるフレームの動的テキスト値を変更します。アクションスクリプト3
- 18. actionscript 3の別の名前空間からの変数への動的アクセス
- 19. AS3のボタンのテキストを(動的に)変更するには
- 20. Android TabLayoutトラックの変更
- 21. Android - SwitchPreferenceのスイッチのサム/トラックの色を動的に変更する方法
- 22. jqueryを使用してスクロールバーのトラック色を動的に変更します
- 23. XML子ノードに動的にアクセスするE4X ActionScript 3
- 24. Actionscript-3の静的コンストラクタの構文は?
- 25. 一般的なパスワードセキュリティ&Implementation in Actionscript 3
- 26. ActionScript 2.0の動的アラインメント
- 27. ActionScript 2.0の動的スムージング
- 28. ActionScript 3作業領域のサイズを変更する
- 29. ActionScriptでFlashのテキストのハイライトカラーを変更する
- 30. オブジェクト上のテキストのロールオーバーロールアウトの変更actionscript 3.0
可能な重複:実はhttp://stackoverflow.com/questions/977847/as3-textbox-change-event-not-firing – annonymously