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)
分享到:
相关推荐
### Flex AS3 元数据标签综合解析 #### 一、元数据标签概述 在Flex与AS3(ActionScript 3)开发中,元数据标签(Metadata Tags)是一种重要的语法结构,用于向编译器提供有关类或成员的额外信息。这些标签能够帮助...
标签“源码”和“工具”暗示了这篇博客可能涉及Flex框架的源代码分析,以及它作为开发工具的角色。Flex SDK是开放源码的,允许开发者深入理解其工作原理,自定义组件,或者扩展其功能。同时,Flex作为工具,提供了...
### flex 学习资料汇总知识点解析 #### 一、Flex与ActionScript基础知识 - **Flex简介**:Flex是一个开源框架,用于构建高质量的客户端应用程序,这些应用程序能够跨浏览器、桌面和操作系统运行。Flex的核心特性...
《我的第一个Flex项目》 Flex是一种用于构建富互联网应用程序(RIA)的技术,它基于ActionScript编程语言和Flash Player运行环境。本项目旨在介绍如何创建一个简单的Flex应用,以帮助初学者快速入门。在这个过程中...
在`<object>`标签内添加`<param name="wmode" value="transparent" />`,目的是使Flex应用支持透明的右键菜单。请注意,这个`wmode`参数可能需要在模板的三个不同位置分别添加,以确保它在所有情况下都能正常工作。 ...
- 定义事件名称和类型:首先在自定义组件中使用元数据标签`[Event]`定义事件的名称和类型。 - 实例化事件对象:接着创建该事件类型的实例。 - 派发事件:使用`dispatchEvent`方法将事件发送出去。 - 处理事件:...
注意,使用`@Embed`标签时,需要确保你的FlashPaper SWF文件已经被包含在编译项目中。 5. **加载并显示**:在Flex应用运行时,SWFLoader会自动加载指定的SWF文件并显示在屏幕上。你可能需要监听加载事件以了解加载...
tabNav.addEventListener(mx.events.FlexEvent.TAB_CHANGED, tabNav_tabChangedHandler); } private function tabNav_tabChangedHandler(event:mx.events.FlexEvent):void { // 在这里处理页面切换逻辑 } ``...
private function onInit(event:FlexEvent):void { trace("CustomPanel[ Init ]"); // 在这里访问和使用o对象,因为初始化已完成 // ... } ``` 另一种方法是确保在`createChildren()`之前对`o`对象进行赋值,...
注意,这种方法不支持所有HTML和JavaScript功能,因为Flex的`Loader`只解析基本的HTML标签。 在提供的压缩包文件“HTMLInFlex”中,可能包含了使用Flex 3加载HTML页面的示例代码或者资源。这些示例可能包括如何...
不过,可以通过监听`FlexEvent.LOAD`事件来了解页面是否成功加载,还可以监听`flash.events.Event.COMPLETE`事件来捕获加载完成的信号。 8. **安全注意事项** 由于同源策略的限制,`iframe`加载的网页内容通常只能...
这里的`source`属性用于指定图片路径,可以是本地文件或网络URL,`@Embed`元标签用于嵌入资源到SWF文件中。 为了实现放大和缩小功能,我们需要两个按钮,通常标记为“+”和“-”。我们可以使用`mx:Button`组件创建...
这可以通过监听`FlexEvent.LANGUAGE_CHANGE`事件来实现。 5. **ActionScript中的国际化**:在ActionScript代码中,我们可以使用`ResourceBundle.getBundle()`方法加载资源文件,然后通过`ResourceBundle.getString...
在Flex开发中,自定义组件和事件通讯是构建复杂应用程序的关键技术。本示例通过一个简单的用户登录场景,深入解析了如何实现组件间的有效通信。下面将详细解释Flex自定义组件、事件处理以及它们在实际应用中的作用。...
Flex是一种开源的、基于ActionScript的编程框架,主要用于构建富互联网应用程序(Rich Internet Applications, RIA)。它由Adobe公司开发,允许开发者创建交互性强、功能丰富的Web应用。Flex的应用主要集中在用户...
Flex支持数据绑定,允许视图组件(如标签)直接与数据模型关联。当模型数据发生变化时,视图会自动更新。例如: ```xml ``` 这里的`data`是模型对象,`name`是其属性,标签将显示`name`的值。 七、Flex与服务器...
标签“源码”和“工具”暗示了文章可能包含实际的代码示例和可能使用的工具或库。在Flex中,我们可以使用`flash.media.Sound`类来加载和播放音频。以下是一段基本的代码片段,展示了如何加载和播放WAV文件: ```...
后台执行相应的Java方法后,结果会被回传到Flex客户端的`result`事件处理函数,例如`transferRemoteMethodResult(event)`。 总的来说,搭建Flex与Java的开发环境涉及多个步骤,包括环境配置、配置文件编写以及IDE中...