浏览 3261 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-12-04
最后修改:2008-12-04
我在AS里用bindProperty,将一个UI上的Text控件绑定到一个变量上,变量改变时这个Text当然就会跟着变。 如果这个控件需要显示的是一些全局性的内容,显然我们希望用一个静态变量去保存这个内容,然后绑定给这个控件。 但是,当我把这个变量声明为静态的之后,不论如何改变这个静态,Text控件都不再随之变动了,代码如下: BindingUtils.bindProperty(view.text1,"text",MyClass,"str"); public class MyClass { public static var str:String = "111"; } 注:view是MXML的UI的一个实例化 什么原因呢? 其实static变量只能在绑定的首次生效,之后即使改变也不会分发事件了。 我们可以看到上面的例子中,text1控件,初始是显示"111"的,而当str改变时则不再联动。 那么如何才能实现这一功能呢?方法是有的,但是是变通的: 我们将一个自定义的类声明成static,然后将自定义类中的某一个非static属性绑定给控件就可以了。 public MyClass1{ public str:String="111"; } public MyClass2{ public static myVar:MyClass1; } 用法: BindingUtils.bindProperty(view.text1,"text",MyClass2.myVar,"str"); 这样有个要求,就是在第一次使用之前,必须先实例化一下MyClass1 MyClass2.myVar = new MyClass1(); 之后只要改变MyClass2.myVar.str的值,控件就会联动了。 MyClass2.myVar.str = "222"; 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |