Показать сообщение отдельно
Старый 26.04.2011, 20:43
bav вне форума Посмотреть профиль Отправить личное сообщение для bav Найти все сообщения от bav
  № 3  
Ответить с цитированием
bav
 
Аватар для bav

Регистрация: Oct 2010
Сообщений: 1,049
Отправить сообщение для bav с помощью ICQ
Можно перебрать переменные класса с помощью flash.utils.describeType(). Недавно искал способ сохранения во временный объект информации из модели. Приведу упрощенный пример:
Код AS3:
public class SomeModel
{
    // Поля, разумеется, не столь однообразны.
    public var field_1:int;
    public var field_2:String;
    public var field_3:int;
    ...
    public var field_125:Number;
    public var field_126:int;
 
    // Объект для временного хранения данных
    public var tempProperties:Object = { };
 
    public function savePropertiesInTemp():void
    {
        var description:XML = describeType(SomeModel);
        var len:int = description.factory.variable.length();
        for (var i:int = 0; i < len; i++)
        {
            if (String(description.factory.variable[i].@type) != "Object")
            {
                var property:String = String(description.factory.variable[i].@name);
                this.tempProperties[property] = this[property];
            }
        }
    }
}
На мой взгляд это проще чем писать:
Код AS3:
public function savePropertiesInTemp():void
{
    this.tempProperties.field_1 = this.field_1;
    this.tempProperties.field_2 = this.field_2;
    ...
    this.tempProperties.field_126 = this.field_126;
}