·您当前的位置:首页 > 技术教程 > AS2与AS3技术 >

[AS3]as3删除对象与删除侦听监听

时间:2013-07-29 10:52CuPlayer.com
[AS3]as3删除对象与删除侦听监听

[AS3]as3删除对象与删除侦听监听

  1. package com{ 
  2.     import flash.display.MovieClip; 
  3.     import flash.events.Event; 
  4.     dynamic public class removeCon extends MovieClip{ 
  5.         private var lis:Array;//定义一数组保存侦听 
  6.         public function removeCon() { 
  7.             lis = new Array(); 
  8.             addEventListener(Event.REMOVED,remove);//侦听删除事件 
  9.         } 
  10.   
  11.         //重写addEventListener,在增加侦听的时候..把相应的事件保存到数组 
  12.         override public function addEventListener(type:String, listener:Function, 
    useCapture:Boolean = falsepriority:int = 0,
     
    useWeakReference:Boolean = false):void { 
  13.             lis.push([type,listener,useCapture]); 
  14.             super.addEventListener(type,listener,useCapture,priority,useWeakReference); 
  15.         } 
  16.   
  17.         //cuplayer.com"自c我毁灭"的方法 
  18.         private function remove(e:Event):void { 
  19.             if (e.currentTarget!=e.target) { 
  20.                 return; 
  21.             } 
  22.             stop(); 
  23.             //cuplayer.com删除子对象 
  24.             trace("删除前有子对象",numChildren); 
  25.             while (numChildren > 0) { 
  26.                 removeChildAt(0); 
  27.             } 
  28.             trace("删除后有子对象",numChildren); 
  29.             //cuplayer.com删除动态属性 
  30.             for (var k:String in this) { 
  31.                 trace("删除属性",k); 
  32.                 delete this[k]; 
  33.             } 
  34.   
  35.             //cuplayer.com删除侦听 
  36.             trace("num=" + lis.length); 
  37.             for (var i:uint = 0; i < lis.length; i++) { 
  38.                 trace("删除Listener", lis[i]); 
  39.                 removeEventListener(lis[i][0],lis[i][1],lis[i][2]); 
  40.             } 
  41.             lis=null
  42.         } 
  43.     } 

使用方法:

  1. import removeCon; 
  2. var mc:MovieClip = new removeCon(); 
  3. mc.addEventListener(Event.ADDED,aaaa); 
  4. mc.addEventListener(Event.ADDED_TO_STAGE,aaaa); 
  5. mc.addEventListener(Event.ENTER_FRAME,aaaa); 
  6. mc.addEventListener(MouseEvent.CLICK,aaaa); 
  7. mc.addEventListener(MouseEvent.MOUSE_DOWN,aaaa); 
  8. mc.a="http://www.cuplayer.com"
  9. mc.b="我是动态属性2"
  10. mc.name="我是MC"
  11. addChild(mc); 
  12. function aaaa(e:Event) { 
  13. removeChild(mc); 
  14. mc=null

 

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器