类的活动范围已经绑定到类方法(Class scope is now bound to class methods)
(也不知标题这么翻译是否正确,应该大致是这个意思把,简单的说,这个技巧就是讲解this的引用的问题。ActionScript2中,如果位于某个对象的事件处理函数中,this就指向发出这个事件的对象,而在ActionScript3中,this始终都指向类)
ActionScript3是完全基于类的。当你创建类时,你创建的变量和函数(方法)对这个类以及实例起作用。与ActionScript2不同,方法在被调用的时候保留它所属的类的活动范围,即使这个方法被指派给另一个对象并从另一个对象调用,或者使用Function.call和 Function.apply也是如此。范例如下:
(上面一段翻译很可能不准,还是看代码和原文更好)
public class ClassScope extends Sprite {
public function ClassScope() {
traceThis(); // “Class Instance”
var obj:Object = new Object();
obj.traceThis = traceThis;
obj.traceThis(); // “Class Instance”
traceThis.call(new Sprite()); // “Class Instance”
}
public override function toString():String {
return “Class Instance”;
}
public function traceThis():void {
trace(this);
}
}
}
==================================================
这里是原文地址。
[文章热度:]
上一页:AIR里在HTML组件中显示中文
下一页:AS3图形对象和绘图API