2013-10-16 3 views
0

녹음 된 사운드 파일을 서버에 업로드하는 데 AS3을 사용하고 있습니다. 플래시에서 테스트 할 때 제대로 작동합니다 (사운드 녹음 및 업로드 후 다음 프레임으로 이동)하지만 브라우저에서는 작동하지 않습니다. myUpload를 호출 할 수없는 것 같지만 왜 안합니까? 마우스 이벤트 여야합니까? 감사.AS3 : 브라우저에서 호출 기능이 작동하지 않습니다.

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 
} 

업데이트 : 플래시 플레이어 10과 ActionScript 3.0에서

가,은 URLLoader 모든 호출이 동일한 호출 스택에 있어야합니다. http://helpx.adobe.com/flash-player/kb/user-interaction-required-upload-download.html 동일한 콜 스택 평균은 무엇입니까?

+0

기능이 작동하지 않는다고 생각하는 이유는 무엇입니까? 중단 점이있는 디버그 모드에서 실행하고 있습니까? 아니면 그냥 그런 일이 일어난 것 같니? –

+0

'SecurityError : Error # 2176 : 팝업 창을 표시하는 것과 같은 특정 동작은 마우스 클릭이나 버튼 누르기와 같은 사용자 상호 작용시에만 호출 할 수 있습니다. ' – Amir

+0

@amy. 그러나 나는'Filereference.browse, FileReference.download' 또는'FileReference.save'를 사용하지 않습니다. 왜 사용자 상호 작용이 필요한가? – Amir

답변

0

Vizzy : https://code.google.com/p/flash-tracer/과 같은 것을 사용하여 브라우저에서 swf를 디버깅 할 것을 권장합니다. onRecordComplete()myUpload() 함수 등에 추적 문을 넣어 코드가 얼마나 멀리 떨어져 있는지보고 새로운 오류가 있는지 확인할 수 있습니다. 브라우저에서 실행 중이므로 일종의 보안 샌드 박스 오류가 발생할 수 있습니다. 그 오류가 무엇인지 알 수 있으면 다음에 무엇을해야할지 파악하는 데 도움이됩니다.

Vizzy를 사용하려면 브라우저에서 디버그 플레이어를 실행하고 로그 파일의 올바른 경로를 구성해야합니다. 이것은 때때로 조금 까다 롭습니다, 그래서 나는 당신에게 몇 가지 팁을주지 :

이 설정 mm.cfg라는 홈 디렉토리에 파일을 추가하고 그것을 채울 :

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

을 다음 Vizzy에 당신이를 로그에 대한 경로를 설정합니다. 내 창 7 컴퓨터에 여기에 :

C:\Users\MyUserName\AppData\Roaming\Macromedia\Flash Player\Logs\flashlog.txt 

운영 체제에 따라 다를 수 있습니다.

행운을 빈다. Vizzy가 새로운 정보를 제공하면 다시보고하십시오.

관련 문제