现有影片剪辑中随机出现的错误#1010

时间:2013-07-03 12:42:37

标签: actionscript-3 flash runtime-error undefined

我遇到一个非常奇怪的问题,一直给我错误#1010一个术语未定义且在随机场合没有属性

这就是我正在做的,一个简单的填字游戏:

Interface

基本上每个白色磁贴都是一个名为tile_[line ID]_[tile ID]的动画片段,其中一个输入文本框名为word。然后是一个名为solution的数组,其中包含每个图块的正确字母,如下所示:

var solution:Array = new Array(new Array("E","T","R","O"), 
                               new Array("P","T","R","I","F","I","C","A","D","O","R","A"),
                               new Array("A","M","B","O","R"), 
                               etc... );

每个瓷砖只接受1个字母:

  

this [“tile_”+ i +“_”+ j] .word.maxChars = 1;

并且附加了Event.CHANGE事件侦听器,因此每当更改文本时,事件都会使用tile的名称将文本值存储在另一个名为answer的数组中。
该数组之前已初始化为:

var answer:Array = new Array();

for(var i = 0; i < solution.length; i++){
    answer.push(new Array());
    for(var j = 0; j < solution[i].length; j++){
        answer[i].push("");
    }
}

那部分完美无缺。每个磁贴都可以在数组中找到它的位置并正确地将其值写入其中。
问题是当我们点击提交按钮并尝试根据答案是对还是错来更改文本颜色。

for(var i = 0; i < answer.length; i++){
    for(var j = 0; j < answer[i].length; j++){
        if(answer[i][j] == solution[i][j]){
            this["tile_" + i + "_" + j].word.textColor = 0x00FF00;
        }else{
            this["tile_" + i + "_" + j].word.textColor = 0xFF0000;
        }
    }
}

在大多数情况下,代码运行完美,所有图块中的文本框都会正确地改变颜色。
但是,如果我只编写As,例如,代码停在tile_5_0并说它未定义。如果它只是Os,那么同样会发生在tile_3_0。

它不能是缺失的磁贴,因为否则我将无法在第一个位置添加Event.CHANGE,否则在其他情况下无法正常工作。而且它停止在不同的点工作也没什么意义。

0 个答案:

没有答案