如何使用actionscript 2.0从flash保存图像?

时间:2012-02-07 12:19:43

标签: flash actionscript-2 flash-cs4

我正在尝试使用flash actionscript 2创建一个角色创建者应用程序。我已经完成了角色的可移动部分,但我主要关心的是如何将图像保存为jpeg / png。我试图在网上搜索教程,但大多数建议使用php。

有没有办法可以在不使用php的情况下保存图像? 我想使用按钮保存我的角色图像,并将其直接保存到我的电脑上。

2 个答案:

答案 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无法实现。为了保存图像,您需要将其写入允许空字节的格式(即,所有未设置的位的八位字节)。对字节序列的最佳方法是字符串,但是空字节将终止它。