如果你能熟练使用Flash MX 2004组件,相信你对事件监听对象模型会很熟悉;如果你也知道mx.events.EventDispatcher 类的使用方法,那么这篇文章将会非常适合你。
有了mx.events.EventDispatcher 类我们就可以将事件监听对象模型在Flash开发的每一个地方发光发热。使用它的好处是什么呢?就我目前所知,你能更好的控制你的程序的核心逻辑,让你不再被复杂的逻辑处理搞得头晕脑胀。下面以一个简单的实例来解释怎样使用Flash事件监听对象模型开发程序。
请先
[url=http://www.flashshe.com/blog/upload/eventmodel/eventmodel.rar]
下载范例文件
[/url]
,解压缩后使用Flash MX 2004专业版打开,然后粗略看一下文件结构。
About屏幕和 Contac屏幕初始是不可见的,可以在“属性面板”上的“参数”选项卡将 visible属性设为false。
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;
本文转自:http://www.5uflash.com/flashjiaocheng/Flashyingyongkaifa/1365.html