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

Atstek 28.05.2009 20:08

раскручивание мувика при наведении мыши
 
Дарофф)) У меня возник вот такой вопрос. Как сделать такой скрипт чтобы при наведение мыши на какой-нибуть мувик этот мувик стал раскручиваться, после отведения мыши мувик потеконьку останавливается.
Как это сделать??????
Флешем занимаюсь не давно)) Поэтому кому не трудно, то поточнее объесните пожалуйста.

заранее Спасибо :)

Герыч 29.05.2009 01:55

Есть у мувиклипа свойство rotation. Вешай на мувиклип обработчик мыши(события наверно MouseOver называется) и меняй свой rotation. чтобы разгон/остановку сделать, то надо ещё на EnterFrame обработку повесить и именно там менять rotaion-соответсвенно увеличивать на величину, которая тоже меняется в EnterFrame (если мышь над мувиклипом - она растёт, если нет, то падает до нуля)

Gaen 29.05.2009 01:57

При наведении и уводе мыши меняете ускорение, в цикле через заданный интервал (setInterval, Event.ENTER_FRAME) изменяете скорость вращения в зависимости от ускорения, и поворот в зависимости от скорости.

silin 29.05.2009 10:43

заботу об ускорении/замедлении можно доверить Tweener'у, например
задачка тогда выглядит совсем просто: нужен мувик со свойством, отвечающим за скорость вращения, при наведении/убирании твиним это свойство - все.
Код AS3:

public class RotativeSprite extends Sprite
{
        public var rotationSpeed:Number = 0;
        private const MAX_SPEED:Number = 20;
        public function RotativeSprite()
        {
                graphics.beginFill(0);
                graphics.drawRect( -50, -50, 100, 100);
                addEventListener(Event.ENTER_FRAME, enterFrameHandler);
                addEventListener(MouseEvent.MOUSE_OVER, testOverHandler);
                addEventListener(MouseEvent.MOUSE_OUT, testOutHandler);
        }
 
        private function testOutHandler(evnt:MouseEvent):void
        {
                Tweener.addTween(this, { rotationSpeed:0, time:3 } );
        }
 
        private function testOverHandler(evnt:MouseEvent):void
        {
                Tweener.addTween(this, { rotationSpeed:MAX_SPEED, time:3 } );
        }
 
        private function enterFrameHandler(evnt:Event):void
        {
                rotation += rotationSpeed;
        }
 
}


Atstek 29.05.2009 11:58

Большое спасибо наконецто у меня получилось это зделать.

Добавлено через 7 часов 24 минуты
silin я копирую твой код и в ошибках компиляции пишет следующие ошибки:

1046: Type was not found or was not a compile-time constant: Event.
1046: Type was not found or was not a compile-time constant: MouseEvent.
1046: Type was not found or was not a compile-time constant: MouseEvent.

для каждой функции:

private function testOutHandler(e:MouseEvent):void
private function testOverHandler(e:MouseEvent):void
private function enterFrameHandler(e:Event):void

Объясните в чем дело может я чтото не так делаю. Я создаю отдельный документ
Сохраняю туда код в коде добавляю ( package имя пакета). После этого я создаю новый документ создаю объект конвертирую в мувиклип и указываю путь к моему классу. А да я убрал в классе строчки
graphics.beginFill(0);
graphics.drawRect( -50, -50, 100, 100);
и extends Sprite заменил на extends MovieClip. Кажется это все мои изменения.
Подскажите что я не так делаю????

Добавлено через 8 часов 9 минут
GAIKER ты бы немог это кодом показать а то что-ьл не получается нечего. Он у меня сразу с конечной скорости крутит.

silin 29.05.2009 21:30

импорты надо прописать
import flash.events.Event;
и т.д.

Atstek 29.05.2009 21:41

теперь выдает ошибку

1120: Access of undefined property Tweener.

Кажется все нужные классы я импортировал. Может еще какойнибуть класс нужно импортировать?????

А где про этот твинер прочитать можно, а то про него в первые вижу( только Tween использовал)????

silin 29.05.2009 21:47

http://www.google.ru/search?q=Tweener

Atstek 30.05.2009 14:53

На сколько я понял Tweener это отдельный пакет с классами???? А куда его надо копировать чтобы все норм работало. Я скачал его там много разных скриптов и не знаю куда надо все это копировать помогите пожалуйста?????

Добавлено через 2 часа 38 минут
Все разобрался куда копировать надо)))
Теперь когда используешь tweener он все равно выдает ошибку но уже в коде самого tweener.as. Почему может я скачал какойто косячный твинер?????

Добавлено через 4 часа 44 минуты
Теперь точно разобрался все работает нормально.


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

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