【问题标题】:Trigger save dialog for a static file - Flash触发静态文件的保存对话框 - Flash
【发布时间】:2011-04-20 14:55:05
【问题描述】:

如何触发 Flash 中静态文件的保存对话框?有问题的文件可以是本地的或远程的,如果这更容易的话。在这种情况下,文件是静态图像。

我是 AS(和 SO)的新手,但对于一个最初看起来非常简单的问题的解决方案如此多样和复杂感到惊讶。

我在 JPEGEncoder(以及 ByteArray、BitmapData 等)方面取得了成功,但它非常慢,而且显然与文件类型无关。

我使用的是 Flash Pro CS5 而不是 Flex 或 AIR。

【问题讨论】:

    标签: flash actionscript-3 bytearray filereference


    【解决方案1】:

    您可以使用 FileReference 类通过 Flash 保存文件:http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/FileReference.html

    至于编码,JPEGEncoder 由于质量设置的原因可能会很慢。将其设置为 100% 应该会加快速度。 PNGEncoder 更快,或者使用 Eugeny89 提出的基于炼金术的解决方案

    【讨论】:

      【解决方案2】:

      【讨论】:

      • 这样就可以下载文件而无需任何服务器破解!太酷了!
      • 是的,如果 Flash 播放器是 10 或更高版本。
      • 感谢您的回复,但我已经尝试过了,即使在 i7 系统上处理有问题的图像,速度也慢得让人无法接受。 Alchemy 足够快,但我对 Flash 没有信心,而且我还没有找到高质量的使用它的教程。
      • @bedeabc,如果你想更快地保存图像,你应该使用炼金术。我上面提到的 url 是如何使用 flash 在本地保存文件。您可以根据自己的目的将它们组合起来。
      【解决方案3】:

      如何触发保存对话框 Flash 中的静态文件?

      如果我正确理解了您的问题,答案是您无法在闪存上触摸计算机上的任何东西。

      我已经使用 JPEGEncoder(以及 ByteArray、BitmapData 等)取得了成功,但速度非常慢

      我已经问过了 what is the simpliest way to get jpg from bitmapData

      Adam Smith 建议使用更快的基于炼金术的解决方案而不是 JPEGEncoder: http://www.websector.de/blog/2009/06/21/speed-up-jpeg-encoding-using-alchemy/

      【讨论】:

      • 谢谢尤金妮。我读过 Alchemy,但认为必须有更明智的解决方案。在这种情况下,是否不能允许用户在不重新处理整个图像的情况下将图像保存在本地?
      • @bedeabc,Alchemy 解决方案不是唯一的原因,但我相信它是最快的。
      • @bedeabc:不,您不能直接从闪存保存图像。但是有一个小技巧。但是你需要服务器。发布您要保存到该服务器的文件的内容,例如到一些 PHP 脚本。在该脚本中放置下载标题,然后打印文件内容。它就像从该服务器下载文件一样。
      • 正确,因此用户无法在不重新处理的情况下保存图像。感谢那。我认为就我而言,最好的解决方案实际上是 PHP 服务器 hack 或 Alchemy,但我还没有找到一个很好的 Alchemy 教程,因为我缺乏 AS 经验,所以我需要它。 last.instinct.se/graphics-and-effects/… 对我不起作用——很多编译错误。
      • @bedeabc:这是一个教程websector.de/blog/2009/06/21/…
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-21
      • 1970-01-01
      • 1970-01-01
      • 2011-08-23
      • 1970-01-01
      • 2012-02-19
      • 2014-02-18
      相关资源
      最近更新 更多