Classes as dynamic objects
Dumping nonsense variables to any AS3 Class....How classes can act as a dynamic global class object to store any variables you wish....without having to instantiate 'em.
♥0 |
Line 36 |
Modified 2014-05-06 17:32:53 |
MIT License
archived:2017-03-20 03:21:45
ActionScript3 source code
/**
* Copyright Glidias ( http://wonderfl.net/user/Glidias )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/ysHZ
*/
package {
import flash.display.Sprite;
import flash.display.DisplayObject;
import flash.text.TextField;
public class ClassesAreDynamicObjects extends Sprite {
private static var PRIVATE_VAR:Number = 999;
public function ClassesAreDynamicObjects() {
var field:TextField = new TextField();
field.autoSize = "left";
addChild(field);
TheUltimateStaticSingletonDynamicObject["myProp"] = 131313;
Sprite["MyIdioticProperty"] = 44234;
DisplayObject["aabbcc"] = 13;
ClassesAreDynamicObjects["abc"]= 111;
field.text = "Classes are dynamic objects? " + Sprite["MyIdioticProperty"] + ", "+DisplayObject["aabbcc"]+ ", "+ClassesAreDynamicObjects["abc"];
var anonymous:* = ClassesAreDynamicObjects;
anonymous["PRIVATE_VAR"] = 123; // it seems the compiler doesn't treat anonymous as really anonmous under this scope, writing to my own private namespace
field.appendText(",\n"+ClassesAreDynamicObjects["PRIVATE_VAR"]+", "+PRIVATE_VAR + "<- LOl. what the heck. I replaced my own private static var PRIVATE_VAR");
//
AClassOutsidePackage["DONT_TOUCH_ME"] = 123;
field.appendText(",\n"+AClassOutsidePackage["DONT_TOUCH_ME"]+", " + (new AClassOutsidePackage()).dontTouchMe +"<- Ok, it's differnet now for DONT_TOUCH_ME");
field.appendText("\n\nClasses are intrinsically dynamic objects on public namespace. \nTheir instances aren't, unless 'dynamic' keyword is used. ");
}
}
}
class AClassOutsidePackage {
private static var DONT_TOUCH_ME:Number = 999;
public var dontTouchMe:Number;
public function AClassOutsidePackage() {
dontTouchMe = DONT_TOUCH_ME;
}
}
class TheUltimateStaticSingletonDynamicObject {
public function TheUltimateStaticSingletonDynamicObject() {
throw new Error("I cannot be instantiated!");
}
}