Clase singleton
Código ActionScript :
package { import p2p.Connection; public class Singleton { private static var _instancia:Singleton=null; private var _conn:Connection=null; public function Singleton(e:SingletonEnforcer) { } public function getInstace (pconn:Connection=null):Singleton{ if (_instancia==null){ _conn=pconn; _instancia=new Singleton(new SingletonEnforcer()) } return _instancia; } public function nuevoPersonaje (user:String, equipo:int, tipo:int):void{ var msg:Object = {type:"nuevoPersonaje"}; msg.user=user; msg.equipo=equipo; msg.tipo=tipo; _conn.postMessage(msg); } public function aparecePersonaje (user:String, dondeAparece:int):void{ var msg:Object = {type:"aparecePersonaje"}; msg.user=user; msg.dondeAparece=dondeAparece; _conn.postMessage(msg); } public function muere (user:String):void{ var msg:Object = {type:"muere"}; msg.user=user; _conn.postMessage(msg); } public function empiezaMovimiento (user:String, direccion:int):void{ var msg:Object = {type:"empiezaMovimiento"}; msg.user=user; msg.direccion=direccion; _conn.postMessage(msg); } public function terminaMovimiento (user:String, direccion:int):void{ var msg:Object = {type:"terminaMovimiento"}; msg.user=user; msg.direccion=direccion; _conn.postMessage(msg); } public function dondeMira (user:String, direccion:int):void{ var msg:Object = {type:"dondeMira"}; msg.user=user; msg.direccion=direccion; _conn.postMessage(msg); } public function sync (user:String, x:int, y:int):void{ var msg:Object = {type:"sync"}; msg.user=user; msg.x=x; msg.y=y; _conn.postMessage(msg); } } } class SingletonEnforcer{ }
Codigo del main
Código ActionScript :
s.getInstace(_conn);
Error #1009: No se puede acceder a una propiedad o a un método de una referencia a un objeto nulo.
La propiedad que aparece como nula es s.