2011-06-24 69 views
0

我在試圖將圖片發佈到網頁的網頁中有一個Flash程序。當用戶點擊一個按鈕時,Web瀏覽器開始導航到新頁面,然後似乎掛起(我可以看到它開始通過閱讀在Firefox狀態欄中的消息中傳輸的數據進入頁面)導航啓動後,Flash navigateToURL掛起?

這也似乎在調試版本中工作,但不是導出的版本。

閃存代碼:

var header:URLRequestHeader = new URLRequestHeader("Content-type", "application/octet-stream"); 
var jpgURLRequest:URLRequest = new URLRequest("http://myurl.com/webcam_upload.php"); 

jpgURLRequest.requestHeaders.push(header); 
jpgURLRequest.method = URLRequestMethod.POST; 
jpgURLRequest.data = encodedData; 

try 
{ 
    navigateToURL(jpgURLRequest, "_Self"); 
} 
catch(e:Error) 
{ 
    trace("error occured"); 
} 

網頁:

<object width='534' height='450' type='application/x-shockwave-flash' data='flash/photobooth.swf'> 
<param name='allowNetworking' value='all'> 
<param name='allowScriptAccess' value='always'> 
<param name='movie' value='flash/photobooth.swf'>  
<p>My stuff.</p> 
</object> 

回答

1

你不想 「導航到URL」,所以NavigateToURL的是不是你想要的這裏。你想要做的是調用使用的URLLoader一個url,用頭和編碼的圖像一起...

// First create your URL variables — your encodedData 
var variables:URLVariables = new URLVariables(); 
variables.image = encodedData; 

// Secondly you need to create a URLRequest, passing the URLVariables and any header you want 
var request:URLRequest = new URLRequest ("http://myurl.com/webcam_upload.php"); 
request.method = URLRequestMethod.POST; 
request.data = variables; 

// Finally you want to create the URLLoader, calling the URLRequest and listening to any listeners you want, ie COMPLETE... 
var loader:URLLoader = new URLLoader(); 
loader.addEventListener (Event.COMPLETE, _onPostReturn, false, 0, true); 
loader.load (request); 

private function _onPostReturn(evt:Event):void { 

     // This will trace the response upon completion. 
     trace (evt.target.data); 

} 
+0

謝謝你的建議,但瀏覽器仍然啓動transfering數據,然後只是坐在那裏不重裝網頁。 – Steve

+0

跟蹤輸出任何東西嗎?該.php應該返回一些東西回閃光爲了讓您然後重定向網頁。 – Dimitris

+0

不,因爲我沒有看到它,所以跟蹤只能在調試模式下工作。 Flash程序似乎在調試模式下工作,但不在「發佈」版本中。 – Steve