1

基本的に、6 つのボールがあり、showBalls() 関数が実行されるとき、各ボール (それぞれがムービークリップ) がアニメーションを実行し、正しい場所にトゥイーンするようにします。順番にやってほしいけど。したがって、1 つのボール トゥイーン、次のボール、次のボール、というように続きます。

switch が機能しないため、一連の if ステートメントを使用しましたが、エラー 1046 がスローされ続け、「イベント」が見つからないか、コンパイル時の定数ではないことが通知されます。

とにかく周りが見えず、イライラしています。

ここに皆さんのためのコードがあります。それはおそらく地獄のように面倒で、これを行うためのはるかに簡単な方法があります. しかし、私は AS3 にかなり慣れていないので、他の方法はわかりません。

ここで答えを見つけようとしましたが、関数のネストを解除するように誰かに言われました。だから私はしました。1 つのネストでは問題はありませんでしたが、ここで 2 つ試してみましたが、うまくいきませんでした。そのため、ネストを解除しましたが、役に立ちませんでした。これを回避する方法があれば、ガイダンスに感謝します。

そうです、最初に表示されたボール、トゥイーン、トゥイーンが最終フレームに達すると停止し、それに関連付けられた番号が表示されます。次の 6 個のボールについて繰り返します。

function showNumbers()
{
    var count:int = 0;
    var showTimer:Timer = null;
    showTimer = new Timer(3125,8);
    showTimer.start();
    showTimer.addEventListener(TimerEvent.TIMER, showBalls);
    function showBalls(Event:TimerEvent)
    {
        ball1.addEventListener(Event.ENTER_FRAME, ball1stop);
        ball2.addEventListener(Event.ENTER_FRAME, ball2stop);
        ball3.addEventListener(Event.ENTER_FRAME, ball3stop);
        ball4.addEventListener(Event.ENTER_FRAME, ball4stop);
        ball5.addEventListener(Event.ENTER_FRAME, ball5stop);
        ball5.addEventListener(Event.ENTER_FRAME, ball6stop);
        bonusBall.addEventListener(Event.ENTER_FRAME, bonusBallstop);

        function ball1stop(event:Event):void
        {
            if (currentFrame == stopFrame1)
            {
                ball1.stop();
                programNumber1.text = drawnArray[0];
                ball1.removeEventListener(Event.ENTER_FRAME, ball1stop);
            }
        }

        function ball2stop(event:Event)
        {
            if (currentFrame == stopFrame2)
            {
                ball2.stop();
                programNumber2.text = drawnArray[1];
                ball2.removeEventListener(Event.ENTER_FRAME, ball2stop);
            }
        }

        function ball3stop(event:Event)
        {
            if (currentFrame == stopFrame3)
            {
                ball3.stop();
                programNumber3.text = drawnArray[2];
                ball3.removeEventListener(Event.ENTER_FRAME, ball3stop);
            }
        }

        function ball4stop(event:Event)
        {
            if (currentFrame == stopFrame4)
            {
                ball4.stop();
                programNumber4.text = drawnArray[3];
                ball4.removeEventListener(Event.ENTER_FRAME, ball4stop);
            }
        }

        function ball5stop(event:Event)
        {
            if (currentFrame == stopFrame5)
            {
                ball5.stop();
                programNumber5.text = drawnArray[4];
                ball5.removeEventListener(Event.ENTER_FRAME, ball5stop);
            }
        }

        function bonusBallstop(event:Event)
        {
            if (currentFrame == stopFrame7)
            {
                bonusBall.stop();
                programBonusNumber.text = bonusArray[0];
                bonusBall.removeEventListener(Event.ENTER_FRAME, bonusBallstop);
                showTimer.stop();
                fadeAndSort();
            }
        }
        if (count==0)
        {
            ball1.visible = true;

            ball1.play();
            var stopFrame1:int = 75;
            ball1stop();

        }
        else if (count==1)
        {
            ball2.visible = true;
            ball2.addEventListener(Event.ENTER_FRAME, ball2stop);
            ball2.play();
            var stopFrame2:int = 75;
            ball2stop();


        }
        else if (count==2)
        {
            ball3.visible = true;
            ball3.addEventListener(Event.ENTER_FRAME, ball3stop);
            ball3.play();
            var stopFrame3:int = 75;
            ball3stop();


        }
        else if (count==3)
        {
            ball4.visible = true;
            ball4.addEventListener(Event.ENTER_FRAME, ball4stop);
            ball4.play();
            var stopFrame4:int = 75;
            ball4stop();


        }
        else if (count==4)
        {
            ball5.visible = true;
            ball5.addEventListener(Event.ENTER_FRAME, ball5stop);
            ball5.play();
            var stopFrame5:int = 75;


        }
        else if (count==5)
        {
            ball6.visible = true;
            ball6.addEventListener(Event.ENTER_FRAME, ball6stop);
            ball6.play();
            var stopFrame6:int = 75;
            ball6stop();


        }
        else if (count==6)
        {
            bonusBall.visible = true;
            bonusBall.addEventListener(Event.ENTER_FRAME, bonusBallstop);
            bonusBall.play();
            var stopFrame7:int = 75;
            bonusballstop();

        }

    }

    count++;


    mainArray[0] = userNumber1.text;
    mainArray[1] = userNumber2.text;
    mainArray[2] = userNumber3.text;
    mainArray[3] = userNumber4.text;
    mainArray[4] = userNumber5.text;
    mainArray[5] = userNumber6.text;

}
4

2 に答える 2

1

これは彼が問題を抱えているイベントだと思います:

event.ENTER_FRAME

そしてあるべきですEvent.ENTER_FRAME

また、あなたの「コード」でこれを見つけました

function showBalls(Event:TimerEvent)

于 2012-11-28T14:20:30.417 に答える
0

この行をファイルの先頭に配置して、フラッシュがイベント クラスを探す場所を認識できるようにする必要があります。

Timer、TimerEvent にも 1 つ必要です。

import flash.events.Event;
import flash.utils.Timer;
import flash.events.TimerEvent;
于 2012-11-28T13:58:34.763 に答える