Недавно я изучал и изучал Flash AC3, и у меня было намерение сделать небольшой диктофон для моего веб-сайта. Я использую Google и поисковые системы и получаю разные ответы здесь и там, но все же это не совсем работает должным образом.
У меня проблема в том, что флеш-плагин имеет размер 215x50 пикселей. Я знаю, что если это не 215x138 пикселей, панель безопасности флеш-плеера автоматически НЕ откроется.
Я разработал обходной путь, который заключается в том, что если и когда безопасность вызывается для открытия, я бы изменил размер DIV, в котором находится флэш-объект, с помощью функции javascript, называемой ResizeFlash, до размера 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);
}
Я знаю, что у меня что-то там не в том порядке..! Я ценю любые комментарии.