resizeListener(e:Event=null)
walkietokyo の回答のように、 Event パラメータをオプションにすることは、完全に有効で、多くの場合便利なソリューションです。もう 1 つの方法は、イベントがトリガーされずに実行できるようにしたいことを別の関数に入れることです。この関数は、イベント ハンドラーや他の場所から呼び出すことができます。
たとえば、サイズ変更でやりたいことはレイアウトを再配置することであり、初期化時、ボタンのクリック時、または実際にはいつでも同じレイアウト設定を行いたいと仮定すると、次のようにすることができます。
stage.addEventListener(Event.RESIZE, resizeListener);
function resizeListener(e:Event):void {
rearrangeLayout();
}
function rearrangeLayout():void {
// The actual rearrangement goes here, instead of in resizeListener. This can be called from anywhere.
}
どちらの方法でそれを行うかは、おそらく好みの問題であるか、場合によって異なる可能性があります。実際には、どちらも正常に機能します。
イベント ハンドラーと別の関数で物事を分離する利点は、e:Event パラメーターが null かどうかを確認する必要がある状況が発生しないことです。つまり、イベントに依存するコードはイベント ハンドラーにあり、イベントに依存しないコードはより一般的な関数 (イベント ハンドラーではない) にあります。
したがって、より一般的で概略的なケースでは、構造は次のようになります。
addEventListener(Event.SOME_EVENT, eventListener);
function eventListener(e:Event):void {
// Code that needs the Event parameter goes here (if any).
// Call other function(s), for the stuff that needs to be done when the event happens.
otherFunction();
}
function otherFunction():void {
// Stuff that is not dependent on the Event object goes here, an can be called from anywhere.
}