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
----------------------------------