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

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

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

Регистрация: Nov 2012
Сообщений: 31
По умолчанию Как передать имя класса в переменной

Код AS3:
var label = new Label();
var group = new Group();
Как быть, если имя класса (например, 'Label' или 'Group') находится в строковой переменной?


Последний раз редактировалось udaaff; 01.12.2012 в 01:20.
Старый 01.12.2012, 01:11
zuxul вне форума Посмотреть профиль Отправить личное сообщение для zuxul Найти все сообщения от zuxul
  № 2  
Ответить с цитированием
zuxul

Регистрация: Dec 2009
Адрес: 59°13′N, 39°54′E
Сообщений: 445
Записей в блоге: 1
getDefinitionByName

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

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
http://help.adobe.com/ru_RU/FlashPla...nitionByName()
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Старый 01.12.2012, 01:20
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 4  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Ленок, для оформления своего кода надо использовать соответствующие теги.

Старый 01.12.2012, 01:23
Ленок вне форума Посмотреть профиль Отправить личное сообщение для Ленок Найти все сообщения от Ленок
  № 5  
Ответить с цитированием
Ленок

Регистрация: Nov 2012
Сообщений: 31
Вот так работает

Код AS3:
var ClassReference:Class = getDefinitionByName(item_class) as Class;
elements[id] = new ClassReference();
А вот так не работает
Код AS3:
elements[id] = new getDefinitionByName(item_class) as Class;
Интересно, почему?

Кстати, класс надо указывать полностью, например
Код AS3:
item_class = spark.components.Group
item_class = spark.components.Label


Последний раз редактировалось Ленок; 01.12.2012 в 01:55.
Старый 01.12.2012, 02:00
Sintesis вне форума Посмотреть профиль Отправить личное сообщение для Sintesis Найти все сообщения от Sintesis
  № 6  
Ответить с цитированием
Sintesis
 
Аватар для Sintesis

Регистрация: Jul 2008
Сообщений: 912
вот так:
Код AS3:
var ClassReference:Class = getDefinitionByName("Label") as Class;
var label:Object = new ClassReference();

Старый 01.12.2012, 02:22
Simplifier вне форума Посмотреть профиль Отправить личное сообщение для Simplifier Найти все сообщения от Simplifier
  № 7  
Ответить с цитированием
Simplifier

Регистрация: Jun 2011
Сообщений: 60
Цитата:
Сообщение от Ленок Посмотреть сообщение
Вот так работает

Код AS3:
var ClassReference:Class = getDefinitionByName(item_class) as Class;
elements[id] = new ClassReference();
А вот так не работает
Код AS3:
elements[id] = new getDefinitionByName(item_class) as Class;
Интересно, почему?
Скобки забыла:
Код AS3:
elements[id] = new (getDefinitionByName(item_class) as Class);

Старый 01.12.2012, 02:27
Ленок вне форума Посмотреть профиль Отправить личное сообщение для Ленок Найти все сообщения от Ленок
  № 8  
Ответить с цитированием
Ленок

Регистрация: Nov 2012
Сообщений: 31
О, класс!

Код AS3:
object = new (getDefinitionByName(item_class) as Class);
Так и изящно, и работает

Добавлено через 15 часов 31 минуту
Не работает с компонентом
Код AS3:
spark.components.TextArea
При этом нормально работает с такими компонентами, как:
Код AS3:
spark.components.Group
spark.components.TileGroup
spark.components.SkinnableContainer
spark.components.Label
При запросе
Код AS3:
getDefinitionByName('spark.components.TextArea') as Class
приложение крашится.

Почему?

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

Регистрация: Sep 2015
Сообщений: 69
А как быть в моем случае. Есть 4 мувиклипа в библиотеке.
Необходимо в цикле создавать решетку из этих мувиков в зависимости от значения переменной (она указывает решетку из какого типа мувиков создать)

Код AS3:
var cell:MovieClip;
for (var i:int = 0; i < 10; i++)
			{
				cells[i] = new Vector.<MovieClip>();
					for (var j:int = 0; j < 10; j++)
						{						
							cell = new CellF_mc();	
							cell.width = 45;
							cell.height = 45;
							cell.x = i * cellSize + 40;
							cell.y = j * cellSize + 50;
							addChild(cell);
							cell.addEventListener(MouseEvent.CLICK, onCellClick);
							cell.stop();
							cells[i][j] = cell;
						}
			}
В примерах из темы переменная принимающая создаваемый класс должна быть Object, но это меня не устраивает по причине использования мною Vector.<MovieClip>();, да и addChild(cell); выдал ошибку.

Или мне сделать внешнюю (до цикла) проверку по условию и скопировать блок с циклом 4 раза для каждого варианта???

Старый 06.06.2016, 21:54
illuzor вне форума Посмотреть профиль Отправить личное сообщение для illuzor Найти все сообщения от illuzor
  № 10  
Ответить с цитированием
illuzor
 
Аватар для illuzor

Регистрация: Dec 2010
Адрес: Ярославль
Сообщений: 1,255
Цитата:
приложение крашится.

Почему?
Возможно, класс spark.components.TextArea не вкомпилирован в swf.
Для этого нужно его импортировать и, например под импортами написать
Код AS3:
TextArea
А другие компоненты, возможно, где-то в коде используются.

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

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

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


 


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


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