Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. ActionScript

AS3 101: Consejo rapido - envío de eventos sin extender EventDispatcher

Read Time: 2 mins
This post is part of a series called AS3 101.
AS3 101: Events - Basix

Spanish (Español) translation by Santiago Diaz (you can also view the original English article)

Es raro, pero sucede. A veces es absolutamente necesario extender una clase, y esa clase aún no extiende EventDispatcher. Al mismo tiempo, es absolutamente necesario que tu clase sea un EventDispatcher. Dado que ActionScript 3 no permite la herencia múltiple, ¿cómo concilias esto?

En otras situaciones, tal vez te gustaría crear una clase que tenga un montón de métodos estáticos y no esté realmente destinada a ser instanciada. También te gustaría poder enviar eventos desde esta clase, pero puedes extender EventDispatcher porque eso habilita métodos de instancia, no métodos de clase.

Echemos un vistazo a cómo lograr estos objetivos.


Paso 1: cómo hacerlo

La solución en ambos casos es crear una instancia, aferrarse y usar un objeto EventDispatcher. Es decir, un nuevo objeto EventDispatcher(), no necesariamente ninguna de sus subclases. En el caso de necesitar extender algo más, también puedes hacer que tu clase implemente la interfaz IEventDispatcher.

El proceso es algo como esto:

  1. Implementa IEventDispatcher (no para la clase estática).

  2. Crea un nuevo objeto EventDispatcher y guárdalo en una propiedad.

  3. Implementa los métodos definidos por IEventDispatcher, y simplemente envuelve el método coincidente en tu instancia de EventDispatcher.


Paso 2: un EventDispatcher estático

Como referencia, implementar esto en una clase estática podría verse así:

Ten en cuenta que no hay extends ni implements, todos los miembros ahora son static y la propiedad _dispatcher ahora se crea directamente en la propiedad, en lugar de en el constructor (porque no hay constructor).


Eso es todo

Aunque es rápido de explicar, esta es definitivamente una técnica avanzada, y probablemente no la necesites si te encuentras en un punto en el que enviar sus propios eventos sigue siendo un concepto nuevo. Pero archiva esto en algún lugar de tu mente para que puedas volver a este ejemplo cuando lo necesites.

Advertisement
Did you find this post useful?
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.