Пятница, 17.05.2024, 12:27
| 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

ZOOM или масштабирование

Интересно, а можно ли увеличить flash ролик используя колесико мышки? Да! И не только колесиком, но и ... вообщем учитесь!!!

В основном используем Action Script 2,0

1.Создаем новый документ fla.

2.Размеры 650х400, FPS – 30.

3.Создаем 4 слоя (АКШИН, ПРОЦЕНТЫ, ЗУМ, ЛОГОТИП)

4.В Слое ЛОГОТИП рисуем объект который мы будем масштабировать. Превращаем его в Мувик и называем его «logo_mc» (в поле instance name). Размещаем его в центре. Размеры рисунка у меня меньше чем само окно.

5.В слое ЗУМ создаем Мувик и называем его «pan_mc» (в поле instance name), это наш скролинг. Размещаем его в правый, нижний угол. В этом Мувике создаем два слоя, в первом слое рисуем скролинг, а во втором рисуем сам ползунок и ставим ровно по центру шкалы скролинга. Называем ползунок «pan_mc» (в поле instance name).

6.Создаем еще один слой ПРОЦЕНТЫ. В нем размещаем динамическое текстовое поле, даем ему имя «zoom_txt» (в поле instance name). Ставим его рядом с Мувиком ЗУМА.

7.В четвертом слое АКШИН пишем следующее, сразу поясняю после символов // 

//Делаем, чтобы флешка не масштабировалась
Stage.scaleMode = "noScale";
_root._quality = "BEST";
//
//Функция МАСШТАБИРОВАНИЯ
//
function zoom_func() {
 trace("zoom_func");
 //
 //Проверяем положение позунка
 //
 //Сразу надо отметить, что функция Math.round - округляет не целые числа, до ближайшего целого числа.
 //Т.е. число 0.5 вернёт нам 1, а число 0.3 - ноль
 //Функция Math.abs - возвращает нам модуль числа, т.е. всё время будет возвращать положительные значения
 //Так, запись Math.abs(-5) и Math.abs(5) вернёт абсолютно одинаковые значения, т.е. 5
 //
 //Кто не знает, свойства _xscale и _yscale отвечают за масштабирование обхекта по X и Y соответственно,
 //стандартное значение этих свойств у объекта без искажений по ширине или высоте будет 100,
 //если ширина/высота увеличиваются, то значения _xscale и _yscale будут больше 100,
 //если ширина/высота уменьшаются, то и значения свойств будут меньше 100.
 if (_root.pan_mc.pan_mc._y<-1) {
  //Если он выше координаты 0 по Y
  _root.logo_mc._xscale = _root.logo_mc._yscale=100+1900/50*Math.round(Math.abs(_root.pan_mc.pan_mc._y));
 } else if (_root.pan_mc.pan_mc._y>1) {
  //Если он ниже координаты 0 по Y
  _root.logo_mc._xscale = _root.logo_mc._yscale=100-95/50*Math.round(Math.abs(_root.pan_mc.pan_mc._y));
 } else {
  //Если ползунок находится в районе нулевой координаты
  _root.logo_mc._xscale = _root.logo_mc._yscale=100;
 }
 //Присваиваем текстовому полю текущее значение масштаба объекта logo_mc
 _root.zoom_txt.text = _root.logo_mc._xscale+"%";
 //Запускаем функцию, которая будет смещать объект logo_mc в зависимости от положения курсора
 //и размеров объекта (см. ниже)
 _root.onMouseMove();
}
//
//ПОЛЗУНОК РЕГУЛИРОВАНИЯ МАСШТАБА ОБЪЕКТА
//
//Создаём событие "НАЖАТЬ"
pan_mc.pan_mc.onPress = function() {
 //Когда на ползунок нажали, для бОльшей наглядности, меняем цвет ползунка, на более блеклый
 this.gotoAndStop(2);
 //Начинаем перетаксивать ползунок
 this.startDrag(false, this._x, -50, this._x, 50);
 //При движении мышью запускаем функцию МАСШТАБИРОВАНИЯ, которая была описана выше
 this.onMouseMove = _root.zoom_func;
};
//Создаём событие "ОТПУСТИТЬ"
pan_mc.pan_mc.onRelease = pan_mc.pan_mc.onReleaseOutside=function () {
 //Возвращаем начальный цвет ползунку
 this.gotoAndStop(1);
 //Останавливаем перетаскивание
 this.stopDrag();
 //Удаляем событие, которое срабатывало каждый раз при движении мышки
 delete this.onMouseMove;
};
//
//Создаём событие на ВРАЩЕНИЕ КУРСОРА
//
//В качестве слушателя события подключаем _root
Mouse.addListener(this);
//Создаём само событие вращения колёсика (подробнее о нём можете почитать здесь:
// http://www.flashist.ru/2007/12/08/vrashhenie-kolyosika-myshki-i-peremotka/
this.onMouseWheel = function(varDelta:Number) {
 trace("onMouseWheel");
 //Смещаем положение ползунка
 _root.pan_mc.pan_mc._y -= varDelta;
 //Проверяем, если ползунок поднимается выше отметки -50 по Y, то ставим его на положение -50
 if (_root.pan_mc.pan_mc._y<-50) {
  _root.pan_mc.pan_mc._y = -50;
 } else if (_root.pan_mc.pan_mc._y>50) {
  //Если опускается ниже 50, то ставим на 50
  _root.pan_mc.pan_mc._y = 50;
 }
 //Запускаем функцию МАСШТАБИРОВАНИЯ
 _root.zoom_func();
};



Вот впринципе и все, сохраняем наш swf файл и тестируем!!!

Исходник урока здесь >>>

Категория: ActionScript 1.0 | 2.0 | Добавил: admin (26.02.2009)
Просмотров: 5162 | Комментарии: 5 | Рейтинг: 2.0/3
Сделать бесплатный сайт с uCozCopyright by Flash Tehnologi © 2008-2024 | design by fred_ford