错误#1006:值不是函数

时间:2011-03-14 11:08:37

标签: actionscript-3 function

我意识到此错误已在前面讨论过,但其他问题的解决方案并不适用于此。

我有一个名为indArray的整数数组和一个名为addCommas的函数,其中数组循环通过,逗号被添加到数千,即9,000而不是9000。

现在,这完全正常,但是,我尝试在另一个变量上调用addCommas,它给了我这个错误。

这是我的代码:

var string = personData[personID - 1];
var indArray = string.split("|");
var targetTotal = int(indArray[0]) + int(indArray[2]) + int(indArray[4]) + int(indArray[6]);
var currentTotal = int(indArray[1]) + int(indArray[3]) + int(indArray[5]) + int(indArray[7]);

for (var j=0; j<indArray.length; j++)
{
    indArray[j] = addCommas(indArray[j]);
}
targetTotal = addCommas(targetTotal); //these two lines give the above error
currentTotal = addCommas(currentTotal); //the pretty much identical line in the for loop does not

和addCommas函数:

function addCommas(num)
        {
            var x = 1;
            var y = 0;
            var z = 1;
            var c = num.split("");
            if (c.length < 4)
            {
                return c.join("");
            }
            else
            {
                c.reverse();
                do
                {
                    c.splice((x*3)+y,0,",");
                    x++;
                    y++;
                    z++;
                } while (z<(num.length/3));
                c.reverse();
                return c.join("");


                     }
         }

1 个答案:

答案 0 :(得分:1)

问题是你试图将split()方法应用于数字和整数,但这是一个String方法,因此你应该将它们转换为String,然后将它们转换为字符串。另一件事是你试图将变量用作整数,然后用作字符串,然后再用整数,它就不好了。

尝试严格键入变量,它会使一切变得更清晰。

以下是AS3严格打字的快速参考 http://www.seattleflashusergroup.com/ref02.htm

我希望它有所帮助, 罗布