1.6.1 问题
你需要在MXML文件中添加将监听MXML文件中分派给子节点的一些事件的事件监听器.
1.6.2
解决办法
通过给组件的事件标签提供一个方法名,可以选择是否使用事件对象.
1.6.3
讨论
每当一个动作发生,Flex组件都会触发一个事件,例如用户单击一个按钮,改变组合框中被选择的项,或是加载数据.要监听这些事件广播,只需添加一个将处理这个事件的方法的引用.例如:
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="400" height="300">
<mx:Script>
<![CDATA[
private function buttonClick():void
{
trace(" Button has been clicked ");
}
]]>
</mx:Script>
<mx:Button click="buttonClick()" label="Click Me"/>
</mx:Canvas>
添加的click="buttonClick()"只要按钮发生单击事件,就会调用buttonClick方法.
你也可以将事件对象本身传递给方法.每当组件触发一个事件,这个组件都会发送一个Event类型的对象,所有事件监听对象都可以接受.例如:
<mx:HBox xmlns:mx="http://www.adobe.com/2006/mxml" width="400" height="300">
<mx:Script>
<![CDATA[
private function buttonClick(event:Event):void
{
trace(event.target.id);
if(event.target.id == "buttonOne")
{
trace(" button one was clicked")
}
else
{
trace(" button two was clicked")
}
}
]]>
</mx:Script>
<mx:Button click="buttonClick(event)"
label="Click Me One" id="buttonOne"/>
<mx:Button click="buttonClick(event)" label="Click Me Two" id="buttonTwo"/>
</mx:HBox>
通过告诉事件监听器去监听一个类型事件的对象,你可以将事件发送给事件监听器,之后根据指定的标准用不同的方式返回给事件一个响应.在这个例子中,响应则依赖于事件在哪里引发.
在Flex中事件对象和事件分派系统是需要重点来理解的.当事件被监听时,所有的事件都包含一个使用的类型;如果是单击类型的事件,之后事件监听方法将被添加到子元素的单击事件中:
<mx:Button click="trace('I was clicked')" />
用户交互的通知,从服务器发送给应用的消息,或是通过事件发送定时器.事件对象定义了几个你可以在所有监听方法中访问的属性.如下所是:
bubbles
标识出一个事件是否是冒泡事件,更准确的说,它是否将从接收到事件的对象再次向上面的事件链传递.
cancelable
标识出事件触发的行为是否可以被阻止.
currentTarget
使用事件监听器有效的处理事件对象的对象.
eventPhase
事件流的当前阶段.
Target
事件目标,触发事件的那个对象.
Type
事件的类型.
你也可以在MXML中书写事件处理器,通过使用绑定标签{}指示出当事件被触发时需要执行花括号中的代码.例如:
<mx:Button click="{textComponent.text = 'You clicked the button'}" label="Click Me" />
<mx:Text id="textComponent" />
在它编译代码的时候,Flex编译器将创建一个方法,之后将textComponent.text = 'You clicked the
button'做为方法的主体.它可能看起来不同于前面的方法,但是这个方法的结果确是相同的:它监听这个事件,并执行它的代码.这种方法没有什么本质上的错误,但是相比设置一个属性来说还是相当复杂的,使用一个已定义的方法让你的代码更加容易阅读和理解.
分享到:
- 2008-06-23 10:48
- 浏览 3507
- 评论(0)
- 论坛回复 / 浏览 (0 / 2069)
- 查看更多
相关推荐
本书的一个重点是探讨MXML和ActionScript的交互,如如何在MXML中创建组件,使用ActionScript编写类,添加事件监听器,以及在两者间编写和声明函数。例如,第1.1节可能详细介绍了如何使用Flex Builder(基于Eclipse的...
- **1.5 在 MXML 中添加事件监听器**:教授如何使用 MXML 添加事件监听器,以便响应用户交互。 - **1.6 创建类型化向量**:介绍如何使用类型化向量存储和操作数据。 - **1.7 使用事件冒泡**:解释事件冒泡机制,...
- **在MXML中添加事件监听器**:教授如何在MXML中注册事件监听器,以响应用户交互或其他触发事件。 - **在ActionScript中设置MXML定义的子属性**:演示如何从ActionScript代码中访问和修改在MXML中定义的组件属性。...
3. **事件处理**:在Flex中,事件是用户与应用程序交互的主要方式。通过监听和处理事件,开发者可以响应用户的操作,实现动态响应。 4. **数据绑定**:Flex支持数据绑定,使得UI元素的状态可以直接与数据模型关联,...
- 可以在MXML或ActionScript中添加事件监听器。 - **编写ActionScript与MXML代码的最佳实践**: - 使用清晰的命名约定。 - 将复杂的逻辑分解为函数。 - 利用Flex框架提供的API进行高效开发。 **使用Flex ...
Flex 3 Cookbook 是一本专注于Adobe Flex 3技术的实用指南,旨在帮助开发者深入理解和应用Flex 3框架。Flex 3 是一个用于构建富互联网应用程序(RIA)的开发平台,它结合了MXML和ActionScript 3.0,使得UI设计和编程...
3. 事件监听器:如何在ActionScript和MXML中添加事件监听器,以及如何响应和处理事件。 4. ActionScript和MXML交互:如何在ActionScript中访问MXML组件的属性和方法,以及如何在MXML中调用ActionScript函数。 5. ...
- **在MXML中添加事件监听器** (1.5): 展示了如何在Flex的标记语言MXML中添加事件监听器,以响应用户操作或其他事件触发。 - **创建类型化向量** (1.6): 讲解了如何使用Flex中的类型化向量来存储和管理数据集合,...
本书的第一章将介绍Flex的基础知识,包括如何使用MXML创建组件、在ActionScript中定义类、添加事件监听器以及编写混合ActionScript和MXML的代码。这些基础内容对于理解和掌握Flex开发至关重要。通过学习,开发者将...
3. **添加事件监听器**:通过 ActionScript 可以为 MXML 组件添加事件监听器,从而响应用户的操作。例如,为按钮添加点击事件监听器: ```actionscript btn.addEventListener(MouseEvent.CLICK, onButtonClick); ...
- 在Flex中,可以通过MXML定义UI组件,并使用ActionScript来处理这些组件的行为。例如,可以使用MXML定义一个按钮,然后通过ActionScript添加事件监听器以响应用户点击。 - 示例: ```xml ``` 这段MXML代码...
##### 3.1 MXML中的事件监听器添加 - **语法**:`(eventObject: Event)"/>` - **示例**:`(event)"/>` - **解释**:当用户点击按钮时,将触发`handleClick`函数,并传递一个包含事件信息的对象。 ##### 3.2 创建...