AS3 1067:将Number类型的值隐式强制转换为不相关的类型String

时间:2014-08-09 06:27:39

标签: actionscript-3

我收到错误:" 1067:将Number类型的值隐式强制转换为不相关的类型字符串。"

尝试运行时:

var cam_array: Array = Camera.names;
for (var ci:Number=0; ci < cam_array.length; ci++){
    trace(Camera.getCamera(ci).name);
}

但是当我跑步时:

var mic_array: Array = Microphone.names;
for (var mi:Number=0; mi < mic_array.length; mi++){
    trace(Microphone.getMicrophone(mi).name);
}

没有问题。 唯一的变化是从麦克风到相机,所以给出了什么?

提前致谢!

1 个答案:

答案 0 :(得分:0)

Camera函数getCamera()接受name的可选参数:

  

name:String(默认= null) - 指定要获取的摄像机,如   根据names属性返回的数组确定。对于大多数   应用程序,通过省略此参数获取默认摄像头。至   为此参数指定一个值,使用字符串表示形式   Camera.names数组中从零开始的索引位置。对于   例如,要指定数组中的第三个摄像头,请使用   Camera.getCamera(&#34; 2&#34)。

如果您不想使用默认参数,请将索引位置强制转换为字符串:

var cam_array:Array = Camera.names;
for (var ci:uint = 0; ci < cam_array.length; ci++){
    trace(Camera.getCamera(ci.toString()).name);
}

循环摄像机名称的另一种方法是:

var cam_array:Array = Camera.names;
for each (var camera:String in cam_array) {
    trace(camera);
}

另一方面,Microphone函数getMicrophone()接受索引的可选参数:

  

index:int(默认值= -1) - 麦克风的索引值。