Как сохранить изображение из Flash с помощью Actionscript 2.0? - PullRequest
0 голосов
/ 07 февраля 2012

Я пытаюсь создать приложение для создания персонажа, используя flash Actionscript 2. Я вполне закончил с подвижными частями персонажа, однако моя главная задача - как сохранить изображение в формате jpeg / png. Я пытался искать учебники в сети, но большинство из них предлагает использовать php.

Есть ли способ сохранить изображение без использования php? Я хотел бы сохранить изображение своих персонажей с помощью кнопки и сохранить его непосредственно на моем компьютере.

Ответы [ 2 ]

1 голос
/ 21 октября 2013

Вы можете создать контейнер в AS3 и загрузить в него свое приложение AS2.Таким образом, вы можете использовать код AS3 в этом контейнере для сохранения изображения на вашем ПК.Дайте мне знать, если вам нужна помощь по этому вопросу.

Вам необходимо развернуть оба файла в своем выпуске.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.

0 голосов
/ 07 февраля 2012

Невозможно при использовании AS2. Чтобы сохранить изображение, вам нужно записать его в формате, который допускает нулевые байты (то есть октеты битов, которые все не установлены). Ваш лучший подход к последовательности байтов - это строка, но нулевой байт завершит ее.

...