簡體   English   中英

Flash CS5.5:錯誤1046。我找不到另一種方法

[英]Flash CS5.5: Error 1046. I can't find another way to do it

本質上,我有6個球,當我的showBalls()函數運行時,我希望每個球(每個都是動畫片段)運行其動畫並將其補間到正確的位置。 我希望他們能按順序做。 所以1個補間,然后下一個,再下一個,依此類推。

我使用了一堆if語句,因為switch不能正常工作,但是現在它只會不斷拋出錯誤1046並告訴我“ Event”未找到或編譯時常量。

無論如何我都看不到,這讓我很沮喪。

這是適合您的一些代碼。 這可能像地獄一樣凌亂,並且將有一種更簡單的方法來執行此操作。 但是我對AS3還是很陌生,所以看不到其他任何方式。

我試圖在這里找到答案,有人告訴我取消嵌套功能。 所以我做了。 我沒有一個巢的問題,但是我在這里嘗試了兩個,但沒有用。 所以我沒有套,但無濟於事。 如果有解決辦法,我將不勝感激。

是的,顯示的第一個球是補間,一旦補間到達最后一幀,它就會停止並顯示與之關聯的數字。 重復以下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;

}

我敢打賭這是他遇到問題的事件:

event.ENTER_FRAME

且應為Event.ENTER_FRAME

我也在您的“代碼”中找到了

function showBalls(Event:TimerEvent)

您需要將此行放在文件頂部,以便Flash知道在哪里查找事件類。

您還需要一個用於Timer的TimerEvent

import flash.events.Event;
import flash.utils.Timer;
import flash.events.TimerEvent;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM