Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 21.04.2009, 16:28
Dimonte вне форума Посмотреть профиль Отправить личное сообщение для Dimonte Найти все сообщения от Dimonte
  № 1  
Ответить с цитированием
Dimonte

Регистрация: Jun 2008
Сообщений: 51
По умолчанию Сохранение типизированных объектов с помощью SharedObject

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

Код, иллюстрирующий проблему:
Код 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 приучен работать только с базовыми типами, но дело в том, что объект сохраняется нормально, не получается только его привести к нужному типу при считывании.

Заранее спасибо за любую помощь.
Вложения
Тип файла: zip src.zip (7.2 Кб, 47 просмотров)

Создать новую тему   Часовой пояс GMT +4, время: 15:01.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 15:01.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.