【问题标题】:Create image based off a SWF (flash) element on the page? PHP/Jquery/Javascript/HTML/FLASH根据页面上的 SWF (flash) 元素创建图像? PHP/Jquery/Javascript/HTML/FLASH
【发布时间】:2010-07-14 10:09:05
【问题描述】:

是否可以将页面上的活动 SWF 元素“截屏”、“保存”或“捕获”为图像?我希望用户能够简单地单击我页面上的按钮,而不必手动截取整个页面然后裁剪图像以仅显示 SWF 元素。

我找到了一个 Jquery 方法,但我不确定它是否可以用于 SWF 文件。它基本上捕获页面上 Image 元素的一个区域,并允许您将其保存为单独的图像。但是,我需要的是捕获 SWF 作为图像。注意:我无权访问 SWF 代码,所以我无法使用 Actionscript 或类似的东西来实现这一点 - 它必须完全使用 PHP 和 Javascript 完成。

感谢您的任何想法:)

【问题讨论】:

    标签: javascript jquery flash


    【解决方案1】:

    我认为没有办法从 Javascript 中执行此操作,但如果您将这些 swf 文件托管在您自己的服务器上,您可以创建一个包装 swf,它会动态加载您想要截屏的 swf,然后将它们绘制到一个 BitmapData 对象。

    swf 内部的快照过程可以通过 ExternalInterface 从 Javascript 触发,之后您可以序列化原始像素或使用包装器 swf 中的 PNG 或 JPEG 编码器将位图数据转换为图像文件,然后发送数据通过 ExternalInterface 返回到 Javascript。或者您使用 swf 中的 FileReference 类将图像文件直接保存在用户的硬盘上 - 需要注意的是,为了触发保存过程,用户必须单击 swf 内的按钮(这是一种安全性功能)。

    还有一个先决条件,那就是您加载到包装器中的 swf 必须与包装器 swf 托管在同一域中,否则安全沙子将不允许对其进行位图快照。

    【讨论】:

    • 谢谢。我曾考虑使用 swf 包装器,但我决定不这样做,因为它会导致我网站上的某些 swf 内容出现问题。
    【解决方案2】:

    查看ByteArray.getPixels(0,0,stage.stageWidth,stage.stageHeight)var b;BitMap = BitMapData(stageW,stageH).draw(stage),具体取决于您的需要。请注意,上面两行代码不是正确的代码,只是用速记和我的头脑编写的正确的对象和函数名称。

    【讨论】:

      猜你喜欢
      • 2010-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多