文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

ActionScript中怎么定义Flex数据绑定

2023-06-17 14:54

关注

ActionScript中怎么定义Flex数据绑定,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

在ActionScript 中定义Flex数据绑定

通过使用mx.binding.utils.BindingUtils能够在ActionScript中定义绑定。这个类定义了几个静态方法,通过使用bindProperty() 方法可以让我们创建一个到用变量实现的属性的数据绑定,或者用bindSetter()方法创建一个到用方法实现的属性的Flex数据绑定。

(1)在MXML 与在ActionScript 定义Flex数据绑定的区别

编译期在MXML 中定义Flex数据绑定与在运行期在ActionScript 中定义Flex数据绑定有一些不同之处:
◆不能在由bindProperty()或者bindSetter()方法定义绑定表达式中引入ActionScript 代码。相反,使用bindSetter()方法可以指定一个在绑定发生时调用的
方法。
◆ 不能在由ActionScript 中定义的绑定表达式中引入E4X 表达式。
◆ 在由the bindProperty()或者bindSetter()方法定义的Flex数据绑定表达式的属性链中不能引入函数或者数组元素。更多信息见Working with bindable property chains.
◆同运行时使用bindProperty()或者bindSetter()定义的Flex数据绑定相比,MXML 编译器有更好的警告和错误检查支持。

(2)范例:在ActionScript 中定义Flex数据绑定

下面的例子是用bindSetter()建立了一个Flex数据绑定。bindSetter()方法的参数设置如下:
◆ 源(source) 对象
◆ 源(source) 属性名
◆ 当源(source)属性变化被调用的方法。
下面的范例中,当向TextInput 控件中输入文本时,文本会被转换为大写形式并拷贝给TextArea
控件:

<?xml version="1.0"?> <!-- binding/BindSetterAS.mxml --> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"> <mx:Script> <![CDATA[  import mx.binding.utils.*;  import mx.events.FlexEvent;  // Method called when myTI.text changes.  public function updateMyString(val:String):void {  myTA.text = val.toUpperCase();  }  <!-- Event listener to configure binding. -->  public function mySetterBinding(event:FlexEvent):void {  var watcherSetter:ChangeWatcher =  BindingUtils.bindSetter(updateMyString, myTI, "text");  }  ]]> </mx:Script> <mx:Label text="Bind Setter using setter method"/> <mx:TextInput id="myTI" text="Hello Setter" /> <mx:TextArea id="myTA" initialize="mySetterBinding(event);"/> </mx:Application>

(3)定义绑定观察者 (watchers)

Flex 有个mx.binding.utils.ChangeWatcher 类,可以用这个类来定义一个Flex数据绑定观察者。通常,Flex数据绑定观察者在绑定发生时激活一个事件监听器。可按照下面的范例使用
ChangeWatcher 的watch()即可建立一个Flex数据绑定观察者:

<?xml version="1.0"?> <!-- binding/DetectWatcher.mxml --> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" initialize="initWatcher();"> <mx:Script> <![CDATA[  import mx.binding.utils.*;  import mx.events.FlexEvent;  import mx.events.PropertyChangeEvent;  public var myWatcher:ChangeWatcher;  // Define binding watcher.  public function initWatcher():void {  // Define a watcher for the text binding.  ChangeWatcher.watch(textarea, "text", watcherListener);  }  // Event listener when binding occurs.  public function watcherListener(event:Event):void {  myTA1.text="binding occurred";  // Use myWatcher.unwatch() to remove the watcher.  }  ]]> </mx:Script> <!-- Define a binding expression_r to watch. --> <mx:TextInput id="textinput" text="Hello"/> <mx:TextArea id="textarea" text="{textinput.text}"/> <!-- Trigger a binding. --> <mx:Button label="Submit" click="textinput.text='Goodbye';"/> <mx:TextArea id="myTA1"/> </mx:Application>

看完上述内容,你们掌握ActionScript中怎么定义Flex数据绑定的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注编程网行业资讯频道,感谢各位的阅读!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯