在actionscript 3中保存文件

时间:2013-01-06 19:19:39

标签: actionscript-3 bitmap

我以前使用共享对象保存游戏的进度数据......

所以我制作了一个大数组并保存了变量的值并将其保存到cookie中。

但是这次我使用了一些位图截图..如果我创建一个变量,在这些位图生成后得到一个值并保存到cookie中,同样的方法似乎不起作用..当我加载它时位图消失了..

有人知道我可以用cookie保存这些位图吗?或任何其他文件保存方法??

*编辑

var bmp:BitmapData;
var myImages:Array = new Array();

red_square.addEventListener( MouseEvent.CLICK, firstchoice);
    function firstchoice (e:MouseEvent){

        bmp = new BitmapData(167, 167);
       myImages[0] = new Bitmap (bmp);
        addChild(myImages[0]);
        myImages[0].x=151;
        myImages[0].y=371;
        bmp.draw (red_square);
            gotoAndStop(5);

    };

1 个答案:

答案 0 :(得分:0)

如果要将位图数据保存在cookie中,可以将其传递给byteArray,然后将其传递给Base64字符串。您可以将其保存在cookie中。要使用它,您可以执行相反的步骤。

但我不认为在Cookie中保存屏幕截图是一个很好的政策。当您使用actionScript 3时,我会使用Flash Shared Objects保存所有内容。

您可以使用as3corelib类将其传递给PNG或JPG bytearray:

var jpgEncoder:JPGEncoder = new JPGEncoder( 85 );
var bytes:ByteArray = jpgEncoder.encode( btm );

var bytes:ByteArray = PNGEncoder.encode( btm );

并将字节保存到LocalStorage

var screenshots:SharedObject = SharedObject.getLocal("screenshotsObjectID");
if (screenshots.data == null){
    screenshots.data = {};
}
if (screenshots.data.screensObject == null){
    screenshots.data.screensObject = {};
}

screenshots.data.screensObject["someStringToIdentifyTheImage"] = bytes;

screenshots.flush();

您可以根据需要保存图像。您可以将someStringToIdentifyTheImage更改为序列号,时间戳或任何其他内容。或者你可以说screenObject是一个«n阵列,只需将图像推入其中。