Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   условия на события мыши (http://www.flasher.ru/forum/showthread.php?t=173787)

imediasun 11.01.2012 17:11

условия на события мыши
 
Я начинаю изучать AS, помогите пожалуйста разобраться в азах програмирования ACTIONSCRIPT.
Существует Мувиклип вращающаяся стрелка как на часах, а цифры - кнопки с переходом на сайт.
Необходимо чтобы при наведении на кнопку к ней проигрывалась стрелка и останавливалась, а при отведении от цифры-кнопки продолжала двигаться, при этом определяя кратчайший путь по часовой стрелке, либо против.
Сейчас в скрипте запрограмировано только две кнопки, но проблема состоит в том, что при повторном наведении на другую кнопку мувик останавливается на первой кнопке.

И правильно ли сдесь применена остановка клипа вообще и еще не знаю как вращать клип в противоположную сторону


Код AS3:

button_1.addEventListener(MouseEvent.MOUSE_OVER, fl_MouseOverHandler_1);
 
function fl_MouseOverHandler_1(event:MouseEvent):void
 
{
        if ( currentFrame==24 )
{
        addFrameScript(24,stop);
}
        else
                {
                play();
        addFrameScript(24,stop);
        }
}
button_1.addEventListener(MouseEvent.MOUSE_OUT, fl_MouseOutHandler_2);
function fl_MouseOutHandler_2(event:MouseEvent):void
{
        play();
 
}
 
button_2.addEventListener(MouseEvent.MOUSE_OVER, fl_MouseOverHandler_3);
 
function fl_MouseOverHandler_3(event:MouseEvent):void
 
{
        if ( currentFrame == 0 )
{
        addFrameScript(0,stop);
}
        else
                {
                play();
            addFrameScript(0,stop);       
                }
}
button_2.addEventListener(MouseEvent.MOUSE_OUT, fl_MouseOutHandler_4);
function fl_MouseOutHandler_4(event:MouseEvent):void
{
 
        play();
        addFrameScript(0,stop);
}


Wadimir 11.01.2012 18:30

если новичёк то прокручивание стрелок лучше сделать анимацией. Две анимации: по часовой и против. Разбить таймлайн на 12 частей (сделать 12 лейблов). Запоминать на каком числе был последний клик. А потом считать математически по клику на числе где стрелка. Ну и соответственно крутить. Если крутится по часовой, тогда ставим стрелку в соответсвующий лейбл, анимацию которая против часовой прятать. И наоборот.

imediasun 11.01.2012 19:16

Спасибо за ответ Вы не могли бы с кодом помочь, я совсем новичек .Интересует остановка в определенном кадре коректно и вот у меня два события (вообще код корректный или там какие-то переменные надо объявлять и пакеты прописывать, с этим пока не понятно Спасибо

PainKiller 12.01.2012 01:13

addFrameScript тут ни к чему, вам для решения вашей задачи хватит 3-х функций мувиклипа stop () gotoAndStop () gotoAndPlay (). И организуйте анимацию, как вам подсказал Wadimir

imediasun 12.01.2012 22:55

условие на собітие мыши
 
а как обозначить тот момент что стрелка может находиться на любой кнопке цифре в момент наведения на другую кнопку, и тогда с какого кадра начинать воспроизведение ?

PainKiller 13.01.2012 01:23

свойство currentFrame мувиклипа показывает на каком кадре находится его воспроизведение, это к тому как отследить на какой цифре стрелка. Можно еще воспользоваться currentFrameLabel (пишу по памяти уточните в справке) по лейблу можно смотреть какой фрейм проходит воспроизведение ролика, возможно в вашем случае это будет более удобно. А начать воспроизведение с нужного кадра gotoAndPlay () - в скобки вписываете нужный кадр или его лейбл.

imediasun 13.01.2012 18:51

спасибо


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

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