package { class MySingleton { private static var m_instance:MySingleton; public function MySingleton(lock:Lock){ // init code; } public static function instance() { if(m_instance == null){ m_instance = new MySingleton(new Lock()); } return m_instance; } } } class Lock{}