FlashMXProfessional2004V2组件的研发(2)

2008-04-02 11:06:49来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折



  那么究竟如何为组件定义一个新的事件呢?对于上面的那个例子,能够做如下定义:

  
//导入类

  import mx.core.UIComponent;

  //用元数据声明组件事件

  [Event("PP")]

  [Event("UU")]

  //指明该类从UIComponent继承

  class T_T extends UIComponent

  {

  //在编辑环境中已创建两个输入文本(Input Text),并在类中声名其引用。

  var T1:TextField;

  var T2:TextField;

  //定义构造函数

  function T_T()

  {

  //在构造函数中发布T1的change事件

  T1.onChanged=function()

  { //创建一个事件对象,存放和事件相关的信息

  var eventObj = new Object();

  //定义事件类型的名称

  eventObj.type = "PP";

  //指明事件广播(发生)的对象

  eventObj.target = _parent;

  //把事件作为组件的事件发布

  _parent.dispatchEvent(eventObj);

  }

  //在构造函数中发布T2的change事件

  T2.onChanged=function()

  {

  var eventObj = new Object();

  eventObj.type = "UU";

  eventObj.target =_parent;

  _parent.dispatchEvent(eventObj);

  }

  }

  }


  在以上代码中,先用元数据声明了组件的两个事件UU和PP,然后又在组件类的构造函数中定义T1和T2的change事件,并在他们的change事件中用_parent.dispatchEvent(eventObj);语句把chang事件发布为组件事件。dispatchEvent()方法需要一个Object类型的事件对象作为参数,该对象中保存了和事件相关的信息:target指明事件广播(发生)的对象;type定义了事件类型的名称――也能够认为是事件名称。在事件脚本中使用如下代码就能够对事件做出响应,其使用方法和一般的事件处理方法一致:

  
//对组件的PP事件做出响应

  on(PP)

  { trace("PP"); }

  //对组件的UU事件做出响应

  on(UU)

  { trace("UU"); }

  组件的属性的改变也能够作为事件发布,例如:

  private var Tm:String;

  //在setter中发布组件的事件

  public function set TTm(val:String)

  {

  Tm=val;

  var eventObj = new Object();

  eventObj.type = "KK";

  eventObj.target =this;

  this.dispatchEvent(eventObj);

  }


  当然,还要用Event元数据为组件声明事件。但事实上,没有Event元数据声明的事件组件同样可做出响应。Event元数据声明似乎仅仅是多了一个代码提示而已。所以元数据只是为组件提供了一个更加友好的用户接口,使研发人员更加容易得使用组件。

  在发布组件之前,还能够为组定制一个图标。图标大小需要为 18 x 18 像素,并保存为 PNG 格式。他的 Alpha 透明度必须是8位,左上角的像素需要是透明的,以支持遮罩。另外还需要在组件类文档中定义添加元数据声明:

  [IconFile("component_name.png")]

  该声明和事件声明相同,必须放在类定义之前,使该声明作用到组件类。最后将该图像保存到到FLA文档所在的同一目录中。在导出 SWC 文档时,Flash将在自动包含该图像。

  当组件定义完整,测试通过后,就能够发布组件供其他研发人员使用。Flash MX 2004 将组件导出为组件包(SWC 文档)。在发布组件时,只需向其他研发者提供 SWC文档就能够了。此文档包含和组件相关的任何代码、SWF 文档、图像和元数据,因此其他研发者能够方便地将他放到自己的 Flash研发环境中。

  这里对Flash V2组件研发做了初步的讨论。在具体的研发时,应根据组件的功能特性很细致地刻画组件的属性、事件和方法,声明元数据定义良好的用户接口。假如该组件是个可视的组件还需要为组件制作组件界面的图像元素。

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇: FLASHMX2004AS实例:《开心快乐》

下一篇: 用Flash制作一个网站流言板