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

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

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

Регистрация: Dec 2013
Сообщений: 35
Question Динамическое имя класса

Доброго время суток.
Подскажите как можно ли создать класс с динамическим именем и возможно ли вообще это в AS3. Просто хочу сделать чтоб без switch а сразу создавалось нужный класс отображения. Помню была такая функция evel() ...

Как-то так:

Код AS3:
var obj=new ["ДинамическоеИмяКласса"]();

Старый 09.06.2016, 11:42
Tails вне форума Посмотреть профиль Отправить личное сообщение для Tails Найти все сообщения от Tails
  № 2  
Ответить с цитированием
Tails
 
Аватар для Tails

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
Лучше объясните суть вашей задачи, вам подскажут правильное решение. Вот так никто не делает, поэтому и класс создать в рантайме не получится.
__________________
Дети не должны знать о своих родителях

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

Регистрация: Apr 2009
Сообщений: 409
как-то так
Код AS1/AS2:
new Class(getDefinitionByName('className'))

Старый 09.06.2016, 12:13
Tails вне форума Посмотреть профиль Отправить личное сообщение для Tails Найти все сообщения от Tails
  № 4  
Ответить с цитированием
Tails
 
Аватар для Tails

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
Тогда зачем вам его создавать? Для получения ссылки на класс используйте getDefinitionByName().

hebep1982, Вам нужно было создать экземпляр имеющегося класса, а не сам класс. Это совершенно разные вещи, не путайте их.
__________________
Дети не должны знать о своих родителях

Старый 09.06.2016, 12:18
hebep1982 вне форума Посмотреть профиль Отправить личное сообщение для hebep1982 Найти все сообщения от hebep1982
  № 5  
Ответить с цитированием
hebep1982

Регистрация: Dec 2013
Сообщений: 35
Если кратко то ДинамическоеИмяКласса это по сути мувиклип для отображения, у каждого региона свое отображение а реализация одна. Я пытаюсь создать карту мира где все "регионы" известы и просто хочу для краткости кода, да и пример интересный попался на глаза

Код AS1/AS2:
var s:String = "Number";
var e1 = new (eval(s))(6);
trace(e1); //traces: 6

Старый 09.06.2016, 12:56
undefined вне форума Посмотреть профиль Отправить личное сообщение для undefined Найти все сообщения от undefined
  № 6  
Ответить с цитированием
undefined

Регистрация: Oct 2006
Сообщений: 2,283
это код из as1/2. В as3 eval выпилили за ненадобностью.Как сказали выше getDefinitionByName - то что тебе надо.

Добавлено через 1 минуту
Цитата:
Сообщение от faraday Посмотреть сообщение
как-то так
Код AS1/AS2:
new Class(getDefinitionByName('className'))
А где аргументы конструктора?

Старый 09.06.2016, 21:20
hebep1982 вне форума Посмотреть профиль Отправить личное сообщение для hebep1982 Найти все сообщения от hebep1982
  № 7  
Ответить с цитированием
hebep1982

Регистрация: Dec 2013
Сообщений: 35
Цитата:
Сообщение от undefined Посмотреть сообщение
А где аргументы конструктора?
Вот так вот)

Код AS3:
var myClass:Class = flash.utils.getDefinitionByName("myCustomClass") as Class;
var mcTemp:MovieClip = new myClass();   <- сюда аргументы

Старый 10.06.2016, 06:28
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 8  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Зачем там аргументы? Подход тупиковый. Такие классы должны быть либо без аргументов вообще, либо все с одинаковым набором аргументов. Иначе как можно знать какие аргументы принимает конструктор, но при этом не знать какой там класс?
__________________
Ко мне можно и нужно обращаться на ты)

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

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

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


 


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


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