چطور میتونم وقتی یک گوش کننده را صدا می کنم بتونه یک تابع را در یک کلاس دیگر اجرا کنه

سلام
از دوستان لطفا کمک کنند این کد را برام تکمیل کنند. قبلا دوستان جوابهایی به من دادند برای مشکلم ولی درست متوجه نشدم.
من در یک کلاس دکمه ای را کلیک می کنم ولی میخواهم به طور مثال رویداد درون تابع در یک کلاس دیگر اتفاق بیفتد. انگار من رویداد درون تابع را در کلاس دیگری فراخوانی می کنم. لطفا کدهامو تغییر بدین تا ببینم چطوری باید بنویسم.
چطور میتونم وقتی یک گوش کننده را صدا می کنم بتونه یک تابع را در یک کلاس دیگر اجرا کنه؟



[CPPS] // کلاس فرعی import flash.events.MouseEvent;

close_btn.addEventListener(MouseEvent.CLICK,onClose_btn_CLICK);

// کلاس اصلی
private function onClose_btn_CLICK(event:MouseEvent){
fscommand("quit");
}


[/CPPS]
 

myfirst

Member
حالت اول:
کلاس اصلی
PHP:
package 
{
    import flash.events.MouseEvent;
    public class A 
    {
        public static function onClose_btn_CLICK(e:MouseEvent) {
                trace("salam");
        }
        public function A() 
        {
        
        }
        
    }
کلاس فرعی
PHP:
package 
{
    import flash.events.MouseEvent;
    import A;
    public class B 
    {
        
        public function B() 
        {
            btn.addEventListener(MouseEvent.CLICK , A.onClose_btn_CLICK); 
        }
        
    }


}





}
 

myfirst

Member
در حالت دوم هم میتونید function رو public تعریف کنید. از کلاستون یه نمونه بسازید و از function استفاده کنید.
 
ممنونم من این روش را تا حالا ندیدم و فکر می کنم معمول نیست. البته بگذریم که اجرا هم نشد. یک چیزایی در مورد ثبت رویداد مثل dispatchEvent شنیدم. اونو می خام ساده یاد بگیرم که اصولش چیه. انجوری فکر می کنم که انگار من در یک کلاس دیگه رویدادی مثل event را ثبت می کنم و یک گوش کننده از جنس اون در یک کلاس دیگه اونو گوش میکنه و اجرا میکنه. در مورد اون اطلاعات عملی میخام.
 

myfirst

Member
من این روش را تا حالا ندیدم و فکر می کنم معمول نیست
معمول نیست یعنی چی؟؟؟ این استفاده از حالت static توی کلاسه. روش دوم هم رو که توضیح دادم.

البته بگذریم که اجرا هم نشد.

معلومه که اجرا نمیشه!!! توی کلاس B دکمه (btn) رو پیدا نمیکنه. باید بهش مقدار بدید.
 

جدیدترین ارسال ها

بالا