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

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

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

Регистрация: Sep 2005
Сообщений: 42
Ты конкретно опиши цель, которая перед тобой стоит... какие там "куски" ты собрался вытаскивать? А главное зачем?
P.S. не изобретай велосипед...

Старый 29.11.2009, 04:29
SamFR вне форума Посмотреть профиль Отправить личное сообщение для SamFR Посетить домашнюю страницу SamFR Найти все сообщения от SamFR
  № 12  
Ответить с цитированием
SamFR

Регистрация: Mar 2008
Адрес: Ростов-на-Дону
Сообщений: 354
Цитата:
Сообщение от engineer_f_R Посмотреть сообщение
П.с.Неужели нельзя поинтересоваться неоптимальными способами, чтобы их узнать?
Вам уже всё рассказали:

Цитата:
Сообщение от GentleFLASH Посмотреть сообщение
А по теме - если объект динамический, то можно обращаться как: this["A" + i] где i это номер переменной.
То есть можно воспользоваться объектом (хэшем) вместо массива:

Код AS3:
var hash:Object = new Object();
hash['baseName' + i] = value;
Иногда этот способ более оптимален, чем использование массива. Но не факт, что в вашем случае это так.

И можно поинтересоваться, как связаны вложенные массивы и имена? Если уж на то пошло, объект под названием "массив" имени не имеет. Имя может иметь переменная, ссылающаяся на него. В случае вложенного массива на него будет ссылаться элемент родительского массива, который определяется своим номером, а не именем:

Код AS3:
var arr:Array = new Array();
arr[0] = [1, 2, 3];
arr[1] = ['a', 'b', 'c'];
trace(arr[0]);
trace(arr[1]);
Где вы тут имена увидели?)

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

блогер
Регистрация: Mar 2007
Сообщений: 1,291
Записей в блоге: 5
Отправить сообщение для cleptoman с помощью ICQ
Код AS3:
var yourMovie:MovieClip;
var i:Number;
var length:Number = 100;
 
for(i = 1; i <= length; i++){
yourMovie = new MovieClip();
yourMovie.name = "A" + String(i);
trace(yourMovie.name);
}
__________________
http://cleptoman.free-lance.ru
achivements: дважды благословлен на воровство. осеяный благодатью

Старый 29.11.2009, 14:57
engineer_f_R вне форума Посмотреть профиль Отправить личное сообщение для engineer_f_R Найти все сообщения от engineer_f_R
  № 14  
Ответить с цитированием
engineer_f_R

Регистрация: Oct 2009
Сообщений: 53
Спасибо тебе о cleptoman, за то что понял мой вопрос и дал краткий и хороший ответ!!! Тысяча тебе благодарностей!!!

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

Регистрация: Feb 2008
Адрес: Череповец
Сообщений: 623
Отправить сообщение для Felicast с помощью ICQ
Цитата:
Спасибо тебе о cleptoman, за то что понял мой вопрос и дал краткий и хороший ответ!!! Тысяча тебе благодарностей!!!
вы батенька, очень плохо изъясняетесь. ваш вопрос был:
Цитата:
сделать циклом переменные от А_1 до А_100
а приведенный пример cleptoman'а к этому никак не относится. самым близким к вопросу было решение, предложенное SamFR:
Код AS3:
var hash:Object = new Object();
hash['baseName' + i] = value;
__________________
я могу стать всем, если только захочу

Старый 29.11.2009, 18:47
SamFR вне форума Посмотреть профиль Отправить личное сообщение для SamFR Посетить домашнюю страницу SamFR Найти все сообщения от SamFR
  № 16  
Ответить с цитированием
SamFR

Регистрация: Mar 2008
Адрес: Ростов-на-Дону
Сообщений: 354
engineer_f_R, не путайте имена переменных с именами экземпляров DisplayObject. Ваш вопрос, как вы его сформулировали, действительно был совсем про другое.

Код, предложенный cleptoman, задаёт именно имена отображаемых объектов, а не имена переменных. Чтобы впоследствии обратиться к такому объекту, нужно, во-первых, сразу после создания и назначения имени добавить его в какой-нибудь контейнер (container.addChild(yourMovie)), а впоследствии обращаться с помощью container.getChildByName("A" + String(i)). Как к именованной переменной вы обратиться к такому объекту не сможете. Кроме того, это не самый оптимальный по скорости метод, да и работать он будет только с наследниками DisplayObject.

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

блогер
Регистрация: Mar 2007
Сообщений: 1,291
Записей в блоге: 5
Отправить сообщение для cleptoman с помощью ICQ
вот что собсно сподвигло на код:

Цитата:
Сообщение от engineer_f_R Посмотреть сообщение
я создаю много экземпляров мувиклипа и хочу чтобы у каждого было уникальное имя, даное ему по порядку его добавления. И я не знаю изначально сколько штук экземпляров у меня будет.
с первоночальной формулировкой даа, траблы )
__________________
http://cleptoman.free-lance.ru
achivements: дважды благословлен на воровство. осеяный благодатью

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

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

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


 


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


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