One of the most promising guy I’m pleased to know, Davide ‘Folletto’ Casali, has just updated his domain and his blog, to intenseminimalism.com. To describe what he’s into he uses a nice formula: Hybrid Interaction Designer = Design × Psychology × Technology / Simplicity × Complexity.
His work is really inspiring: simplicity and minimalism together are really a great tools to lay down and explain complex thoughts.
Actionscript 3.0 instead, being a more serious language, defines the basic class as sealed. That means that you can’t add any property on a object. You have to extends that class, and adding public properties.
publicclass MyClass extendsMovieClip{ public thePropertyILikeWithAStrangeName:String publicfunction MyClass(){ super(); } }
That class is sealed. You can’t
var foo:MyClass = new MyClass();
foo.anotherProperty = 42;
The dynamic keyword, permits to ‘unseal’ a class, giving back the possibility to add any property on runtime.
publicdynamicclass MyClass extendsMovieClip{ public thePropertyILikeWithAStrangeName:String publicfunction MyClass(){ super(); } }
Now you can:
var foo:MyClass = new MyClass();
foo.anotherProperty = 42;
There are speed and cleaness drawbacks on using dynamic classes. The rule is that if you use it, you should be able to seriously motivate it.
Note that there are few dynamic classes in the default Actionscript framework; the most known is of course, Object .
Sometime is more useful to have a random number in a different range, let’s say between 15 and 45, instead of 0 and 1.
public static function randNumber(max:Number = 1,min:Number = 0):Number{ returnMath.random()*(max-min)+min; }
Random int
and what if we don’t need decimals? Round’em!
public static function randInt(max:Number = 1,min:Number = 0):int{ returnMath.round(Math.random()*(max-min)+min); }
Random boolean
True or false? Flip a coin.
public static function bool():Boolean{ return(Math.round(Math.random()) == 0); }
Random sign
-1 or 1; Useful when you have to random select random rotation verse, for example, -1*45 or 1*45, rotates counterclockwise or clockwise.
public static function sign():Number{ return(Math.round(Math.random()) == 0):-1:1; }
Random color
Really useful when drawing debug shapes on screen..
public static functioncolor():uint{ returnMath.random()* 0xFFFFFF; }
Random point
Inside an area. I like to use the flash.geom.Rectangle struct to describe an area, more than using 4 parameters (Flash api are quite inconsistent about this choice)
public static function point(area:Rectangle):Point{ returnnewPoint(randInt(area.x, area.x+ area.width), randInt(area.y, area.y+ area.height)); }