as31067:将数字类型的值隐式强制转换为不相关的字符串类型



我得到错误:"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) -麦克风索引值。

相关内容

  • 没有找到相关文章

最新更新