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

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

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

Регистрация: Jan 2008
Адрес: Украина, Славутич
Сообщений: 646
Отправить сообщение для willis83 с помощью ICQ
По умолчанию Динамические имена

Забыл как объявляются динамические имена, обрыл всё, не могу вспомнить.
Есть цикл:
Код:
for (i=2; i < 10; i++) {
   var mov[i]:MovieClip = new MovieClip();
   mov[i].graphics.beginFill(0xFF0000, 1);
   mov[i].graphics.drawRect(i*30, 50, 20, 20);
   mov[i].graphics.endFill();
   addChild(mov[i]);
};
Ругается на mov[i] потому что это не массив, пытался уже и "mov"+i и как только не пытался, вылетело из головы и всё. Напомните пожалуйста.


Последний раз редактировалось willis83; 08.02.2009 в 19:07.
Старый 08.02.2009, 18:35
_Smirnoff вне форума Посмотреть профиль Отправить личное сообщение для _Smirnoff Найти все сообщения от _Smirnoff
  № 2  
Ответить с цитированием
_Smirnoff
 
Аватар для _Smirnoff

блогер
Регистрация: Jul 2007
Адрес: Russia
Сообщений: 292
Записей в блоге: 5
Код жесть. А почему нельзя

Код AS3:
for (i=2, i < 10, i++) {
   var mov:MovieClip = new MovieClip();
   mov.graphics.beginFill(0xFF0000, 1);
   mov.graphics.drawRect(i*30, 50, 20, 20);
   mov.graphics.endFill();
   addChild(mov);
}
__________________
Оптимизация производительности на уровне кода

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

Регистрация: Jan 2009
Сообщений: 41
Да тут без [] нужно обходиться так как
Код AS3:
var mov:MovieClip = new MovieClip();
этой строчкой ты уже создаешь новый MovieClip() и некаой старый не изменяется

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

Регистрация: Jan 2008
Адрес: Украина, Славутич
Сообщений: 646
Отправить сообщение для willis83 с помощью ICQ
_Smirnoff так как написал ты нельзя потому что повторные циклы будут создавать опять же мувик mov, а мувик с таким именем уже был создан предыдущим циклом, конфиклт получается. У меня задача создать 9 мувиков с квадратами и расположить их по вертикали

Добавлено через 32 секунды
9 мувиков с различными именами

Добавлено через 7 минут
Без [] работает!!! (в AS2 не работало), но мена у всех получаются одинавовые и как с ними работать???


Последний раз редактировалось willis83; 08.02.2009 в 19:05.
Старый 08.02.2009, 22:20
_Smirnoff вне форума Посмотреть профиль Отправить личное сообщение для _Smirnoff Найти все сообщения от _Smirnoff
  № 5  
Ответить с цитированием
_Smirnoff
 
Аватар для _Smirnoff

блогер
Регистрация: Jul 2007
Адрес: Russia
Сообщений: 292
Записей в блоге: 5
Цитата:
Сообщение от willis83 Посмотреть сообщение
_Smirnoff так как написал ты нельзя потому что повторные циклы будут создавать опять же мувик mov, а мувик с таким именем уже был создан предыдущим циклом, конфиклт получается. У меня задача создать 9 мувиков с квадратами и расположить их по вертикали
Врятли будет кофликт, а вот занесение в массив это гуд.
__________________
Оптимизация производительности на уровне кода

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

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
1. В AS3 имена не необязательны, в отличии от AS2.
2. MovieClip тут тоже лишний, надо использовать Sprite или Shape.
3. mov это ссылка клип, который мы потом помещаем в массив, и когда надо обратится к клипу, берем из этого массива.
Итого получаем
Код AS3:
var arrayMov:Array = new Array ();
for (var i:int = 2; i < 10; i++) {
	var mov:Sprite = new Sprite ();
	mov.graphics.beginFill (0xFF0000, 1);
	mov.graphics.drawRect (i*30, 50, 20, 20);
	mov.graphics.endFill ();
	addChild (mov);
	arrayMov.push (mov)
}
__________________
(и)Нильс.ru | Плагины для FlashDevelop

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

Регистрация: Jan 2008
Адрес: Украина, Славутич
Сообщений: 646
Отправить сообщение для willis83 с помощью ICQ
а если я хочу к каждому муву потом прикрутить листенер на клик мыши. Спрайты помоему с этим не дружат, или я ошибаюсь?

Добавлено через 7 минут
из руководства по программированию:
Новый класс Sprite является облегченным конструктивным элементом, сходным с классом MovieClip, но более
пригодным в качестве базового класса для компонентов пользовательского интерфейса. Новый класс Shape
воспроизводит векторные фигуры без сжатия. Экземпляры этих классов легко могут создаваться с помощью
оператора new, а затем динамически переназначаться в любое время другим родительским объектам.

И как я понимаю shape вообще пригоден только для визуальних объектов без всякой интерактивной нагрузки. Спрайт я вообще не до конца ещё понял.

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

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
Shape подходит для простых фигур без интерактива.
Sprite это тот же MovieClip, но однокадровый. А по скольку программно создать кадры не получится, и уже тем более нельзя создать таймлайн анимацию, то про MovieClip, кроме как в Flash IDE, можно вообще забыть.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

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

Регистрация: Jan 2008
Адрес: Украина, Славутич
Сообщений: 646
Отправить сообщение для willis83 с помощью ICQ
Спасибо, iNils! Теперь понятно.

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

Регистрация: Jan 2008
Адрес: Украина, Славутич
Сообщений: 646
Отправить сообщение для willis83 с помощью ICQ
А чё за Flash IDE? Часто встречается, а о чем речь понять не могу. Это как-то с флекс билдером связано?

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

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

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


 


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


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