论坛交流
首页办公自动化| 网页制作| 平面设计| 动画制作| 数据库开发| 程序设计| 全部视频教程
应用视频: Windows | Word2007 | Excel2007 | PowerPoint2007 | Dreamweaver 8 | Fireworks 8 | Flash 8 | Photoshop cs | CorelDraw 12
编程视频: C语言视频教程 | HTML | Div+Css布局 | Javascript | Access数据库 | Asp | Sql Server数据库Asp.net  | Flash AS
当前位置 > 文字教程 > Flash AS编程教程
Tag:2.0,3.0菜鸟,游戏,,cs,技巧,源码,,文本,文字,函数,音乐,随机,拖拽,asp,access,xml,mc,视频教程

教你如何替换AS3.0的事件

文章类别:Flash AS编程 | 发表日期:2008-10-6 17:43:35


AS3的事件主要是使用了EventDispatcher来实现,大大优化了程序结构,然而编码却有些麻烦,如添加事件,广播事件,移除事件等. 而且在某些异步操作个人感觉不是很方便.于是我想到了一个办法采用函数指针的方式[我学C留下的"后遗症"],在适当的时候直引用这个函数执行相应的方法. 具体代码如下:
1. 先建一个类Base.as,它主要作广播事件.

Base.as代码
  1. package  
  2. {  
  3.     public class Base  
  4.     {  
  5.         // 中转调用.  
  6.         public var loadFinished:Function;  
  7.         public function Base():void{  
  8.             //...  
  9.         }  
  10.           
  11.         /** 
  12.          * 异步处理方面的逻辑.... 
  13.          */  
  14.         public function load():void{  
  15.             Dispatcher();  
  16.         }  
  17.           
  18.         /** 
  19.          * 如果完成了,广播事件. 
  20.          */  
  21.         private function Dispatcher():void{  
  22.             try{  
  23.                 loadFinished();  
  24.             }catch(e:Error){  
  25.                 trace("引用的函数不存在.");  
  26.             };  
  27.         }  
  28.     }  
  29. }  


2. 再建一个类Demo.as,它使用Base.as中的方法和逻辑,Base执行完成任务之后它会将处理流程递给Demo.as

Demo.as代码
  1. package {  
  2.     import flash.display.Sprite;  
  3.   
  4.     public class Demo extends Sprite  
  5.     {  
  6.         public function Demo()  
  7.         {  
  8.             var demo:Base=new Base();  
  9.             demo.loadFinished=hello;  
  10.             demo.load();  
  11.         }  
  12.           
  13.         /** 
  14.          * 流程执行到此. 
  15.          */  
  16.         private function hello():void{  
  17.             trace("Hello World");  
  18.         }  
  19.     }  
  20. }  



这种方法是纯C中的函数指针类似的应用, 在AS3中可以避免事件注册,侦听,移除等.但是它却无法避免引起程序逻辑处理的复杂性. 所以建议在程序设计中还是采用AS3的事件机制, 但是这种方法在一些特殊情况下使用起来简洁方便.

视频教程列表
文章教程搜索
 
Flash AS推荐教程
Flash AS热门教程
看全部视频教程
购买方式/价格
购买视频教程: 咨询客服
tel:15972130058