0

関数 returnToInput に「ComputeBtn.addEventListener(MouseEvent.CLICK,computeLoan)」を再度追加する必要がある理由を教えてください。そうしないと、フレーム 1 のボタン ComputeBtn が再び機能しなくなります。リスナーを削除していません。2 番目のフレームに移動して結果を表示し、最初のフレームに戻ってデータを入力します。

package {
    import flash.display.*;
    import flash.events.*;

    //THE CLASS DEFINITION
    public class carApp extends MovieClip {
        function carApp() {
            gotoAndStop(1);
            ComputeBtn.addEventListener(MouseEvent.CLICK,computeLoan);
        }


        function computeLoan(event:MouseEvent) {
                              gotoAndStop(2);
                              trace("Show result");
            StartAgainBtn.addEventListener(MouseEvent.CLICK,returnToInput);
        }


        function returnToInput(event:MouseEvent) {
            gotoAndStop(1);
            ComputeBtn.addEventListener(MouseEvent.CLICK,computeLoan);
        }

    }
}
4

1 に答える 1

1

ドキュメント クラスでは、コンストラクターは 1 回だけ実行されるため、そのリスナーは 1 回だけ追加されます。フレーム 2 に移動すると、それが削除されます。

フレーム 2 に移動するたびにコードで「StartAgainBtn」のリスナーを設定していますが、「ComputeBtn」の追加リスナーがない場合は、別のフレームに移動するたびに機能しません。あなたはリスナーを失っています。

ドキュメント クラスの代わりにタイムラインのフレーム 1 に同じコードがある場合、'ComputeBtn' 用に一度追加されたリスナーで期待どおりに動作します。これは、戻ったときにフレーム 1 のすべてのコードが再実行されるためです。

于 2012-08-22T05:22:52.600 に答える