私は最近 Flash AC3 を勉強して学んでおり、自分のウェブサイト用に小さなボイスレコーダーを作るつもりでした。私はグーグルと検索エンジンを使用しており、あちこちで異なる回答を得ていますが、それでも正確には正しく機能していません.
私が抱えている問題は、フラッシュ プラグインが 215x50 ピクセルであることです。215x138 ピクセルでない限り、Flash Player のセキュリティ パネルは自動的に開きません。
セキュリティが呼び出されて開く場合、ResizeFlash という JavaScript 関数を使用して Flash オブジェクトが含まれる DIV のサイズを 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);
}
私は間違った順序でそこに何かがあることを知っています..! コメントをお待ちしております。