`
gdljg0460
  • 浏览: 42650 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Flex学习笔记——关于Flex里的事件

    博客分类:
  • flex
阅读更多

事件是Flex重要的部分,对于事件的学习也是Flex学习中重要的环节
1,简单的事件派发
这里先新建一个项目,再新建一个Component名字为EventImage,这个组件EventImage的mxml代码如下:

 

<?xml version="1.0" encoding="utf-8"?>
<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml">
 
 <mx:Script>
  <![CDATA[   
   private function complete() : void
   {
    this.dispatchEvent( new Event(Event.COMPLETE ));
   }
  ]]>
 </mx:Script>
 <mx:Image id="image" complete="complete()" />
</mx:TitleWindow>

 

这里我将事件的类型直接用 flash.vents.Event.COMPLETE。
再看主程序的代码:

 

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
  fontSize="12"  xmlns:local="*"  creationComplete="init()">
<mx:Script>
 <![CDATA[
  private function init () : void
  {
   myImage.addEventListener(Event.COMPLETE,completeHandler);
   myImage.image.source = '1.jpg';
  }
  private function completeHandler( e : Event ) : void
  {
   trace('图片加载完成');
  } 
 ]]>
</mx:Script>

<local:EventImage id="myImage" />
</mx:Application>

 

使用Event元标签可以直接在组件的mxml代码里定义事件,如上<local:EventImage  complete="completeHandler(event)"  />
注意[Event(name="complete",type="flash.events.Event")]里边的name指的是 this.dispatchEvent( new Event(Event.COMPLETE ))语句里的Event.COMPLETE的值,type指的是事件类型。
如果不想用flash的Event类,可以自定义一个事件类,请继承Event类。
如果想让一个类具有派发事件的能力,请继承EventDispatcher类。
如果直接在as类中使用Event标签,直接在类名前添加[Event(name="complete",type="flash.events.Event")]即可。
上面的描述中请区分Event元标签和Event类,虽然名称一样但是意义就差很远了。


3,自定义触发器将事件和效果关联起来

首先新建一个类EffectTitleWindow继承 TitleWindow 代码如下:

 

package
{
 import flash.events.Event;
 import flash.events.MouseEvent; 
 import mx.containers.TitleWindow;
 
 [Event(name="hideWin", type="flash.events.Event")]
 [Event(name="showWin", type="flash.events.Event")]
 
 [Effect(name="hideWinEffect",event="hideWin")]
 [Effect(name="showWinEffect",event="showWin")]
 
 public class EffectTitleWindow extends TitleWindow
 {
  public function EffectTitleWindow()
  {
   super();
   this.addEventListener(MouseEvent.CLICK, clickHandler);
  }
  
  private var ck : Boolean = true;
  private function clickHandler( e : MouseEvent ) : void
  {
   if( ck )
   {
    this.dispatchEvent( new Event("hideWin"));
   }
   else
   {
    this.dispatchEvent( new Event("showWin") );
   }
   ck = !ck;
  }
 }
}

 

 

然后在主程序中输入以下代码:

<mx:Fade id="hide" duration="500" alphaFrom="1" alphaTo="0" />
<mx:Fade id="show" duration="500" alphaFrom="0" alphaTo="1" />
<local:EffectTitleWindow 
  hideWinEffect="{hide}"  
  showWinEffect="{show}"  
  width="200" height="200"/>

 

 

 

 

 

当图片加载完成的时候的会输出 '图片加载完成'的字符串。当程序初始化的时候 首先给myImage添加了事件监听,监听类型为Event.COMPLETE的事件。
当myImage中的image加载图片完成时,会派发一个类型为Event.COMPLETE的事件。换句话说直接调用了主程序的函数completeHandler。

 

2,使用Event元标签:

稍作上面的代码的修改,便可了解Event元标签
EventImage:

 

<?xml version="1.0" encoding="utf-8"?>
<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml">
 <mx:Metadata>
  [Event(name="complete",type="flash.events.Event")]//Event元标签的写法
 </mx:Metadata>
 <mx:Script>
  <![CDATA[   
   private function complete() : void
   {
    this.dispatchEvent( new Event(Event.COMPLETE ));
   }
  ]]>
 </mx:Script>
 <mx:Image source="1.jpg"  complete="complete()" />
</mx:TitleWindow>
  

 

主程序:

 

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
  fontSize="12"  xmlns:local="*" >
<mx:Script>
 <![CDATA[  
  private function completeHandler( e : Event ) : void
  {
   trace('图片加载完成');
  } 
 ]]>
</mx:Script>
<local:EventImage  complete="completeHandler(event)"  />
</mx:Application>

 

 

分享到:
评论

相关推荐

    Flex学习笔记Flex学习笔记Flex学习笔记

    Flex是一种用于创建富互联网应用(RIA)的技术,由Adobe公司开发。Flex 3 SDK是其核心部分,包含用于构建和编译Flex应用程序的工具和库...通过深入学习和实践,开发者可以充分利用Flex的优势来创建复杂的网络应用程序。

    flex学习笔记 flex学习总结 flex学习教程

    本教程是作者精心编写的Flex学习资料,适合初学者入门,通过图文并茂的方式,帮助读者快速掌握Flex的基本概念和核心技能。 1. **Flex基础**:Flex提供了MXML和ActionScript两种编程方式。MXML是一种声明式语言,...

    FLEX学习笔记

    《FLEX学习笔记》 FLEX,全称为Flex Builder,是由Adobe公司开发的一款基于MXML和ActionScript的开源框架,用于构建富互联网应用程序(RIA)。它允许开发者创建具有交互性、响应性和丰富用户体验的Web应用。FLEX的...

    Flex学习笔记.rar

    本压缩包“Flex学习笔记.rar”显然是一份针对初学者的教程资料,旨在帮助新接触Flex的开发者快速上手。 在“FlexBeginner.pdf”这份文档中,你可以期待找到以下关键知识点: 1. **Flex概述**:介绍Flex技术的基本...

    FLEX入门篇——日期的格式化

    本文将围绕“FLEX入门篇——日期的格式化”这一主题,深入探讨如何在Flex中处理和格式化日期。日期格式化在任何应用程序中都是常见的需求,尤其是在展示或存储用户友好的时间信息时。 首先,我们要了解Flex中处理...

    flex事件flex事件flex事件flex事件

    "flex事件"这个概念可能指的是与Flex布局相关的JavaScript事件或者是在Flex容器中发生的交互事件。然而,由于提供的信息较少,无法明确具体是指哪些特定的事件。下面,我将详细介绍Flex布局的基础知识以及可能与之...

    Flex学习笔记(flex必知必会).doc

    Flex学习笔记(flex必知必会).docFlex学习笔记(flex必知必会).doc

    Flex学习笔记1

    Flex学习笔记1 - 容器布局对象状态的切换和数据绑定 在 Flex 应用程序中,容器布局对象状态的切换是非常常见的需求。例如,在购物车应用程序中,我们可能需要在不同的状态之间切换,例如从商品浏览状态到购物车状态...

    Flex学习笔记

    这篇“Flex学习笔记”可能是作者在深入研究Flex技术过程中整理的心得体会和实践案例,结合了《Flex3权威指南》这本书的内容。 在Flex中,ActionScript是核心编程语言,它是基于ECMAScript的一个版本,专门针对富...

    Flex学习笔记.doc

    Flex学习笔记概述 Flex是一种由Adobe开发的企业级富互联网应用(RIA)的表示层解决方案,其主要目的是提供高度交互和动态的用户体验。Flex的核心在于它的编程语言MXML和ActionScript(AS),这两种语言结合在一起,...

    ArcGIS Flex 例子——源码(强烈推荐)

    **ArcGIS Flex 示例详解——源码深度解析** ArcGIS Flex 是 Esri 公司提供的一款基于 Adobe Flex 技术的 GIS 开发框架,它允许开发者创建丰富的、交互式的地图应用程序,用于网页上展示地理信息。这个压缩包包含的...

    flex学习笔记,自己学习的时候写的

    flex学习笔记,刚刚入门的可以看一下,有什么问题可以和我联系,谢谢

    创建第一个Flex应用——设计模式

    创建第一个Flex应用——设计模式创建第一个Flex应用——设计模式创建第一个Flex应用——设计模式

    创建第一个Flex应用——编码模式

    创建第一个Flex应用——编码模式创建第一个Flex应用——编码模式创建第一个Flex应用——编码模式

    Flex学习笔记-由浅入深

    Flex是Adobe公司推出的一种用于构建富互联网...随着对Flex的深入学习,开发者将掌握更多高级特性,如数据绑定、动画效果、组件自定义以及与后端服务器的深度集成等,从而能够创建出更复杂、功能丰富的富互联网应用。

    flex调用swf——swf可以转成具体的对象,而非MovieClip

    在项目结构方面,`.actionScriptProperties`、`.flexProperties`和`.project`是Flex Builder或Flash Builder的项目配置文件,它们存储关于项目的元数据,如编译选项、库路径等。`src`目录通常包含源代码文件,`libs`...

    flex actionscript学习笔记

    Flex ActionScript 学习笔记是关于使用Adobe Flex技术并结合ActionScript 3.0进行开发的知识总结。ActionScript 3.0是随着Flash CS3一起推出的一种强大的编程语言,相较于之前的ActionScript版本,它有着显著的提升...

Global site tag (gtag.js) - Google Analytics