在运行时从Flash应用程序保存图像?

在运行时从Flash应用程序保存图像?,flash,actionscript,Flash,Actionscript,我很难找到任何能够在运行时保存图像的动作脚本 这是一个Flash应用程序,用户可以设计一些东西,然后将其发送(给我)发布(我认为最好的方法是使用某种ActionScript拍摄完成的设计的JPEG图片,然后将其保存到我的Web服务器)。我四处搜索,找到了一些例子,但似乎都不管用 如果您对此有任何了解,我们将不胜感激 Aaron这是我在从事类似项目时发现的最简单的例子: 它需要安装as3corelib 保存大型JPG的问题在于编码器的同步性,它在运行时会冻结整个应用程序,因此它被前面评论中提到的

我很难找到任何能够在运行时保存图像的动作脚本

这是一个Flash应用程序,用户可以设计一些东西,然后将其发送(给我)发布(我认为最好的方法是使用某种ActionScript拍摄完成的设计的JPEG图片,然后将其保存到我的Web服务器)。我四处搜索,找到了一些例子,但似乎都不管用

如果您对此有任何了解,我们将不胜感激


Aaron

这是我在从事类似项目时发现的最简单的例子:

它需要安装as3corelib

保存大型JPG的问题在于编码器的同步性,它在运行时会冻结整个应用程序,因此它被前面评论中提到的异步库所取代

import com.adobe.images.JPGEncoder;

var jpgSource:BitmapData = new BitmapData (sketch_mc.width, sketch_mc.height);
jpgSource.draw(sketch_mc);

var jpgEncoder:JPGEncoder = new JPGEncoder(85);
var jpgStream:ByteArray = jpgEncoder.encode(jpgSource);

var header:URLRequestHeader = new URLRequestHeader("Content-type", "application/octet-stream");
var jpgURLRequest:URLRequest = new URLRequest("jpg_encoder_download.php?name=sketch.jpg");
jpgURLRequest.requestHeaders.push(header);
jpgURLRequest.method = URLRequestMethod.POST;
jpgURLRequest.data = jpgStream;
navigateToURL(jpgURLRequest, "_blank");
PHP的东西-这将把它写到屏幕上,但它可以很容易地保存文件

if (isset($GLOBALS["HTTP_RAW_POST_DATA"]))
{
    // get bytearray
    $jpg = $GLOBALS["HTTP_RAW_POST_DATA"];

    // add headers for download dialog-box
    header('Content-Type: image/jpeg');
    header("Content-Disposition: attachment; filename=".$_GET['name']);
    echo $jpg;
}

通常,您会获取包含MovieClip的位图数据,对其进行JPEG编码,然后将其加载到服务器。同样重要的是有一个服务器页面来处理请求,您在服务器后端运行的是什么我不久前在一个应用程序中使用了这个问题的示例,它就像一个charm@ToddBFisher我一直在使用PHP脚本将文件从应用程序传输到服务器,到目前为止效果非常好。我似乎无法在Flash中使用JPEG编码类或任何东西。@Evert感谢您提供的教程!它似乎比我需要的要强烈一点,有没有更简单一点的方法将位图信息发送到PHP文件传输脚本或类似的东西?源代码在它的底部-实现起来非常简单:包括库,创建编码器对象,将movieclip作为位图数据传递给它,并将编码后的图像发布到php/.net页面以将其保存在服务器上。异步版本还公开了一些对错误处理有用的事件。谢谢!我必须将PHP保存到服务器,但这是一个很好的开始。