【发布时间】:2015-09-08 23:48:15
【问题描述】:
我们知道使用文件引用保存方法我们可以将组件保存为 flex 3 中的图像,但我使用的是 flex 3.0 版本,我没有在文件引用类中获得保存方法。它在 flex 3.4.0 及更高版本上可用。我们还有其他选项可以使用 flex builder IDE 在 flex 3.0 编译器中制作组件吗?
提前致谢
【问题讨论】:
标签: apache-flex actionscript flex3
我们知道使用文件引用保存方法我们可以将组件保存为 flex 3 中的图像,但我使用的是 flex 3.0 版本,我没有在文件引用类中获得保存方法。它在 flex 3.4.0 及更高版本上可用。我们还有其他选项可以使用 flex builder IDE 在 flex 3.0 编译器中制作组件吗?
提前致谢
【问题讨论】:
标签: apache-flex actionscript flex3
如果这种情况允许使用 HTML5,那是可能的。
public function capturePage(): void
{
var bmp:BitmapData = new BitmapData(this.width, this.height);
bmp.draw(this, new Matrix());
// convert to JPEG.
var fileData:ByteArray = new JPEGEncoder().encode(bmp);
var base64: Base64Encoder = new Base64Encoder();
base64.encodeBytes(fileData);
ExternalInterface.call("saveAsImage", "data:image/jpeg;base64,"+base64.toString());
}
index.template.html
<title>${title}</title>
<script language="JavaScript" type="text/javascript">
function saveAsImage(value)
{
// open new window. You will be able to save as image.
window.open(value);
// or use HTML5 FileWriter API here.
}
</script>
<script src="AC_OETags.js" language="javascript"></script>
【讨论】:
private function doSave():void
{
var bmp:BitmapData = new BitmapData(canvas.width,canvas.height);
bmp.draw(canvas,new Matrix());
var filedate:ByteArray = new JPEGEncoder().encode(bmp);
var uploadURL:URLRequest = new URLRequest();
uploadURL.url = parentApplication.ServerUrl+"...../imageupload.php?fileName="+yourfilename;
uploadURL.contentType = 'application/octet-stream';
uploadURL.method = URLRequestMethod.POST;
uploadURL.data = filedate;
var urlLoader:URLLoader = new URLLoader();
urlLoader.addEventListener(Event.COMPLETE, completeHandler);
urlLoader.load(uploadURL);
}
PHP 文件:imageupload.php
<?php
$fileName = $_REQUEST['fileName'] . ".jpeg";
$fp = fopen( "../tempfolder/".$fileName, 'wb' );
fwrite( $fp, $GLOBALS[ 'HTTP_RAW_POST_DATA' ] );
fclose( $fp );
?>
【讨论】: