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

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

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

Регистрация: Nov 2008
Адрес: Moscow
Сообщений: 493
Отправить сообщение для Dr_Bra с помощью ICQ
Question Обращение к объектам в библиотеке через массив

Всем доброго здоровья!

Подскажите, как грамотно написать обращение к классу объекта в библиотеке?
Есть Object_1. Мы его можем вызвать и добавить на сцену так:
Код AS3:
object1 = new Object_1();
container.addChild(object1);
А как обратиться к этому объекту через динамическую переменную. Указав окончания "1" в квадратных скобках.
Код AS3:
object1 = new (['Object_'+[1]]) as Objects;//чуш написал, не работает так. Но можно как-то исхитриться?

Старый 28.03.2018, 17:49
undefined вне форума Посмотреть профиль Отправить личное сообщение для undefined Найти все сообщения от undefined
  № 2  
Ответить с цитированием
undefined

Регистрация: Oct 2006
Сообщений: 2,281
Код AS3:
var i:uint=1;//номер класса.
var _class:Class=getDefinitionByName("Object_"+i);
if(_class)
  this["object"+i]=new _class();//дальше обращаемся к экземпляру через this["object"+i]


Последний раз редактировалось undefined; 28.03.2018 в 17:59.
Старый 28.03.2018, 18:05
Bletraut вне форума Посмотреть профиль Отправить личное сообщение для Bletraut Найти все сообщения от Bletraut
  № 3  
Ответить с цитированием
Bletraut
 
Аватар для Bletraut

Регистрация: Mar 2013
Адрес: Вне пространства.
Сообщений: 566
Отправить сообщение для Bletraut с помощью ICQ Отправить сообщение для Bletraut с помощью Skype™
Цитата:
Сообщение от undefined Посмотреть сообщение
Код AS3:
var i:uint=1;//номер класса.
var _class:Class=getDefinitionByName("Object_"+i);
if(_class)
  this["object"+i]=new _class();//дальше обращаемся к экземпляру через this["object"+i]
еще добавить
Код AS3:
import flash.utils.*;
__________________
Я заклинаю вас действовать иначе.

Старый 28.03.2018, 18:19
Dr_Bra вне форума Посмотреть профиль Отправить личное сообщение для Dr_Bra Посетить домашнюю страницу Dr_Bra Найти все сообщения от Dr_Bra
  № 4  
Ответить с цитированием
Dr_Bra
 
Аватар для Dr_Bra

Регистрация: Nov 2008
Адрес: Moscow
Сообщений: 493
Отправить сообщение для Dr_Bra с помощью ICQ
Цитата:
Сообщение от undefined Посмотреть сообщение
Код AS3:
var i:uint=1;//номер класса.
var _class:Class=getDefinitionByName("Object_"+i);
if(_class)
  this["object"+i]=new _class();//дальше обращаемся к экземпляру через this["object"+i]
Благодарю за подсказку. Пока не получилось, выдает ошибку. Где-то я не то пишу?

Код AS3:
objectNum ++;
trace(objectNum);//выводит 1
var _class:Objects = getDefinitionByName("Object_"+[objectNum]);
 
this["object"+[objectNum]] = new _class();//дальше обращаемся к экземпляру через this["object"+objectNum]
container.addChild(this["object"+[objectNum]]);
Изображения
 

Старый 28.03.2018, 18:31
Dr_Bra вне форума Посмотреть профиль Отправить личное сообщение для Dr_Bra Посетить домашнюю страницу Dr_Bra Найти все сообщения от Dr_Bra
  № 5  
Ответить с цитированием
Dr_Bra
 
Аватар для Dr_Bra

Регистрация: Nov 2008
Адрес: Moscow
Сообщений: 493
Отправить сообщение для Dr_Bra с помощью ICQ
Код AS3:
objectNum ++;
trace(objectNum);//1 2 ...
var _class = getDefinitionByName("Object_"+objectNum);
 
this["object"+objectNum] = new _class();//дальше обращаемся к экземпляру через this["object"+objectNum]
container.addChild(this["object"+objectNum]);
Вот так ошибки не выдает, работает

Добавлено через 15 минут
Всем спасибО!

Старый 31.03.2018, 14:28
dark256 вне форума Посмотреть профиль Отправить личное сообщение для dark256 Посетить домашнюю страницу dark256 Найти все сообщения от dark256
  № 6  
Ответить с цитированием
dark256
 
Аватар для dark256

блогер
Регистрация: Apr 2008
Адрес: SPb
Сообщений: 3,718
Записей в блоге: 5
Отправить сообщение для dark256 с помощью ICQ Отправить сообщение для dark256 с помощью Skype™
Код AS3:
var objPool:Array = [];
 
objPool[1] = container.addChild( new Object_1() );
...
objPool[X] = container.addChild( new Object_X() );
 
/////////////
 
objPool[ n ].methodName( бла бла бла );
или

Код AS3:
objPool[X]  = container.addChild( new getDefinitionByName("Object_"+X) );
__________________
FLASHER.MAP SOUNDSTAGE / CS3 / AS2

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

Теги
библиотека , класс , массив , обращение , объект
Опции темы
Опции просмотра

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

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


 


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


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