为什么我的函数没有得到我的int var?! AS3

时间:2011-10-29 06:36:43

标签: arrays actionscript-3 function

我遇到了麻烦。我得到了亲爱的var myVar:intarr:Array。我想用它们来执行我的功能。 s1indice1是我在程序中定义的数组和整数值。

getIndex(s1, indice1);

function getIndex(arr:Array, index:int = 0):void {
    for (var n:int = 0; n <= arr.length; n++) {
        if (String(arr[n]).indexOf(">") >= 0) {
            index = n;
            trace(n);
            arr[n] = String(arr[n]).substring(1);
        }
    }
}

现在我获得了我的数组的严格结果,但我的索引变量为0。

有人可以帮助我吗?

我的意思是我需要一种动态的方法来将不同数组的索引值分配给不同的索引,这样我就可以使用我的函数来检索和索引并为我拥有的任何数据保存它

3 个答案:

答案 0 :(得分:2)

你的问题很不清楚。

然而,要回答(我要求你 THINK ), 您无法在函数外部访问变量index。这是因为类型int未在AS3中保存为引用。要获得index外,您必须执行以下任一操作:

a)将index的值分配给全局变量,例如:

var gIndex:int;

function getIndex(arr:Array,index:int = 0):void{
    //function contents
    gIndex=index;    
}
//This way you can access index as gIndex;

b)从函数

返回变量index
function getIndex(arr:Array,index:int = 0):int{
    //function contents
    return index;    
}

//this way you can access index as getIndex(s1, indice1);

答案 1 :(得分:0)

您的搜索字符串在arr[0]中可用,因此它会返回0

答案 2 :(得分:-1)

好的,我解决了。

这不是我想要的但是看起来。

我决定从我的函数返回n值并将其赋值给我的var。

indice1 = getIndex(s1);

function getIndex(arr:Array){

    for(var n:int=0; n<= arr.length; n++){

   if( String(arr[n]).indexOf(">") >= 0){ 

    return n;                          
    arr[n]= String(arr[n]).substring(1);
    }
      }
}

所以我在我的var上获得了n值,就是这样。谢谢无论如何= D