例 2
次の例は前の例と似ていますが、単純なオブジェクトを扱う点が異なります。Array や Date などのオブジェクトを直列化および非直列化することなく SharedObject に格納できることを示しています。
次の例は、"lso2.mxml" ファイルの内容です。
<?xml version="1.0" encoding="iso-8859-1" ?>
<mx:Application xmlns:mx="http://www.macromedia.com/2003/mxml" initialize="initApp();">
<mx:Script source="LSO2_script.as"/>
<mx:VBox backgroundColor="white" borderStyle="solid" marginLeft="10" marginBottom="10" width="150">
<mx:Label text="Color"/>
<mx:TextInput id="myColor" width="100" />
<mx:Label text="Scent"/>
<mx:TextInput id="myScent" width="100" />
<mx:Label text="Height"/>
<mx:TextInput id="myHeight" width="30" />
<mx:Label text="Last SetVal On"/>
<mx:TextArea id="myLastDate" width="100" height="75" />
</mx:VBox>
<mx:Button label="Set Values" click="setVal();" />
</mx:Application>
次の例は、"LSO2_script.as" ファイルの内容です。
var myArray:Array;
var myLSO:SharedObject;
function initApp() {
// ローカル SharedObject を初期化します。
myLSO = SharedObject.getLocal("flowerValues");
if (myLSO==null) {
alert("Cannot create Local Shared Object","Error");
} else {
getVal();
}
}
function getVal() {
// ローカル SharedObject から値を取得します。
myArray = myLSO.data.flowerArray;
myColor.text = myArray[0];
myScent.text = myArray[1];
myHeight.text = myArray[2];
myLastDate.text = myLSO.data.date;
}
function setVal() {
// ローカル SharedObject に値を設定します。
myArray[0] = myColor.text;
myArray[1] = myScent.text;
myArray[2] = myHeight.text;
myLSO.data.flowerArray = myArray;
myLSO.data.date = new Date();
myLSO.flush();
}
より複雑な SharedObject オブジェクト使用例については、"samples.war" ファイルに含まれる Flex サンプルアプリケーションを参照してください。


