无法创建数组数组

Posted

技术标签:

【中文标题】无法创建数组数组【英文标题】:Can't create array of arrays 【发布时间】:2015-11-14 07:55:25 【问题描述】:

我正在尝试创建数组数组(如二维数组),但出现错误:

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

这是我的代码:

我使用的是 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:术语未定义且没有属性。 在 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() 在 flash.events::EventDispatcher/dispatchEvent() 在 flash.net::URLLoader/onComplete()

【问题讨论】:

请发布整个代码,包括您定义numarr 的位置和方式。还要解释导致错误的行。 你好,我编辑了问题 【参考方案1】:

问题是您从不向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

如果您使用有意义的变量名称编写代码,则更容易跟踪您自己的代码。

【讨论】:

以上是关于无法创建数组数组的主要内容,如果未能解决你的问题,请参考以下文章

创建由每个子数组的最大值组成的数组无法按预期工作

由于数组参数,Prisma 无法创建用户类型?

无法创建具有恒定大小的数组(“预期的常量表达式”)

已创建关联时,数组关联无法传递所有函数

Java HashMap 关联多维数组无法创建或添加元素

无法过滤使用字典数组创建的tableview