Pues ahí va otra cosa pa que te mires :D. En vez de usar un onEnterFrame, usa las clases Tween Propias del flash, te ahorrarán bastante curro y evitaras tener el enterFrame siempre "corriendo", ademas de poder usar efectos en el movimiento (rebotes, etc)
Puedes vincular tu mc a una clase (esta si q debe extender de mc) y en ella le implementas los métodos de movimiento y puesta a "cero". Desde ella, registras el mc con tu controlador actual, y desde el controlador ejecutas los metodos que te interesen del tu mc. Asi tendras el code separado, lo q corresponde al mc en el mc, y el controlador por otra parte. Salu2! Fede. El 23/1/06 18:35, "Ivan" <[EMAIL PROTECTED]> escribió: > Jejeje... el Mook ya lo tengo en mi mesita de noche esperando a tener un > rato (y animo) para hincarle el diente. Ya he leido algunos capitulos, > aunque aun no he llegado a los Singletons (por cierto bastante mal traducido > en mi opinion). > Lo de los enterframe ya me funcionaba con lo que me has dicho antes, pero no > sabia si era correcto lo de definir desde una clase el enterframe del root > con _root.onEnterFrame > Es un clip (y mas cosas) que tiene que moverse constantemente con una v, > solo que la v cambia con los cursores. Al pulsar el cursor derecho aumento > la v, y al pulsar el izquierdo, disminuyo, y al soltarlas, la pongo a cero. > De ahi que el controlador quiero que lo haga todo. Me deja muy limpito el > codigo :-) > Seguire estudiando :-) > > > > ----- Original Message ----- > From: "Fede Rivas" <[EMAIL PROTECTED]> > To: <[email protected]> > Sent: Monday, January 23, 2006 5:32 PM > Subject: Re: [ASNativos] Rutas en clases > > > 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 > ---------------------------------- > > ---------------------------------- > Lista ASNativos:[email protected] > http://www.5dms.com/listas > ---------------------------------- > ---------------------------------- Lista ASNativos:[email protected] http://www.5dms.com/listas ----------------------------------

