Singleton classes are very useful. So I wanted to show a simple sample of a Singleton class. I like to use these as models to store data in one location that multiple parts of your application can access. Singleton classes in ActionScript 3 for the most part are just like they are in other OOP languages. There is one minor difference. Since you can’t make a constructor private you have to add a few lines of code in the constructor. Here is a sample:
public class Singleton { private static var _instance:Singleton = new Singleton(); public function Singleton() { if(_instance != null) { throw new Error("Instantiation failed"); } } public static function getInstance():Singleton { return _instance; } }
That is my preferred way to do it for models that you know are going to be instantiated. Then you just add public variables and you have a model. Generally when I’m using models I always plan to instantiate them, but if you are not sure if you are going to instantiate the class you may want to do it like this:
public class Singleton { private static var _instance:Singleton; public function Singleton() { if(_instance != null) { throw new Error("Instantiation failed"); } } public static function getInstance():Singleton { if(_instance == null) { _instance = new Singleton(); } return _instance; } }