ActionScript 3 полностью базируется на классах. Создавая классы, вы создаете переменные и функции (методы) которые связаны с экземпляром класса. В отличие от ActionScript 2 методы в ActionScript 3 сохраняют область видимости их класса, даже если вызываются из другого объекта, или через Function.call и Function.apply. Например:
Код:
package {
import flash.display.Sprite;
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);
}
}
}