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

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

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

Регистрация: May 2009
Сообщений: 223
Записей в блоге: 1
По умолчанию Создание экземпляра класса по строке с именем

Есть набор классов, которые расширяют один интерфейс. Есть метод который создает экземпляр одного из классов, в зависимости от строки содержащей имя. Как это реализовать?

Код AS3:
public function createItem(name:String):IItem // name = "Label"        gui.items.Label.as
{
    return new (name as Class)(); //естественно не пашет 
}
возможно ли?

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

блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,112
Записей в блоге: 1
Отправить сообщение для Hauts с помощью ICQ Отправить сообщение для Hauts с помощью Skype™
getDefinitionByName мб?

Код AS3:
public function createItem(name:String):IItem
{
    return new (getDefinitionByName( name ) as Class)();
}
__________________
hauts.ru


Последний раз редактировалось Hauts; 15.06.2012 в 18:01.
Старый 15.06.2012, 19:59
Aloran вне форума Посмотреть профиль Отправить личное сообщение для Aloran Найти все сообщения от Aloran
  № 3  
Ответить с цитированием
Aloran

Регистрация: May 2009
Сообщений: 223
Записей в блоге: 1
Блин. Точно. Что то я заработался))) Спасибо!

Старый 01.08.2012, 14:53
warez_men вне форума Посмотреть профиль Отправить личное сообщение для warez_men Найти все сообщения от warez_men
  № 4  
Ответить с цитированием
warez_men

Регистрация: Jan 2010
Сообщений: 25
А пользовательский классами не получается

Код AS1/AS2:
	var LavelName:String = "Level" + _levelNumber;
			//"src.Levels::Level
			var linkClassName:Class = getDefinitionByName(LavelName) as Class;
ругается
[Fault] exception, information=ReferenceError: Error #1065: Переменная Level1 не определена.

Если выше напишу
Код AS1/AS2:
trace("getQualifiedClassName="+getQualifiedClassName(Level1))
То работает но при таком раскладе пользы от этой функций очень мало помогите решить эту проблему.

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

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
Цитата:
То работает но при таком раскладе пользы от этой функций очень мало помогите решить эту проблему
Код AS3:
var tmp1:Level1;
var tmp2:Level2;
var tmp3:Level3;
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Старый 01.08.2012, 15:23
warez_men вне форума Посмотреть профиль Отправить личное сообщение для warez_men Найти все сообщения от warez_men
  № 6  
Ответить с цитированием
warez_men

Регистрация: Jan 2010
Сообщений: 25
GBee,Думул об этом но у меня около 100 уровней и каждый так прописывать не красиво...

Старый 01.08.2012, 15:29
zuxul вне форума Посмотреть профиль Отправить личное сообщение для zuxul Найти все сообщения от zuxul
  № 7  
Ответить с цитированием
zuxul

Регистрация: Dec 2009
Адрес: 59°13′N, 39°54′E
Сообщений: 445
Записей в блоге: 1
Level1 вкомпиливается в конечную флешку?

Старый 01.08.2012, 15:37
warez_men вне форума Посмотреть профиль Отправить личное сообщение для warez_men Найти все сообщения от warez_men
  № 8  
Ответить с цитированием
warez_men

Регистрация: Jan 2010
Сообщений: 25
это просто класс с параметрами. Или я что то не так понял в вашем вопросе?

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

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
Уровни можно было вынести во вне хмл, жсон, или захардкордить массивы?
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Старый 01.08.2012, 15:52
zuxul вне форума Посмотреть профиль Отправить личное сообщение для zuxul Найти все сообщения от zuxul
  № 10  
Ответить с цитированием
zuxul

Регистрация: Dec 2009
Адрес: 59°13′N, 39°54′E
Сообщений: 445
Записей в блоге: 1
Если этот класс нигде не используется, то компилятор не встраивает его в конечную флешку и из-за этого getDefinitionByName его и не находит.
Можно просто завести массив или... Я делаю так:
Код AS3:
private static var __class:Object = {
  "Label": gui.items.Label,
  "Level1": Level1
}
public function createItem(name:String):IItem {
    return new __class[name]();
}

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

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

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


 


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


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