2016-10-13 00:16:48 点击量:11 标签: 收藏本文
[AS3]as3删除对象与删除侦听监听
- package com{
- import flash.display.MovieClip;
- import flash.events.Event;
- dynamic public class removeCon extends MovieClip{
- private var lis:Array;//定义一数组保存侦听
- public function removeCon() {
- lis = new Array();
- addEventListener(Event.REMOVED,remove);//侦听删除事件
- }
- //重写addEventListener,在增加侦听的时候..把相应的事件保存到数组
- override public function addEventListener(type:String, listener:Function,
useCapture:Boolean = false, priority:int = 0,
useWeakReference:Boolean = false):void {- lis.push([type,listener,useCapture]);
- super.addEventListener(type,listener,useCapture,priority,useWeakReference);
- }
- //cuplayer.com"自c我毁灭"的方法
- private function remove(e:Event):void {
- if (e.currentTarget!=e.target) {
- return;
- }
- stop();
- //cuplayer.com删除子对象
- trace("删除前有子对象",numChildren);
- while (numChildren > 0) {
- removeChildAt(0);
- }
- trace("删除后有子对象",numChildren);
- //cuplayer.com删除动态属性
- for (var k:String in this) {
- trace("删除属性",k);
- delete this[k];
- }
- //cuplayer.com删除侦听
- trace("num=" + lis.length);
- for (var i:uint = 0; i < lis.length; i++) {
- trace("删除Listener", lis[i]);
- removeEventListener(lis[i][0],lis[i][1],lis[i][2]);
- }
- lis=null;
- }
- }
- }
使用方法:
- import removeCon;
- var mc:MovieClip = new removeCon();
- mc.addEventListener(Event.ADDED,aaaa);
- mc.addEventListener(Event.ADDED_TO_STAGE,aaaa);
- mc.addEventListener(Event.ENTER_FRAME,aaaa);
- mc.addEventListener(MouseEvent.CLICK,aaaa);
- mc.addEventListener(MouseEvent.MOUSE_DOWN,aaaa);
- mc.a="http://www.cuplayer.com";
- mc.b="我是动态属性2";
- mc.name="我是MC";
- addChild(mc);
- function aaaa(e:Event) {
- }
- removeChild(mc);
- mc=null;
我们是一家提供综合软件外包与弱电工程服务的技术公司。
业务涵盖定制软件、管理系统、网站、小程序、APP、系统集成、网络布线、监控安防、门禁、机房建设及长期技术维护。
公司地址:湖北省宜昌市伍家岗区东站二路6号三峡(宜昌)大数据产业园海洋馆二楼A203室