【问题标题】:How to export image from swf with ActionScript3/PHP?如何使用 ActionScript3/PHP 从 swf 导出图像?
【发布时间】:2010-10-22 10:28:26
【问题描述】:

我还有另一件适合比我更高级的人;)

我正在开发一个简单的 Flash 应用程序来创建您自己的徽章。完成创建后,最好将其作为图像保存到客户的计算机或数据库中,我还不确定。问题是从 swf 内容制作图像 - 我的意思不是全部内容,只是其中的一部分,即 COA 所在的位置。我在网上找到了一些使用一些图像编码器和 PHP 的示例,但我不明白它是如何工作的。有人能这么好心地向我解释一下这个的基本原理吗?我想让它尽可能简单。

【问题讨论】:

    标签: actionscript-3 image flash export


    【解决方案1】:

    首先,将图像(Sprite 或 MovieClip 等)绘制到 BitmapData:

    var b: BitmapData = new BitmapData(640, 480, false, 0xffffffff); 
    b.draw(mcToBeSaved);
    

    然后,使用例如as3corelib 将 BitmapData 编码为 PNG 或 JPG 文件。

    var ba: ByteArray = PNGEncoder.encode(b);
    

    然后,对于 Flash 10,您可以使用 FileReference 的保存方法立即让用户将图像保存到文件中。

    【讨论】:

    • 我想我明白了,但它似乎只保存一个电影剪辑到图像,你不知道,我怎样才能使这个截断舞台,比如说一个矩形区域,可能包含更多的电影剪辑?类似于屏幕截图的东西,但不是整个电影区域......无论如何,谢谢
    • 舞台也被认为是一个显示对象,因此您可以将舞台绘制到位图数据中。使用draw函数的matrix参数设置裁剪矩形的偏移量。
    【解决方案2】:

    这似乎是最近的热门问题。所以我没有完全重申所有这些信息,保存图像数据的说明,一旦你获得了 BitmapData,就在这里:

    How can I send a ByteArray (from Flash) and some form data to php?

    但是,首先,要获取图像数据,您需要将其从任何 MovieClip/Sprite 中提取出来,无论您拥有什么。为此,您只需执行以下操作:

    var myBitmapData:BitmapData = new BitmapData(desiredWidth, desiredHeight, isTransparent, backgroundColor); myBitmapData.draw(mcToBeSavedToImage);

    其中 mcToBeSavedToImage 是您要转换为图像的影片剪辑。 BitmapData 参考在这里,如果您需要它 - 它还有其他示例: http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/display/BitmapData.html

    希望有帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-08-01
      • 1970-01-01
      • 2013-08-06
      • 2011-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多