Интересно, а можно ли увеличить 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 файл и тестируем!!! Исходник урока здесь >>>
|