Untitled DocumentHola a [EMAIL PROTECTED]:

Estoy haciendo una clasecilla para tener controlados todos los eventos
onEnterFrame que pueda tener desperdigados por ah�, y b�sicamente  se
compone de 3 m�todos, 2 p�blicos y uno privado: (y s�, ya lo se, es as1.
cuando me rule lo paso a as2)

function FrameServer() {
 this.metodos = new Array(); // aqu� se almacenan los nombres de los m�todos
que se quieran ejecutar
}
FrameServer.prototype = new MovieClip(); // extendemos
FrameServer.prototype.addFrameLoop = function(metodo) { // a�adimos un nuevo
m�todo y ejecutamos el onEnterFrame
 this.metodos.push(metodo);
 if (this.metodos.length!=0){
  this.onEnterFrame = this.__FrameLoop;
 }
};
FrameServer.prototype.removeFrameLoop = function(metodo) { // para borrar un
metodo en ejecucion
 for (var i = 0; i<this.metodos.length; i++) {
  if (this.metodos[i] == metodo) {
   this.metodos.splice(1, i);
  }
 }
if (this.metodos.length == 0) {
  delete this.onEnterFrame;
 }
};
FrameServer.prototype.__FrameLoop = function() {
 for (var i = 0; i<this.metodos.length; i++) {
  this.metodos[i](); // ejecutamos los m�todos que esten en el array
 }
};

---------------------------------------------------------------------------

Luego el uso ser�a sencillo, por ejemplo:
function prueba() {
 this.init();
 super();
}
prueba.prototype = new FrameServer();
prueba.prototype.init = function() {
 var mc = _root.attachMovie("testSymbol", "testmc", 100); // para pruebas,
luego pongo el registerclass
 mc.onRollOver = this.resaltar;
 mc.onRollOut = this.restaurar;
};
prueba.prototype.resaltar = function() {
 this.addFrameLoop("bucle");
};
prueba.prototype.restaurar = function() {
 this.removeFrameLoop("bucle");
};
prueba.prototype.bucle = function() {
 trace("pulsando");
};

Pero l�gicamente no me va :(
Joseba, refr�scame las ideas plis ;)



<!-------------------------------
Lista ASNativos:
subscripciones/desubscripciones
http://www.sidedev.net/asnativos
-------------------------------->

Responder a