2010-10-20 43 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