文件Reference.save;在swf中工作但在swf中嵌入swf时不起作用

时间:2013-08-03 13:20:39

标签: actionscript-3 browser flash flash-cs5.5

当Flash CS 5.5作为.swf发布时,此代码可以正常工作(它会提示浏览保存文件的位置)。但是,当它发布到HTML时,它不起作用(不提示浏览目标)。是安全问题还是其他问题?

import flash.display.Sprite;
import flash.media.Microphone;
import flash.system.SecurityDomain;
import org.bytearray.micrecorder.*;
import org.bytearray.micrecorder.events.RecordingEvent;
import org.bytearray.micrecorder.encoder.WaveEncoder;
import flash.events.Event;
import flash.net.FileReference;
import flash.utils.setTimeout;

var mic:Microphone;
var waveEncoder:WaveEncoder = new WaveEncoder();
var recorder:MicRecorder = new MicRecorder(waveEncoder);
var fileReference:FileReference = new FileReference();

mic = Microphone.getMicrophone();
mic.setSilenceLevel(0);
mic.gain = 100;
mic.setLoopBack(true);
mic.setUseEchoSuppression(true);
Security.showSettings("2");
addListeners();


function addListeners():void
{
    setTimeout(startIntroTime,3000);
    function startIntroTime():void
    {
        startRecording();
        setTimeout(stopRecording,5000);
    }
    recorder.addEventListener(Event.COMPLETE, recordComplete);
}

function startRecording():void
{
    if (mic != null)
    {
        recorder.record();
    }
}

function stopRecording():void
{
    recorder.stop();
    mic.setLoopBack(false);
}

function recordComplete(e:Event):void
{
    fileReference.save(recorder.output, "recording.wav");
}

1 个答案:

答案 0 :(得分:2)

查看文档:{​​{3}}

它说:

  

在Flash Player中,您只能成功调用此方法以响应用户事件(例如,在鼠标单击或按键事件的事件处理程序中)。否则,调用此方法会导致Flash Player抛出Error异常。此限制不适用于应用程序沙箱中的AIR内容。

所以这是不可能的,可能是安全的事情。