PDA

Просмотр полной версии : Колебание объекта при наведении


Drop
16.08.2006, 17:28
Нужно сделать вот что: при наведение на мувик мышкой мувик должен начать двигаться в права в лево поочередно, как будильник в мультиках начинает звинеть и дергаться, до тех пор пока мышка не будет убрана. У меня получалось только чтобы движение порторялось только один раз. Как зациклить движение дотех пор пока ме будет убрана мышка?

Aisaid
16.08.2006, 17:34
может проще анимировать через твики?
делаеш анимацию - в первом же кадре - стоп! а в последнем - го на 2
а при наведении - го на 2 кадр
при снятии мышки - стоп, или го на 1 кадр

Sneg
16.08.2006, 17:37
Используй гамонические колебания с x = А*cos (ωt). Или здесь есть простенький примерчик без синуса:
http://www.silin.fatal.ru/misc/index.html

CCCPirate
16.08.2006, 18:47
вместо onRollOver используй onEnterFrame с определением координат мышки и клипа

DarkLight
16.08.2006, 18:54
На onRollOver задаем мувику onEnterFrame c колебанием, а на onRollOut удаляем. И мне кажется, что гармонические колебания здесь не очень-то нужны, просто изменение координат и _rotation

Drop
17.08.2006, 15:05
Всем спасибо но немного это не то. Нужно было сразу написать подробнее. Дело в том что объект всегда прижимается к правому краю окна, что бы при масштабировании окна браузера (это делается для сайта) ок двигался вместе с окном. Поэтому смена координат не подойдет. Визуально это долно выглядеть как будто звонит телефон (это и есть телефон:)) видемо придется от этого отказаться. Ещё раз всем спасибо

CCCPirate
17.08.2006, 16:32
Всем спасибо но немного это не то. Нужно было сразу написать подробнее. Дело в том что объект всегда прижимается к правому краю окна, что бы при масштабировании окна браузера (это делается для сайта) ок двигался вместе с окном. Поэтому смена координат не подойдет. Визуально это долно выглядеть как будто звонит телефон (это и есть телефон:)) видемо придется от этого отказаться. Ещё раз всем спасибо

смена координат поисходит не в окне браузера, а внутри SWF , который может находится в любой части окна, любое движение объекта - это смена координат

ставь эту куда хош:

15009

или сделай как там

Drop
17.08.2006, 17:02
Я прикратно знаю что он считывает координаты внутри swf на за счет етого телефон и прижимается к краю. А в telephone.rar что то пустой ролик и я не понял что вы имели ввиду под "вместо onRollOver используй onEnterFrame" у меня внутри onRollOver находится onEnterFrame.

CCCPirate
17.08.2006, 17:14
Я прикратно знаю что он считывает координаты внутри swf на за счет етого телефон и прижимается к краю. А в telephone.rar что то пустой ролик и я не понял что вы имели ввиду под "вместо onRollOver используй onEnterFrame" у меня внутри onRollOver находится onEnterFrame.

Вы издеваетесь? Все там в раре нормально...

Я имел ввиду что onRollOver- событие, которое срабатывает только при наведении мышки, следовательно для циклического процесса оно не подходит, используйте его, что б при наведении мыши изменялась какая-нибудь переменная, а событие onEnterFrame при значении этой переменной в true будет запускать движение, onRollOut соответственно, будет менять переменную на false.

че то типа этого:



клип.stop();
клип.onRollOver = function()
{
клип.hit = true;
};
клип.onRollOut = function()
{
клип.hit = false;
};
клип.onEnterFrame = function()
{
if (hit=true) {
play();
} else {
(stop());
}
};

Drop
18.08.2006, 10:39
Отлично с привязкой по навидению разобрались :) осталось выяснить главное как добиться того что бы телефон вибрировал более мение правдоподобно. С гармоническим колебание что то не очень:) есть идеи?

RonEXI
18.08.2006, 22:30
Телефон.

PSoWP
19.08.2006, 01:37
ну в рарке только свф а вскрывать мне лень))

создайанимацию звонящего телефона и помести код:

клип.stop();
клип.onRollOver = клип.onDragOver = function() {
клип.onEnterFrame = function() {
клип.play()
}
};
клип.onRollOut = клип.onDragOut= function() {
delete клип.onEnterFrame
клип.gotoAndStop(1)
};


если кнопка то драги не нужны

SkipIntro
23.01.2008, 23:38
А у меня такой вопрос. Нужно реализовать такую идею:
есть квадратик (допустим ) ), на него наводишь мышкой и он начинает расширяться и сжиматься, периодически, с постепенным затуханием. Если мышку отводишь, он не останавливается мгновенно, а доходит до состояния покоя сам. Причем если на него снова навести мышкой, он снова должен начать колебаться. Так вот у меня чего-то никак не получается...
Пока максимум, какого результата я смог достичь, это вот:
stop();
_root.kol = false;
sq.onRollOver = function() {
_root.kol = true;
};
sq.onRollOut = function() {
_root.kol = false;
};
sq.onEnterFrame = function () {
if (_root.kol=false) {
s_x = 100;
s_y = 100;
q = 0;
z = 0;
} else {
s_x = 100;
s_y = 100;
q = 0.1;
z = 2;
x += s_x-sq._xscale;
y += s_y-sq._yscale;
dx = x-sq._xscale/z;
dy = y-sq._yscale/z;
sq._xscale += dx*q;
sq._yscale += dy*q;
}
};

Sq - данный квадрат - мувиклип. Код стоит в первом кадре. Больше нигде кода нет.
Если есть желающие оказать помощь, просьба помочь на языке Action Script 1, предлагать изучить AS3 не стоит )
В этом колебание срабатыает сразу, а действия мышки никаких воздействий не оказывает. Квадрат останавливается и все (