【问题标题】:ComboBox text property only updates on second function callComboBox 文本属性仅在第二次函数调用时更新
【发布时间】:2012-08-15 10:03:57
【问题描述】:

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

【问题讨论】:

    标签: actionscript-3 flash combobox flash-cs5


    【解决方案1】:

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

    【讨论】:

    • 谢谢,当在启用组合框和设置文本之间放置cb_test.validateNow() 时,这有效。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-11
    • 2020-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-08
    相关资源
    最近更新 更多