|
|
|||||
Регистрация: Mar 2009
Сообщений: 105
|
Движение за мышкой
Здравствуйте, уважаемые!
Стоит задача: просмотреть картинку-мувик, размер которого больше области видимости. Написал обработчик onMouseMove , для перемещания картинки-мувика, когда мышка движется в области видимости. А вот, как продолжить движение, когда мышка выходит из области видимости, не знаю... Что можете предложить? Всем спасибо! |
|
|||||
Регистрация: Feb 2009
Сообщений: 180
|
то есть? не совсем ясно, что именно нужно, глянь флешку на aquatics.su
мувики кнопки двигаются за мышью в определенной области. так надо? |
|
|||||
Регистрация: Mar 2009
Сообщений: 105
|
Размер документа 550 на 400 пикселей.
Есть фото, например 1200 на 1000 пикселей. Нужно, чтобы была возможность перемещаться по фото. Мышку двигаешь влево, фото постепенно перемещается до своего легово края и т.п. |
|
|||||
Регистрация: Nov 2008
Сообщений: 528
|
Из области видимости чего именно? Если вопрос в том, как отследить мышь за пределами флеша - то AS2 этого не умеет (насчёт AS3 не уверен).
|
|
|||||
Регистрация: Mar 2009
Сообщений: 105
|
Но ведь есть событие onRollOut
|
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Я не понял - у Вас картинка ДВИЖЕТСЯ или встает в зависимости от положения мыши? Потому что если движется, то при уходе мыши за границу движение-то не прекратится, и картинка доползет до края.
Забудьте про onRollOut - как Вы уберете мышь с картинки, которая больше сцены и по условию не должна сдвигаться так, чтобы был виден ее край внутри сцены? И потом - даже если Вы поймаете это событие, что Вы будете с ним делать? Вам ведь нужны координаты мыши за пределами окна плеера))) А это невозможно. Разве что на странице хтмл, с помощью джаваскрипт. Но уверяю Вас, Вам это совершенно не нужно.
__________________
Reality.getBounds(this); |
|
|||||
Регистрация: Mar 2009
Сообщений: 105
|
Вот код, который написал.
var shag = 2; //old values var x_mouse; var y_mouse; x_mouse = _xmouse; y_mouse = _ymouse; cl.onMouseMove = function() { //right if (_xmouse>x_mouse) { if (this._x<0) { this._x=this._x+shag;// } } //up if (_ymouse<y_mouse) { if (this._y+this._height>400) { this._y=this._y-shag;// } } //down if (_ymouse>y_mouse) { if (this._y<0) { this._y=this._y+shag;// } } //left if (_xmouse<x_mouse) { if (this._x+this._width>=550) { this._x=this._x-shag;// - } } updateAfterEvent();//обновление x_mouse = _xmouse; y_mouse = _ymouse; }; Например: var move_ver = 0;//1 - up, -1 - down, 0 - stop var move_hor = 0;//1 - right, -1 - left, 0 - stop var flag_stop = false; cl.onRollOut = function() { flag_stop = false; moving(); }; function moving() { while (!flag_stop) { if ((move_ver == 0) and (move_hor == 0)) { flag_stop = true; } else { //up if (move_ver == 1) { if (cl._y+cl._height>400) { cl._y = cl._y-3; move_ver = 1; } else { move_ver = 0; } } //down if (move_ver == -1) { if (cl._y<0) { cl._y= cl._y+3;// move_ver = -1; } else { move_ver = 0; } } //right if (move_hor == 1) { if (cl._x<0) { cl._x=cl._x+3;// move_hor = 1; } else { move_hor = 0; } } //left if (move_hor == -1) { if (cl._x+cl._width>=550) { cl._x=cl._x-3;// - move_hor = -1; } else { move_hor = 0; } } } } |
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
А, ну так Вы ж ее не двигаете, а только позиционируете, тогда конечно не доедет))
Про onEnterFrame почитайте. И заодно про Math.max и Math.min, чтобы такие этажерки условий не писать.
__________________
Reality.getBounds(this); |
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Вот пример, здесь с битмапдатой, но смысл одинаков, что просто мувиклип с картинкой гонять.. Да и привыкать уже надо к битмапдате)))
__________________
Reality.getBounds(this); |
|
|||||
Регистрация: Mar 2009
Сообщений: 105
|
Спасибо большое.
Просмотр картинки для моей задачи даже более удобнее! Есть еще несколько вопросов: 1. Можно ли грузить картинку из внутренней библиотеки флеш? 2. Что нужно, чтобы движения останавливалось, есть мышка не движится? 3. Как сделать, чтобы при возвращении мышки в область экрана, движение останавливалось? Спасибо! |
Часовой пояс GMT +4, время: 15:43. |
|
« Предыдущая тема | Следующая тема » |
|
|