همونطور که می دونید یک آبجکت ( نمونه ای از یک کلاس ) در ساختار برنامه نویسی شیء گرا دارای property , event & method هست . متدها که در واقع همون توابع ما هستند و پروپرتی ها هم می تونند یکسری متغیر private در داخل کلاس اصلی باشند ، اما وقتی شما می خواهید برای کلاس خود event تعریف کنید باید از eventDispatcher استفاده کنید .
به مثال زیر دقت کن : ( سعی کردم به ساده ترین شکل ممکن بنویسم )
یک کلاس داریم به نام eventDispatcherTest که کدها زیر رو توش نوشتیم :
PHP:
package
{
import flash.display.MovieClip
import flash.events.*;
public class eventDispatcherTest extends MovieClip
{
public function eventDispatcherTest()
{
trace ("constructor Made !");
}
public function SomeMethod()
{
dispatchEvent(new Event("OnMethodRun"));
}
}
}
حالا توی یک فایل فلش و توی فریم اول این کدها رو نوشتیم :
PHP:
import flash.events.Event;
var boject:eventDispatcherTest = new eventDispatcherTest();
boject.addEventListener("OnMethodRun", test);
function test(e:Event)
{
trace("Custom Event Run");
}
boject.SomeMethod();
در کلاس eventDispatcherTest یک رویداد تعریف کردم به اسم OnMethodRun زمانی که متد SomeMethod فراخوانی می شه ، دیسپچ می شه .
بعد در اون فایل فلش یک آبجکت از کلاس eventDispatcherTest گرفتم و متد SomeMethod رو فراخوانی کردم و همونطور که خواهید دید تابع test فراخوانی می شه و عبارت Custom Event Run نمایش داده می شه .
مثال پیوست شده .
موفق باشید .