2010-07-14 20 views
1

反正有沒有把一個頁面上的活動SWF元素「截圖」,「保存」或「捕獲」爲圖像?我希望用戶只需點擊頁面上的按鈕,而不必手動截取整個頁面的截圖,然後裁剪圖像以僅顯示SWF元素。基於頁面上的SWF(flash)元素創建圖像? PHP/Jquery/Javascript/HTML/FLASH

我發現了一個Jquery方法,雖然我不確定它是否可以使用SWF文件。它基本上捕獲頁面上的圖像元素區域,並允許您將其保存爲單獨的圖像。但是,我需要的是將SWF捕捉爲圖像。注意:我無法訪問SWF代碼,因此我無法使用Actionscript或類似的東西來實現這一點 - 它必須純粹用PHP和Javascript完成。

感謝您的任何想法:)

回答

0

我不認爲有一種方法從JavaScript做到這一點,但是如果你託管自己的服務器上那些SWF文件,你可以創建它裝載的包裝SWF swf要動態截圖,然後將它們繪製到BitmapData對象中。

swf內的快照過程可以通過ExternalInterface從Javascript觸發,之後您可以序列化原始像素或在包裝swf中使用PNG或JPEG編碼器將位圖數據轉換爲圖像文件,然後發送該數據通過ExternalInterface返回到Javascript。或者,您可以使用swf中的FileReference類將圖像文件直接保存在用戶的硬盤驅動器上 - 但需要注意的是,爲了觸發保存過程,用戶必須單擊swf中的按鈕(這是一個安全特徵)。

還有一個先決條件,那就是加載到包裝器中的swfs必須與包裝swf位於同一個域中,否則安全sandboy將不允許獲取它的位圖快照。

+0

謝謝。我曾考慮使用swf包裝,但是我決定不這樣做,因爲這會導致我網站上的一些swf內容出現問題。 – Joe 2010-07-14 10:29:04

0

看看ByteArray.getPixels(0,0,stage.stageWidth,stage.stageHeight)var b;BitMap = BitMapData(stageW,stageH).draw(stage),這取決於您的需要。請注意,上述兩行不是正確的代碼,只是正確的對象和函數名稱,從我的腦海中快速寫出。