Actionscript 3 动作脚本3:错误#1009
我想测试并写入ActionScript 3中是否允许麦克风访问,但现在,即使没有编译错误,它也不会询问我麦克风访问,启动SWF文件时不会发生任何事情 这是我的代码:Actionscript 3 动作脚本3:错误#1009,actionscript-3,flash,actionscript,Actionscript 3,Flash,Actionscript,我想测试并写入ActionScript 3中是否允许麦克风访问,但现在,即使没有编译错误,它也不会询问我麦克风访问,启动SWF文件时不会发生任何事情 这是我的代码: import flash.display.MovieClip; import flash.events.StatusEvent; import flash.media.Microphone; var mic:Microphone = Microphone.getMicrophone(); if(mic){ mic.ad
import flash.display.MovieClip;
import flash.events.StatusEvent;
import flash.media.Microphone;
var mic:Microphone = Microphone.getMicrophone();
if(mic){
mic.addEventListener(StatusEvent.STATUS, this.onMicStatus);
}
else{
trace("No micro");
}
function onMicStatus(event: StatusEvent): void {
if (event.code == "Microphone.Unmuted") {
trace("Microphone access was allowed.");
} else if (event.code == "Microphone.Muted") {
trace("Microphone access was denied.");
}
}
您的错误来自以下行:
mic.addEventListener(StatusEvent.STATUS, this.onMicStatus);
因为可以返回null
:
如果麦克风.getMirror()返回null,则表示麦克风正在被其他应用程序使用,或者系统上没有安装麦克风。要确定是否安装了麦克风,请使用micromic.names.length(麦克风没有“s”,Adobe的文档中有一个错误)
因此,为了避免该错误,您可以使用一个简单的if
语句:
if(mic){
mic.addEventListener(StatusEvent.STATUS, this.onMicStatus);
}
在创建麦克风
对象之前,您还可以使用麦克风.names.length
验证是否安装了麦克风(至少一个):
if(Microphone.names.length > 0){
var mic:Microphone = Microphone.getMicrophone();
mic.addEventListener(StatusEvent.STATUS, this.onMicStatus);
}
编辑:
要显示Flash Player麦克风设置面板,允许用户选择麦克风引用的麦克风。GetMirror,请使用Security.showSettings()
要显示Flash Player麦克风设置面板,您可以使用:
Security.showSettings(SecurityPanel.MICROPHONE);
希望能有所帮助。使用调试器获取实际行号,这很有帮助。您还应该导入
StatusEvent
,而不仅仅是麦克风
(这可能就是问题所在)<代码>导入flash.events.StatusEvent确定。我编辑了我的代码。现在没有错误,但它没有向我索要麦克风。@MatR为此,您可以使用Security.showSettings(SecurityPanel.microscope)代码>,答案已编辑。