![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Можно ли перебрать все переменные ЭТОГО класса с помощью for или for each?
Можно ли перебрать все переменные произвольного класса с помощью for или for each? Можно ли в общем случае писать a["x"] там где можно писать a.x? Член класса и элемент ассоциативного массива - одно и то же? Спасибо.
__________________
Димс |
|
|||||
|
переменные класса нет, а переменные экземпляра класса вполне.
ваши данные, заданные через SharedObject#setProperty хранятся в data свойстве (тип Object). можно и напрямую задавать свои свойства напрямую работая с data в АС нет ассоциативных массивов.
__________________
http://cleptoman.free-lance.ru achivements: дважды благословлен на воровство. осеяный благодатью |
|
|||||
|
Можно перебрать переменные класса с помощью flash.utils.describeType(). Недавно искал способ сохранения во временный объект информации из модели. Приведу упрощенный пример:
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]; } } } } |
|
|||||
|
То есть, можно писать и a["x"] и a.x, это одно и то же?
__________________
Димс |
|
|||||
|
не одно и то же, но писать можно.
__________________
http://cleptoman.free-lance.ru achivements: дважды благословлен на воровство. осеяный благодатью |
![]() |
![]() |
Часовой пояс GMT +4, время: 01:44. |
|
|
« Предыдущая тема | Следующая тема » |
|
|