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