0

すべてのアイテムの処理が完了したらすぐに、インデックスを最初のインデックスに戻す必要があります。このコードは機能していないようです。誰かがこれを修正する方法を教えてもらえますか? なぜこうなった?

私が持っている1つの予感は、それが問題を引き起こしている可能性があることbuttonArray.lengthと等しくないからです。arrayPositionしかし、私は手動で 3 を入れてみました(buttonArray.length-1)。それでもうまくいきませんでした。

buttonArray.push (square,triangle,circle,hexagon);

    function clickon(clickTarget:MouseEvent){
        if (clickTarget.target == buttonArray[arrayPosition]){
        trace ("correct");
        trace (buttonArray.length);
        trace (arrayPosition);

        if (buttonArray[arrayPosition]== buttonArray.length)
        {
            arrayPosition = 0;
            trace ("this is working");
        }
        else
        {
            arrayPosition++;
        }
        // inside if loop end
        }
        else
        {
            trace ("not correct");
        }
    }
4

3 に答える 3

0

「arrayPosition」を 0 から buttonArray.length までループさせる 1 つの方法は次のとおりです。

arrayPosition++
arrayPosition = arrayPosition % buttonArray.length;

ループの例:

var buttonArray:Array = new Array(14); // array is 14 elements long

var arrayPosition:int = 0;

for(var counter:int = 0; counter < 100; counter++){
    arrayPosition++
    arrayPosition = arrayPosition % buttonArray.length;
    trace(arrayPosition); // goes from 0 to 13, then back to 0 and repeats
}
于 2013-03-16T03:12:30.723 に答える