![]() |
|
||||||||||
|
|||||
|
Регистрация: Dec 2009
Сообщений: 11
|
здравствуйте.
Пытаюсь сделать так, чтобы при подносе курсора к кнопке изображение town1 плавно проявлялось, а при убирании курсора резко исчезало. Изначально код на кнопке написал такой: on (rollOver) {
_root.town1._alpha=0
this.onEnterFrame=function(){
_root.town1._alpha++
}
}
on (rollOut) {
setProperty("town1", _alpha, "0");
}
Добавил в код условие: on (rollOver) {
var alphacount=0;
_root.town1._alpha=alphacount;
this.onEnterFrame=function(){
if (alphacount < 100) {
_root.town1._alpha=alphacount;
alphacount++
}
}
}
on (rollOut) {
setProperty("town1", _alpha, "0");
}
Я также пробовал вынести фунцию отдельно: В Action фрейма писал: function myAlpha () {
setProperty("town1", _alpha, i);
}
setInterval(myAlpha,50000000); // пробовал и 5000 и 500000
а на кнопке такой код: Но в этом случае проявление происходило неплавно, а резко. Пожалуйста, не пинайте сильно - я начинающий. |
|
|||||
|
Регистрация: Nov 2008
Адрес: Атланта
Сообщений: 1,271
|
посмотри класс Tween, это как раз то что тебе нужно
__________________
Пока я жив, Вы горем обеспечены |
|
|||||
|
Регистрация: Dec 2009
Сообщений: 11
|
Пожалуйста, поподробнее.
И я не понимаю какое отношение класс Tween имеет отношение к данному коду? Я не хочу делать никакие Tweenы. Я хочу изименить просто код так, чтобы плавно прибавлялся _alpha. Если бы это был бы JS то я бы просто сделал бы цикл в которм добавлял бы значение по 5ть и всё, а в AS я так понимаю цикл for исполняется моментально и таймаут к нему применить нельзя. |
|
|||||
|
Модрон-ветеринар
|
town1._alpha = 0; town1.onRollOver = function () { this.onEnterFrame = alphaRise; } town1.onRollOut = function () { this._alpha = 0; delete this.onEnterFrame ; } function alphaRise () { if (this._alpha < 100) { this._alpha +=5; } else { delete this.onEnterFrame ; } } - будет плавнее расти альфа - код будет компактнее: Последний раз редактировалось mooncar; 12.12.2009 в 20:34. |
|
|||||
|
Регистрация: Dec 2009
Сообщений: 11
|
Всё, решение найдено. Добрые люди уже помогли. Спасибо.
on (rollOver) {
_root.town1._alpha=0
this.onEnterFrame=function(){
_root.town1._alpha+=2
}
}
on (rollOut) {
delete this.onEnterFrame;
_root.town1._alpha=0
}
mooncar Спасибо огромное! )) |
|
|||||
|
Модрон-ветеринар
|
Пожалуйста.
Но добрые люди учат плохому - не пишите код на кнопках или мувиках! И кроме того в их коде нет остановки возрастания альфы, ее значение так и продолжает возрастать после 100, хотя это и не видно. Это неряшливость. Для вас это может сейчас и не иметь значение, но бывают случаи, когда при вычислениях используется альфа больше 100, и кроме того висит лишний процесс. Так трудно научится правильному коду. И класс Tween - это очень мощный инструмент, он может иметь отношение к любой анимации, если нет желание организовывать изменения свойств руками. Последний раз редактировалось mooncar; 12.12.2009 в 20:31. |
|
|||||
|
Регистрация: Dec 2009
Сообщений: 11
|
А можно уточнить - что делает эта строка:
mport mx.transitions.Tween ; И кстати, куда эту строку ставить? Я так понимаю, что если у меня несколько кнопок и несколько изображений, которые по нажатию этих кнопок должны проявляться, то код можно вынести в функцию? А с каждой кнопки идет просто вызов функции с событием: function ShowTownTitles(townnumber) { myTween = new Tween(townnumber, '_alpha', mx.transitions.easing.None.easeNone, 0, 100, 2, true); } А код на кнопке будет такой: on (rollOver) { ShowTownTitles(1); } Или я что-то не понимаю? Добавлено через 4 минуты Уж простите меня за вопросы - я, как любитель JavaScript пытаюсь подогнать AS под под то, что я люблю. Добавлено через 17 минут ОООООООО Я всё понял!!!!!!!!!!!!! Круто!!!! В Action фрейм я написал следующий код: import mx.transitions.Tween ; but1.onRollOver = function () {
myTween = new Tween(town1, '_alpha', mx.transitions.easing.None.easeNone, 0, 100, 2, true);
};
but1.onRollOut = function () {
town1._alpha = 0;
myTween.stop();
};
Спасибо! Последний раз редактировалось newiluha; 12.12.2009 в 20:55. |
|
|||||
|
Регистрация: Nov 2008
Адрес: Атланта
Сообщений: 1,271
|
newiluha чтоб не задавать куда и что писать, советую во флеше нажать F1 и ввести в поиске Tween class и почитайте для чего он используеться и как использовать, ведь для этого и сделали хелп
__________________
Пока я жив, Вы горем обеспечены |
|
|||||
|
Модрон-ветеринар
|
import mx.transitions.Tween; //иморт класса Tween, строка должна стоять до первого использования var riseSpeed:Number = 2; // количество секунд для возрастания альфы var tweenContainer:Object = new Object (); //хранилище для объектов - Tween'ов function upAlpha () { //функция возрастания альфы //this - это и есть мувик, для которого вызывается функция tweenContainer[this] = new Tween(this, '_alpha', mx.transitions.easing.None.easeNone, 0, 100, riseSpeed, true); //tweenContainer - это как бы массив, где индексом служат объектные ссылки на мувики, для которых вызывается функция } function downAlpha () { //функция возрастания альфы tweenContainer[this].stop(); //если все еще продолжается возрастание альфы, то его останавливаем this._alpha = 0; } function setAlphaManage (mc:MovieClip) { mc.onRollOver = upAlpha; mc.onRollOut = downAlpha; } //используем: setAlphaManage (town1); setAlphaManage (town2); // и т.д. Цитата:
Последний раз редактировалось mooncar; 12.12.2009 в 21:47. |
|
|||||
|
Модрон-ветеринар
|
Вот пример управления режимом видимости множества объектов.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 03:51. |
|
|
« Предыдущая тема | Следующая тема » |
|
|