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

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

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

Регистрация: May 2003
Адрес: Москва
Сообщений: 186
По умолчанию Резиновое позиционирование

UPDATE: http://www.flasher.ru/forum/showpost...02&postcount=6 (исходники в формате Flash CS3).


Есть проблема: не могу выровнять объекты circle (1 — 5) по верхней границе объекта square. В размере по-умолчанию всё позиционируется как надо. Однако, когда размер окна изменяется, объекты съезжают выше или ниже square.

Так же не могу понять, каким образом выдержать расстояние между объектами circle и rec одинаковым. Оно тоже съезжает, если изменить размер окна.

Большая просьба подсказать, в какую сторону копать.
Исходник и код прикладываю.

Всем известный код:

Код AS1/AS2:
/*
(c) by Nox Noctis for noregret.org and flash-mx.ru
feel@noregret.org
 
sample 3 for tutorial:
http://noregret.org/tutor/elastic/
*/
 
// настройки сцены
Stage.scaleMode = "noScale";
Stage.align = "TL";
 
// создадим объект для реагирования на изменение габаритов окна
var resize_obj = {};
 
// запомнили нормальную ширину
resize_obj.normal_width = 900;
 
// запомнили нормальную высоту
resize_obj.normal_height = 675;
 
// самое главное: список объектов, которые будем перемещать
resize_obj.position = [square,   
                                circle,  
                                circle2, 
                                circle3,
				circle4,
				circle5,
				rec1,
				rec2,
				rec3,
				rec4,
				rec5,
				];
 
// собственно, реакция на изменения габаритов окна
resize_obj.onResize = function()
{
	  _root.TF1.text = "текущие габариты ролика: ";
		_root.TF1.text += Stage.width+"x";
		_root.TF1.text += Stage.height;
 
    var clip;
    for (var i in this.position) {
        // перебираем все клипы в списке
        clip = this.position[i];
 
        // восстанавливаем пропорции для каждого клипа
        clip._x = Stage.width*clip._xRatio;
        clip._y = Stage.height*clip._yRatio;
 
				// если для клипа определена пропорция по ширине
				if (clip._widthRatio != undefined) {
					clip._width = Stage.width*clip._widthRatio;
				}
				// если для клипа определена пропорция по высоте
				if (clip._heightRatio != undefined) {
					clip._height = Stage.height*clip._heightRatio;
				}
    }
};
 
// связь между классом Stage и объектом resize_obj
Stage.addListener(resize_obj);
 
/* запоминаем пропорции координат 
(отношение координат к нормальной ширине/высоте) */
var clip;
for (var i in resize_obj.position) {
    // перебираем все клипы в списке
    clip = resize_obj.position[i];
 
    // пропорция по горизонтали
    clip._xRatio = clip._x/resize_obj.normal_width;
 
    // пропорция по вертикали
    clip._yRatio = clip._y/resize_obj.normal_height;
}
 
/* запоминаем пропорции высоты и ширины 
(отношение габарита к нормальной ширине/высоте) */
square._Ratio = square.noScale;
circle._Ratio = circle.noScale;
circle2._Ratio = circle2.noScale;
circle3._Ratio = circle3.noScale;
circle4._Ratio = circle4.noScale;
circle5._Ratio = circle5.noScale;
rec1._Ratio = rec1.noScale;
rec2._Ratio = rec2.noScale;
rec3._Ratio = rec3.noScale;
rec4._Ratio = rec4.noScale;
rec5._Ratio = rec5.noScale;
 
 
	resize_obj.onResize();
Вложения
Тип файла: zip index.fla.zip (14.0 Кб, 52 просмотров)
__________________
Достал уж всех своими глупыми вопросами...


Последний раз редактировалось serdeles; 14.05.2010 в 16:14.
Создать новую тему   Часовой пояс GMT +4, время: 19:44.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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