`
iamzealotwang
  • 浏览: 121932 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Flex Event标签

    博客分类:
  • Flex
阅读更多

Using the Event metadata tag
You use the [Event] metadata tag to define events dispatched by a component so that the Flex compiler can recognize
them as MXML tag attributes in an MXML file. You add the [Event] metadata tag in one of the following locations:
ActionScript components   Above the class definition, but within the package definition, so that the events are bound
to the class and not a particular member of the class.
MXML components   In the <mx:Metadata> tag of an MXML file.

 

Demo:

定义MyEvent extends Event

ActionScript 3语言:
package event
{
  import flash.events.Event;

  public class MyEvent extends Event
  {
    public static const EVENT_TEST:String="EventTest";

    public function MyEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false)
    {
      super(type, bubbles, cancelable);
    }
  }
}

 

定义MyButton extends Button

MXML语言:
<?xml version="1.0" encoding="utf-8"?>
<s:Button xmlns:fx="http://ns.adobe.com/mxml/2009"
      xmlns:s="library://ns.adobe.com/flex/spark"
      xmlns:mx="library://ns.adobe.com/flex/halo"
      click="dispatchEvent(new MyEvent(MyEvent.EVENT_TEST));">
  <fx:Script>
    <![CDATA[
      import event.MyEvent;
    ]]>
  </fx:Script>
  <fx:Metadata>
      <!--在Metadata标签下定义Event编译期间检查-->
        [Event(name ="EventTest",type ="event.MyEvent")]
  </fx:Metadata>
</s:Button>

 

Main App

MXML语言:
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
         xmlns:s="library://ns.adobe.com/flex/spark"
         xmlns:mx="library://ns.adobe.com/flex/halo"
         xmlns:my="button.*"
         minWidth="1024"
         minHeight="768">
  <fx:Script>
    <![CDATA[
      import event.MyEvent;
      /**
       * 定义Event的函数监听方式
       * 在my2 的 EventTest="handleEvent(event)" 相当于对于该Event注册了一个Listiner
       * 消息监听函数为handleEvent(event)
       */
      private function handleEvent(e:MyEvent):void{ trace(e); }
    ]]>
  </fx:Script>
  <!--可以直接定义EventTest="myTa.text='got Event';" 及在Event触发式执行myTa.text='got Event';-->
  <my:MyButton id="my1" EventTest="myTa.text='got Event';" x="208" y="213"></my:MyButton>
  <my:MyButton id="my2" EventTest="handleEvent(event)" x="209" y="258"></my:MyButton>
  <s:TextArea id="myTa" x="141" y="55"/>
</s:Application>

 

解释:

 

1· 在MyButton中将[Event]标签放入Metadata标签中,则告诉编译器该空间会产生该种Event,

   如果此时dispatchEvent出去的Event不是该种类型 则在编译期间及会报错

2· 在主类中<my:MyButton id="my1" EventTest="myTa.text='got Event';" x="208" y="213"></my:MyButton>

   由于EventTest已经在Metadata做了标记,即可使用代码提示功能找到相应的Event

   EventTest="myTa.text='got Event';"  表示为EventTest 这个Event注册一个监听者,监听到信息后处理方式为

   myTa.text='got Event' , same as the EventTest="handleEvent(event)


 

分享到:
评论
2 楼 iamzealotwang 2009-12-01  
http://fayaa.com/code/new/
1 楼 starone 2009-11-27  
弱弱问下,代码片段是用什么工具生成的?很不错

相关推荐

    flex as3 元数据标签综合

    ### Flex AS3 元数据标签综合解析 #### 一、元数据标签概述 在Flex与AS3(ActionScript 3)开发中,元数据标签(Metadata Tags)是一种重要的语法结构,用于向编译器提供有关类或成员的额外信息。这些标签能够帮助...

    flex

    标签“源码”和“工具”暗示了这篇博客可能涉及Flex框架的源代码分析,以及它作为开发工具的角色。Flex SDK是开放源码的,允许开发者深入理解其工作原理,自定义组件,或者扩展其功能。同时,Flex作为工具,提供了...

    flex 学习资料汇总

    ### flex 学习资料汇总知识点解析 #### 一、Flex与ActionScript基础知识 - **Flex简介**:Flex是一个开源框架,用于构建高质量的客户端应用程序,这些应用程序能够跨浏览器、桌面和操作系统运行。Flex的核心特性...

    我的第一个flex项目

    《我的第一个Flex项目》 Flex是一种用于构建富互联网应用程序(RIA)的技术,它基于ActionScript编程语言和Flash Player运行环境。本项目旨在介绍如何创建一个简单的Flex应用,以帮助初学者快速入门。在这个过程中...

    Flex添加右键菜单

    在`&lt;object&gt;`标签内添加`&lt;param name="wmode" value="transparent" /&gt;`,目的是使Flex应用支持透明的右键菜单。请注意,这个`wmode`参数可能需要在模板的三个不同位置分别添加,以确保它在所有情况下都能正常工作。 ...

    Flex基础培训

    - 定义事件名称和类型:首先在自定义组件中使用元数据标签`[Event]`定义事件的名称和类型。 - 实例化事件对象:接着创建该事件类型的实例。 - 派发事件:使用`dispatchEvent`方法将事件发送出去。 - 处理事件:...

    flex加载flashpaper示例

    注意,使用`@Embed`标签时,需要确保你的FlashPaper SWF文件已经被包含在编译项目中。 5. **加载并显示**:在Flex应用运行时,SWFLoader会自动加载指定的SWF文件并显示在屏幕上。你可能需要监听加载事件以了解加载...

    Flex页面跳转.txt

    tabNav.addEventListener(mx.events.FlexEvent.TAB_CHANGED, tabNav_tabChangedHandler); } private function tabNav_tabChangedHandler(event:mx.events.FlexEvent):void { // 在这里处理页面切换逻辑 } ``...

    关于Flex 初始化的research

    private function onInit(event:FlexEvent):void { trace("CustomPanel[ Init ]"); // 在这里访问和使用o对象,因为初始化已完成 // ... } ``` 另一种方法是确保在`createChildren()`之前对`o`对象进行赋值,...

    flex加载html页面

    注意,这种方法不支持所有HTML和JavaScript功能,因为Flex的`Loader`只解析基本的HTML标签。 在提供的压缩包文件“HTMLInFlex”中,可能包含了使用Flex 3加载HTML页面的示例代码或者资源。这些示例可能包括如何...

    flex中使用iframe

    不过,可以通过监听`FlexEvent.LOAD`事件来了解页面是否成功加载,还可以监听`flash.events.Event.COMPLETE`事件来捕获加载完成的信号。 8. **安全注意事项** 由于同源策略的限制,`iframe`加载的网页内容通常只能...

    Flex 图片放大缩小

    这里的`source`属性用于指定图片路径,可以是本地文件或网络URL,`@Embed`元标签用于嵌入资源到SWF文件中。 为了实现放大和缩小功能,我们需要两个按钮,通常标记为“+”和“-”。我们可以使用`mx:Button`组件创建...

    Flex实现国际化样例

    这可以通过监听`FlexEvent.LANGUAGE_CHANGE`事件来实现。 5. **ActionScript中的国际化**:在ActionScript代码中,我们可以使用`ResourceBundle.getBundle()`方法加载资源文件,然后通过`ResourceBundle.getString...

    Flex各自定义组件事件通讯例子

    在Flex开发中,自定义组件和事件通讯是构建复杂应用程序的关键技术。本示例通过一个简单的用户登录场景,深入解析了如何实现组件间的有效通信。下面将详细解释Flex自定义组件、事件处理以及它们在实际应用中的作用。...

    Flex代码

    Flex是一种开源的、基于ActionScript的编程框架,主要用于构建富互联网应用程序(Rich Internet Applications, RIA)。它由Adobe公司开发,允许开发者创建交互性强、功能丰富的Web应用。Flex的应用主要集中在用户...

    flex中文帮助 flex入门教程

    Flex支持数据绑定,允许视图组件(如标签)直接与数据模型关联。当模型数据发生变化时,视图会自动更新。例如: ```xml ``` 这里的`data`是模型对象,`name`是其属性,标签将显示`name`的值。 七、Flex与服务器...

    flex播放wav的声音

    标签“源码”和“工具”暗示了文章可能包含实际的代码示例和可能使用的工具或库。在Flex中,我们可以使用`flash.media.Sound`类来加载和播放音频。以下是一段基本的代码片段,展示了如何加载和播放WAV文件: ```...

    Flex开发手册 环境搭建手册

    后台执行相应的Java方法后,结果会被回传到Flex客户端的`result`事件处理函数,例如`transferRemoteMethodResult(event)`。 总的来说,搭建Flex与Java的开发环境涉及多个步骤,包括环境配置、配置文件编写以及IDE中...

Global site tag (gtag.js) - Google Analytics