Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   Как сделать эффект дрожания? (http://www.flasher.ru/forum/showthread.php?t=41025)

SLY_G 17.12.2002 18:31

Как сделать эффект дрожания?
 
Хочется сделать эффект "дрожания" мувика, когда мышка над ним оказывается.

Пишу следующий код:

on (rollOver) {
init_x=Myvik._x;
init_y=Myvik._y;
for (i=0; $i<10; $i++) {
Movyk._x=random(10)-5;
Movyk._y=random(10)-5;
}
Myvik._x=init_x;
Myvik._y=init_y;
}

Работает, но не так, как я хотел - дрожания не видно. Flash просто просчитывает все перемещения и выдаёт на экран конечное положение мувика.
А я хотел, чтоб дрожание было видно.
Видимо, надо вставить в цикл for () {} еще две функции:

обновитьСодержимоеЭкрана();
задержкаМиллиСекунд(100);

Есть ли такие? Или это как-то по другому делается?

antree 18.12.2002 14:02

ты лучше не кнопкой сделай, а мувиклипом. А весь свой код закинь внутрь хэндлеров onClipEvent (enterFrame) {}. А кнопку запихни внутрь самого мувика.

rollover на кнопке, насколько я понимаю, отрабатывается один раз, при каждом наезде на кнопку.

и выкинь нахрен циклы - мувик с одним кадром и так в цикле вертится.

onclipevent (enterframe) {
_x=10*Math.random()+стартовая позиция по х
_y=10*Math.random()+стартовая позиция по y
}

вот и все. синтаксис кривой, но принцип должен быть ясен.

SLY_G 18.12.2002 14:16

А мне и нужно, чтобы мувик дрожал только кода на него мышкой наводят. Навели мышку на него - он вздрогнул. Ещё раз навели - ещё раз вздрогнул Ж)
Сорри, если непонятно объяснил.

LostWarrior 18.12.2002 14:57

Тогда нужен счетчик кадров дрожания

Код:

onRollOut
----
flag=5;
----

onRollOver
----
if (flag>0){
flag--;
_x=10*Math.random()+стартовая позиция по х
_y=10*Math.random()+стартовая позиция по y
}
----


antree 18.12.2002 14:59

если дрожание короткое - имхо проще (и разумнее с точки зрения ресурсов) сделать простейшую покадровую анимашку фреймов так на 5.

antree 18.12.2002 15:02

если особо красивый изврат нужен - можно приплести эластику, но это уже ресурсы будет подгрызать...

SLY_G 18.12.2002 15:25

Ну да, можно нечто вроде такого сделать:

Код:

myclip.stop();
myclip.onRollOver = function() {
    myclip.play();
};
myclip.onRollOut = function() {
    myclip.stop();
};

Поместить это на главную timeline, а сам myclip сделать анимацией дрожания.

Кстати, можно этот код сделать как-то покороче? В смысле, чтоб не писать каждый раз myclip.что-то-там

LostWarrior 18.12.2002 15:43

Внутри функций можеш уже не писать.
Но он будет дрожать все время пока мышка сверху...
Или нужно в последний кадр еще stop() написать

Alexey (G-fi) 19.12.2002 18:28

Вложений: 1
...„r„Ђ„„, „Ѓ„Ђ„Ѓ„‚„Ђ„q„…„z...

„D„|„‘ „Ѓ„‚„p„r„y„|„Ћ„~„Ђ„ѓ„„„y, „Ѓ„Ђ„ѓ„„„p„r„Ћ „Ѓ„‚„Ђ„r„u„‚„{„y, „‰„„„Ђ„q„Ќ ѓФ „y y „~„u „r„Ќ„‡„Ђ„t„y„| „x„p „x„p„t„p„~„~„Ќ„u „‚„p„x„}„u„‚„Ќ... :)

SLY_G 19.12.2002 18:31

Цитата:

Оригинал написал(а) Alexey (G-fi)
...„r„Ђ„„, „Ѓ„Ђ„Ѓ„‚„Ђ„q„…„z...

„D„|„‘ „Ѓ„‚„p„r„y„|„Ћ„~„Ђ„ѓ„„„y, „Ѓ„Ђ„ѓ„„„p„r„Ћ „Ѓ„‚„Ђ„r„u„‚„{„y, „‰„„„Ђ„q„Ќ ѓФ „y y „~„u „r„Ќ„‡„Ђ„t„y„| „x„p „x„p„t„p„~„~„Ќ„u „‚„p„x„}„u„‚„Ќ... :)

Кодировка только арабская, а так всё хорошо Ж)

И какой-то там iframe с левым сайтом вместо файлы. Это не есть гуд Ж(


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

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