В основном у меня есть эта функция:
private function clickURL(url:String):Function{
trace("Function has been instantiated");
return function(event:MouseEvent):void{
trace("Function has been run");
ExternalNavigation.newBrowserWindow(url);
}
}
Цель этой функции - взять URL-адрес, поместить URL-адрес в другую функцию и передать эту функцию обратно, чтобы я мог просто набрать:
urlButton.addEventListener(MouseEvent.CLICK, clickURL("http://test.com"));
Функция clickURL вернет функцию с параметром события обратно в функцию addEventListener. Таким образом, я указываю, какой URL будет открываться при нажатии кнопки.
Вот вывод того, что происходит, когда вы используете его:
//Function has been instantiated
Функция internatl никогда не запускается при нажатии кнопки. Так что я решил попробовать это с фальшивым событием, чтобы убедиться, что я ничего не пропустил.
var clickTest:Function = clickURL("http://stackoverflow.com");
clickTest(new MouseEvent(MouseEvent.CLICK));
Вот вывод:
//Function has been instantiated
//Function has been run
Как видите, обе функции запущены. Кто-нибудь понял, почему это работает, а не с addEventListener?
С уважением
Z