ユーザーが変更したときに、入力 TLF テキスト フィールドのテキストを変更する必要があります。たとえば、ユーザーが文字を追加または削除するたびに大文字にしようとしています:
import fl.text.TLFTextField;
import flashx.textLayout.formats.TextLayoutFormat;
import flashx.textLayout.elements.TextFlow;
var myTLFTextField:TLFTextField = new TLFTextField();
addChild(myTLFTextField);
myTLFTextField.x = 10;
myTLFTextField.y = 10;
myTLFTextField.width = 200
myTLFTextField.height = 100;
myTLFTextField.text = "This is my text";
var myFormat:TextLayoutFormat = new TextLayoutFormat();
myFormat.textIndent = 8;
myFormat.color = 0x336633;
myFormat.fontFamily = "Arial, Helvetica, _sans";
myFormat.fontSize = 24;
var myTextFlow:TextFlow = myTLFTextField.textFlow;
myTextFlow.hostFormat = myFormat;
myTextFlow.flowComposer.updateAllControllers();
//--
myTLFTextField.addEventListener(Event.CHANGE, this.onTextFieldChange);
function onTextFieldChange(event:Event):void
{
myTLFTextField.text = myTLFTextField.text.toUpperCase();
}
前のコードは、ページの最初の例であるTLFTextField のドキュメント//--
から取得したものです。
テキストを編集しようとすると大文字になりますが、その後テキスト フィールドが入力に応答しなくなり、出力に次のように表示されます。
TypeError: エラー #1009: null オブジェクト参照のプロパティまたはメソッドにアクセスできません。flashx.textLayout.container::TextContainerManager/getController() で flashx.textLayout.container::TextContainerManager/mouseDownHandler() で
行をコメントアウトするとaddEventListener
、すべて正常に動作しているように見えます。
従来のテキスト フィールドで可能なように、ユーザー入力イベントで TLF テキスト フィールドのテキストを変更することはできないということですか?