`
TonyLian
  • 浏览: 401479 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

【Flex】如何使用静态变量作为绑定的数据源

阅读更多
绑定有3种写法,我最喜欢在AS里用BindingUtils,因为这样的代码是最优雅的。

我在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";

2
0
分享到:
评论

相关推荐

    Flex Bind数据绑定实例代码

    数据绑定的基本概念是将UI组件的属性(如文本框的文本)与应用程序中的数据源(如数组或对象的属性)关联起来。当数据源发生变化时,UI会自动更新;反之,当用户通过UI组件修改数据时,数据源也会相应更新。在Flex中...

    flex数据绑定

    此外,可以使用转换器(Converter)来转换绑定数据的格式,比如日期格式化。转换器通过实现`IValueConverter`接口并添加到`mx.core.Application`的`converters`属性中。 5. 事件与数据刷新: 当数据源发生变化时,...

    Flex分页技术

    如果数据是动态生成或来自服务器,可以使用HTTPService或WebService来获取,然后将返回的XML或JSON转换为适合DataGrid的数据源。 6. **事件监听与处理**: 示例代码中的`creationCompleteHandler`函数用于初始化...

    flex面试题

    7. **ItemRenderer警告**:在使用ItemRenderer时,如果数据源是ArrayCollection的子元素,可能会出现绑定警告。解决方法是创建中间变量,并在`set data`时将ArrayCollection的子元素传入,然后用中间变量作为新的...

    Flex面试题及答案

    在使用ItemRenderer时,如果遇到“无法绑定到Object类上的属性”的警告,原因可能是ArrayCollection的子元素不能直接作为数据源绑定。解决方法是在ItemRenderer中声明一个中间变量,通过override set data方法将...

    object 面试题

    53. 使用 this 关键字引用类的成员变量:可以,但不能在静态方法中使用。 54. 在非静态方法中使用 this 或者 super 关键字调用静态成员:不可以。 55. 成员变量和成员方法定义的先后位置:不影响方法对成员变量的...

    actionscript 3学习随笔

    此元数据`[Bindable]`用于指示变量`name`的变化应当触发绑定事件,从而使得任何监听该变量变化的对象能够接收到这些变化。 #### 常用元数据详解 1. **[ArrayElementType]**:该元数据用于指定数组中元素的数据类型...

    flashbuilder_4.7_帮助文档

    - **数据绑定**:将数据模型绑定到用户界面。 - **远程数据服务**:连接至服务器获取数据。 **监视访问数据服务的应用** - **网络监视**:检查数据交换情况。 - **错误处理**:捕获并处理网络请求中的错误。 **...

    小程序源码(无后台)_百度小说搜索.rar

    在这个项目中,源码并未配备后端服务器,意味着所有的数据交互可能直接来源于百度开放的API或者静态数据。 在分析这个小程序源码时,我们可以学到以下几个重要的知识点: 1. **小程序开发基础**:小程序是一种轻量...

    小程序源码(无后台)_教务系统.rar

    6. **网络请求**:在没有后端的情况下,教务系统的数据可能来源于静态JSON文件或者预设的数据,开发者可以使用`wx.request` API从本地读取或模拟数据交互。 7. **页面路由**:小程序中的页面跳转由`wx.navigateTo`...

    gsoap 2.8 (SOAP/XML 关于C/C++ 语言的自动化实现工具内附 CSharp webservice例子,及GSOAP client和server例子)

    而在1.x版本中,由于静态分配环境变量,多线程技术是不被允许的(只有一个线程可以用这个环  境变量调用远程方法或处理请求信息)。  4 准备工作  要开始用gSOAP创建一个web服务应用, 你需要:  一个C/C++编译器....

    基于j2ee的ajax宝典

    1.6.8 配置Tomcat的数据源······ 25 1.6.9 安装Ant工具··················· 28 1.6.10 安装Eclipse开发环境······ 28 1.6.11 在线安装········ 29 1.6.12 手动安装····...

    ppl-201:编程原理,DaddyP课程。 我的作业代码

    解析器将词法分析器产生的标记转换为抽象语法树(AST),这是一个结构化的数据表示,反映了程序的逻辑结构。解析器涉及以下关键概念: 1. **上下文无关语法(Context-Free Grammar, CFG)**:用BNF(巴科斯范式)或...

Global site tag (gtag.js) - Google Analytics