时间:2010-08-13 | 栏目:图像综合 | 点击:次
Delegate(委派) 类是一个非常有用的类,由编写,它可以使组件的事件应用更容易,这个类已经包含在”Ellipsis”中,也就是flashmx2004的升级版本中,在开始之前请先去下载升级版本,升级版本中包含有Delegate类,它使FLASH更加稳定,快速,更好。
通常情况下,你可能用两种方式来指定组件的事件类型,一种是使用addEventListener :指定事件给一个对象,一种是指事件定给一个函数。
指定事件给对象:
我们可以这样
代码: |
var obj = new Object(); obj.click = function(evt) { trace(evt.target); trace(this); } myBtn.addEventListener("click",obj); |
代码: |
function myClickHander(evt){ trace(evt.target); trace(this); } myBtn.addEventListener("click",myClickHander); |
代码: |
obj = new Object(); obj.click = function(evt) { if(evt.target == 'myBtn') { trace('first button'); } if(evt.target == 'myBtn2') { trace('second button'); } } myBtn.addEventListener("click",obj); myBtn2.addEventListener("click",obj); |
代码: |
import mx.utils.Delegate; function myClickHandler(evt) { trace(evt.target); trace(this); } myBtn.addEventListener("click", Delegate.create(this,myClickHandler)); |
代码: |
static function create(obj:Object, func:Function):Function |
代码: |
import mx.utils.Delegate; var md = Delegate.create(this, someFunction); myBtn.addEventListener('click',md); //其它动作 //然后移除 myBtn.removeEventListener('click',md); |
代码: |
import mx.utils.Delegate; function xmlLoaded(success) { trace(this); trace(success); } function handleEnterFrame() { trace(this); trace(getTimer()); } var myXML = new XML(); myXML.onLoad = Delegate.create(this, xmlLoaded); myXML.load(“some.xml”); //myMc为当前帧上一个影片剪辑 myMC.onEnterFrame = Delegate.create(this, handleEnterFrame); |
代码: |
import mx.utils.Delegate; function traceThis() { trace(this); } var myInt = setInterval(Delegate.create(this, traceThis), 1000); |