Этот урок очень полезный для тех, кто хочет делать, так называемые «резиновые сайты». Все элементы, находящиеся на главной сцене, будут иметь свойство растягиваться и перемещаться по сцене, в зависимости от размера основного окна (к примеру браузера). 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). Пробуем растянуть окно или наоборот сжать его. Мы увидим как меняется размеры текста и объектов и их положение.
Исходник урока здесь >>>
|