• 【设为首页】
  • 【收藏闪客居】
当前位置:主页 > FLASH AS 编程 > AS基础篇 > FLASH类 > 文章内容
  • 使用Flash事件监听对象模型开发程序

  • 来源:老舍的FLASH四合院 作者:老舍的FLASH四合院 2007-11-08 【 】 TAG:

如果你能熟练使用Flash MX 2004组件,相信你对事件监听对象模型会很熟悉;如果你也知道mx.events.EventDispatcher 类的使用方法,那么这篇文章将会非常适合你。

有了mx.events.EventDispatcher 类我们就可以将事件监听对象模型在Flash开发的每一个地方发光发热。使用它的好处是什么呢?就我目前所知,你能更好的控制你的程序的核心逻辑,让你不再被复杂的逻辑处理搞得头晕脑胀。下面以一个简单的实例来解释怎样使用Flash事件监听对象模型开发程序。

请先下载范例文件,解压缩后使用Flash MX 2004专业版打开,然后粗略看一下文件结构。

屏幕结构图

About屏幕和 Contac屏幕初始是不可见的,可以在“属性面板”上的“参数”选项卡将 visible属性设为false。

设置visible属性

Nav屏幕放置了三个按钮,点击按钮将会导航到不同屏幕显示不同信息。



Nav屏幕关联的类是 com.flashshe.Nav 如下图:

屏幕和类关联

可以在 com/flashshe目录找到这个文件,打开后可以看到三个按钮被点击后会广播一个自定义事件 "navClicked"

private function onWelcomeBtnClicked(evt){
    dispatchEvent({type:"navClicked",detail:"welcome"});
  }
  
  private function onAboutBtnClicked(evt){
    dispatchEvent({type:"navClicked",detail:"about"});
  }
  
  private function onContactBtnClicked(evt){
    dispatchEvent({type:"navClicked",detail:"contact"});
  }


同时我加上了另外一个参数“ detail”,这个参数的作用会在后面的讲解中说明。

所有的逻辑处理放在了HandlerView屏幕。HandlerView屏幕关联的类是 com.flashshe.HandlerView,可以在 com/flashshe目录找到这个文件,打开后可以看到如下代码:

private function onLoad(){
    navScreen.addEventListener("navClicked",this);
  };


上面的代码将HandlerView屏幕注册为navClicked事件的监听器,即是说当我们点击了Nav 屏幕的任何一个导航按钮后,Nav 屏幕广播一个navClicked事件,然后这个事件被HandlerView屏幕捕捉,接着函数navClicked()被执行。

private function navClicked(evt){
    _global.visibleScreen.visible = false;
    
    if(evt.detail == "welcome") {
      welcomeScreen.visible = true;
      _global.visibleScreen = welcomeScreen;
    }
    if(evt.detail == "about") {
      aboutScreen.visible = true;
      _global.visibleScreen = aboutScreen;
    }
    if(evt.detail == "contact") {
      contactScreen.visible = true;
      _global.visibleScreen = contactScreen;
    }
  }

看了上面的代码,你该明白事件对象的detail参数的作用了吧。
当然了为了讲解的方便我把这个范例做的很简单,所以看完这篇文章后你可能觉得使用 Flash 事件监听对象模型开发程序并不没有给你带来什么便利,如果你真这样想的话你可以将这个例子发散开,想想一个更复杂的程序,可能你会有更深的理解。

如果你能够理解我的这篇文章并且尝试后能成功的话你可以下载 Ariaware RIA Platform,利用它你能够开发大型的可维护的多人合作的Flash应用程序。

考虑到Ariaware RIA Platform原作者提供的范例使用了remoting,mySQL和Java技术,而很多人对这些并不懂,所以我会在以后的空余时间里做一个更简单的Ariaware RIA Platform范例提供给大家。



上一篇:FLASH AS 类 :LoadCursor类   下一篇:web传值获取类(as2.0)
  • 用户名:新注册) 密码: 匿名评论
  • 评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规)
推荐内容

Copyright © 2006-2008 flashas.net All Rights Reserved.
网站内容咨询: admin#flashas.net (#为@) 联系QQ:40777822 浙ICP备06033001号
(本网站最佳浏览解析度为1024*768, 建议使用IE 6.0或以上版本浏览器。)