我以前使用共享对象保存游戏的进度数据......
所以我制作了一个大数组并保存了变量的值并将其保存到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);
};
答案 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阵列,只需将图像推入其中。