Март 25th, 2008 от graann

Константин Ковалев предложил более простой и изящный вариант решения проблемы затронутой мною в предыдущем посте.

Суть решения заключается в использовании метатега RemoteClass в классе сохраняемого объекта. Т.е registerClassAlias не требуется. Код ниже:

XML:

<mx:Application
  creationComplete="onCreationComplete()"
  xmlns:mx="http://www.adobe.com/2006/mxml"
  layout="vertical">
  <mx:Script>
    <![CDATA[
      import com.riapriority.tests.DataObject;
      
      private var so:SharedObject;
      private var dataObject:DataObject;
  
  
      private function onCreationComplete(): void
      {
        dataObject = new DataObject();
        so = SharedObject.getLocal ("test");
      }
  
  
      private function dataObjectGeneration (): void
      {
        dataObject.generate();
        ta.text += 'GENERATING: ' + dataObject.toString() + '\n';
      }
  
      private function saveLocalData(): void
      {
        so.data.DataObject = dataObject;
        so.flush();
        ta.text += 'SAVE: ' + dataObject.toString() + '\n';
      }
  
      private function loadLocalData(): void
      {
        so = SharedObject.getLocal('test');
        if(so.data.DataObject != null)
        {
          dataObject = so.data.DataObject as DataObject;
          ta.text += 'LOAD: ' + dataObject.toString() + '\n';
        }
        else
        {
          ta.text += 'LOAD: null\n';
        }
      }
    ]]>
  </mx:Script>
  
  <mx:Button
    label="Generate"
    click="{dataObjectGeneration()}"/>
  <mx:Button
    label="Save"
    click="{saveLocalData()}"/>
  <mx:Button
    label="Load"
    click="{loadLocalData()}"/>
  <mx:TextArea
    width="50%"
    height="50%"
    id="ta"/>
</mx:Application>

и код класса

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

[Bindable] здесь не обязателен, но как тонко выразился Константин,
класс без [Bindable], что штопор без бутылки :)

Upd: Работает только с публичными свойствами (касается так же вложенных объектов). Вложенные объекты так же должны быть снабжены метатегом RemoteClass.

Bookmark this article at

2 комментариев

Комментарий от: Pashik [Посетитель] · http://www.officehomefurniture.com/
Anya spasibo za primer!
2008-03-29 @ 07:32
Комментарий от: noron [Посетитель] · http://kameshki.info/
дА! так намного лучше и удобнее! Спасибо огромное1:yes:
2008-05-30 @ 15:35

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


Ваш 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.