PDA

Просмотр полной версии : Медленное исчезновение Увеличительного стекла


bondnaruto
01.02.2011, 19:07
Сделал баннер, в нем карта (местности) с анимированными стрелочками, сам баннер маленький , а карта большая. Я для удоства сделал увеличительное стекло вот этим способом http://fbunker.com.ua/lesson/actionss/uvilichenie.htm. Что бы мелкие элементы можно было рассмотреть.

Все отлично получилось, но хочется сделать еще следующее. Когда курсор мыши уходит с баннера, то лупа медленно исчезает, и наоборот, когда наводим курсор на баннер лупа медленно появляется.

Не подскажет кто, как это лучше сделать? Или ссылку на урок какой нибудь дайте, спасибо!

Hauts
01.02.2011, 19:35
Расположить кнопку верхним слоем и ловить события onRollOver и onRollOut.

bondnaruto
01.02.2011, 22:55
Вот нашел такой код:
on (rollOver) {
_root.obruch._alpha = 100;
}
on(rollOut){
_root.obruch._alpha = 0;
}

Код работает, но нет плавности затухания, Объект имеет alpha или 100% или 0%.

Так же нашел другой код - где можно сделать плавность затухания. Делается аниция затухания и на кнопку вешается код с помошью которого анимация скачет по кадрам:
stop();
btn.onRollOver = function () {
gotoAndPlay(2);
}
btn.onRollOut = function () {
gotoAndPlay(1);
}

Если сделать чистую сцену, то тоже все "ок" работает, а если пробую в своей с картой, то нифига код не работает. Получается что лупа вообще не появляется.

Hauts
01.02.2011, 23:22
Пишите код в кадрах, об этом говорилось уже сотни раз, это избавит вас от кучи явных и неявных проблем.

Пропишите кнопке instance name "btn" (без кавычек, конечно) и пропишите следующий код в кадре:

obruch._alpha = 0;
btn.onRollOver = function() {
fadeIn();
};
btn.onRollOut = function() {
fadeOut();
};
function fadeIn() {
obruch.onEnterFrame = function() {
if (this._alpha<100) {
this._alpha += 5;
} else {
delete this.onEnterFrame;
}
};
}
function fadeOut() {
obruch.onEnterFrame = function() {
if (this._alpha>0) {
this._alpha -= 5;
} else {
delete this.onEnterFrame;
}
};
}

bondnaruto
02.02.2011, 00:01
Все прекрасно работает! Спасибо!

Пишите код в кадрах, об этом говорилось уже сотни раз, это избавит вас от кучи явных и неявных проблем.

Учту в будущем!

Добавлено через 15 часов 18 минут
Еще такой вопрос возник.
Для одного объекта код работает, а если необходимо сделать плавное затухание для нескольких объектов, то как должен выглядеть код? Я попробовал сделать дубль этого кода (ниже этого кода прямо) с заменой имени объекта, но одновременно для двух объектов код почему-то не заработал...