Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 01.02.2013, 12:24
yasha005 вне форума Посмотреть профиль Отправить личное сообщение для yasha005 Найти все сообщения от yasha005
  № 1  
Ответить с цитированием
yasha005
[+1 16.03.13]
[+1 22.03.13]

Регистрация: Dec 2012
Сообщений: 100
По умолчанию Как вогнать кучу статических свойств класса в объект или массив с помощью цикла?

Сабж. Подскажите пожалуйста

Имеется в наличии класс с кучей статических свойств
Код AS3:
package
{
	internal class StaticConstName
	{
		internal static const _kjhghgh:String = 'sdfdsdfm';
		internal static const _sdfgsfdf:String = 'sdfdsdfr';
		internal static const _sdfgfdsdf:String = 'sdfdsdf';
		internal static const _vfgfdsa:String = 'wertre';
		internal static const _dfdsdfgf:String = 'kjhjkjh';
	{
 
{
Как их вогнать в массив или объект?

Мысль у меня вот такая, а как её реализовать чтобы это не выглядело полной лажей, как в нижеследующем примере?
Код AS3:
var i:int = StaticConstName.length; // Как посчитать длину массива, состоящую из статических свойств класса?
var o:Vector.<Object> = new Vector<Object>();
while(--i > -1)
{
	o.push({'StaticConstName.iтый_элемент':StaticConstName.iтый_элемент});
	// Как воткнуть статические свойства класса в массив именно в таком формате {ИмяСтатичСвойства: ЗначениеCтатич.Свойства}
}

Старый 01.02.2013, 12:58
DaFive вне форума Посмотреть профиль Отправить личное сообщение для DaFive Посетить домашнюю страницу DaFive Найти все сообщения от DaFive
  № 2  
Ответить с цитированием
DaFive
 
Аватар для DaFive

Регистрация: May 2008
Адрес: {0,0}
Сообщений: 754
Записей в блоге: 1
Отправить сообщение для DaFive с помощью ICQ
У вас ключи объекта с порядковыми номерами идти должны? Зачем цикл?
Апд: понял. Вам нужно получить все константы класса, не зная какие они и запихнуть их в вектор (массив)?
__________________
Кодинг, багинг, алгоритминг. me @

Старый 01.02.2013, 13:16
ChuwY вне форума Посмотреть профиль Отправить личное сообщение для ChuwY Посетить домашнюю страницу ChuwY Найти все сообщения от ChuwY
  № 3  
Ответить с цитированием
ChuwY
 
Аватар для ChuwY

Регистрация: Nov 2009
Адрес: Тула / Москва
Сообщений: 734
Отправить сообщение для ChuwY с помощью ICQ Отправить сообщение для ChuwY с помощью Skype™
Ну как-то так:

Код AS3:
package
{
	import flash.display.Sprite;
	import flash.utils.describeType;
 
	public class ClassConstsExample extends Sprite
	{
		public function ClassConstsExample()
		{
			var constMap : Object = getConstMap(StaticClass);			
 
			for(var propName : String in constMap)
			{
				var value : * = constMap[propName];
				trace('map[' + propName + '] : ' + value);
			}
		}
 
		//*** private ***//
		private function getConstNames(classObject : Class):Vector.<String>
		{
			var type : XML = describeType(classObject);
			var constants : XMLList = type..constant;
			var names : Vector.<String> = new Vector.<String>();
 
			for each(var constant : XML in constants)
			{
				names.push(constant.@name);	
			}
 
			return names;
		}
 
		private function getConstMap(classObject : Class):Object
		{
			var constNames : Vector.<String> = getConstNames(classObject);
			var classConstants : Object = {};
 
			for each(var constName : String in constNames)
			{
				var constValue : * = classObject[constName];
				classConstants[constName] = constValue;
			}
 
			return classConstants;
		}
	}
}
 
internal class StaticClass
{
	public static const PROP_1 : String = "prop_1_value";
	public static const PROP_2 : String = "prop_2_value";
	public static const PROP_3 : String = "prop_3_value";
	public static const PROP_4 : String = "prop_4_value";
	public static const PROP_5 : String = "prop_5_value";
}
На выходе

Код:
map[PROP_3] : prop_3_value
map[PROP_1] : prop_1_value
map[PROP_4] : prop_4_value
map[PROP_2] : prop_2_value
map[PROP_5] : prop_5_value
__________________
9 из 10 голосов в моей голове сказали наркотикам "НЕТ"
Мои ачивки: художник-паразит.

Старый 01.02.2013, 13:21
Котяра вне форума Посмотреть профиль Отправить личное сообщение для Котяра Посетить домашнюю страницу Котяра Найти все сообщения от Котяра
  № 4  
Ответить с цитированием
Котяра
буду краток
 
Аватар для Котяра

модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
Отправить сообщение для Котяра с помощью ICQ Отправить сообщение для Котяра с помощью Skype™
Меня терзают смутные сомненья, что на самом деле это автору топика не нужно..
Пусть лучше расскажет какая задача стоит и для чего ему вдруг понадобился такой хак. Наверняка, можно предложить более простое архитектурное решение.
__________________
Отряд Котовскага

Старый 01.02.2013, 13:36
ChuwY вне форума Посмотреть профиль Отправить личное сообщение для ChuwY Посетить домашнюю страницу ChuwY Найти все сообщения от ChuwY
  № 5  
Ответить с цитированием
ChuwY
 
Аватар для ChuwY

Регистрация: Nov 2009
Адрес: Тула / Москва
Сообщений: 734
Отправить сообщение для ChuwY с помощью ICQ Отправить сообщение для ChuwY с помощью Skype™
Я зачастую создаю массивы статических свойств вручную... в виде статического свойства того же класса
__________________
9 из 10 голосов в моей голове сказали наркотикам "НЕТ"
Мои ачивки: художник-паразит.

Старый 01.02.2013, 13:48
yasha005 вне форума Посмотреть профиль Отправить личное сообщение для yasha005 Найти все сообщения от yasha005
  № 6  
Ответить с цитированием
yasha005
[+1 16.03.13]
[+1 22.03.13]

Регистрация: Dec 2012
Сообщений: 100
Цитата:
Сообщение от ChuwY Посмотреть сообщение
Ну как-то так:
...
Спасибо, это то что надо

Старый 01.02.2013, 14:17
strangedk вне форума Посмотреть профиль Отправить личное сообщение для strangedk Найти все сообщения от strangedk
  № 7  
Ответить с цитированием
strangedk
 
Аватар для strangedk

Регистрация: Oct 2010
Адрес: Харьков
Сообщений: 616
Записей в блоге: 1
Отправить сообщение для strangedk с помощью ICQ Отправить сообщение для strangedk с помощью Skype™
Так вам что, совсем не важно как они называются?
__________________
adobe AS3 manual

Старый 01.02.2013, 16:03
yasha005 вне форума Посмотреть профиль Отправить личное сообщение для yasha005 Найти все сообщения от yasha005
  № 8  
Ответить с цитированием
yasha005
[+1 16.03.13]
[+1 22.03.13]

Регистрация: Dec 2012
Сообщений: 100
Цитата:
Сообщение от strangedk Посмотреть сообщение
Так вам что, совсем не важно как они называются?
Мне основная мысль ясна как сиё реализовать, а остальное я "догоню". Спасибо за беспокойство

Старый 01.02.2013, 16:29
strangedk вне форума Посмотреть профиль Отправить личное сообщение для strangedk Найти все сообщения от strangedk
  № 9  
Ответить с цитированием
strangedk
 
Аватар для strangedk

Регистрация: Oct 2010
Адрес: Харьков
Сообщений: 616
Записей в блоге: 1
Отправить сообщение для strangedk с помощью ICQ Отправить сообщение для strangedk с помощью Skype™
Просто если не важно, можно было бы обойтись без массива, называя их value1, value2, value3
__________________
adobe AS3 manual

Создать новую тему Ответ Часовой пояс GMT +4, время: 13:21.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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