1

有効にした直後に ComboBox のテキストを変更しようとしています。ただし、関数が 2 回目に呼び出されるまで (この場合は、ボタンが 2 回目に押されたとき)、テキストは更新されないように見えます。関数中の trace() は、テキスト プロパティが最初に変更されることを明らかにしますが、この関数が 2 回目に呼び出されるまで変更は画面に表示されません。

Flash CS5 で新しいプロジェクトの最初のフレームに貼り付けたときの問題を示すテスト ケースを次に示します。

import flash.events.Event;
import fl.controls.Button;
import fl.controls.ComboBox;

stop()

var btn_test:Button = new Button()
var cb_test:ComboBox = new ComboBox()

this.addChild(btn_test)
this.addChild(cb_test)

btn_test.x = 100
cb_test.enabled = false

btn_test.addEventListener(MouseEvent.MOUSE_DOWN, setText)

function setText(evt:Event)
{
    cb_test.enabled = true
    cb_test.textField.text = "foo"
    trace(cb_test.textField.text)
}
4

1 に答える 1

2

おそらく UIComponent.validateNow() メソッドを試すことができます。fl.controls.UIComponent はプロパティの変更をキャッシュすることを決定し、場合によっては過剰に反応するため、強制的にレンダリングするように試みることができます。cb_test.validateNow();

于 2012-09-07T15:55:06.843 に答える