Actionscript 3 TypeError: Error #1006: value is not a function. Unable to find issue

Actionscript 3 TypeError: Error #1006: value is not a function. Unable to find issue

我一直在使用 AS3 时遇到问题,尤其是 "TypeError: Error #1006: value is not a function" 错误消息。我是一个绝对的初学者,但我已经检查了与错误 #1006 相关的其他 Whosebug 问题,以及其他网站上的问题,但一直无法找到问题的根源。

当我尝试调用 newQueen 函数时出现错误。

function newQueen(queenType):void
{
    switch (queenType)
    {
        case 1 :
            guardianLoyalty = 0;
            break;
        case 2 :
            gathererLoyalty = 0;
            break;
        case 3 :
            acolyteLoyalty = 0;
            break;
        case 4 :
            vesselLoyalty = 0;
            break;
        default :
            break;
    }
    queenRndTrait1 = randRange(1,queenTraitArray.length);
    queenRndTrait2 = randRange(1,queenTraitArray.length);

    queenTraitArray[queenRndTrait1](queenType,1);
    queenTraitArray[queenRndTrait2](queenType,2);

    queenRndDescription = randRange(1,queenDescriptionArray.length);
    queenDescriptionArray[queenRndDescription](queenType);

    queenRndName = randRange(1,queenNameArray.length);
    queenNameArray[queenRndName](queenType);
}

请告诉我是否还有其他内容可以让我更轻松地回答这个问题:)

编辑:

var queenDescriptionArray:Array = new Array(queenDescription1);

function queenDescription1(queenType):void
{
    switch (queenType)
    {
        case 1 :
            guardianQueenDescription = "Dummy Description One";
            break;
        case 2 :
            gathererQueenDescription = "Dummy Description One";
            break;
        case 3 :
            acolyteQueenDescription = "Dummy Description One";
            break;
        case 4 :
            vesselQueenDescription = "Dummy Description One";
            break;
        default :
            break;
    }
}

我调用的函数类似于 newQueen(1);

编辑 2,已解决:

谢谢,null!

在我程序的其他部分出现这个问题之前,我已经解决了这个问题,我无法弄清楚这个函数有什么不同!(因为我是新手,所以我尽量不复制和粘贴,即使是我的自己的代码)

解决方案是在随机化行的末尾添加一个“-1”,如下所示:

queenRndTrait1 = randRange(1,queenTraitArray.length)-1;

更新:

您将 1 作为第一个参数传递给创建随机索引的函数。 数组索引从 0 开始。


这些行可能导致错误:

queenTraitArray[queenRndTrait1](queenType,1);
queenTraitArray[queenRndTrait2](queenType,2);

queenDescriptionArray[queenRndDescription](queenType);

queenNameArray[queenRndName](queenType);

他们有一个共同的模式。 你在这里访问数组,没有错:

array[index];

这将检索索引处的元素。

现在可能的问题来了:你在后面加上括号:

 array[index](someStuff);

括号用于调用函数,只要该索引处的数组元素是函数,就可以正常工作。

但显然 数组元素不是函数,正如错误告诉您的那样。

不清楚您要完成什么,但问题很可能是由于某些运算符(如括号)的误用引起的