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

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

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

Регистрация: Oct 2010
Сообщений: 85
По умолчанию Сдвиг объектов в форме при ее ресайзе

Название: Безымянный-1.jpg
Просмотров: 195

Размер: 10.6 Кб
Есть некая форма, которую можно ресайзить по ширине и высоте. Внутри формы находится ряд объектов, на картинке это кубики. При изменении ширины формы, объекты не должны выходить за грань формы, нужно изменять их положение. На картинке пунктирная линия показывает изменение ширины формы и сдвиг одного объекта вниз на высоту этого объекта и т.д.

Проблема в том, что не получается изменять положения объектов по .y

Подскажите, как сделать, чтобы при допустимом заполнении формы объекты сдвигались на одну позицию вниз или вверх.


Сейчас, чтобы определить нужно ли мне сдвигать объект вниз, я сравниваю в условии длину объектов с шириной формы, после этого выполняется условие и всё что я могу, это железно прописать одно значение, пока не пойму, как сделать иначе.


Последний раз редактировалось BornTOFree; 01.04.2012 в 19:36.
Старый 01.04.2012, 21:19
bav вне форума Посмотреть профиль Отправить личное сообщение для bav Найти все сообщения от bav
  № 2  
Ответить с цитированием
bav
 
Аватар для bav

Регистрация: Oct 2010
Сообщений: 1,049
Отправить сообщение для bav с помощью ICQ
При каждом изменении размера области:
Код AS3:
var array:Array = [obj1, obj2, ... , objn]; // массив объектов
var count:int = array.length;
var areaWidth:int = 500; // ширина области
for (var i:int = 0, j:int = 0, k:int = 0; k < count; k++)
{
	var obj:DisplayObject = array[k] as DisplayObject;
	obj.x = i * obj.width;
	obj.y = j * obj.height;
	if (++i * obj.width + obj.width > areaWidth)
	{
		i = 0;
		j++;
	}
}

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

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

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


 


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


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