我正在尝试使用flash actionscript 2创建一个角色创建者应用程序。我已经完成了角色的可移动部分,但我主要关心的是如何将图像保存为jpeg / png。我试图在网上搜索教程,但大多数建议使用php。
有没有办法可以在不使用php的情况下保存图像? 我想使用按钮保存我的角色图像,并将其直接保存到我的电脑上。
答案 0 :(得分:1)
您可以在AS3中创建容器并将AS2应用程序加载到其中。因此,您可以在该容器中使用AS3代码将图像保存到PC中。如果您需要帮助,请告诉我。
您需要在发布中部署这两个文件。 AS3 swf将是你的主要swf,AS2 swf将加载到它。
//代码
包
{
import asfiles.encoding.*;
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.net.*;
import flash.utils.ByteArray;
public class AS3Container extends MovieClip
{
public var myRequest:URLRequest;
public var l:Loader;
public function AS3Container()
{
myRequest = new URLRequest("scene.swf"); // load your AS2 swf
l = new Loader();
l.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
l.load(myRequest);
saveButton.enabled = false;
saveButton.addEventListener(MouseEvent.CLICK, saveHandler);
}// end function
public function onComplete(event:Event)
{
this.addChild(l);
l.width = stage.width;
l.height = stage.height;
saveButton.enabled = true;
}// end function
public function saveHandler(event:MouseEvent) : void
{
saveImage(l,"myImg.jpg");
}// end function
public function saveImage(image:Loader, imageName:String) {
var _rect:Rectangle = null;
var _matrix:Matrix = null;
trace(image.x+","+image.y);
_rect = new Rectangle(image.width/2, image.height/2, image.width, image.height);
var jpgSource:BitmapData = new BitmapData(image.width, image.height);
jpgSource.draw(image, _matrix);
jpgEncoder = new JPEGEncoder(100);
var jpgStream:ByteArray = jpgEncoder.encode(jpgSource);
var file:FileReference = new FileReference();
file.save( jpgStream, imageName );
}
}
}
此链接中使用的方法将帮助您使用AS3和PHP进行保存。 http://subashflash.blogspot.in/2013/10/save-image-from-as2-project-using-as3.html
答案 1 :(得分:0)
使用AS2无法实现。为了保存图像,您需要将其写入允许空字节的格式(即,所有未设置的位的八位字节)。对字节序列的最佳方法是字符串,但是空字节将终止它。