我最近一直在学习和学习Flash AC3,我的目的是为我的网站制作一个小型录音机。我一直在使用谷歌和搜索引擎,并在这里和那里得到不同的答案,但它仍然没有完全正常工作。
我遇到的问题是,Flash插件是215x50像素。我知道除非它是215x138像素,否则Flash播放器安全面板将自动无法打开。
我设计了一个工作,即如果安全被调用打开,我会调整Flash对象的大小,使用名为ResizeFlash的javascript函数,大小为215x138,然后再返回到215x50用户可以选择是否允许使用麦克风。
现在我已经摸不着头几天了,因为我确实得到了以下代码,它确实调整了DIV的大小,但它没有重新调整DIV的大小。我想我可能会在错误的地方调用ResizeFlash(???)。我不太熟悉,不知道哪里可能是错的。
我一直在重新排列代码以查看是否可行,我会得到调整大小到215x138的时间,打开安全面板,然后调整大小到215x50但是录制不会开始,好像我被困在某个地方在循环中。
我希望有人可以请一些时间,只需看一眼这段代码,并告诉我正确的方法来处理这个问题。非常感谢你!
以下是代码:
public function Main():void
{
recButton.stop();
submitButton.enabled = false; // These reset everything, maybe in wrong place??
activity.stop();
addListeners();
mic = Microphone.getMicrophone();
if (mic == null)
{
// no camera is installed
}
else if (mic.muted)
{
// user has disabled the access in security settings
mic.addEventListener(StatusEvent.STATUS, onMicStatus, false, 0, true); // listen out for their new decision
Security.showSettings('2'); // show security settings window to allow them to change security settings
}
else
{
// you have access
mic.setUseEchoSuppression(true); //... also this might be in wrong place?
// .. I would like this to always be on
}
}
private function addListeners():void
{
recButton.addEventListener(MouseEvent.MOUSE_UP, startRecording);
submitButton.addEventListener(MouseEvent.MOUSE_UP, onSend);
recorder.addEventListener(RecordingEvent.RECORDING, recording);
recorder.addEventListener(Event.COMPLETE, recordComplete);
activity.addEventListener(Event.ENTER_FRAME, updateMeter);
}
function onMicStatus(event:StatusEvent):void
{
if (event.code == "Microphone.Unmuted")
{
mic.removeEventListener(StatusEvent.STATUS, onMicStatus);
ExternalInterface.call('ResizeFlash', '215', '50'); // When the user presses allow, resize the div back to 215x50
}
}
private function startRecording(e:MouseEvent):void
{
recorder.record();
e.target.gotoAndStop(2);
recButton.removeEventListener(MouseEvent.MOUSE_UP, startRecording);
recButton.addEventListener(MouseEvent.MOUSE_UP, stopRecording);
}
private function stopRecording(e:MouseEvent):void
{
recorder.stop();
e.target.gotoAndStop(1);
recButton.removeEventListener(MouseEvent.MOUSE_UP, stopRecording);
recButton.addEventListener(MouseEvent.MOUSE_UP, startRecording);
}
我知道我的东西在错误的顺序......我感谢任何评论。
答案 0 :(得分:0)
根据您的建议,在麦克风的状态事件处理程序中将应用程序的大小调整为215x50可能太快了。
只是预感,但当用户单击Flash安全性面板中的“允许”单选按钮时,会立即调度该状态事件。小组仍然开放。事实上,如果你把它打开并在允许/拒绝之间点击它,每次都会被派遣......
当安全面板启动时,有些事情你不能做。我想知道使用ExternalInterface
(调整应用程序大小)是否属于这个问题。
我建议如下: