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

Responder a