代码之家  ›  专栏  ›  技术社区  ›  Ozzy

javascript截图Flash对象

  •  3
  • Ozzy  · 技术社区  · 14 年前

    基本上我想做的是:

    我在一个页面上有一个Flash游戏(例如Pacman)

    我想能够使用javascript在游戏中打印屏幕

    有可能吗?我知道我可以将游戏SWF包含在另一个SWF中,并使用flash捕获屏幕截图,但我需要用javascript来完成。这有可能吗?

    2 回复  |  直到 14 年前
        1
  •  3
  •   ArtBIT    14 年前

    如果您同时控制主页和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是无法实现的,它只能通过使用浏览器插件/扩展来实现。

        2
  •  0
  •   ArtBIT    14 年前

    如果是您的游戏和网站(换句话说,如果您可以同时修改两者),请尝试以下操作:

    http://danielmclaren.net/2008/03/use-javascript-to-take-a-screenshot-of-a-flash-movie