加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Flex 理解事件流和事件冒泡

发布时间:2020-12-15 01:33:24 所属栏目:百科 来源:网络整理
导读:?? 不论何时触发事件, Flash Player 都会发布事件。如果事件目标不是屏幕上的可视元素, Flash Player 可以直接向指定目标发布事件对象,例如 Flash Player 会直接向 HTTPService 组件发布 result 事件。然而,如果是屏幕中的可视元素, Flash Player 发布

??

不论何时触发事件,Flash Player都会发布事件。如果事件目标不是屏幕上的可视元素,Flash Player可以直接向指定目标发布事件对象,例如Flash Player会直接向HTTPService组件发布result事件。然而,如果是屏幕中的可视元素,Flash Player发布事件时会让事件从最外部容器(即Application)开始向下传递到目标组件,然后回到Appliation容器。

事件流描述了事件对象如何在应用程序中进行传递。

事件流从概念上可分为3个部分:

1.????? 捕获期? 包含了从根应用程序到事件目标之间的所有容器。2.????? 目标期? 由目标节点单独构成。3.????? 冒泡期? 包含了从目标返回根应用程序过程中遇到的所有元素。

?

事件可以在子组件中触发,并且可以让其父组件收到事件。下面这段代码演示了这一点:

?

<?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/mx" minWidth="955" minHeight="600">

??? <fx:Script>

?????? <![CDATA[

?????????? import mx.controls.Alert;

?????????? protected function clickHandler(event:Event):void{

????????????? var msg:String = event.target.toString() + "clicked";?

????????????? Alert.show(msg);

?????????? }

?????? ]]>

??? </fx:Script>

??? <s:Panel id="mypanel" click="clickHandler(event)">

?????? <mx:HBox id="hbox"

????????????? ?click="clickHandler(event)">

?????????? <mx:Button id="mybutton" click="clickHandler(event)"/>

?????? </mx:HBox>

??? </s:Panel>

</s:Application>

?

若用户单击了Button,Flash Player 会向事件流中发布一个事件对象。该对象从Application开始移动,先移动到Panel,再移动到Hbox,最后到达Button.接下来事件对象开始“冒泡”,经过Hbox Panel再次回到Application.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读