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

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

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

Регистрация: Aug 2011
Сообщений: 4
Question Как программно создать копии MovieClip'а?

Здравствуйте!
Допустим мы создали клип "square"... Как в цикле создать несколько экземпляров этого клипа и разместить их на сцене?

Старый 25.08.2011, 10:23
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 2  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
Код AS3:
for (var i:int = 0; i < 5; i++) {        // создаст 5 экземпляров клипа
      var s:square = new square();
      stage.addChild(s);
}
При условии, что в его свойствах стоит галка export for actionscript и класс назван square

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

Регистрация: Aug 2011
Сообщений: 4
Спасибо!

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

Регистрация: Aug 2011
Сообщений: 4
Да, вот только все эти клипы имеют одно имя - s, а как создать экземпляры с разными именами(s0,s1,s2...) чтобы к ним был доступ после их создания? А так если вне цикла попробовать изменить координаты доступен только последний создавшийся клип...

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

Регистрация: Nov 2009
Адрес: Тула / Москва
Сообщений: 734
Отправить сообщение для ChuwY с помощью ICQ Отправить сообщение для ChuwY с помощью Skype™
Или вот так:
Код AS3:
for(var i : int = 0; i < 5; i++){
	var clipClass : Class = Object(square).constructor;
	var newSquare : MovieClip = new clipClass();
	addChild(newSquare);
	newSquare.x = i*newSquare.width;
}
При условии, что в его свойствах стоит галка export for actionscript, но названия конкретного класса мы не знаем.

ps. опоздал
__________________
9 из 10 голосов в моей голове сказали наркотикам "НЕТ"
Мои ачивки: художник-паразит.


Последний раз редактировалось ChuwY; 25.08.2011 в 13:26.
Старый 25.08.2011, 13:01
cleptoman вне форума Посмотреть профиль Отправить личное сообщение для cleptoman Найти все сообщения от cleptoman
  № 6  
Ответить с цитированием
cleptoman
 
Аватар для cleptoman

блогер
Регистрация: Mar 2007
Сообщений: 1,291
Записей в блоге: 5
Отправить сообщение для cleptoman с помощью ICQ
s - это не имя..имя у мувиков задается в специальном свойстве name.
__________________
http://cleptoman.free-lance.ru
achivements: дважды благословлен на воровство. осеяный благодатью

Старый 25.08.2011, 13:05
ЗлОй ПрОграММер вне форума Посмотреть профиль Отправить личное сообщение для ЗлОй ПрОграММер Найти все сообщения от ЗлОй ПрОграММер
  № 7  
Ответить с цитированием
ЗлОй ПрОграММер

Регистрация: Nov 2010
Сообщений: 434
Добавляйте созданные мувики в массив потом через него будете к ним обращаться
Код AS3:
var MovieClips: Array = new Array();
for (var i:int = 0; i < 5; i++) {        // создаст 5 экземпляров клипа
      var s:square = new square();
      stage.addChild(s);
      MovieClips.Push(s);
}
MovieClips[0].x = 34;
MovieClips[1].y = 56;
sorry за то что украл часть кода у Goodguy))

Старый 25.08.2011, 13:11
toFL вне форума Посмотреть профиль Найти все сообщения от toFL
  № 8  
Ответить с цитированием
toFL
Banned

Регистрация: May 2011
Адрес: +48° 27' 57.93", +35° 2' 46.02"
Сообщений: 447
Записей в блоге: 2
Отправить сообщение для toFL с помощью Skype™
Код AS3:
var MovieClips: Array = new Array();
var movieClips: Array = new Array();
имена переменных принято называть с маленькой буквы.
Код AS3:
MovieClips.Push(s);
movieClips.push(s);

Старый 25.08.2011, 13:14
ЗлОй ПрОграММер вне форума Посмотреть профиль Отправить личное сообщение для ЗлОй ПрОграММер Найти все сообщения от ЗлОй ПрОграММер
  № 9  
Ответить с цитированием
ЗлОй ПрОграММер

Регистрация: Nov 2010
Сообщений: 434
а я глобальные переменные называю с большой буквы а локальные с маленькой, по мне так это удобно)

Старый 25.08.2011, 13:16
toFL вне форума Посмотреть профиль Найти все сообщения от toFL
  № 10  
Ответить с цитированием
toFL
Banned

Регистрация: May 2011
Адрес: +48° 27' 57.93", +35° 2' 46.02"
Сообщений: 447
Записей в блоге: 2
Отправить сообщение для toFL с помощью Skype™
Цитата:
а я глобальные переменные называю с большой буквы а локальные с маленькой, по мне так это удобно)
Хозяин - барин. Но обычно так не делают. Используют маленькую букву для public и _ для private. С большой буквы только классы и интерфейсы.

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

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

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


 


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


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