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

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

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

Регистрация: Oct 2010
Сообщений: 7
По умолчанию Выравнивание mc относительно друг друга

Добрый день!

Появился вопрос, на который нигде не могу найти ответа... Как выровнять относительно друг друга несколько мувиклипов?
Необходимо силами кода.

То есть взять из библиотеки 4 mc, положить их на сцену, выровнять по центру сцены, а потом сказать, чтобы отступы между ними были, скажем, 20 пикселей.

Вариант сложить все 4 mc в один большой мувиклип и через Align тыркнуть в нем на 4 мелких mc не катит, нужно именно отдельно =(

Буду благодарен за любую помощь в деле!

Старый 04.11.2010, 22:39
Maxi_Hunter вне форума Посмотреть профиль Отправить личное сообщение для Maxi_Hunter Найти все сообщения от Maxi_Hunter
  № 2  
Ответить с цитированием
Maxi_Hunter
 
Аватар для Maxi_Hunter

Регистрация: Jun 2008
Сообщений: 56
Цитата:
Сообщение от desprit Посмотреть сообщение
То есть взять из библиотеки 4 mc, положить их на сцену
Код AS3:
var myMC:myMC_form_lib = new myMC_form_lib();
stage.addChild(myMC);
Цитата:
Сообщение от desprit Посмотреть сообщение
выровнять по центру сцены
Код AS3:
myMC.x = stage.stageWidth/2-this.width/2;
Цитата:
Сообщение от desprit Посмотреть сообщение
отступы между ними были, скажем, 20 пикселей
Код AS3:
myMC2.y = myMC1.y+myMC1.height+20;
как-то так.

Добавлено через 1 минуту
Да, забыл добавить, что это все законно, при условии что центр каждого мувика в верхнем левом углу. Я это ввел за правило и уже не задумываюсь об этом)
__________________
Mechanical life!


Последний раз редактировалось Maxi_Hunter; 04.11.2010 в 22:45.
Старый 05.11.2010, 13:32
desprit вне форума Посмотреть профиль Отправить личное сообщение для desprit Найти все сообщения от desprit
  № 3  
Ответить с цитированием
desprit

Регистрация: Oct 2010
Сообщений: 7
Благодарю, это уже практически то, что нужно.
Единственный момент - после

Код AS3:
myMC2.y = myMC1.y+myMC1.height+20;
теперь, когда на сцене два mc, мне нужно их обоих выровнять по центру.

В общем, пришлось немного помучиться, написать бог весть что, но получилось:

Код AS1/AS2:
var mc1:Mc1 = new Mc1;
var mc2:Mc2 = new Mc2;
var mc3:Mc3 = new Mc3;
 
mc1.y = - (mc1.width + 20 + mc2.width + 20 + mc2.width) / 2;
var mc1Position = - (mc1.width + 20 + mc2.width + 20 + mc2.width) / 2;
 
mc2.y = mc1Position + mc1.width + 20;
var mc2Position = mc1Position + mc1.width + 20;
 
mc3.y = mc2Position + mc2.width + 20;
P.s. забыл сказать, mc1Position у меня записан с минусом, потому что отсчет ведется от середины сцены.

Итак, что мы получили, mc1 создается левее центра сцены, на 20 пх правее создается mc2, еще на 20 правее - mc3. Они втроем выровнены по ширине сцены.

Я просто надеялся, что можно избежать как-то этих танцев с бубном и сделать проще. С моими ограниченными знаниям AS3 приходится воротить такой вот огород

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

Регистрация: Jun 2008
Сообщений: 56
Ну это не танцы с бубном, а самое простое решения данной задачи)
Более грамотный подход - написать функцию, которой передавать как параметры объекты, их смещения и выравнивания.
__________________
Mechanical life!

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

блогер
Регистрация: Nov 2007
Адрес: Almaty, Moscow
Сообщений: 396
Записей в блоге: 5
Отправить сообщение для Партизан с помощью Skype™
Код AS3:
private function hAlign(mcArray:Array, hSpace:int = 20):void {
			var widthSum:int = 0
			for each (var i:MovieClip in mcArray){
				widthSum += i.width
			}
			var wspace:int = widthSum + hSpace * (mcArray.length - 1);
			var posX:int = (stage.stageWidth - wspace) / 2;
			for (var j:int = 0; j < mcArray.length; j++){
				var mc:MovieClip = mcArray[j] as MovieClip;
				mc.x = posX
				posX = posX + mc.width + hSpace;
			}
		}
Массив мувиков передайте в функцию

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

Регистрация: Oct 2010
Сообщений: 7
О, а вот это уже отлично!
Когда 2-3 объекта, еще не так страшно, а если их будет с десяток, то массивом на порядок проще!
Спасибо большое, буду осознавать теперь =)

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

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

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


 


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


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