无法创建数组数组

时间:2015-08-20 15:22:21

标签: actionscript-3 actionscript flash-cc

我正在尝试创建数组(如2d数组),但是我收到了错误:

  

TypeError:错误#1006:value不是函数。

这是我的代码:

我使用的是Flash Professional CC 2015.如何修复此错误?

编辑:以下是完整功能:

function CreateMainMenu(xPos:Number, yPos:Number, depth:int, menu_xml:XML):void {
    // Generate menu list
    var arr:Array = new Array();
    addChild(mainmenu_mc);

    mainmenu_mc.x = xPos;
    mainmenu_mc.y = yPos;
    setChildIndex(mainmenu_mc, depth);

    var num:int = 0;
    for each (var tempNode:XML in menu_xml.elements()) {
        var arr2:Array = new Array();
        arr2.push(tempNode);
        arr2.push("menu");
        arr[num].push(arr2); // It gives error
        num++;
    }

    trace (arr);

    // GenerateMenu(this, "mainmenu_mc", xPos, yPos, depth, arr);
}

第一行号是58,最后一行是79。

我收到此错误:

  

TypeError:错误#1010:术语未定义且没有属性。       at xmlmenu_05_fla :: MainTimeline / CreateMainMenu()[xmlmenu_05_fla.MainTimeline :: frame1:72]       在xmlmenu_05_fla :: MainTimeline / processXML()[xmlmenu_05_fla.MainTimeline :: frame1:118]       在flash.events::EventDispatcher/dispatchEventFunction()       at flash.events::EventDispatcher/dispatchEvent()       在flash.net::URLLoader/onComplete()

1 个答案:

答案 0 :(得分:2)

问题是你永远不会向arr添加任何内容。

您在此处创建Array

var arr:Array = new Array();

但与你互动的唯一时间就是给你错误的一行:

arr[num].push(arr2); // It gives error

您正在尝试访问此处的元素,但您从未向数组中添加任何内容。

你的变量名称不是很具描述性,你可能会在这个混乱中丢失:

var arr2:Array = new Array();
arr2.push(tempNode);
arr2.push("menu");
arr[num].push(arr2); // It gives error
num++;

我不知道你的意图是什么。如果您只想添加arr2作为下一个元素,请使用push,此处不需要num

如果使用有意义的变量名称编写代码,则可以更轻松地跟踪自己的代码。