ComboBox文本属性仅在第二个函数调用时更新

时间:2012-08-15 10:03:58

标签: actionscript-3 flash combobox flash-cs5

我正在尝试在启用后立即更改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)
}

1 个答案:

答案 0 :(得分:2)

您可以尝试使用UIComponent.validateNow()方法。由于fl.controls.UIComponent决定缓存属性更改,有时甚至反应过度,您可以尝试强制它使用cb_test.validateNow();进行渲染