如何创建地图和密钥?

时间:2014-03-09 01:53:01

标签: actionscript-3 actionscript

我正在尝试为某些变量命名。但我收到错误TypeError:错误#1010

var squareArr:Object  = {
    b1: {
        piece: wn1_txt,
        pieceLoc: {  
            x: "47",
            y: "297"
        }
    },
    c1: {
        piece: wb1_txt,
        pieceLoc: {  
            x: "97",
            y: "297"
        }
    },
...

addChild(squareArr.b1.piece);
addChild(squareArr.c1.piece);

...
var i:int;
if ((mvB.charAt(mvB.length - 2) == "a") && (mvB.charAt(mvB.length - 1) == "1") || (mvB.charAt(mvB.length - 2) == "a") && (mvB.charAt(mvB.length - 1) == "3") || (mvB.charAt(mvB.length - 2) == "a") && (mvB.charAt(mvB.length - 1) == "5") || (mvB.charAt(mvB.length - 2) == "a") && (mvB.charAt(mvB.length - 1) == "7") || (mvB.charAt(mvB.length - 2) == "b") && (mvB.charAt(mvB.length - 1) == "2") || (mvB.charAt(mvB.length - 2) == "b") && (mvB.charAt(mvB.length - 1) == "4") || (mvB.charAt(mvB.length - 2) == "b") && (mvB.charAt(mvB.length - 1) == "6") || (mvB.charAt(mvB.length - 2) == "b") && (mvB.charAt(mvB.length - 1) == "8") || (mvB.charAt(mvB.length - 2) == "c") && (mvB.charAt(mvB.length - 1) == "1") || (mvB.charAt(mvB.length - 2) == "c") && (mvB.charAt(mvB.length - 1) == "3") || (mvB.charAt(mvB.length - 2) == "c") && (mvB.charAt(mvB.length - 1) == "5") || (mvB.charAt(mvB.length - 2) == "c") && (mvB.charAt(mvB.length - 1) == "7") || (mvB.charAt(mvB.length - 2) == "d") && (mvB.charAt(mvB.length - 1) == "2")
|| (mvB.charAt(mvB.length - 2) == "d") && (mvB.charAt(mvB.length - 1) == "4") || (mvB.charAt(mvB.length - 2) == "d") && (mvB.charAt(mvB.length - 1) == "6") || (mvB.charAt(mvB.length - 2) == "d") && (mvB.charAt(mvB.length - 1) == "8") || (mvB.charAt(mvB.length - 2) == "e") && (mvB.charAt(mvB.length - 1) == "1") || (mvB.charAt(mvB.length - 2) == "e") && (mvB.charAt(mvB.length - 1) == "3") || (mvB.charAt(mvB.length - 2) == "e") && (mvB.charAt(mvB.length - 1) == "5") || (mvB.charAt(mvB.length - 2) == "e") && (mvB.charAt(mvB.length - 1) == "7") || (mvB.charAt(mvB.length - 2) == "f") && (mvB.charAt(mvB.length - 1) == "2") || (mvB.charAt(mvB.length - 2) == "f") && (mvB.charAt(mvB.length - 1) == "4") || (mvB.charAt(mvB.length - 2) == "f") && (mvB.charAt(mvB.length - 1) == "6") || (mvB.charAt(mvB.length - 2) == "f") && (mvB.charAt(mvB.length - 1) == "8") || (mvB.charAt(mvB.length - 2) == "g") && (mvB.charAt(mvB.length - 1) == "1") || (mvB.charAt(mvB.length - 2) == "g") && (mvB.charAt(mvB.length - 1) == "3")
|| (mvB.charAt(mvB.length - 2) == "g") && (mvB.charAt(mvB.length - 1) == "5") || (mvB.charAt(mvB.length - 2) == "g") && (mvB.charAt(mvB.length - 1) == "7") || (mvB.charAt(mvB.length - 2) == "h") && (mvB.charAt(mvB.length - 1) == "2") || (mvB.charAt(mvB.length - 2) == "h") && (mvB.charAt(mvB.length - 1) == "4") || (mvB.charAt(mvB.length - 2) == "h") && (mvB.charAt(mvB.length - 1) == "6") || (mvB.charAt(mvB.length - 2) == "h") && (mvB.charAt(mvB.length - 1) == "8")) {

for(i=1; i<=8; i++) {
    for( num=97; num<105; num++){
        if (squareArr[String.fromCharCode(num) + i].piece == wb1_txt) {
            oldSquare = String.fromCharCode(num) + i;
        }
    }
}

newSquare = mvB.charAt(mvB.length - 2) + mvB.charAt(mvB.length - 1);
currentPiece = Object(squareArr[oldSquare]).piece;

TweenLite.to(currentPiece, 0.3, {x:squareArr[newSquare].x, y:squareArr[newSquare].y, ease:Linear.easeNone, onComplete:isMovingFunction});
...

1 个答案:

答案 0 :(得分:1)

检查您在squareArr中访问的项目,是否已定义等。 例如,检查迭代逻辑:

var squareName:String;
for (i = 1; i <= 8; i++) {
    for (num = 97; num < 105; num++) {
        squareName = String.fromCharCode(num) + i;
        if(squareName in squareArr){
            if (squareArr[squareName].piece == wb1_txt) {
                oldSquare = String.fromCharCode(num) + i;
            } 
        }else{
            trace("There is no " + squareName + " property");
        }                   
    }
}