You are browsing the archive for RIA Flex.

actionscript3中的动态类(dynamic class)

五月 15, 2009 in RIA Flex

 

如Java或者C++这样面向对象语言中,只有通过实例化类来创建一个对象,对象只能访问类中定义的属性和方法,如下面Employee的定义:

1
2
3
4
class Employee {
  String firstName;
  String lastName;
}

 

在程序中只能通过如下的方式来访问属性:

1
2
3
4
Employee emp = new Employee();
emp.firstName = "arone";
emp.lastName = "zhang" ;
System.out.println(emp.lastName + "," + emp.firstName);

 

而在actionscript中,这样的类被叫做sealed,而它还提供了另外一种类叫做动态类(Dynamic Class),可以在运行时通过程序来添加新的属性或方法,只要在类定义的时候添加关键字:dynamic 就可以,下面通过创建一个DynamicClass类

?View Code ACTIONSCRIPT
1
2
3
4
5
6
7
8
9
10
package
{
  public dynamic class DynamicClass
  {
    public var description:String;		
    public function DynamicClass()
    {
    }
  }
}

 

下面创建一个TestDynamicClass来来动态添加属性 dynamicName 和方法 dynamicFunction :

?View Code ACTIONSCRIPT
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package {
  import flash.display.Sprite;	
 
  public class TestDynamicClass extends Sprite
  {
    public function TestDynamicClass()
    {
      var dynamicClass:DynamicClass = new DynamicClass();
      dynamicClass.description = "this's test.";
      trace("dynamic class description: " + dynamicClass.description);
 
      dynamicClass.dynamicName = "dynamicName" ;
      trace("dynamic property: " + dynamicClass.dynamicName);
 
      dynamicClass.dynamicFunction = function(){
        trace(dynamicClass.description,dynamicClass.dynamicName);
      }
 
      dynamicClass.dynamicFunction();
    }
  }
}

 

运行后,输出如下的结果:

1
2
3
dynamic class description: this's test.
dynamic property: dynamicName
this's test. dynamicName

 

需要注意的是,如果一个继承动态类的类,默认情况下并不是动态类

 

Flex中使用ItemRenderer实现表格行超链接

四月 10, 2009 in RIA Flex

 

在DataGrid的数据显示中,我们往往希望能够为表格行数据中的某个列添加一个超链接,然后点击超链接的时候显示明细信息或者其它信息。在Flex中实现链接需要使用LinkButton控件,因此实行这样的需求大致是如下的思路:

  1. 扩展LinkButton这个控件,使它显示的时候有超链接一样的下划线,同时需要必须监听鼠标单击事件来响应用户的操作
  2. 扩展一个DynamicEvent事件,实现当用户单击超链接的时候,将选中的表格行数据返回,以备后续处理使用
  3. 创建表格列的使用,实例化上面扩展的LinkButton控件,将它作为数据表格列的ItemRenderer属性

 

Read the rest of this entry →

Flex中的数据绑定(Data Binding)

四月 8, 2009 in RIA Flex

 

在flex的actionscript代码中经常可以看到 [Bindable] 标记,在刚接触flex的时候,看到别人的代码里有这样的写法,自己也不管有什么用,都在变量前面添加这个标记,反正也没感觉到带来什么不好的,[Bindable]几乎快被“滥用”

实际上[Bindable]标记正是一个flex中非常重要的特性:数据绑定(Data Binding),数据绑定就是将绑定的源数据发生变化时,flex会将更改后的值赋给被绑定的数据对象,实现数据的同步。

 

Read the rest of this entry →

Flex3应用中使用样式

四月 1, 2009 in RIA Flex

 

Flex3应用中需要通过样式来控制控件的表现,如背景颜色、边框颜色、边框的左边和右边宽度等等,Flex3中每个控件都会有一些特别的样式属性,具体可以参考asdoc

在Flex3应用开发中 MXML 和 ActionScript 中设置样式的方式并不完全一样,主要有以下几种方式:

  1. 通过指定组件的样式属性来设置属性的值
  2. 设置组件的styleName属性来引用css文件中的样式定义
  3. 通过组件的styleDeclaration属性来设置样式的值
  4. 通过组件的setStyle方法来设置样式的值

 

Read the rest of this entry →

Flex3:开启日志调试功能

三月 30, 2009 in RIA Flex

 

在Flex3中如何需要将Flex客户端中的调试或日志信息输出,需要做以下的配置:

  1. 安装调试版本的Flash Player
  2. 配置mm.cfg文件来启用错误和跟踪日志
  3. 程序中使用全局的trace()方法或Logging API来输出日志调试信息
  4. 查看日志文件 flashlog.txt  的内容

 

Read the rest of this entry →