Actionscript 3 错误#1006:值不是函数

Actionscript 3 错误#1006:值不是函数,actionscript-3,function,Actionscript 3,Function,我意识到之前已经讨论过这个错误,但是其他问题的解决方案在这里并不适用 我有一个名为INDARRY的整数数组和一个名为ADDCOMAS的函数,其中数组循环,逗号被添加到千,即9000而不是9000 现在,它工作得非常好,但是,我尝试在另一个变量上调用addCommas,它给了我这个错误 这是我的密码: var string = personData[personID - 1]; var indArray = string.split("|"); var targetTotal = int(indA

我意识到之前已经讨论过这个错误,但是其他问题的解决方案在这里并不适用

我有一个名为INDARRY的整数数组和一个名为ADDCOMAS的函数,其中数组循环,逗号被添加到千,即9000而不是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
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]);

对于(var j=0;j来说,问题是您试图将split()方法应用于数字和整数,但这是一种字符串方法,因此您应该将它们转换为字符串,然后将它们转换为字符串。另一件事是您试图将变量用作整数,然后用作字符串,然后再次用作整数,这是不好的

尝试严格键入您的变量,这将使一切更清楚

这里是对AS3严格类型的快速参考

我希望有帮助,
Rob

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

尝试严格键入您的变量,这将使一切更清楚

这里是对AS3严格类型的快速参考

我希望有帮助,
Rob

没关系。修复了。addCommas函数似乎依赖于字符串而不是int值。我将targetTotal和currentTotal转换为字符串并完成了工作。修复了。addCommas函数似乎依赖于字符串而不是int值。我将targetTotal和currentTotal转换为字符串并完成了工作
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("");


                     }
         }