Un singleton tiene utilidad cuando en toda tu película Flash sabes que
solamente va a existir una instancia de esa clase. En mi caso el ejemplo
es claro, solo voy a tener un objeto Raton, ya que solamente hay un
puntero. Otra clase singleton que tengo en mi trabajo es Navegador, que
es una clase que me controla la navegación entre varios frames
(pantallas con actividades interactivas), ya que la barra de navegación
es única para toda mi película. Así, cuando termina de resolver una
pantalla, se puede llamar a Navegador.getInstance().siguientePantalla()
por ejemplo
Lo que tienes que tener claro para elegir un singleton es si vas a poder
tener varias instancias de la misma clase coexistiendo o no.
Para los ejemplos que pones, yo no usaría un singleton para cargar
sonidos, ya que puede que te interese cargar varios al mismo tiempo
Un saludo
[EMAIL PROTECTED] escribió:
....perdonad q de tanto la brasa, pero ya q empece, a ver si soy capaz
de acabar.....
podriamos decir entonces q un singleton, es una clase, cuya utilidad
es comun para toda la aplicacion, por ejem. colorear mc, cargar
sonidos, cambiar el puntero como en tu caso, etc......????
----- Original Message ----- From: "Miguel Angel Sánchez"
<[EMAIL PROTECTED]>
To: <asnativos@5dms.com>
Sent: Friday, July 22, 2005 10:23 AM
Subject: Re: [ASNativos] salu2 [ Singleton ]
Se me olvidaba decir que ahí no están todos los métodos claro...
Miguel Angel Sánchez escribió:
Para cambiar el puntero del ratón :-P
[EMAIL PROTECTED] escribió:
pues nada muchas gracias, seguire estudiando (q veo q me hace mucha
falta), pq sigo sin saber para q vale tu clase raton ¿¿¿????
----- Original Message ----- From: "Miguel Angel Sánchez"
<[EMAIL PROTECTED]>
To: <asnativos@5dms.com>
Sent: Friday, July 22, 2005 9:01 AM
Subject: Re: [ASNativos] salu2 [ Singleton ]
Una clase singleton es una clase de la que solo tenemos una
instancia, y
provee un método para acceder a esa instancia.
Aspectos a tener en cuenta:
- El constructor es privado, no se puede usar externamente.
- La clase guarda una instancia de sí misma en una propiedad.
- La clase provee de un método estático para recuperar esa instancia.
Yo lo estoy usando para el trabajo que estoy haciendo ahora, para una
clase Raton, que me cambia el cursor por unos png que tengo en un
movieclip.
Un ejemplillo simple:
class Raton {
//variable estática privada que guarda la instancia de la clase
private static var instance:Raton = null;
private var clip:MovieClip;
//constructor privado
private function Raton() {
}
//Método público estático que devuelve la instancia de la clase
//Si no existe la crea
public static function getInstance():Raton {
if (instance==null)
instance = new Raton();
return instance;
}
public function init(target:MovieClip):Void {
clip = target;
}
}
Para acceder a sus métodos hay que recoger antes la instancia. Ej:
Raton.getInstance().init(cursores_mc);
La primera vez que llamemos a getInstance detectará que la variable de
clase instance es null, y creará la instancia de la clase. Las
siguientes llamadas a getInstance simplemente devolverán esta
instancia.
Para llamar a cualquier otro método que creáramos tendríamos que
hacerlo
haciendo una llamada previamente a getInstance.
Raton.getInstance().otroMetodo();
O crearnos un shortcut si vamos a hacer múltiples llamadas:
var raton:Raton = Raton.getInstance();
raton.init(cursores_mc);
raton.otroMetodo();
etc
Espero que te sirva de ayuda, un saludo
[EMAIL PROTECTED] escribió:
hola q tal?, alguien tiene por ahi una explicacion del uso de las
clases singleton?????, llevo un rato buscando por ahi, solo veo en
ingles, y me parece asi a priori un tema un poco
confuso........----------------------------------
Lista ASNativos:asnativos@5dms.com
http://www.5dms.com/listas
----------------------------------
----------------------------------
Lista ASNativos:asnativos@5dms.com
http://www.5dms.com/listas
----------------------------------
----------------------------------
Lista ASNativos:asnativos@5dms.com
http://www.5dms.com/listas
----------------------------------
----------------------------------
Lista ASNativos:asnativos@5dms.com
http://www.5dms.com/listas
----------------------------------
----------------------------------
Lista ASNativos:asnativos@5dms.com
http://www.5dms.com/listas
----------------------------------
----------------------------------
Lista ASNativos:asnativos@5dms.com
http://www.5dms.com/listas
----------------------------------
----------------------------------
Lista ASNativos:asnativos@5dms.com
http://www.5dms.com/listas
----------------------------------