1

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

1 回答 1

2

可能您可以尝试 UIComponent.validateNow() 方法。由于 fl.controls.UIComponent 决定缓存属性更改,并且有时反应过度,您可能会尝试强制它使用cb_test.validateNow();

于 2012-09-07T15:55:06.843 回答