【问题标题】:Binding update on label标签上的绑定更新
【发布时间】:2011-11-09 02:37:03
【问题描述】:

我想绑定一个变量,如果有变化,它会自动更新标签。

var disp:String = "00:00:00";
var lb:Label = new Label();  //Add Label to an "ContentGroup" container.
lb.text = totalTime;
addElement(lb);

disp="00:00:01"; //New timing

BindingUtils.bindProperty(totalTime, "text", disp, "text");

我该怎么做?

【问题讨论】:

  • 您是否有理由必须在 ActionScript 中执行此操作?
  • 不确定,如果使用 DispatchEvent 会比 getChildByName 更有效?我应该在什么情况下使用它?

标签: flash apache-flex actionscript


【解决方案1】:

首先,我想澄清你的问题。您想将标签lbdisp 绑定,然后每当disp 更改时,lb.text 更改,是吗?

  1. 为什么不改用MXML(与Binding机制完美匹配)?

  2. 如果你真的想使用Actionscript,有几点需要你注意。首先,“host”属性必须是可绑定的(在顶部添加[Bindable] 标签)。接下来,BindingUtils.bindProperty 应该直接将两个值相互绑定。在这种情况下,更改为以下代码即可:

    [Bindable] public var disp: String = "00:00:00";
    
    private function initBinding(): void {
    
    var lb: Label = new Label();
    
    addElement( lb );
    
    BindingUtils.bindProperty( lb, "text", this, "disp" );
    
    }
    

顺便说一句,我总是尽可能避免使用绑定。在简单情况下手动更新属性将节省文件大小和性能。

【讨论】:

  • 我看到了 bindProperty 参数的使用方式。感谢您的精彩提示,我将改用 getChildByName 方法。
猜你喜欢
  • 2016-11-14
  • 2021-03-31
  • 1970-01-01
  • 2015-06-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多