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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 02.05.2013, 17:19
AlexCooper вне форума Посмотреть профиль Отправить личное сообщение для AlexCooper Найти все сообщения от AlexCooper
  № 1  
Ответить с цитированием
AlexCooper
 
Аватар для AlexCooper

Регистрация: Sep 2008
Адрес: Черкассы
Сообщений: 1,167
Записей в блоге: 1
Отправить сообщение для AlexCooper с помощью ICQ Отправить сообщение для AlexCooper с помощью Skype™
По умолчанию Динамическая подгрузка emded source

Здравствуйте. Хочется исключить конструкцию switch в данном коде
Код AS3:
[Embed(source = '../../asset/bitmap/IconCheckBoxPoint.png')]
		private static var _IconCheckBoxPoint:Class;
 
		[Embed(source = '../../asset/bitmap/IconCheckBox.png')]
		private static  var _IconCheckBox:Class;
 
		[Embed(source = '../../asset/bitmap/iconComplaint.png')]
		private static  var _iconComplaint:Class;
 
		public function Asset() {
			// constructor code
		}
 
		public static function getBitmap($name:String):Bitmap {
 
			switch ($name) {
				case "iconCheckBoxPoint": return Bitmap(new _IconCheckBoxPoint());
				case "iconCheckBox": return Bitmap(new _IconCheckBox());
				case "iconComplaint": return Bitmap(new _iconComplaint());
			}
			return Bitmap(null);
		}
Подкорректируйте пожалуйста. В результате хочу получить динамического определения класса по его текстовому представлению. (Тоесть getBitmap($name = 'имя класса' ))
__________________
return this...

Старый 02.05.2013, 19:02
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 2  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
Код AS3:
private static var map:Object = {
	iconCheckBoxPoint: _IconCheckBoxPoint, 
	iconCheckBox: _IconCheckBox, 
	iconComplaint: _iconComplaint
}
 
public static function getBitmap($name:String):Bitmap
{
	var cl:Class = map[$name] as Class;
	return cl ? new cl() as Bitmap : null;
}
или же, если придерживаться какой-то конвенции именования, то можно и к полям класса также обратится
Код AS3:
public static function getBitmap($name:String):Bitmap
{
	var cl:Class = Asset["_"+$name] as Class;
	return cl ? new cl() as Bitmap : null;
}

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

Регистрация: Sep 2008
Адрес: Черкассы
Сообщений: 1,167
Записей в блоге: 1
Отправить сообщение для AlexCooper с помощью ICQ Отправить сообщение для AlexCooper с помощью Skype™
Цитата:
Сообщение от silin Посмотреть сообщение
Код AS3:
private static var map:Object = {
	iconCheckBoxPoint: _IconCheckBoxPoint, 
	iconCheckBox: _IconCheckBox, 
	iconComplaint: _iconComplaint
}
 
public static function getBitmap($name:String):Bitmap
{
	var cl:Class = map[$name] as Class;
	return cl ? new cl() as Bitmap : null;
}
или же, если придерживаться какой-то конвенции именования, то можно и к полям класса также обратится
Код AS3:
public static function getBitmap($name:String):Bitmap
{
	var cl:Class = Asset["_"+$name] as Class;
	return cl ? new cl() as Bitmap : null;
}
Спасибо, просто идеально!)
__________________
return this...

Старый 02.05.2013, 21:56
Babylon вне форума Посмотреть профиль Отправить личное сообщение для Babylon Посетить домашнюю страницу Babylon Найти все сообщения от Babylon
  № 4  
Ответить с цитированием
Babylon
[+1 25.10.13]
[+4 18.03.14]
 
Аватар для Babylon

Регистрация: Jan 2006
Адрес: Москва, Зеленоград
Сообщений: 653
Отправить сообщение для Babylon с помощью ICQ
Можно ещё попробовать фабричный подход.

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

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

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


 


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


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