Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Меню -> кнопки -> эффект (http://www.flasher.ru/forum/showthread.php?t=80408)

SleepNot 28.05.2006 13:11

Меню -> кнопки -> эффект
 
Захотелось сделать меню, такое, чтобы например при наведении на кнопку (надпись "Новости" например) надпись размывалась блуром и потом опять становилась четкой в доли секунды.
Создал кнопку - написал "Новости", создал мувик - написал "Новости", сделал чтобы надпись размывалась и опять становилась четкой.
А дальше не знаю что делать, чтобы все было как я хочу. Помогите пожалуйста. Только более доступно, тк флеш только только познаю. Заранее спасибо!

Nirth 28.05.2006 13:56

Стоит почитаьь про класс BlurFilter если у тебя восьмая версия флэша.

Вообще я делал давно, нечто подобное, щас чуть изменил, но боюсь пример будет сложноват.

Код:

import flash.filters.BlurFilter;
import mx.transitions.Tween;
import mx.transitions.easing.*
//создаем метод, который будет анимировать кнопку, при наводе мышки.
function startTween(tween:Tween,blur:BlurFilter,target:MovieClip):Void {
        //удаляем если что то осталось с прошлой анимации
        delete tween.onMotionChanged;
        delete tween.onMotionFinished;
        //запускаем экземпляр Tween.
        tween.continueTo(3,.5);
        //создаем обработчик события, который будет изменять оба свойства, и "обновлять" фильтр
        tween.onMotionChanged = function ():Void {
                blur.blurY = blur.blurX;
                target.filters = [blur];
        }
        //когда анимация закончена запускаем фильтр обратно.
        tween.onMotionFinished = function ():Void {
                //йойо запускает обратно
                tween.yoyo();
                //удаляем этот обработчик
                delete tween.onMotionFinished;
        }
}
//созжаем обратный метод
function finishTween(tween:Tween,blur:BlurFilter,target:MovieClip):Void {
        //удаляем если что то осталось с прошлой анимации, и останавливаем если двигалось
        delete tween.onMotionChanged;
        delete tween.onMotionFinished;
        tween.stop();
        //запускаем обратно
        tween.continueTo(0,.5);
        //вобаем обработчик, как в прошлом варианте
        tween.onMotionChanged = function ():Void {
                blur.blurY = blur.blurX;
                target.filters = [blur];
        }
}       
//создаем метод который будет создавать кнопку,позиционировать, давать имя и настраивать текст.
function createButton(parent:MovieClip,label:String,x:Number,y:Number,w:Number,h:Number,format:TextFormat):MovieClip {
        //переменная отвечающая за глубину
        var d:Number = parent.getNextHighestDepth();
        //создаем мувик и текстовое поле в нем
        var result:MovieClip = parent.createEmptyMovieClip("label"+d,d);
        var label_txt:TextField = result.createTextField("label_txt",1,x,y,w,h);
        //задаем настройки текста(класс TextFormat)
        label_txt.setNewTextFormat(format);
        label_txt.text = label;
        label_txt.selectable = false;
        //создаем блюр (класс flash.filters.BlurFilter)
        var blur:BlurFilter = new BlurFilter(0,0,4);
        //создаем экземпляр класса Tween, который будет извращаться по всякому =)
        var tween:Tween = new Tween(blur,"blurX",Regular.easeOut,0,0,.5,true);
        //создаем обработчики событий для нашей кнопки.
        result.onRollOver = function ():Void {
                startTween(tween,blur,result);
        }
        result.onRollOut = function ():Void {
                finishTween(tween,blur,result);
        }
        return result;
}
//создаем/размножаем кнопки
var fmt:TextFormat = new TextFormat("Verdana",12,0xFF6600,true);
for(var i:Number=0;i<10;i++) {
        createButton(this,"button"+i,0,i*22,100,22,fmt);
}

боюсь что код для новичка сложноват, хотя если посидеть с хелпом часика три, разобраться можно.

SleepNot 28.05.2006 14:00

2Nirth: Спасибо! но пример действительно сложноват... А что никак нельзя это сделать просто прописав както чтобы проигрывался мувик с эффектом над кнопкой при наведении... Просто мувик сделать проще простого, кнопку тоже. Теперь осталось связать...

iNils 28.05.2006 14:45

Что тут сложного? Тебе даже комментарии написали к действиям.

NixPN 28.05.2006 15:01

Он, видимно, имеет в виду сделать это вручную, а не программно... ну или с минимумом кода...

Nidl 28.05.2006 19:03

Тема исходники в разделе начинающие , там есть пример эффекта blur такой который тебе нужен ...

SleepNot 28.05.2006 21:03

2Nidl. Спасибо но я хотел бы с минимумом програмной фигни, тк с этим даже не пытался разобраться...

У меня вроде все получилось, т.е. при наведении мышой происходит то что нужно, но одна проблемка: при включении меню проигрывается сначала все а потом уже только при на ведение, как сделать так чтобы при включении не проигрывалось?
Исходник тут:http://www.koreametal.ru/upload/images/matilda.fla
помогите плиз

NixPN 28.05.2006 21:59

Мдя... пиши в первом кадре текста - stop();

SleepNot 28.05.2006 23:47

2NixPN. А "мдя" эт потому что я ламак или потому что в принципе не стоит так писать этот эффект?=)
так вот, после того как я прописываю "стоп" то эффект действительно не проигрывается при включении но при наведении проигрывается а при повторном наведенииуже нет... Как быть? Хотелось бы чтобы при каждом наведении был эффект..
Заранее спасибо!

NixPN 29.05.2006 15:14

А зачем тебе в конце 2 стопа? Убери нафиг оба... =)


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

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