El singleton es una clase normal, el detalle es q siempre accedes a ella a través del getInstance(), que es el único método que puede crear la instancia de la clase, pues como veras, el constructor de la clase es privado y no puedes acceder a él de otro modo. GetInstance, se encarga de controlar que sólo haya una instancia de la clase, pues si ya existe una, te devuelve unicamente una referencia a ella.
No tienes por que extender de MovieClip, ya que esta clase "no es" un movieClip. Yo por ejemplo suelo hacerlo cuando vinculo clases a un clip del escenario por ejemplo, en ese caso la clase "es" un MovieClip, y debe extender de él. Tambien puedes hacerlo por composición, pero esto es harina de otro costal y para lo que necesitas, no viene al caso. ( No se vaya a montar un hilo herencia vs composición.... xDD ) Lo del enterFrame, comentanos que necesitas hacer con él. Para ponerte con los conceptos básicos de OOP, te recomiendo el libro de cabecera de muchos de nosotros, ActionScript 2.0 de Colin Mook (Anaya), ahora además en "Spanish", abarca desde los conceptos básicos hasta el uso de patrones (Singletons, MVC's,Observer, Delegate.....). Pillalo sin dudarlo :D ( Anaya ya me pasa a mi luego la comision xDDDDDD ) Salu2!! Fede. El 23/1/06 14:02, "Ivan" <[EMAIL PROTECTED]> escribió: > Fantastico!! es justo lo que queria > no entiendo muy bien por qué funciona, pues es casi igual que una clase > "normal", pero pienso trastear en casa sobre el tema. > Ya puestos, tambien queria que detectase un enterFrame y me surgen un par de > dudas: > Funciona sin extender de la clase MovieClip ¿como es eso?¿no se supone que > si uso metodos de MovieClip tengo que heredar de él? > Y para hacerlo pongo > _root.onEnterFrame=miEnterFrame; > ¿es eso correcto o puedo quitar el _root de alguna manera? Molaria un > listener de enterframe, pero no ta :-( > Muchas gracias. > PD: Gracias por tu respuesta tambien Miguel Angel, la guardo para otra vez. > > > ----- Original Message ----- > From: "Fede Rivas" <[EMAIL PROTECTED]> > To: <[email protected]> > Sent: Monday, January 23, 2006 12:50 PM > Subject: Re: [ASNativos] Rutas en clases > > > Aquí la llevas Singletonizada : > > <code> > > class Controlador { > private static var myControlador:Controlador = null; > private var keyListener:Object = new Object(); > private static var dA:Number = 10; > > private function Controlador() { > } > > public static function getInstance():Controlador { > if (myControlador == null) { > myControlador = new Controlador(); > } > return myControlador; > } > > public function Init() { > keyListener.onKeyDown = teclaPulsada; > Key.addListener(keyListener); > } > > private function teclaPulsada() { > trace(dA); > } > } > > </code> > > En cualquier parte donde quieras acceder al Singleton : > <code> > > import Controlador; > Controlador.getInstance().Init(); > > </code> > > No tienes xq extender de MovieClip si no lo necesitas realmente. Si solo > quieres "controlar" usa el Singleton "a pelo". Las variables de clase, sin > son intrínsecas a ella, declaralas siempre "static", y normalmente se usan > en modo "private" pues la usaras en el ámbito de tu propia clase. > > Salu2!! > > Fede. > > El 23/1/06 12:33, "Ivan" <[EMAIL PROTECTED]> escribió: > >> Que buena pinta tiene eso del Singleton. Conocia el concepto, pero no lo >> habia hecho nunca. Estoy mirando info en San Google, y si tengo dudas os >> consulto. Gracias. >> Pero supongo que no va a mejorar el comportamiento de mis variables, pues >> al >> final sigue siendo una clase ¿no? >> Las variables las tengo asi mas o menos >> >> class Controlador extends MovieClip { >> var keyListener:Object = new Object(); >> var dA:Number = 10; >> >> function Controlador() { >> Init(); >> } >> >> function Init() { >> keyListener.onKeyDown = teclaPulsada; >> Key.addListener(keyListener); >> } >> >> function teclaPulsada() { >> trace(dA) // Devuelve undefined >> trade(_root.Control.dA) // Devuelve 10 >> } >> } >> >> >> >> ----- Original Message ----- >> From: "Fede Rivas" <[EMAIL PROTECTED]> >> To: <[email protected]> >> Sent: Monday, January 23, 2006 12:12 PM >> Subject: Re: [ASNativos] Rutas en clases >> >> >> Buenassss. Mi consejo es, que si tu clase es un controlador al que quieres >> acceder desde cualquier parte de tu aplicación, la conviertas directamente >> en un Singleton, es muchíiiisimo más comodo, ademas, seguro que solo >> quieres >> tener un único controlador..... >> >> Por otro lado, evita siempre que puedas usar referencias tipo _root.... >> >> En cuanto a las variables, donde las tienes declaradas, dentro de una >> funcion de la clase ?? >> >> 1Salu2 >> >> Fede. >> >> >> El 23/1/06 11:20, "Ivan" <[EMAIL PROTECTED]> escribió: >> >>> Hola chicos/as >>> estoy tratando de hacer una clase que controle los eventos de raton y >>> enterframe para un juego, pero me estoy encontrando con problemas >>> constantes >>> de rutas en las variables, debe ser que no lo hago bien. >>> La clase se llama Control y esta instanciada en una peli sin mas. >>> >>> var Control:Controlador=new Controlador(); >>> >>> Dentro tiene unas variables, por ejemplo >>> >>> var keyListener:Object=new Object(); >>> var dA:Number=0; >>> >>> y una funcion llamada teclaPulsada. >>> >>> function teclaPulsada(){ >>> trace(dA); >>> } >>> >>> Al inicializar la clase, en un Init(), inicio el listener >>> >>> keyListener.onKeyDown=teclaPulsada; >>> Key.addListener(keyListener) >>> >>> Tras mucho mirar, he visto que no funciona bien porque en teclaPulsada no >>> le >>> llega dA salvo que ponga la ruta absuluta de la clase como >>> _root.Control.dA y >>> no se si eso esta bien. >>> Cuando le pongo un trace(this) dentro de teclaPulsada, veo que this es la >>> propia funcion (lo cual parece logico), pero yo quiero poder acceder a >>> las >>> variables guardadas en la clase. >>> Cuando he hecho esto mismo en una clase vinculada con un clip del >>> escenario, >>> no he tenido ningun problema, pero ahora me esta machacando esta >>> tonteria. >>> >>> La pregunta un poco mas concreta seria :-) >>> >>> ¿como referenciar variables internas de una clase desde una funcion de la >>> propia clase de forma relativa, no absoluta? >>> Gracias de antemano.---------------------------------- >>> Lista ASNativos:[email protected] >>> http://www.5dms.com/listas >>> ---------------------------------- >>> >> >> >> ---------------------------------- >> Lista ASNativos:[email protected] >> http://www.5dms.com/listas >> ---------------------------------- >> >> ---------------------------------- >> Lista ASNativos:[email protected] >> http://www.5dms.com/listas >> ---------------------------------- >> > > > ---------------------------------- > Lista ASNativos:[email protected] > http://www.5dms.com/listas > ---------------------------------- > > ---------------------------------- > Lista ASNativos:[email protected] > http://www.5dms.com/listas > ---------------------------------- > ---------------------------------- Lista ASNativos:[email protected] http://www.5dms.com/listas ----------------------------------

