基本上我想做的是:
我在页面上有一个 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);
}
附言不要忘记为嵌入式 Flash allowScriptAccess
,以允许 Flash 影片访问您页面上的 javaScript(如果 Flash 影片是由第 3 方制作的,这绝对是不明智的)。
另一方面,如果您不控制 Flash 电影(例如,如果您想制作一个将托管第 3 方 Flash 游戏的网站),那么您就不走运了,您需要的是无法实现的单独使用 javaScript,并且只能通过使用浏览器插件/扩展来实现。
关于Javascript 截取 Flash 对象的屏幕截图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3974044/