как сопоставить объявление типа функции as3 с разными вызовами? - PullRequest
0 голосов
/ 13 декабря 2010
private function playSound():void 
{ 
_soundChannel = _soundObj.play(); 
_soundChannel.addEventListener(Event.SOUND_COMPLETE, nextTrack);
} 
<s:Button width="35" label=">>" click="nextTrack();"/> 

Предполагая, что функция nextSound () выглядит так же, как playSound, по типу ... Нажатие кнопки работает нормально, но прослушиватель событий не будет вызывать функцию, поскольку она отправляет аргумент, которого функция не ожидает.Я могу изменить функцию nextTrack на evt: Event, но тогда кнопка отправляет недостаточно аргументов, и я не могу найти ничего, чтобы напечатать ее, чтобы это работало.Я могу сделать типизированную функцию для вызова нетипизированной функции nextTrack из прослушивателя событий

public function callnextsong(evt:Event):void{
                nextTrack();
            }

Но я чувствую, что, вероятно, есть менее обходной способ выполнить это!

1 Ответ

1 голос
/ 13 декабря 2010

Использовать параметр по умолчанию:

public function nextTrack(evt:Event = null):void {

Затем его можно вызвать с или без вызывающего абонента, предоставляющего параметр.

...