Суббота, 28.06.2025, 18:55
| RSS
Главная | Каталог статей
Меню сайта
Интересные даты
23.12.2008
рождение проекта
Категории каталога
ActionScript 1.0 | 2.0 [15]
Уроки по Акшин Скрипт версии 2.0
ActionScript 3.0 [0]
Уроки по Акшин Скрипт версии 3.0
Анимация [3]
Уроки по анимации, рисование во Flash
Разное [4]
Все остальное
Форма входа
Поиск
Друзья сайта
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Главная » Статьи » Уроки » ActionScript 1.0 | 2.0

Масштаб элементов внутри Флэша
Этот урок очень полезный для тех, кто хочет делать, так называемые «резиновые сайты». Все элементы, находящиеся на главной сцене, будут иметь свойство растягиваться и перемещаться по сцене, в зависимости от размера основного окна (к примеру браузера).
1. Создаем новый .fla файл. File > New или (Ctrl+N).
2. Создаем два слоя на главной сцене. Первый слой «Action Script», а второй слой «Elements».

3. В слое «Elements» мы создаем 3 мувика (MovieClip) и 4 динамических поля. Как на картинке.

Имена соответственно каждому в поле “Instance name”.

Тестовые имена (TF0, TF1, TF2, TF3), в них пишем что хотим и имена клипов (square, circle, triangle).
4. В слое "ActionScript" в первом кадре пишем:

// настройки сцены
Stage.scaleMode = "noScale";
Stage.align = "TL";

// создадим объект для реагирования на изменение габаритов окна
var resize_obj = {};

// запомнили нормальную ширину
resize_obj.normal_width = 400;

// запомнили нормальную высоту
resize_obj.normal_height = 300;

// самое главное: список объектов, которые будем перемещать
resize_obj.position = [square, // квадрат
  circle, // круг
  triangle, // треугольник
  TF0, TF1, 
  TF2, TF3 // текст. поля
  ];

// собственно, реакция на изменения габаритов окна
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;
}

/* запоминаем пропорции высоты и ширины 
(отношение габарита к нормальной ширине/высоте) */
circle._widthRatio = circle._width/resize_obj.normal_width;
circle._heightRatio = circle._height/resize_obj.normal_height;
square._widthRatio = square._width/resize_obj.normal_width;
triangle._heightRatio = triangle._width/resize_obj.normal_height;
TF2._widthRatio = TF2._width/resize_obj.normal_width;

resize_obj.onResize();


После завершения тестируем. Control > Test Movie (Ctrl+ENTER). Пробуем растянуть окно или наоборот сжать его. Мы увидим как меняется размеры текста и объектов и их положение.

Исходник урока здесь >>>
Категория: ActionScript 1.0 | 2.0 | Добавил: admin (11.01.2009)
Просмотров: 2807 | Комментарии: 1 | Рейтинг: 0.0/0
Сделать бесплатный сайт с uCozCopyright by Flash Tehnologi © 2008-2025 | design by fred_ford