У меня возникла некоторая проблема с сохранением объектов. Я пытаюсь сохранить и затем считать типизированный объект. С сохранением проблем нет, но вот считывание не работает.
Код, иллюстрирующий проблему:

Код AS3:
package
{
import flash.net.SharedObject;
public class SharedObjectTester
{
public function SharedObjectTester()
{
if (SharedObject.getLocal("SharedObjectTest", "/").data.objectTest as TestClass)
{
trace("Object already created.");
} else {
trace("Creating and saving new object.");
SharedObject.getLocal("SharedObjectTest", "/").data.objectTest = new TestClass("objectTest");
SharedObject.getLocal("SharedObjectTest", "/").flush();
}
}
public function launchTest():void
{
// Declaring a test object.
var testObject:TestClass;
//Checking property. Succesfull, BUT the object is of the wrong type.
trace(SharedObject.getLocal("SharedObjectTest", "/").data.objectTest.objectName, SharedObject.getLocal("SharedObjectTest", "/").data.objectTest is TestClass);
// Trying the simple assignement. Coercion error.
try
{
testObject = SharedObject.getLocal("SharedObjectTest", "/").data.objectTest;
} catch (e:Error)
{
trace(e.message);
}
// Trying to typecast. Coercion error.
try
{
testObject = TestClass(SharedObject.getLocal("SharedObjectTest", "/").data.objectTest);
} catch (e:Error)
{
trace(e.message);
}
// Evaluating with "as" keyword. Returns null.
trace(SharedObject.getLocal("SharedObjectTest", "/").data.objectTest as TestClass);
}
}
}

Код AS3:
package
{
public class TestClass
{
public var objectName:String;
public function TestClass(objectName:String)
{
this.objectName = objectName;
}
}
}
Сорц приложен.
Я знаю, что SharedObject приучен работать только с базовыми типами, но дело в том, что объект сохраняется нормально, не получается только его привести к нужному типу при считывании.
Заранее спасибо за любую помощь.