论坛交流
首页办公自动化| 网页制作| 平面设计| 动画制作| 数据库开发| 程序设计| 全部视频教程
应用视频: 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,视频教程

有关弱引用的应用

文章类别:Flash AS | 发表日期:2009-8-12 14:36:50

有关弱引用的应用

当注册事件时把函数的引用传递给addEventListener(),如果这个函数不存在任何引用,并且使用了弱引用
垃圾回收器就会把这个函数删除,根据这句话我做了以下一个验证:
this.traceMsg=function(e:Event):void
{
       trace("事件类型="+e.type)
}

var sp:Sprite=new Sprite()
stage.addChild(sp)
sp.addEventListener(Event.ENTER_FRAME,this.traceMsg,false,0,true)//使用弱引用
my_btn.addEventListener(MouseEvent.CLICK,func)
function func(e:MouseEvent):void
{
   trace(this.traceMsg)
   sp.removeEventListener(Event.ENTER_FRAME,this.traceMsg)
   trace(this.traceMsg)
}
输出结果为:
事件类型=enterFrame
事件类型=enterFrame
事件类型=enterFrame
事件类型=enterFrame
function Function() {}
function Function() {}
第二次trace(this.traceMsg)是函数还是存在了,这跟弱引用没有太大联系,而且弱引用不配removeEventListener也可以被回收。
只是你func这个始终都要执行完了才结束,你的removeEventListener根本不可能阻断后面的trace继续进行。

 

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