as3 字符串 数组作为参数传递的问题
今天被一个问题难住了。vara:Array=newArray(6);然后通过循环每个a[i]中存放的是一个文件目录F:/abc/abc.txt,因此a[i]是String...
今天被一个问题难住了。
var a:Array=new Array(6);
然后通过循环每个a[i]中存放的是一个文件目录F:/abc/abc.txt,因此a[i]是String类型。此时问题来了,在a函数中调用b函数,同时通过for语句将a[i]作为函数参数传递,在b函数中再trace传递过来的a[i]的值,测试影片时,总是报#1010 术语未定义的错误,求解?
代码简要如下:
var a:Array=new Array(6)
for(var i:int=0;i<6;i++){
赋值……均为文件路径
}
function abc(){
一堆语句………(省略)
for(var j:int=0;j<6;j++){
//trace(a[i]);//此处正常输出
//调用函数
defe(a[i]);
}
…………
}
function defe(s:String){
trace(s);//这里输出报错
……
}
为什么?求解 展开
var a:Array=new Array(6);
然后通过循环每个a[i]中存放的是一个文件目录F:/abc/abc.txt,因此a[i]是String类型。此时问题来了,在a函数中调用b函数,同时通过for语句将a[i]作为函数参数传递,在b函数中再trace传递过来的a[i]的值,测试影片时,总是报#1010 术语未定义的错误,求解?
代码简要如下:
var a:Array=new Array(6)
for(var i:int=0;i<6;i++){
赋值……均为文件路径
}
function abc(){
一堆语句………(省略)
for(var j:int=0;j<6;j++){
//trace(a[i]);//此处正常输出
//调用函数
defe(a[i]);
}
…………
}
function defe(s:String){
trace(s);//这里输出报错
……
}
为什么?求解 展开
3个回答
展开全部
因为
function abc(){一堆语句………(省略)for(var j:int=0;j<6;j++){//trace(a[i]);//此处正常输出//调用函数defe(a[i]);}
中的i应该为j。i是个全局变量,故在abc中也能访问,但由于数组初始化赋值后,i的值为7,而数组的长度是6,故在abc函数中,读取到的值a[i]=a[7]=undefined,在传到函数defe后,就变成null值了
不过,你的报错并不是句“trace(s);”导致,而是因为其他引到s为null或是a[i]为undefined时,才报错的。
function abc(){一堆语句………(省略)for(var j:int=0;j<6;j++){//trace(a[i]);//此处正常输出//调用函数defe(a[i]);}
中的i应该为j。i是个全局变量,故在abc中也能访问,但由于数组初始化赋值后,i的值为7,而数组的长度是6,故在abc函数中,读取到的值a[i]=a[7]=undefined,在传到函数defe后,就变成null值了
不过,你的报错并不是句“trace(s);”导致,而是因为其他引到s为null或是a[i]为undefined时,才报错的。
展开全部
我解释下:
这句代码var a:Array=new Array(6)
会生成一个数组,数组中只有一个元素就是6...
而不是生成了一个长度为6的数组...
正确的代码应该这么写:
//无需传递参数,直接声明
var a:Array=new Array()
//给a数组添加元素,这里按你说的添加6个元素
for(var i:int=0;i<6;i++)
{
//使用push添加元素,xxx就是你要添加的文件路径之类的
//当然你可以用之前的方法直接进行赋值,但是,建议还是用push
a.push(xxx);
}
function abc()
{
//一堆语句………(省略)
//用a.length表示,这样可以减少出错的风险,因为不一定长度就是6
for(var j:int=0;j<a.length;j++)
{
//因为循环变量是j,所以用a[j]
//trace(a[j]);//此处正常输出
//调用函数
defe(a[j]);
}
…………
}
function defe(s:String)
{
trace(s);//看看有木有报错?
……
}
希望能帮到你
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
直接用赋值语句就行了。例如数组名称为:myarray,将"hello"字符串保存到指定位置:
myarray[2]
=
"hello";
myarray[2]
=
"hello";
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询