2010-10-20 55 views
3

基本上我想做的事是這樣的:flash對象的JavaScript採取截圖

我有一個頁面上的Flash遊戲(Pacman的舉例)

我希望能夠採取的打印屏幕該遊戲使用javascript

這可能嗎?我知道我可以在swf中包含遊戲swf,並使用flash捕捉屏幕截圖,但我需要在javascript中完成。這可能嗎?

+0

你好奧茲,我處理類似的問題。你說可以在另一個swf中包含swf。你能指點我一些例子嗎? – Skuta 2012-06-02 14:26:33

+0

Javascript無法拍攝屏幕截圖。 – Prescott 2010-10-20 01:37:31

回答

3

如果您同時控制主機頁面和Flash影片,那麼您可以在Flash中生成屏幕截圖,並將其發送到javaScript,然後在javaScript中執行任何您需要的操作。

在ActionScript:

import flash.external.ExternalInterface; 
ExternalInterface.call("showBase64Image", generateBase64Screenshot()); 
// see this Mario Klingenmann's file for ideas how to do that http://www.quasimondo.com/archives/000572.php 

然後在javascript:

function showBase64Image(base64data) { 
    var img = document.createElement('img'); 
    img.src = base64data; 
    document.body.appendChild(img); 
} 

附:不要忘記allowScriptAccess用於嵌入式Flash,以允許Flash影片訪問頁面上的JavaScript(如果Flash電影由第三方製作,這絕對不明智)。另一方面,如果你不控制Flash電影(例如,如果你想製作一個網站,將舉辦第三方Flash遊戲),那麼你是運氣不好,你需要的是不可行的只有javaScript,並且只能通過使用瀏覽器插件/擴展來實現。

+0

き有第三方Flash遊戲......但它們存儲在同一臺服務器作爲我的網站上,並通過同一個域訪問: gamesite.com/index.htm gamesite.com/3rdpartyflash.swf 是還有可能嗎? – Ozzy 2010-10-21 11:12:23

+0

@Ozzy,這就是危險,如果你在你的網站上放置第三方遊戲,並且從你自己的域名運行它們,將allowScriptAccess參數設置爲true將基本上允許遊戲訪問(和更改)你的頁面數據(網址,cookies等)不好,會導致惡意開發者利用這一點。另外,通過控制Flash電影,我正在考慮擁有電影的源代碼並能夠對其進行修改,即添加將採用遊戲截圖並通過ExternalInterface將其發送到javaScript的代碼。 – ArtBIT 2010-10-21 21:58:10

+0

@Ozzy你到底需要什麼?要生成遊戲預覽? – ArtBIT 2010-10-21 22:01:10