package sketchbook.data { import flash.utils.Dictionary; /** * as2における _global を表現したクラスです。 **/ public class GlobalVariables { private var dataDictionary:Dictionary private var finalDictionary:Dictionary private static var _instance:GlobalVariables public function GlobalVariables() { dataDictionary = new Dictionary() finalDictionary = new Dictionary() } /** * GlobalVariablesインスタンスを返します。 * * @return インスタンス。 */ public static function getInstance():GlobalVariables { if(_instance==null) _instance = new GlobalVariables() return _instance } /** * 指定IDで登録されたデータを取り出します。 * * @param id 登録時に使ったID * * @return IDと対応するオブジェクト */ public function getData(id:String):* { return dataDictionary[id] } /** * idをキーにオブジェクトを登録します。 *
すでに存在するIDに値を登録する場合、前の値は上書きされます。 * * @param id 登録につかうID * @param value 登録したい値 * @param isFinal 上書きをできなくするかどうかのフラグ */ public function setData(id:String, value:*, isFinal:Boolean=false):void { if( dataDictionary[id] == value ) return if(isFinal==true){ if(finalDictionary[id]==undefined){ dataDictionary[id] = value finalDictionary[id] = true }else{ throw new Error("GlobalVariables.setData"+ id + " is already used as final") } }else{ dataDictionary[id] = value } } /** * 配列で指定したidのデータを内包したオブジェクトを返します。 *

この関数は特定のデータを切り出してSharedObjectに保存したり、サーバーに送るときなどに有効です。

* * @param dataNames 取得したデータと対応するidの配列 * * @return 指定したidと対応するデータを格納したオブジェクト */ public function getDatas(dataNames:Array):Object { var result:Object for(var i:int=0; i