strah が述べたように、 と を組み合わせることでExternalInterface
、SharedObject
Cookie を使用して Javascript でデータを永続化するのと同じように、Flash でデータを永続化できます。どうやってこれを行うのですか?
まず、データを保持するために 1 つ以上を使用する ActionScript コードを記述する必要がありSharedObjects
ます。
//Obtain the SharedObject named "cookie", procuring a reference
//to the member Object containing its persisted data
var locusLSO:SharedObject = SharedObject.getLocal("cookie");
var lsoData:Object = locusLSO.data;
/////
//Establish a pairing in locusLSO between some key and value
lsoData["key"] = "value";
//Immediately serialize the data contained in locusLSO to its linked file
var statusStr:String = locusLSO.flush();
次に、ActionScript コードをメソッドにカプセル化し、そのメソッドを親アプリケーションの ExternalInterface の一部として登録する必要があります。
function storeData(/*param1, param2, ... */):void {/*code*/}
ExternalInterface.addCallback("storeData");
3 番目に、Actionscript アプリケーション (コード) をコンパイルし、結果の .swf ファイルを参照する要素を HTML に作成する必要があります。
次に、前述の HTML 要素が という名前の DOMElement として表されていると仮定するflashDOMElement
と、DOMElement を使用してメソッドを呼び出すことができます。
flashDOMElement.storeData(/*arg1, arg2, ... */);
このすべてを行うという面倒を経験したくない場合は、BakedGoodsをチェックしてください。これは、Flash ローカル共有オブジェクトを含む、すべてのネイティブおよび一部の非ネイティブ ストレージ機能で共通のストレージ操作を実行するために使用できる統一されたインターフェイスを確立する Javascript ライブラリです。
これにより、次のような単純なコードで LSO を作成できます。
bakedGoods.set({
data: [{key: "key", value: "value"}],
storageTypes: ["flash"],
complete: function(byStorageTypeRemovedItemKeysObj, byStorageTypeErrorObj){/*code*/}
});
データの取得と削除も同様に簡単です。このすべてについて私を信頼してください、私は知っているでしょう。私はそのメンテナーです:)