我正在尝试在启用后立即更改ComboBox的文本。但是,在第二次调用该函数之前,文本似乎不会更新(在这种情况下,第二次按下该按钮时)。函数期间的trace()显示text属性第一次更改,但是直到第二次调用此函数时,屏幕上才会显示更改。
这是一个测试用例,它应该说明在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)
}
答案 0 :(得分:2)
您可以尝试使用UIComponent.validateNow()方法。由于fl.controls.UIComponent决定缓存属性更改,有时甚至反应过度,您可以尝试强制它使用cb_test.validateNow();
进行渲染