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

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

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

Регистрация: Nov 2008
Сообщений: 45
По умолчанию обращение к имени класса

всем привет !, можно ли обратиться к имени класса не напрямую ?, тоесть есть класс myClass0, нужно создавать класс в зависимости от указанных условий,можноли обратиться к имени класса на подобии обращения к children ['myClass'+0], или как это вообще делается?

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

Регистрация: Dec 2008
Адрес: Новосибирск
Сообщений: 30
Вообще должен работать такой код:
Код AS3:
var TestClass:Object = getDefinitionByName("MyClass") as Object;
var testObj = new TestClass();
Но он почему-то не работает с пользовательскими классами.
Но что еще более странно, то вот этот код работает:
Код AS3:
trace(getQualifiedClassName(MyClass))
var TestClass:Object = getDefinitionByName("MyClass") as Object;
var testObj = new TestClass();
К сожалению в твоей ситуации это не прокатит - в параметр getQualifiedClassName(MyClass) нужно передавать сам класс. Видимо в этот момент компилятор узнает о существовании класса. Как вариант можно для всех твоих классов вызвать getQualifiedClassName(MyClass), после чего все будет работать


Последний раз редактировалось ChP; 28.04.2010 в 15:25.
Старый 28.04.2010, 15:36
iflamberg вне форума Посмотреть профиль Отправить личное сообщение для iflamberg Найти все сообщения от iflamberg
  № 3  
Ответить с цитированием
iflamberg
 
Аватар для iflamberg

Регистрация: Jan 2009
Сообщений: 1,651
2ChP:
первый кусок кода не работает, потому что, если класс ни разу нигде не упомянут в коде, то он просто не вкомпиливается в swf даже не смотря на import'ы. Что с этим делать я, правда, так и не выяснил.
__________________
мой пустой блог


Последний раз редактировалось iflamberg; 28.04.2010 в 15:45.
Старый 28.04.2010, 15:41
incvizitor вне форума Посмотреть профиль Отправить личное сообщение для incvizitor Найти все сообщения от incvizitor
  № 4  
Ответить с цитированием
incvizitor
 
Аватар для incvizitor

блогер
Регистрация: Sep 2008
Адрес: Менск
Сообщений: 586
Записей в блоге: 1
Отправить сообщение для incvizitor с помощью Skype™
ChP, он работает с пользовательскими и любыми другими классами, просто надо указывать полностью путь к классу например:

Код AS3:
var TestClass:Class = getDefinitionByName("code.MyClass") as Class;
var testObj = new TestClass();
В случае если "MyClass" находится в пакете "code". Класс котырый вызывается должен быть хотя бы раз прописан в коде (иначе он не будет скомпилирован). Напишешь ты его в trace или ещё где - не важно.

1uka, тебе надо делать так:

Код AS3:
 
MyClass0;
MyClass1;
MyClass2;
 
for(var i:uint=0;i<3;i++){
var cl:Class=getDefinitionByName("MyClass"+i) as Class;
var obj:cl=new cl();
}
Добавлено через 3 минуты
iflamberg, с этим ничего не сделаешь, это физически не возможно. Да и зачем? Я думаю на написание класса уходит значительно больше времени, чем на одно его упоминание. Поэтому беда не большая

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

Регистрация: Jan 2009
Сообщений: 1,651
Ну я бы хотел, например, чтобы при указании flex sdk подключаемых swc-библиотек можно было указать, что оттуда нужно вкомпилировать ВСЕ имеющиеся символы.
__________________
мой пустой блог

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

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

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


 


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


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