AS3:调用函数在浏览器中不起作用



在这里,我有AS3用于将录制的声音文件上传到服务器。当我在 Flash 中测试它时,它可以正常工作(录制声音并上传并转到下一帧),但在浏览器中它不起作用。似乎不能调用myUpload,但我不知道为什么?应该是鼠标事件吗?谢谢。

function VOCWordToYourMp3()
{
    setTimeout(startRecording,3000);
    recorder.addEventListener(RecordingEvent.RECORDING, onRecording);
    recorder.addEventListener(Event.COMPLETE, onRecordComplete);
}
function startRecording()
{
    if (! recording)
    {
        recorder.record();
    }
    else if (recording)
    {
        recorder.stop();
        recording = false;
    }
}
function onRecording(e:RecordingEvent)
{
    //
}
function onRecordComplete(e:Event):void
{
  //
}
function renderWav(src, convertToMp3 = false)
{
            //
    function handleRenderTimer(e:TimerEvent)
    {
        //
    }
    function finishRender()
    {
           //  
    }
}
function makeIntoMp3(wav)
{
    wav.position = 0;
    mp3Encoder = new ShineMP3Encoder(wav);
    mp3Encoder.addEventListener(Event.COMPLETE, mp3EncodeComplete);
    mp3Encoder.addEventListener(ProgressEvent.PROGRESS, mp3EncodeProgress);
    mp3Encoder.start();
    function mp3EncodeProgress(e:ProgressEvent):void
    {
        //
    }
    function mp3EncodeComplete(e: Event):void
    {
        myUpload('sound1',mp3Encoder.mp3Data);
    }
}
function myUpload(namefile:String,sba: ByteArray):void
{
//upload code
}

更新:

在 Flash Player 10 和 Actionscript 3.0 中,对 URLLoader 的所有调用必须位于同一调用堆栈中。http://helpx.adobe.com/flash-player/kb/user-interaction-required-upload-download.html相同的调用堆栈是什么意思?

我建议使用 Vizzy: https://code.google.com/p/flash-tracer/之类的东西在浏览器中调试您的 swf。您可以将 trace 语句放入 onRecordComplete()myUpload() 函数等中,以查看代码走了多远,并查看是否收到任何新错误。您可能会遇到某种安全沙箱错误,因为您在浏览器中运行。能够看到该错误是什么将帮助您弄清楚下一步该怎么做。

要使用 Vizzy,您需要在浏览器中运行调试播放器,并配置日志文件的正确路径。这有时有点棘手,所以我会给你一些提示:

将一个名为 mm.cfg 的文件添加到主目录,并使用以下设置填充该文件:

ErrorReportingEnable=1
AS3Verbose=0
TraceOutputFileEnable=1
AS3Trace=0
TraceOutputBuffered=0
AS3StaticProfile=0

然后在 Vizzy 中,您必须设置日志的路径。在我的 Windows 7 机器上,它在这里:

C:UsersMyUserNameAppDataRoamingMacromediaFlash PlayerLogsflashlog.txt

根据您的操作系统,可能会有所不同。

祝你好运,如果你 Vizzy 给你任何新信息,请报告。

最新更新