Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Как получить значения всех свойств класса? (http://www.flasher.ru/forum/showthread.php?t=177068)

red_penguin 23.03.2012 20:50

Как получить значения всех свойств класса?
 
Здраствуйте, форумчане.
Есть класс вида:
Код AS3:

package
{
public class test1
{
public static const CNST1:String = "test_const1";
public static const LOL:String = "lol";
public static const QWE:String = "qweqweqwe";
public static const ZXC:String = "zxczxczxc";
}
}

Как мне из класса test1 получить значения всех констант, учитывая что точное значение имен свойств я не знаю.

КорДум 23.03.2012 20:52

Может следует использовать словарь? А по нему for (for-each)

Mur4ik 24.03.2012 05:48

Можно как то примерно так
Код AS3:

package
{
        import flash.display.Sprite;
        import flash.utils.describeType;
 
        public class GetAllConstSample extends Sprite
        {
                public static const CNST1:String = "test_const1";
                public static const LOL:String = "lol";
                public static const QWE:String = "qweqweqwe";
                public static const ZXC:String = "zxczxczxc";
 
                public function GetAllConstSample()
                {
                        var allConst:XMLList = describeType(GetAllConstSample).constant;
 
                        for each (var item:XML in allConst)
                        {
                                trace("GetAllConstSample." + item.@name + " = " + GetAllConstSample[item.@name]);
                        }
                }
        }
}


red_penguin 24.03.2012 13:17

КорДум, этот класс? к стыду своему впервые его вижу :rolleyes: попробую его.

stweet, нет не декомпилятор :) Пишу спец-класс, который будет брать из класса - хранилища данные и на основе их дергать музыку из библиотеки.

Mur4ik, спасибо. Интересный способ

КорДум 24.03.2012 16:00

Или обычный Object с таким же циклом.

Mur4ik 24.03.2012 22:58

Цитата:

Сообщение от КорДум (Сообщение 1070877)
Или обычный Object с таким же циклом.

как узнать что наткнулись именно на константу?

если имеется перебор и хранение данных в объекте, то не особо оно и лучше

Цитата:

Сообщение от red_penguin (Сообщение 1070854)
Пишу спец-класс, который будет брать из класса - хранилища данные и на основе их дергать музыку из библиотеки.

Тогда уж проще в классе этом хранить не в константах, а в нормальном виде - массив/вектор, где будут нормальные понятные объекты с полем имя и путем или id соответствующего символа. Это более гибко и понятно.

КорДум 24.03.2012 23:48

Цитата:

как узнать что наткнулись именно на константу?
Никак, это не будет константами. Смею предположить, что в этом обджекте и будут только "константы".


Часовой пояс GMT +4, время: 00:51.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.