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

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

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

Регистрация: Jul 2009
Сообщений: 12
По умолчанию Динамическое именование новых объектов

Здравствуйте.

Нужно загрузить несколько картинок, позже ими управлять. Количество картинок узнаю из xml. Как мне динамически присваивать им имена?

Раньше прокатывало, что-то вроде:
Код AS3:
_root[foto+"i"].startLoad(fotosURLs[i]);
Потом обращался к объекту как к «foto5» к примеру.

Как быть теперь в свете AS3?

Хотелось бы оживить вот такой код:
Код AS3:
for (var i:String in fotosURLs) { 
var [foto+"i"]:LoadFoto = new LoadFoto();
[foto+"i"].startLoad(fotosURLs[i]);
addChild([foto+"i"]);
}
Спасибо.

Старый 06.07.2009, 17:33
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 2  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Не надо никаких имен. Создали объект - записали ссылку на него в массив. Потому из массива берете ссылку и работаете с ней.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

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

Регистрация: Jul 2009
Сообщений: 12
Цитата:
Сообщение от iNils Посмотреть сообщение
Не надо никаких имен. Создали объект - записали ссылку на него в массив. Потому из массива берете ссылку и работаете с ней.
А можно пример кода или ссылку? Что-то не понял как на практике реализовать.

Старый 06.07.2009, 17:50
Gal4enochek вне форума Посмотреть профиль Отправить личное сообщение для Gal4enochek Найти все сообщения от Gal4enochek
  № 4  
Ответить с цитированием
Gal4enochek

Регистрация: May 2008
Адрес: Днепропетровск
Сообщений: 151
Отправить сообщение для Gal4enochek с помощью ICQ
Код AS3:
var clips :Array = new Array();
for (var i:int = 0; i<количество_клипов; i++){
    var mc : LoadFoto = new LoadFoto();
    this.addChild(mc);
    clips.push(mc);
    mc.x = 100 * i;
}
 
// управление
var cl : LoadFoto = clips[2];
cl.y = 5;
Например так.

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

Регистрация: Jul 2009
Сообщений: 12
Спасибо!

Старый 07.07.2009, 11:47
nOobCrafter вне форума Посмотреть профиль Отправить личное сообщение для nOobCrafter Найти все сообщения от nOobCrafter
  № 6  
Ответить с цитированием
nOobCrafter

Регистрация: Nov 2008
Сообщений: 894
Записей в блоге: 1
iNils, Gal4enochek омг, а что без массива вообще никак? О_о... После простоты этого дела в ас2, тут это кажеться жутким расточительством(((

Старый 07.07.2009, 12:08
Gal4enochek вне форума Посмотреть профиль Отправить личное сообщение для Gal4enochek Найти все сообщения от Gal4enochek
  № 7  
Ответить с цитированием
Gal4enochek

Регистрация: May 2008
Адрес: Днепропетровск
Сообщений: 151
Отправить сообщение для Gal4enochek с помощью ICQ
Ну можно через имена вот так например
Код AS3:
for (var i:int = 0; i<5; i++){
	var cl :MovieClip = new Symbol1();
	cl.name = "clip"+i;
	this.addChild(cl);
	cl.x = i*100;
}
this.getChildByName("clip0").y = 200;
Но я б так не делала.
1) имена все равно где-то хранить надо (вообще строки где-то посреди кода - то есть плохо). Если вы где-то имя поменяете, то потом искать по всему коду, где ж оно еще было-то.
2) надо постоянно помнить, какие имена уже были задействованы, чтобы не повторятся.
3) расточительства никакого нет, вы же храните только ссылки на клипы, а не их дубликаты.

Старый 07.07.2009, 13:09
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 8  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Цитата:
Сообщение от nOobCrafter Посмотреть сообщение
iNils, Gal4enochek омг, а что без массива вообще никак? О_о... После простоты этого дела в ас2, тут это кажеться жутким расточительством(((
Какой простоты? Единичные объекты, и там и там, хранились как ссылки. Динамические объекты? Так я и в as2 хранил их в массиве, это быстрее, чем писать каждый раз this["name" + i]
__________________
(и)Нильс.ru | Плагины для FlashDevelop

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

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

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


 


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


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