论坛交流
首页办公自动化| 网页制作| 平面设计| 动画制作| 数据库开发| 程序设计| 全部视频教程
应用视频: Windows | Word2007 | Excel2007 | PowerPoint2007 | Dreamweaver 8 | Fireworks 8 | Flash 8 | Photoshop cs | CorelDraw 12
编程视频: C语言视频教程 | HTML | Div+Css布局 | Javascript | Access数据库 | Asp | Sql Server数据库Asp.net  | Flash AS
当前位置 > 文字教程 > Flash AS教程
Tag:2.0,3.0菜鸟,游戏,,cs,技巧,源码,,文本,文字,函数,音乐,随机,拖拽,asp,access,xml,mc,视频教程

如何在不依赖Flex框架的情况下实现简单的数据绑定源码教程

文章类别:Flash AS | 发表日期:2010-4-25 9:25:40

Flash AS_如何在不依赖Flex框架的情况下实现简单的数据绑定  

在Flex项目中,数据绑定是非常常见的代码编写方式,通过这种方式,我们可以减轻很多繁琐的数据更新工作,并解除一些不必要的耦合。如果你还不了解绑定
如果我们是一个纯ActionScript或Flash项目,不想依赖体积大的Flex框架,而又想使用其中的绑定机制,该如何做呢?我们可以遵循绑定的思路,自己编写代码实现绑定的方法。这里以简单的字符串绑定为例,说明这个过程,当然要完整的实现对所有数据类型的绑定机制还是要编写更多的代码的,请参照Flex中对于绑定的实现。

解答

下面来看看是如何实现这套机制的,首先我们来创建一个可绑定的数据类,并实现对绑定对象的数据更新,注意主要是要用bind和unlock两个方法来实现对数据的绑定和解除绑定:
   1.
      package
   2.
      {
   3.
      
   4.
      import flash.display.Sprite;
   5.
      import flash.events.Event;
   6.
      import flash.events.MouseEvent;
   7.
      
   8.
      [SWF(width=400, height=400, frameRate=25,backgroundColor=0xFFFFFF)]
   9.
      public class AS3TestBind extends Sprite
  10.
      {
  11.
      private var main:MainContainer = new MainContainer();
  12.
      private var bindExpObj:BindableObject = new BindableObject("");
  13.
      private var cb:NeoComboBox = new NeoComboBox();
  14.
      
  15.
      public function AS3TestBind()
  16.
      {
  17.
      super();
  18.
      cb.selected = true;
  19.
      cb.y = 10;
  20.
      cb.x = 320;
  21.
      cb.addEventListener(MouseEvent.CLICK,unlockBind);
  22.
      main.stringSRC.addEventListener(Event.CHANGE,dataChange);
  23.
      bindExpObj.bind(main.txt1,"text");
  24.
      bindExpObj.bind(main.txt2,"text");
  25.
      bindExpObj.bind(main.txt3,"text");
  26.
      bindExpObj.bind(main.mc.txt,"text");
  27.
      addChild(main);
  28.
      main.addChild(cb);
  29.
      }
  30.
      
  31.
      private function dataChange(...args):void {
  32.
      bindExpObj.property = main.stringSRC.text;
  33.
      }
  34.
      
  35.
      private function unlockBind(...args):void {
  36.
      if(cb.selected == true) {
  37.
      bindExpObj.unlock(main.txt1,"text");
  38.
      bindExpObj.unlock(main.txt2,"text");
  39.
      bindExpObj.unlock(main.txt3,"text");
  40.
      bindExpObj.unlock(main.mc.txt,"text");
  41.
      cb.selected = false;
  42.
      cb.tip.visible = false;
  43.
      } else {
  44.
      bindExpObj.bind(main.txt1,"text");
  45.
      bindExpObj.bind(main.txt2,"text");
  46.
      bindExpObj.bind(main.txt3,"text");
  47.
      bindExpObj.bind(main.mc.txt,"text");
  48.
      cb.selected = true;
  49.
      cb.tip.visible = true;
  50.
      }
  51.
      }
  52.
      
  53.
      }
  54.
      }

视频教程列表
文章教程搜索
 
Flash AS推荐教程
Flash AS热门教程
看全部视频教程
购买方式/价格
购买视频教程: 咨询客服
tel:15972130058