Código ActionScript :
package net.tmeister.utils { public dynamic class Global { private static var global : Global public static function getInstance() : Global { if ( global == null ) { global = new Global( arguments.callee ); } return global; } public function Global( caller : Function = null ) { if ( caller != Global.getInstance ) { throw new Error ("Global is a singleton class, use getInstance() instead"); } if ( Global.global != null ) { throw new Error( "Only one Global instance should be instantiated" ); } } } }
Con el siguiente método de uso:
Código ActionScript :
package { import flash.display.MovieClip; import net.tmeister.utils.Global public class Main extends MovieClip { private var global:Global; public function Main() { global = Global.getInstance(); global.stage = stage trace('global.stage' + global.stage) global.algunOtroValor = new MovieClip() trace('global.algunOtroValor ' + global.algunOtroValor) } } }
Y mi duda existencial es: ¿qué ventajas aporta tener una sola intancia frente a no tener ninguna? En este caso concreto:
Código ActionScript :
package net.juanlu.utils { public dynamic class Global { public function Global() { throw new IllegalOperationError ("Norl. "); } } }
Código ActionScript :
package { import flash.display.MovieClip; import net.juanlu.utils.Global public class Main extends MovieClip { public function Main() { Global.stage = stage trace('Global.stage' + Global.stage) Global.algunOtroValor = new MovieClip() trace('Global.algunOtroValor ' + Global.algunOtroValor) } } }