0

以前は共有オブジェクトを使用してゲームの進行状況データを保存していました...

だから私は大きな配列を作り、変数の値を保存し、それをクッキーに保存しました..

しかし、今回はいくつかのビットマップのスクリーンショットを使用しています..そのため、これらのビットマップが作成された後に値を取得して 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

Bitmap データを Cookie に保存する場合は、それを byteArray に渡してから Base64 String に渡すことができます。クッキー内に保存できます。それを使用するには、逆の手順を実行するだけです。

しかし、スクリーンショットを 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 をシーケンス番号、タイムスタンプ、またはその他のものに変更できます。または、screensObject が配列であると言って、その中に画像をプッシュすることもできます。

于 2013-01-06T19:47:02.077 に答える