[Flex] Redispatch event

@arzeknight มาถามเกี่ยวกับ event ว่าทำไม redispatch แล้ว object มันไม่เหมือนต้นฉบับ โค้ดก็ง่ายๆ

package {

  import ...

  public class Controller extends EventDispatcher {

    private var anotherController:AnotherController = new AnotherController()

    public Controller() {
      anotherController.addEventListener(CustomEvent.SAMPLE, dispatchEvent(event))
    }

  }

}

จาก Class ด้านบนถ้ามี Controller อื่นมา handle CustomEvent.SAMPLE ต่อ event ที่ได้ไม่จำเป็นต้องเป็น Class เดียวกับที่ dispatch มาตั้งแต่ต้น เพราะสิ่งที่ Flex ทำถ้าหากมีการ redispatch คือสั่ง clone event object นั้น เพราะฉะนั้นหากใช้ redispatch บ่อยๆ + custom event อย่าลืม implements clone ก่อนที่จะงงว่าทำไมได้ Object นี้ออกมาแทน

About llun

Just a programmer

, ,