How do you get an instance of the actionscript class Class
from an instance of that class?
In Python, this would be x.__class__
; in Java, x.getClass();
.
I'm aware that certain terrible hacks exist to do this, but I'm looking for a built-in language facility, or at least a library routine built on something reliable.
A function is called a method if you define it as part of a class definition or attach it to an instance of an object. A function is called a function closure if it is defined in any other way. Functions have always been extremely important in ActionScript.
Classes are external ActionScript files that define objects; they are stored and organized in a specific directory structure in the Flash CS3 program directory (Figure 4.1). To use them in your code, you have to import them.
Creating a variable is called variable declaration. ActionScript 3.0 requires the use of a keyword— var —to signal that you are declaring a variable.
You can get it through the 'constructor' property of the base Object class. i.e.:
var myClass:Class = Object(myObj).constructor;
Any reason you couldn't do this?
var s:Sprite = new flash.display.Sprite(); var className:String = flash.utils.getQualifiedClassName( s ); var myClass:Class = flash.utils.getDefinitionByName( className ) as Class; trace(className ); // flash.display::Sprite trace(myClass); // [class Sprite] var s2 = new myClass(); trace(s2); // [object Sprite]
I don't know a way to avoid round-tripping through a String, but it should work well enough.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With