首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用AS3将SWF截图并下载到用户桌面?

如何使用AS3将SWF截图并下载到用户桌面?
EN

Stack Overflow用户
提问于 2009-09-03 21:29:48
回答 3查看 473关注 0票数 1

有没有人知道如何在AS3中录制录屏并下载到桌面?我知道有Mario Klingenman的a great BitmapDataExporter in AS2,但它在AS3中不起作用。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-09-03 22:53:13

您可以尝试这样做:

代码语言:javascript
复制
var bitmapData:BitmapData = new BitmapData(stage.stageWidth,stage.stageHeight,false,0x000000);
bitmapData.draw(workspace);
var byteArray:ByteArray = bitmapData;

var request:URLRequest = new URLRequest ( 'yourserver/save.php' );
var loader: URLLoader = new URLLoader();
request.contentType = 'application/octet-stream';
request.method = URLRequestMethod.POST;
request.data = byteArray;
loader.load( request );

//and save.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>save</title>
</head>

<body>
<?php

$fp = fopen( 'file.txt', 'wb' );
fwrite( $fp, $GLOBALS[ 'HTTP_RAW_POST_DATA' ]  );
fclose( $fp );

echo "result: " + $fp;
 ?>
</body>
</html>

此外,你也可以使用Adobe's corelib,它有一个JPEG编码器,并且有大量的great tutorials

票数 1
EN

Stack Overflow用户

发布于 2009-09-03 22:53:45

可以使用DisplayObject方法在BitmapData对象中绘制任何绘图。但是,您不能绘制舞台或根应用程序类(安全错误),因此必须将应用程序包含在主Sprite中,然后将其添加到此舞台中。

代码语言:javascript
复制
public function createSnapShot(displayObject:DisplayObject):BitmapData
{
    var nWidth:Number = displayObject.width;
    var nHeight:Number = displayObject.height;
    var bmd:BitmapData = new BitmapData(nWidth, nHeight, true, 0x00000000);
    bmd.draw(displayObject);
    return bmd;
}

有了BitmapData之后,您需要将其序列化为ByteArray,以便可以使用URLLoader发送它。要进行序列化,要么需要Flex SDK附带的JpegEncoder,要么可以使用adobe核心库提供的编码器。

A3CoreLibs on Google Code

在本例中,AMFPHP用于往返保存位图数据到服务器和备份and,这对你来说应该是一个很好的起点,但你也可以考虑发送多部分表单数据。

Sephiroth AMFPHP Tutorial

票数 2
EN

Stack Overflow用户

发布于 2009-09-04 07:29:13

除了其他答案之外,请注意,Flash Player 10可以直接将文件保存在用户的硬盘上,而不需要将其发送到服务器...请参阅FileReference.save()

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1376076

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档