基本上我想做的事是這樣的:flash對象的JavaScript採取截圖
我有一個頁面上的Flash遊戲(Pacman的舉例)
我希望能夠採取的打印屏幕該遊戲使用javascript
這可能嗎?我知道我可以在swf中包含遊戲swf,並使用flash捕捉屏幕截圖,但我需要在javascript中完成。這可能嗎?
基本上我想做的事是這樣的:flash對象的JavaScript採取截圖
我有一個頁面上的Flash遊戲(Pacman的舉例)
我希望能夠採取的打印屏幕該遊戲使用javascript
這可能嗎?我知道我可以在swf中包含遊戲swf,並使用flash捕捉屏幕截圖,但我需要在javascript中完成。這可能嗎?
如果您同時控制主機頁面和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,並且只能通過使用瀏覽器插件/擴展來實現。
き有第三方Flash遊戲......但它們存儲在同一臺服務器作爲我的網站上,並通過同一個域訪問: gamesite.com/index.htm gamesite.com/3rdpartyflash.swf 是還有可能嗎? – Ozzy 2010-10-21 11:12:23
@Ozzy,這就是危險,如果你在你的網站上放置第三方遊戲,並且從你自己的域名運行它們,將allowScriptAccess參數設置爲true將基本上允許遊戲訪問(和更改)你的頁面數據(網址,cookies等)不好,會導致惡意開發者利用這一點。另外,通過控制Flash電影,我正在考慮擁有電影的源代碼並能夠對其進行修改,即添加將採用遊戲截圖並通過ExternalInterface將其發送到javaScript的代碼。 – ArtBIT 2010-10-21 21:58:10
@Ozzy你到底需要什麼?要生成遊戲預覽? – ArtBIT 2010-10-21 22:01:10
如果你的遊戲,你的網站(換句話說,如果你可以修改這兩個)試試這個:
http://danielmclaren.net/2008/03/use-javascript-to-take-a-screenshot-of-a-flash-movie
你好奧茲,我處理類似的問題。你說可以在另一個swf中包含swf。你能指點我一些例子嗎? – Skuta 2012-06-02 14:26:33
Javascript無法拍攝屏幕截圖。 – Prescott 2010-10-20 01:37:31