flex4--自定义控件间通信

来源:互联网 发布:sql注入防御方法 编辑:程序博客网 时间:2024/06/06 04:18

    最近在学习《一周学习flex4视频中文版》,“第四天”的第二课“扩展事件类并传递数据,看了视频后自己动手练了练,发现有几点需要注意,写下来下次遇到的时候就不用乱找了:

    1。继承事件的类中如果有数据对象(作参数)的话,它的类型必须是Object,不能是具体类。

     代码:

    package customEvents
{
 
 import flash.events.Event;
 
 public class PreviewEvent extends Event
 {
  public var employee:Object;//公共类成员必须是object
  public var message:String;
  public function PreviewEvent(type:String,employee:Object,message:String) //参数中的对象employee也必须
  {                                                                                                                       //是object类型
      this.employee=employee;
   this.message=message;
   super(type);
  }
 }
}

 

2.在抛出事件时需要注意,事件的type是metaData中申明的事件类型,而不是我们之前定义的类型,比如说在metaData中如下申明:

  [Event(name="pEvent",type="customEvents.PreviewEvent")]

 

 那么在初始化事件的时候的写法:

 

 var currEvent:PreviewEvent=new PreviewEvent("pEvent",ddlEmployee.selectedItem,txtMsg.text);

 

 而不能用PreviewEvent。

 

 3。就是在2代码中,创建currEvent是,用到的第二个参数是个dropDownList的选中项,该项作为一个对象传递进来。而不必使用

 

具体的employ对象。就是说flex自动把xml中的employee对象绑定到dropDownlist中,当要取出其中的对象使用时,直接用

 

ddlEmployee.selectedItem便可。在另一个接收参数的自定义组件中,我们需要定义的也是Object类型的Employee变量,但是在

 

处理数据时,我们可以这样取employee的姓名:employee.name 或者employee.age(年龄)。

 

 

原创粉丝点击