如何使用 ActionScript 2.0 从 Flash 保存图像?

发布于 2025-01-03 00:59:11 字数 183 浏览 2 评论 0原文

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

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

I'm trying to make a character creator application using flash actionscript 2. I'm quite done with the character's moveable parts, however my main concern is on how to save the image as jpeg/png. I tried to search for tutorials on the net but most of it would suggest using php.

Is there any way that i can save an image without the use of php?
I would like to save my characters image using a button, and save it directly to my pc.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

江南月 2025-01-10 00:59:11

您可以在 AS3 中创建一个容器并将 AS2 应用程序加载到其中。因此,您可以使用该容器中的 AS3 代码将图像保存到您的 PC 中。如果您需要这方面的帮助,请告诉我。

您需要在您的版本中部署这两个文件。 AS3 swf 将是您的主 swf,AS2 swf 将加载到其中。

// code

package

{

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

You can create a container in AS3 and load your AS2 application into it. So you can use AS3 code in that container to save the image into your PC. Let me know if you need help regarding this.

You need to deploy both the files in your release. AS3 swf will be your primary swf and AS2 swf will be loaded into it.

// code

package

{

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 );

    }

}

}

The approach used in this link will help you to save using AS3 and PHP. http://subashflash.blogspot.in/2013/10/save-image-from-as2-project-using-as3.html.

南风起 2025-01-10 00:59:11

使用 AS2 是不可能的。为了保存图像,您需要将其写入允许空字节(即全部未设置的八位字节)的格式。处理字节序列的最佳方法是字符串,但空字节会终止它。

Not possible using AS2. In order to save an image you would need to write it to a format that allows null bytes (i.e. octets of bits which are all unset). Your best approach to a byte sequence is a string, but null-byte would terminate it.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文