我得到错误:"1067:将数字类型的值隐式强制转换为不相关的字符串类型。"
试图运行时:
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);
}
没有问题。唯一的变化是从麦克风到相机,所以发生了什么?
提前感谢!
Camera
函数getCamera()
接受name
的可选参数:
name:String
(default = null) -指定获取哪个摄像机,如由names属性返回的数组确定。对于大多数应用程序,通过省略此参数获得默认相机。来指定此参数的值,使用的字符串表示形式Camera.names数组中从零开始的索引位置。为例如,要指定阵列中的第三个摄像机,使用Camera.getCamera("2")。
如果不需要默认参数,将索引位置强制转换为字符串:
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:
index:int
(default = -1) -麦克风索引值。