Март 24th, 2008 от graann

Продолжу тему затронутую Александром Гаховым в статье Клонирование объектов утилитой ObjectUtil.copy.

Здесь я приведу пример использования registerClassAlias для восстановления объектов определенного класса из SharedObject. Суть проблемы заключалась в том, что помещенные в SharedObject экземпляры определенного класса при перезапуске возвращались, как экземпляры класса Object. Когда я столкнулась с этой проблемой, доступного для понимания примера мне нагуглить не удалось. Перед размещением же поста, я нашла вопрос по этой теме в ruFlex, однако приведенный там пример показался мне не вполне наглядным. Предлагаю вашему вниманию свой пример решения этой проблемы:

XML:

<mx:Application creationComplete="onCreationComplete()" xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
<![CDATA[
  import src.DataObject;
  import flash.net.*;
  
  private var so: SharedObject;
  private var dataObject: DataObject;
 
  
  private function onCreationComplete(): void
  {
    dataObject=new DataObject();
    registerClassAlias('src.DataObject', DataObject);    
    so = SharedObject.getLocal("test");
  }
  
  
  private function dataObjectGeneration(): void
  {
    dataObject.generate();
    ta.htmlText+='GENERATION: '+dataObject.toString()+'\n';
  }
  
  private function saveLocalData(): void
  {
    so.data.DataObject=dataObject;
    so.flush();
    ta.htmlText+='SAVE: '+dataObject.toString()+'\n';
  }
  
  
  
  private function loadLocalData(): void
  {
    so = SharedObject.getLocal('test');
    if(so.data.DataObject!=null)
    {
      dataObject=so.data.DataObject as DataObject;
      ta.htmlText+='LOAD: '+dataObject.toString()+'\n';
    } else {
      ta.htmlText+='LOAD: null\n';
    }
  }
  
]]>
</mx:Script>
<mx:Button x="193" y="27" label="save" id="save_" click="{saveLocalData()}"/>
<mx:Button x="107" y="27" label="generate" id="generate" click="{dataObjectGeneration()}"/>
<mx:Button x="49" y="27" label="load" id="load_" click="{loadLocalData()}"/>
<mx:TextArea x="49" y="57" height="141" width="618" id="ta"/>
</mx:Application>

Собственно сам класс нашего объекта.

  1. ackage src
  2. {
  3.         import mx.formatters.DateFormatter;
  4.        
  5.         public class DataObject
  6.         {
  7.                 public var date: Date;
  8.                 public var random: String;
  9.                
  10.                 public function DataObject()
  11.                 {
  12.                        
  13.                 }
  14.                
  15.                 public function generate(): void
  16.                 {
  17.                         date=new Date();
  18.                         random=""+Math.random()*10000;
  19.                 }
  20.                
  21.                 public function toString():String
  22.                 {
  23.                         var df: DateFormatter=new DateFormatter();
  24.                         df.formatString="JJ:NN:SS DD/MM/YYYY";
  25.                         return "\n  date: "+df.format(date)+"\n  random: "+random;
  26.                 }
  27.         }
  28. }

Прошу прощения за подобное отображение mxml-ины. Если пример вас заинтересует скопируйте его. :)

Bookmark this article at

Еще нет отзывов

Оставить комментарий


Ваш email адрес. (Не будет показан на сайте.)

Ваш URL будет показан.
:!: :?: :idea: :) :D :p B) ;) :> :roll: :oops: :| :-/ :( :'( |-| :>> :yes: ;D :P :)) 88| :. :no: XX( :lalala: :crazy: >:XX
(Заменить прерывания строк на <br />)
(Имя, email и сайт)
(Разрешить пользователям посылать вам сообщения (ваш email не отображается).)
3 + 2 + 7 - 1?
antispam test

Вы можете использовать OpenID чтобы предоставить ваше имя, email и url.

Graann`s blog
flash, flex и все, что придет в голову

Июль 2008
Пн Вт Ср Чт Пт Сб Вс
 << <   > >>
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      

О блоге

С назначением блога можно ознакомиться здесь

Идейным вдохновителем и по совместительству куратором блога является Сonstantiner, за что ему огромный респект и уважуха! Впрочем не только за это :)

Поиск

powered by b2evolution free blog software


Design downloaded from Zeroweb.org
Website templates, layouts, and website tools for FREE!
Free short URL services from urlSNIP.