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

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

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

Регистрация: Mar 2009
Сообщений: 20
По умолчанию Резиновый флеш

День добрый.
В ролике (Move clip - qwerty) хотел элемент "приклеить" к левому краю. Пропорционально сдвинуть получается, прикрепить к левому краю нет (этого я добиваюсь смещением вычисляя через Stage.width текущую ширину минус исходная ширина). Вот код:

Код AS1/AS2:
// настройки сцены
Stage.scaleMode = "noScale";
Stage.align = "TL";
 
// создадим объект для реагирования на изменение габаритов окна
var resize_obj = {};
 
// запомнили нормальную ширину
resize_obj.normal_width = 480;
 
// запомнили нормальную высоту
resize_obj.normal_height = 80;
 
// самое главное: список объектов, которые будем перемещать
resize_obj.position = [qwerty
                       ];
 
// собственно, реакция на изменения габаритов окна
resize_obj.onResize = function()
{
 
    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._xRatio = Stage.width - resize_obj.normal_width; //А вот смещение работать не хочет
    // пропорция по вертикали
    clip._yRatio = clip._y/resize_obj.normal_height;
}
 
/* запоминаем пропорции высоты и ширины 
(отношение габарита к нормальной ширине/высоте) */
//qwerty._widthRatio = qwerty._width/resize_obj.normal_width;
//qwerty._heightRatio = qwerty._height/resize_obj.normal_height;
 
resize_obj.onResize();
Можете ткнуть где у меня не верно?

Добавлено через 3 минуты
Упс. к правому краю ролика хотелось "приклеить" Move clip - qwerty

Добавлено через 1 час 20 минут
Нашёл ошибку:

clip._x = Stage.width-resize_obj.normal_width+380;
// было clip._xRatio;clip._x = Stage.width*clip._xRatio;
// resize_obj.normal_width - ширина в нормальном виде
//380 - смещение при нормальном виде

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

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

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


 


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


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