Bueno corijeme si me equivoco :
El metodo Delegate.create no devuelve una function ?
osea crea una function dentro de create y la devuelve , q esa function
contiene una referencia en la propiedad (eso me hace gracia) de la
instancia q tiene q llamar , si eliminas la instancia no se borra porq
aun queda una referencia de la intancia dentro de esa function (q
rollo patatero ma salido xD)
2° intento :
ha efectos praticos creo q es lo mismo q esto , solo q los datos estan
dentro de la function :
public static function create(target:Object,
funcion:Function):Function {
return function():Void {
funcion.apply(target);
};
}
q en nuestro ejemplo :
import mx.utils.Delegate;
class clipAnimado {
var mc: MovieClip;
function clipAnimado (target: MovieClip) {
mc = target;
}
function animar () {
mc.onEnterFrame = Delegate.create(this,animacion);
}
function animacion() {
trace(this);
}
function toString(){
return "clipAnimado";
}
}
fla :
b= new clipAnimado(mc);
b.animar()
bt.onPress = function (){
trace(delete b);
}
//devuelve todo el rato "clipAnimado"
sigue habiendo una referencia de la instancia "b" en el onEnterFrame y
no se borra hasta q no borremos la function o le pongamos un metodo
mas a nuestra clase :
function remove(){
delete mc.onEnterFrame.func;
delete mc.onEnterFrame.target;
}
pero q ventaja con un delete mc.onEnterFrame ?, pongamos q borremos
solo target o func tiene sentido ?
Q resumiendo aun no le veo ventajas ...
>From: "Joseba Alonso" <[EMAIL PROTECTED]>
>Reply-To: [email protected]
>To: <[email protected]>
>Subject: RE: [ASNativos]clase y onEnterFrame
>Date: Sat, 16 Jul 2005 21:43:28 +0200
>
>Yo aquí me gustaria poner mis 2 cents :)
>
>Jose, yo usaba antes tu sistema, hasta que vi que con el Delegate se
podia
>hacer. El problema de ese sistema es que si tengo esta funcion:
>
>function animar () {
> var aqui = this;
> mc.onEnterFrame = function(){
> this._x += aqui.vel;
> }
>}
>
>Todas las variables y parametros que definas dentro de la funcion
animar
>('aquí') no se eliminarán *nunca* de la memoria. Lo que viene a ser
una
>putada muy grande sino estas al tanto de ese dato. En general yo
evitaría
>definir una funcion dentro de otra a toda costa por ese efecto.
>
>Un saludo,
>
>
>Joseba Alonso
>www.5dms.com
>www.sidedev.net
>
>
>----------------------------------
>Lista ASNativos:[email protected]
>http://www.5dms.com/listas
>----------------------------------
----------------------------------
Lista ASNativos:[email protected]
http://www.5dms.com/listas
----------------------------------