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

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

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

Регистрация: Dec 2011
Сообщений: 40
По умолчанию Создание объектов в цикле

У меня есть файл библиотеки swc, который содержит, допустим
100 картинок (классов). Мне нужно создать массив из всех этих картинок.
Как это сделать проще? Циклом. Как сделать название классов картинки в виде переменной?

Например могу так:

Код AS3:
Мас:array=new Array;
 
Mac[1]=new image001();
Mac[2]=new image002();
 
...
 
Mac[100]=new image100();
Как сделать проще, в цикле?

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

блогер
Регистрация: Feb 2010
Адрес: MSK
Сообщений: 859
Записей в блоге: 3
Отправить сообщение для Genzo с помощью ICQ Отправить сообщение для Genzo с помощью Skype™
Код AS3:
for(var i:uint = 0;i<100;i++)
{
var ClassReference:Class = getDefinitionByName("image" + i) as Class;
var instance:Object = new ClassReference();
mac.push(instance);
}
__________________
Gamedev != Gaming (http://twitter.com/#!/GenzoDev). Don't forget to [+] if it works.

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

блогер
Регистрация: Apr 2011
Сообщений: 583
Записей в блоге: 2
Поправочка:
Мне кажется, что так просто getDefinitionByName не найдет класс. Этот класс нужно хоть раз где-то обьявить в коде. Типа указать что он существует.
Код AS3:
const classes:Vector.<Class> = new <Class>[image001, image002, image003........];
.........................................................................
var name:String = "image";
var ClassReference:Class;
var instance:*;
for(var i:uint = 1; i <= 100; i++) {
   if(i < 100) {
      name += "0";
   }
   if (i < 10) {
      name += "0";
   }
   ClassReference = getDefinitionByName(name + i) as Class;
   instance = new ClassReference();
   mac.push(instance);
}
__________________
Я мало чего умею, но зато хорошо умею учиться...


Последний раз редактировалось HardCoder; 30.01.2012 в 13:08.
Старый 30.01.2012, 13:05
Dukobpa3 вне форума Посмотреть профиль Отправить личное сообщение для Dukobpa3 Найти все сообщения от Dukobpa3
  № 4  
Ответить с цитированием
Dukobpa3
 
Аватар для Dukobpa3

блогер
Регистрация: Oct 2010
Адрес: Киев
Сообщений: 1,678
Записей в блоге: 12
Отправить сообщение для Dukobpa3 с помощью Skype™
свц может подключаться тремя методами:
- как внешняя библиотека (вообще не вкомпиливаться)
- как встроенная библиотека (скомпиливается полностью вне зависимости от того дергали мы класс или нет)
- библиотека "по вызову" - вкомпиливаются только те классы которые были объявлены в коде.

В данном случае нужен второй вариант.
__________________
Кто к нам с чем для чего - тот у нас того от того.

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

блогер
Регистрация: Apr 2011
Сообщений: 583
Записей в блоге: 2
Dukobpa3, я так понимаю:
1 - загрузка в рантайме;
2 - ?????????????????;
3 - ?????????????????
Можно по подробнее по 2-му и 3-му?

Добавлено через 4 минуты
Попробовал подключить библиотеку в ФД привычным для меня способом: "Add to library".
getDefinitionByName класс не увидел.
__________________
Я мало чего умею, но зато хорошо умею учиться...


Последний раз редактировалось HardCoder; 30.01.2012 в 13:17.
Старый 30.01.2012, 13:23
Dukobpa3 вне форума Посмотреть профиль Отправить личное сообщение для Dukobpa3 Найти все сообщения от Dukobpa3
  № 6  
Ответить с цитированием
Dukobpa3
 
Аватар для Dukobpa3

блогер
Регистрация: Oct 2010
Адрес: Киев
Сообщений: 1,678
Записей в блоге: 12
Отправить сообщение для Dukobpa3 с помощью Skype™
Если фд, то:

тыкаем правой кнопкой на свц.
Ставим галку подключить. После этого библиотека по дефолту подключится третьим способом.
Если нам нужен гетДефинишн - то надо опять тыкнуть правой кнопкой по свц, там выбрать опшинс, и поставить "included library".

Что там с первым способом я хз. Возможно просто чтоб автокомплит работал, но загружать придется руками лоадером. Иногда полезно если какой-то клиент-сервер с модульной структурой, или игра какая-то и чтоб сама флешка весила мало, то делают арт подгружаемый с сервера, а дальше гетДефинишн или что-то другое.
__________________
Кто к нам с чем для чего - тот у нас того от того.

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

блогер
Регистрация: Apr 2011
Сообщений: 583
Записей в блоге: 2
Цитата:
Сообщение от Dukobpa3 Посмотреть сообщение
Если нам нужен гетДефинишн - то надо опять тыкнуть правой кнопкой по свц, там выбрать опшинс, и поставить "included library".
Теперь заработало. Спасибо.
__________________
Я мало чего умею, но зато хорошо умею учиться...

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

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

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


 


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


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