0

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

所以我做了一个大数组并保存了变量的值并将其保存到一个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);

    };
4

1 回答 1

0

如果要将位图数据保存在 cookie 中,可以将其传递给 byteArray,然后将其传递给 Base64 String。您可以将其保存在 cookie 中。要使用它,您只需执行相反的过程。

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

您可以使用as3corelib类将其传递给 PNG 或 JPG字节数组:

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 数组,然后将图像推入其中。

于 2013-01-06T19:47:02.077 回答