0

它运行良好,然后通过我这个错误

1125 错误 #: 117 索引超出了 115 的范围。

它没有列出行号,但下面的函数是唯一引用长数组的地方。该错误意味着它试图在向量数组的末端之间进行访问——这应该是不可能的。

相关代码部分(其余公共功能和其他功能不包括所有工作正常)。

public class Main extends Sprite 
    {     
    internal var oneoff:Boolean = true;
    internal var kanaList:Vector.<String> = new <String>["あ/ア", "あ/ア", "え/え", "え/え", "い/イ", "い/イ", "お/オ", "お/オ", "う/ウ", "う/ウ", "う/ウ", "う/ウ", "か/カ", "か/カ", "け/ケ", "け/ケ", "き/キ", "き/キ", "く/ク", "く/ク", "こ/コ", "こ/コ", "さ/サ", "さ/サ", " し/シ", " し/シ", "す/ス", "す/ス", "そ/ソ", "そ/ソ", "す/ス", "す/ス", "た/タ", "た/タ", "て/テ", "て/テ", " ち/チ", " ち/チ", "と/ト", "と/ト", "つ/ツ", "つ/ツ", "ら/ラ", "ら/ラ", "れ/レ", "れ/レ", "り/リ", "り/リ", "ろ/ロ", "ろ/ロ", "る/ル", "る/ル", "だ/ダ", "で/デ", "じ/ジ", "ど/ド", "ず/ズ", "ざ/ザ", "ぜ/ゼ", "ぞ/ゾ", "な/ナ", "ね/ネ", "に/二", "の/ノ", "ぬ/ヌ", "じゃ/ジャ", "じゅ/ジュ", "じょ/ジョ", "ん/ン", "しゃ/シャ", "しゅ/シュ", "しょ/ショ", "や/ヤ", "ゆ/ユ", "よ/ヨ", "は/ハ", "ひ/ヒ", "ふ/フ", "へ/ヘ", "ほ/ホ", "ば/バ", "ば/バ", "ぶ/ブ", "ぶ/ブ", "び/ビ", "び/ビ", "ぼ/ボ", "ぼ/ボ", "べ/ベ", "べ/ベ", "ぱ/パ", "ぴ/ピ", "ぷ/プ", "ぺ/ペ", "ぽ/ポ", "ま/マ", "み/ミ", " む/ム", "め/メ", "も/モ", "を/ヲ", "みゃ/ミャ", "みゅ/ミャ", "みょ/ミョ", "きゃ/キャ", "きゅ/キュ", "きょ/キョ", "にゃ/ニャ", "にゅ/ニュ", "にょ/ニョ", "びゃ/びゃ", "びゅ/ビュ", "びょ/ビョ", "  ひゃ/ヒャ", "ひゅ/ヒュ", "ひょ/ヒョ", "ぴゃ/ピャ", "ぴゅ/ピュ", "ぴょ/ピョ", "っ/ッ", "っ/ッ"];
    internal var valueList:Vector.<uint>= new <uint>[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 10, 10, 5, 5, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 20, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 1, 1];
    // Lists of Kana that can be replaced in the replace mode and the substitute Kana and Values 
    internal var selectghostList:Vector.<String>=new<String>["ま/マ","む/ム","も/モ","か/カ","く/ク","こ/コ","な/ナ","ぬ/ヌ","の/ノ","ば/バ","ぶ/ブ","ぼ/ボ","は/ハ","ふ/フ","ほ/ホ","ぱ/パ","ぷ/プ","ぽ/ポ"];
    internal var selectkanaList:Vector.<String>=new <String>["みゃ/ミャ", "みゅ/ミャ", "みょ/ミョ", "きゃ/キャ", "きゅ/キュ", "きょ/キョ", "にゃ/ニャ", "にゅ/ニュ", "にょ/ニョ", "びゃ/びゃ", "びゅ/ビュ", "びょ/ビョ", "  ひゃ/ヒャ", "ひゅ/ヒュ", "ひょ/ヒョ", "ぴゃ/ピャ", "ぴゅ/ピュ", "ぴょ/ピョ"];
    internal var selectghostvalueList:Vector.<uint>=new <uint>[2, 2, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2];
    //Start list of playerHand contents as I don't know if Null is 0 
    internal var playernumber:uint;

    internal var allplayersHand:Array = [[0], [0], [0], [0],[0], [0]];      
    internal var playerRound:uint = 1;      
    internal var round:uint = 1;
    internal var aplayersHand:Array;



internal function create():void
             {         var listLength:uint;
                      var row:uint

                      listLength = kanaList.length;
                      aplayersHand = allplayersHand[playerRound];

                     for (var i:uint = (aplayersHand.length); i <= 7; i+=1)
                      {row = int(Math.random() * listLength);                      
                      trace (row);  
                      trace(i);
                      aplayersHand[i] = [0, kanaList[row], valueList[row],]
                      trace (aplayersHand);
                      trace (aplayersHand[i]);
                       kanaList.splice(row,1); 
                       valueList.splice(row,1); 
                       }    
              deal();
               }
4

1 回答 1

0

我假设它间歇性地抛出错误。我认为发生这种情况的原因是您将长数组的长度存储在 中listLength,但之后没有减少它的值

kanaList.splice(row,1); 
valueList.splice(row,1); 

这就是为什么,我认为,row价值计算如下

row = int(Math.random() * listLength);

有时会在该迭代中返回一个大于数组长度的值。

在旁注中,很高兴能够跟踪所有内容,直到您收到错误为止。此外,如果您编译 swf 的调试版本并在调试 Flash 播放器中运行它,则异常应该显示堆栈跟踪。堆栈跟踪对于跟踪此类错误非常有用。

于 2013-09-16T03:30:11.557 回答