Просмотр полной версии : Постепенное исчезновение и появление объекта при наведении курсора.
Всем привет!!!
Столкнулся с небольшой проблемкой...
Написал код, для исчезновения-появления клипа, при наведении курсора на кнопку:
button.onRollOver = function() {
this._parent.myClip._alpha-= 10;;
};
button.onRollOut = function() {
this._parent.myClip._alpha+= 10;
};
Дело в том, что нужно, чтобы при наведении курсора на кнопку - клип постепенно исчезал, а при убирании - появлялся обратно, так же плавно. А у меня он исчезает мигом до -10, а потом появляется в обратку без плавности. Что исправить в этом коде, что бы клип исчезал полностью плавно и вновь появлялся при убирании мышки?:bb:
При наведении мышки на объект событие onRollOver/onRollOut срабатывает всего один раз...
Создайте функции исчезновения/появления клипа и внутри обработчиков вызывайте соответствующую функцию.
Или в крайнем случае сделайте уменьшение/увеличение прозрачности в цикле в коде обработчиков.
Но лучше, конечно, определить нужные функции.
Это ясно. А тогда подскажите пожалуйста, какую функцию нужно применить для плавного исчезновения, что бы она срабатывала не один раз? И, если вам не трудно, покажите код с примером этой функции??:quiet:
давайте лучше вместе с Вами это сделаем...
Что именно Вам не понятно?
Понятие функции знакомо Вам?
Сможете сами создать функцию?
В теле функции Вам нужно в цикле уменьшать или увеличивать значение _alpha?
т.е Вы правильно делали, только нужно эти действия повторить несколько раз чтоб объект полностью стал прозрачным, для этого нужно использовать цикл...
Попробуйте для начала там же где и Вы писали только поместить строчки
this._parent.myClip._alpha-= 10; и ей противоположную в циклы...
Если не будет получатся, будем дальше разжевывать
Общий смысл такой:
function hide():Void
{
// к клипу над которым сейчас мышка можно здесь обратиться как this
// здесь код исчезновения клипа
}
function show():Void
{
// к клипу над которым сейчас мышка можно здесь обратиться как this
// здесь код появления клипа
}
button.onRollOver = hide;
button.onRollOut = show;
Теоритически я знаком с функциями, могу скопировать - вставить куда нужно. А вот создавать их и сами их значения я не знаю. И как их циклить тоже.:bb:
Я привязал пример, того, что я делаю. Посмотрите-подскажите, пожалуйста, что там не так и как сделать, чтоб оно все-таки плавно исчезало?.. И как создавать циклы?, чтобы я выучил уже раз и навсегда!:p
Сделал так:
function hide():Void
{
this.myClip;
_alpha-= 50;
}
function show():Void
{
this.myClip;
_alpha+= 50;
}
button.onRollOver = hide;
button.onRollOut = show;
Всё равно исчезает быстро. Да еще и вместе с кнопкой..
Какой должен быть код исчезновения?
а какой смысл в строчке this.myClip; ?
Значение _alpha может принимать значение от 0 до 100
вот и отнимайте по чуть-чуть чтоб не так быстро исчезало
function hide():Void
{
this._alpha -= 5;
if (this._alpha <= 0) {
delete this.onEnterFrame;
}
}
function show():Void
{
this._alpha += 5;
if (this._alpha >= 100) {
delete this.onEnterFrame;
}
}
button.onRollOver = function()
{
myClip.onEnterFrame = hide;
};
button.onRollOut = function()
{
myClip.onEnterFrame = show;
};
Мега спасибо!!!!!!!!!!
Клипец стал работать как нужно!
Респект, Mur4ik!:yahoo:
+ вопрос:
А можно ли сделать, чтобы картинка не исчезала, а допустим - расплывалась? Что применить вместо alpha?
darksranger
28.09.2008, 23:09
var i:Number = 0
movieClip.onEnterFrame = function () {
i++
movieClip.filters = [new BlurFilter(i, i, 3)]
if (i>10){
delete i
delete movieClip.onEnterFrame
}
}
Я бы так сказал)
import flash.filters.BlurFilter
var blur:Number = 0;
mc.onRollOver = function(){
blur = 0
this.onEnterFrame = function(){
mc.filters = [new BlurFilter(blur,blur,3)];
if((blur+=2)>=50) delete this.onEnterFrame;
}
}
mc.onRollOut = function(){
this.onEnterFrame = function(){
mc.filters = [new BlurFilter(blur,blur,3)];
if((blur-=2)<=0) {
mc.filters = null;
delete this.onEnterFrame;
}
}
}
а можно ли в этот код добавить ограничитель блура? например, дойти до определенного значения? и еще можно ли сделать, чтобы немного быстрее "растворялось"?
darksranger
06.10.2008, 17:29
можно
import flash.filters.BlurFilter
var blur:Number = 0;
mc.onRollOver = function(){
blur = 0
this.onEnterFrame = function(){
mc.filters = [new BlurFilter(blur,blur,3)];
if((blur+=2)>=50) delete this.onEnterFrame;
}
}
mc.onRollOut = function(){
this.onEnterFrame = function(){
mc.filters = [new BlurFilter(blur,blur,3)];
if((blur-=2)<=0) {
mc.filters = null;
delete this.onEnterFrame;
}
}
}
в коде Wolsha, выделил цветом, то что красное - "скорость" то что зеленое - ограничитель
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.