PDA

Просмотр полной версии : Реакция на мышь


Fridhelm
05.10.2006, 09:46
Господа не подскажете каким образом сделать элемент который будет реагировать на движение мыши. Меня интересует только реакция то-есть - у меня есть скажем текст он изначально статичен, но как только человек начинает двигать мышью текст должен шевелится. Не важно как он будет двигать и в каком направлении, а как только мышь замирает на месте движение прекращается. То-есть активность мыши врубающая анимационный элемент. Похожий эффект на сайте http://www.amaddel.com/amaddel.html там эффект с вертикальными линиями.
Помогите кто может.

pkfun
05.10.2006, 10:08
Отдельной такой функции не помню. Возможно стоит обратить внимание на свойства мувиклипа _xmouse и _ymouse.

Juice_Green
05.10.2006, 10:22
myclip.onRollOver = function():Void {
this.onMouseMove = function():Void {
trace("Перемещение == x:"+this._xmouse+" y:"+this._ymouse);
}
}

myclip.onRollOut = function():Void {
delete this.onMouseMove;
}

Fridhelm
05.10.2006, 10:36
Извените Я забыл вас предупредить что я еще чайник!
А что мне делать с этим кодом? Т-е как его использовать?

Juice_Green
05.10.2006, 10:38
предупредить никогда не поздно,
вешать в главный фрейм. myclip - имя клипа, для которого нужно отследить перемещение мыши.

Fridhelm
05.10.2006, 11:00
А не могли бы вы обьяснить пошагово, а то я еще мало смыслю в тонкастях.
Спасибо

Serbis
05.10.2006, 11:03
Подожди минт тридцать, я те пример скину и объясню

Juice_Green
05.10.2006, 11:13
вот рабочий пример полностью (код в главном фрейме):
this.createEmptyMovieClip("myclip", this.getNextHighestDepth());
this['myclip'].beginFill(0xFF0000, 100);
this['myclip'].lineStyle(1, 0x000000, 100);
this['myclip'].moveTo(100, 100);
this['myclip'].lineTo(300, 100);
this['myclip'].lineTo(300, 300);
this['myclip'].lineTo(100, 300);
this['myclip'].endFill();

this['myclip'].onRollOver = function():Void {
this.onMouseMove = function():Void {
trace("Перемещение == x:"+this._xmouse+" y:"+this._ymouse);
}
}

this['myclip'].onRollOut = function():Void {
delete this.onMouseMove;
}

если по простому, то делаете следующие действия:
1) рисуете, например, прямоугольник.
2) выделяете его полностью, жмете правой кнопкой мыши Convert to Symbol... -> выбираете MovieCLip -> Жмете кнопку ОК
3) нажимаете на нарисованный прямоугольник, внизу в панели Properties задаете ему Instance name "myclip"
4) нажимаете на свободную рабочую область, жмете F9, открывается панель Action, туда вставляете код с поста #3
5) тестируете приложение

Fridhelm
05.10.2006, 11:27
Не выходит. Может у вас есть исходник в котором можно порытси?

Juice_Green
05.10.2006, 11:30
всё намного сложнее - чем я думал :)

Fridhelm
05.10.2006, 11:57
Этот прямоугольник стоит на месте и всё!

Juice_Green
05.10.2006, 12:09
2 Fridhelm:
вы просили отследить реакцию мыши, вы её и получили. А что дальше должно происходить с прямоугольником (или с чем там), я думаю это лично заботы каждого

Fridhelm
05.10.2006, 12:13
Не шевелится

Fridhelm
05.10.2006, 12:15
Но мне надо чтобы было движения, я мало понимаю в скриптах, но если этот прямоугольник статичен то зачем этот скрипт, и как он работает тоже не понятно

Juice_Green
05.10.2006, 12:18
еще раз читаем, что писали

Fridhelm писал:
Господа не подскажете каким образом сделать элемент который будет реагировать на движение мыши. Меня интересует только реакция...

интересующею реакцию получили, а то, как и что будет у вас что двигаться Вам решать.

Fridhelm
05.10.2006, 12:35
И где реакция, если он стоит на месте

Juice_Green
05.10.2006, 12:42
она в окне output.

Fridhelm
05.10.2006, 13:33
А что такое окно АУТПУТ

Juice_Green
05.10.2006, 13:42
окно трассировки
если настройки стандартные не изменялись, то нажать F2

Fridhelm
05.10.2006, 13:50
Вы наверно не поняли что мне надо. У меня на сайте флэш вставка в ней скажем пропелер (Кручение пропелера уже задано в мови клипе). человек зашедший на сайт видит пропелер который не крутится а стоит ему шевельнуть мышкой начинает проигываться мовик кручения, мышка замерла он остановился, опять пошевелил, снова закрутился, вот что мне надо, наглядное действие

Хемуль
05.10.2006, 15:07
2 Fridhelm:
А шевельнуть - это переместить курсор на 1 пиксель? Совершить такое движение, которое и глазом-то увидеть сложно?

Fridhelm
05.10.2006, 15:57
Я очень далек от програмирования, скриптов и всей этой рутины, я по этому и пришел на этот форум! Ну да ладно чтонють придумаю!

etc
05.10.2006, 16:01
Я очень далек от програмирования, скриптов и всей этой рутины, я по этому и пришел на этот форум! Ну да ладно чтонють придумаю!
В таком случае, вы ошиблись форумом. Здесь как раз программирование, скрипты и вся эта рутина.

Хемуль
05.10.2006, 16:01
2 Fridhelm:
Но вы так и не ответили на мой вопрос. Возможно, если бы вы сказали больше, вам бы помогли лучше.

Fridhelm
05.10.2006, 16:05
2 Хемуль просто движение курсора в приделах окна. Надо чтобы игрался клип. Без нажатий.

Fridhelm
05.10.2006, 16:06
Чтобы активность мышки была как кнопка плэй для определенного анимационного обьекта а бездействие - паузой

Juice_Green
05.10.2006, 16:34
попробуйте так - может в этот раз угадал (код в главный фрейм):

var flag_motion:Boolean = false; // флаг движения мыши
var time_inaction = 1000; // время бездействия мыши
var last_time = 0; // время последнего движения мышью

this.createEmptyMovieClip("myclip", this.getNextHighestDepth());
this['myclip'].beginFill(0xFF0000, 100);
this['myclip'].lineStyle(1, 0x000000, 100);
this['myclip'].moveTo(0, 0);
this['myclip'].lineTo(50, 0);
this['myclip'].lineTo(50, 50);
this['myclip'].lineTo(0, 50);
this['myclip'].endFill();

this['myclip']._x = 200;
this['myclip']._y = 200;

function validMotionMouse(clip:MovieClip):Void {
if (!_root.flag_motion) return;
if (getTimer()-_root.last_time > _root.time_inaction)
_root.flag_motion = false;
else
clip._rotation += 5;
updateAfterEvent();
}

setInterval(validMotionMouse, 50, this['myclip']);

_root.onMouseMove = function():Void {
this.flag_motion = true;
this.last_time = getTimer();
}

Fridhelm
05.10.2006, 16:38
Я накидал схематичный ролик в котором когда стрелка движется то крутится прямоугольник а когда движение прирывается картинка замирает а после возобновления движения прямоугольник продолжает верчение. Задача сделать так чтобы это пропелер вращался и останавливался в зависимости от движения мыши. Анимация уже задана осталось только дополнить ролик интерактивностью.

Fridhelm
05.10.2006, 16:40
Почти, только надо что бы проигрывалась анимированый мувиклип

Juice_Green
05.10.2006, 16:47
2 Fridhelm:

вы конечно извините уважаемый, но думаю команды play да stop сами додумаетесь вставить

Fridhelm
05.10.2006, 16:49
КУДА?

Fridhelm
05.10.2006, 17:00
Куда вставлять плэй, я не могу понять

Хемуль
05.10.2006, 17:36
2 Juice_Green:
См. сообщение номер 22. ^_^

Juice_Green
06.10.2006, 09:24
2 Хемуль:

все когда то были далеки от всего. два пути:

1) можно кого то пытать, и самому ничего не делать
2) включить свои извилины и хоть чуточку попробывать сделать что нить самому. А если это не интересно и работа разовая - то почему бы не в раздел вакансий ?!

Fridhelm
06.10.2006, 11:24
Дело не в том что я ничего не делаю, мне надо просто правильное направление, очень трудно врубится в скрипт особенно когда видишь его впервые, и не именно этот а в принципи. А если не хотите помочь то ине надо лишних разговоров.

Хемуль
06.10.2006, 12:17
2 Fridhelm:
Вам уже дали в этой теме нормальный ответ. Понимаете, если у вас проблемы в скриптах, вам помогут... Но если вам нужна помощь в плане того, куда вообще скрипты вставлять... Тут у многих опустятся руки...