MovieClip.destructor() :: método genérico destructor para MovieClips

Como ActionScript no tiene la funcionalidad de llamar a un método destructor automáticamente cuando un objecto es borrado, se puede aprovechar un método de la clase MovieClip y simular esa misma funcionalidad para clases que extiendan MovieClip o MovieClips mismos.
El método que vamos a utilizar es MovieClip.onUnload() y lo que hace como bien dice el nombre es ejecutarse cuando la instancia de MovieClip se elimina, ya sea mediante:
- removeMovieClip().
- cambiando de un frame donde está el MClip a otro donde ya no está.
- sobreescribiendo un Mclip con otro en el mismo nivel.
Para poder hacer algo genérico que no tengamos que escribir para cada instancia, podemos plantear una manera de trabajar.
Primero escribiremos este sencillo prototipo:

Actionscript:
  1. MovieClip.prototype.onUnload = function ()
  2. {
  3.     this.destructor();
  4. };

Y a continuación, para cada MovieClip del que no queramos preocuparnos al ser destruido, escribiremos una función como esta:

Actionscript:
  1. mi_movieclip.destructor = function ()
  2. {
  3.     trace ("destructor de " + this);
  4.     /* código que se tenga que ejecutar al ser borrado.
  5.     Por ej. eliminar los listeners asociados al objeto */
  6. };

Es algo muy sencillo y muy útil.

Comments

Comments are closed.