Форум 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=115239)

Maxson 23.08.2008 16:19

Кнопка (запутался в коде)
 
Все работает вроде бы, только вот при наведении нужно что бы анимация не кончалась а шла по кругу. Подскажите пожалуйста.

Код:

stop ();
this.onEnterFrame = function(){
if(rewind == true){
prevFrame();
}
}
this.onRollOver = function(){
rewind = false;
play();
}
this.onRollOut = function(){
rewind = false;
}
this.onRelease = function(){
getURL();
}


Obi 23.08.2008 16:28

_level0 не отлавливает события onRelease, onRollOver, onRollOut

Maxson 23.08.2008 19:10

А может есть иной способ?

aksios 23.08.2008 19:27

Сделайте клип со своей анимацией, а отдельно кнопку, которая будет управлять этим клипом.

Maxson 23.08.2008 21:50

Цитата:

Сообщение от aksios (Сообщение 759914)
Сделайте клип со своей анимацией, а отдельно кнопку, которая будет управлять этим клипом.

Извините, не понял.

Я кстати не использую "button" вообще, а только "MC"

Мечтатель 23.08.2008 23:53

Цитата:

Сообщение от Maxson (Сообщение 759923)
Извините, не понял.
Я кстати не использую "button" вообще, а только "MC"

А что разве Movie Clip не может быть кнопкой?!:confused:
У Вас обработчики события "навешаны" на this, который указывает на объект/мувиклип, и можно рассудить, что последний является своего рода анимированной кнопкой.:)

aksios предлагает Вам управлять Мувиклипом с помощью другого мувиклипа (кнопки). Допустим в стационарном состоянии анимация в мувиклипе у вас не воспроизводится (головка на таймлайне в первом фрейме, где Вы пропишите команду "stop"), а при наведении мышкой на кнопку анимация стартует и зацикливается. Все это делается просто с помощью функций Timeline Control.
И если создаете "мувики" непрограммно, не забывайте задавать им имена в поле Instance of, чтобы можно было к ним обращаться.

Maxson 24.08.2008 12:44

Цитата:

Сообщение от Мечтатель (Сообщение 759935)
И если создаете "мувики" непрограммно, не забывайте задавать им имена в поле Instance of, чтобы можно было к ним обращаться.

Я этого не делаю, так как this всегда работает. Хотя может я о чем-то и не догадываюсь.

Спасибо, теперь я понял что имел ввиду aksios, сделать где-то не в видимости кнопку и программно сделать к ней анимацию. Такую фичу я знаю, но вот самому так сделать боюсь знаний нехватит.

Лааадненько, буду импровизировать.

Мечтатель 24.08.2008 17:19

Давайте, я Вам помогу... Только как можно конкретнее опишите задачу.

Maxson 24.08.2008 17:53

Кнопка (будь она), при наведении лупится, при отводе плавно заканчивает луп. Вот. Ну и при отжатии что бы по ссылке ходить умела. Просто. Вроде бы. Делаю все это (пытаюсь) под f8 as2.

И странно что туториала по такой кнопке нигде нет. Правда есть куча туториалов как нужно правильно рисовать кружочек...

Мечтатель 24.08.2008 20:17

Вот, как говорится "топориком на коленке"... Посмотрите, может такое подойдет.
Код:

import mx.transitions.Tween;//Импортируем "твиннер", класс отвечающий за анимацию
//нашего объекта

import mx.transitions.easing.*;//этот класс отвечает за плавность анимации.

this.createEmptyMovieClip("animation", this.getNextHighestDepth());//програмно создаем кнопку,
//называем ее animation

animation.lineStyle(2,0xFFFFFF,80);//делаем обводку линией в 2 пикселя, цветом - белым, с
//прозрачностью 80 - здесь все от Вашей фантазии зависит. Можете кнопку не создавать
//програмно, а нарисовать в графическом редакторе и присвоить ей имя в Instance of

animation.beginFill(0x0099FF,100);//заливаем кнопку зеленым цветом, прозрачности нет.
animation.moveTo(40,20);// начальные координаты нашего пера, х,у от которых "пляшем", рисуя
//кнопку

animation.lineTo(80,20);//рисуем контур.
animation.lineTo(80,60);
animation.lineTo(40,60);
animation.lineTo(40,20);
animation.endFill();

animation.onRollOver=function(){// обработчик события, когда курсор наведен на кнопку
//вызывается функция, которая "лупит" кнопку (будь она неладна))
var tween_x:Tween = new Tween(this, "_xscale", Regular.easeIn, 100,140, 4, false);
var tween_y:Tween = new Tween(this, "_yscale", Regular.easeIn, 100,140, 4, false);

}
animation.onRollOut = function(){// функция обратная предыдущей.
var tween_x:Tween = new Tween(this, "_xscale", Regular.easeIn, 140,100, 4, false);
var tween_y:Tween = new Tween(this, "_yscale", Regular.easeIn, 140,100, 4, false);
}

animation.onRelease = function(){// при нажатии на кнопку, она изчеает.
var tween_alpha:Tween = new Tween(this, "_alpha", Regular.easeIn, 100,0, 4, false);
tween_alpha.onMotionFinished = function(){// обработчик события, вызывается, когда анимация
//завершилась.

        getURL("http://flasher.ru","GET");
}
}



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

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