0
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();
            }

しかし、私はおそらくそれを達成するためのより遠回りな方法があるように感じます!

4

1 に答える 1

1

デフォルトのパラメータを使用します。

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

次に、呼び出し元がパラメーターを指定するかどうかに関係なく呼び出すことができます。

于 2010-12-12T21:12:43.980 に答える