![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Feb 2008
Сообщений: 72
|
Хотел написать вот так:
package { import flash.display.Sprite; public class Main extends Sprite { public function Main() { var o:Object = new Object(); o.prop1 = "a"; o.prop2 = "b"; o.prop3 = "c"; o.prop4 = "d"; var o2:Object = new SomeObject(); trace("Печатаем свойства Object"); for (var p:String in o) { trace(p + " = " + o); } trace("Печатаем свойства SomeObject"); for (var p2:String in o2) { trace(p2 + " = " + o2); } } } } package { public class SomeObject { public var prop1:String = "a"; public var prop2:String = "b"; public var prop3:String = "c"; public var prop4:String = "d"; public function SomeObject() { } } } Пробовал делать dynamic классу, и расширял Object, и пытался приводить к Object-y. Бесполезно - for in не видит свойства SomeObject. Подскажите пожалуйста способ заставить его работать? По возможности, не хотелось бы усложнять SomeObject. |
|
|||||
|
describeType
м?
__________________
http://cleptoman.free-lance.ru achivements: дважды благословлен на воровство. осеяный благодатью |
|
|||||
|
стервочка (я мужик)
|
wvxvw, может flash_proxy? а то уже грустно смотреть ...
|
|
|||||
|
Регистрация: Feb 2008
Сообщений: 72
|
Спасибо. Пришлось скрестить describeType с flash_proxy. Вот, что получилось:
package { import flash.utils.describeType; import flash.utils.Proxy; import flash.utils.flash_proxy; public class SomeObject extends Proxy { public var prop1:String = "a"; public var prop2:String = "b"; public var prop3:String = "c"; public var prop4:String = "d"; override flash_proxy function nextNameIndex(index:int):int { if ((index < describeType(this).variable.length()) && (describeType(this).variable[index].@name != "")) { return ++index; } else { return 0; } } override flash_proxy function nextName(index:int):String { return describeType(this).variable[--index].@name; } } } trace("Печатаем свойства Object"); traceProps(o); trace("Печатаем свойства SomeObject"); traceProps(o2); } private function traceProps(obj:Object):void { for (var p:String in obj) { trace(p + " = " + obj[p]); } } ![]() |
![]() |
![]() |
Часовой пояс GMT +4, время: 23:36. |
|
|
« Предыдущая тема | Следующая тема » |
|
|