`
Puras
  • 浏览: 109833 次
  • 性别: Icon_minigender_1
  • 来自: 哪
社区版块
存档分类
最新评论

Flex 3 cookbook-技巧1.6 在MXML中添加事件监听器

阅读更多

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'做为方法的主体.它可能看起来不同于前面的方法,但是这个方法的结果确是相同的:它监听这个事件,并执行它的代码.这种方法没有什么本质上的错误,但是相比设置一个属性来说还是相当复杂的,使用一个已定义的方法让你的代码更加容易阅读和理解.

3
0
分享到:
评论

相关推荐

    Flex 3 Cookbook简体中文版最新推荐常青

    本书的一个重点是探讨MXML和ActionScript的交互,如如何在MXML中创建组件,使用ActionScript编写类,添加事件监听器,以及在两者间编写和声明函数。例如,第1.1节可能详细介绍了如何使用Flex Builder(基于Eclipse的...

    Flex4 Cookbook

    - **1.5 在 MXML 中添加事件监听器**:教授如何使用 MXML 添加事件监听器,以便响应用户交互。 - **1.6 创建类型化向量**:介绍如何使用类型化向量存储和操作数据。 - **1.7 使用事件冒泡**:解释事件冒泡机制,...

    flex3 cookbook 英文版pdf

    - **在MXML中添加事件监听器**:教授如何在MXML中注册事件监听器,以响应用户交互或其他触发事件。 - **在ActionScript中设置MXML定义的子属性**:演示如何从ActionScript代码中访问和修改在MXML中定义的组件属性。...

    Flex中文帮助+Flex3cookbook中文版

    3. **事件处理**:在Flex中,事件是用户与应用程序交互的主要方式。通过监听和处理事件,开发者可以响应用户的操作,实现动态响应。 4. **数据绑定**:Flex支持数据绑定,使得UI元素的状态可以直接与数据模型关联,...

    Flex 3 Cookbook

    - 可以在MXML或ActionScript中添加事件监听器。 - **编写ActionScript与MXML代码的最佳实践**: - 使用清晰的命名约定。 - 将复杂的逻辑分解为函数。 - 利用Flex框架提供的API进行高效开发。 **使用Flex ...

    Flex 3 Cookbook.Flex 3 Cookbook.Flex 3 Cookbook.Flex 3 Cookbook.Flex 3 Cookbook.

    Flex 3 Cookbook 是一本专注于Adobe Flex 3技术的实用指南,旨在帮助开发者深入理解和应用Flex 3框架。Flex 3 是一个用于构建富互联网应用程序(RIA)的开发平台,它结合了MXML和ActionScript 3.0,使得UI设计和编程...

    Flex 3 Cookbook.pdf

    3. 事件监听器:如何在ActionScript和MXML中添加事件监听器,以及如何响应和处理事件。 4. ActionScript和MXML交互:如何在ActionScript中访问MXML组件的属性和方法,以及如何在MXML中调用ActionScript函数。 5. ...

    Flex 4 cookbook

    - **在MXML中添加事件监听器** (1.5): 展示了如何在Flex的标记语言MXML中添加事件监听器,以响应用户操作或其他事件触发。 - **创建类型化向量** (1.6): 讲解了如何使用Flex中的类型化向量来存储和管理数据集合,...

    Flex 3 CookBook 简体中文

    本书的第一章将介绍Flex的基础知识,包括如何使用MXML创建组件、在ActionScript中定义类、添加事件监听器以及编写混合ActionScript和MXML的代码。这些基础内容对于理解和掌握Flex开发至关重要。通过学习,开发者将...

    Flex 3 cookbook 中文版官方教程。高清带目录

    3. **添加事件监听器**:通过 ActionScript 可以为 MXML 组件添加事件监听器,从而响应用户的操作。例如,为按钮添加点击事件监听器: ```actionscript btn.addEventListener(MouseEvent.CLICK, onButtonClick); ...

    Flex+3+Cookbook+中文版

    - 在Flex中,可以通过MXML定义UI组件,并使用ActionScript来处理这些组件的行为。例如,可以使用MXML定义一个按钮,然后通过ActionScript添加事件监听器以响应用户点击。 - 示例: ```xml ``` 这段MXML代码...

    flex4 cookbook4

    ##### 3.1 MXML中的事件监听器添加 - **语法**:`(eventObject: Event)"/&gt;` - **示例**:`(event)"/&gt;` - **解释**:当用户点击按钮时,将触发`handleClick`函数,并传递一个包含事件信息的对象。 ##### 3.2 创建...

Global site tag (gtag.js) - Google Analytics