SharedObject に Vector.<T> を保存するときのメモ

12月 27th, 2012

ActionScript 3.0

Vector.<String> 型を SharedObject に入れて取り出したとき躓いたのでメモ。

入れるときはそのまま入れます。

var hoges:Vector.<String> = new Vector.<String>();
...
var sharedObject:SharedObject = SharedObject.getLocal(SHARED_NAME);
sharedObject.data.hoges = hoges;

取り出すとき、そのままだとエラーとなります。

var hoges:Vector.<String>;
var sharedObject:SharedObject = SharedObject.getLocal(SHARED_NAME);
hoges = sharedObject.data.hoges;

TypeError: Error #1034: 強制型変換に失敗しました。
__AS3__.vec::Vector.<Object>@715f611 を 
__AS3__.vec.Vector.<String> に変換できません。

これは、Vector.<Object> として受け取るからですね。

そこで、キャストしてあげます。

var hoges:Vector.<String>;
var sharedObject:SharedObject = SharedObject.getLocal(SHARED_NAME);
hoges = Vector.<String>(sharedObject.data.hoges);

これで無事解決。

Leave a Reply