Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 29.04.2009, 20:25
zelik вне форума Посмотреть профиль Отправить личное сообщение для zelik Найти все сообщения от zelik
  № 1  
Ответить с цитированием
zelik

Регистрация: Mar 2009
Сообщений: 105
По умолчанию Движение за мышкой

Здравствуйте, уважаемые!

Стоит задача: просмотреть картинку-мувик, размер которого больше области видимости.

Написал обработчик onMouseMove , для перемещания картинки-мувика, когда мышка движется в области видимости.

А вот, как продолжить движение, когда мышка выходит из области видимости, не знаю...

Что можете предложить?

Всем спасибо!

Старый 29.04.2009, 21:49
Acrossfy вне форума Посмотреть профиль Отправить личное сообщение для Acrossfy Найти все сообщения от Acrossfy
  № 2  
Ответить с цитированием
Acrossfy
 
Аватар для Acrossfy

Регистрация: Feb 2009
Сообщений: 180
то есть? не совсем ясно, что именно нужно, глянь флешку на aquatics.su
мувики кнопки двигаются за мышью в определенной области. так надо?

Старый 29.04.2009, 22:14
zelik вне форума Посмотреть профиль Отправить личное сообщение для zelik Найти все сообщения от zelik
  № 3  
Ответить с цитированием
zelik

Регистрация: Mar 2009
Сообщений: 105
Размер документа 550 на 400 пикселей.
Есть фото, например 1200 на 1000 пикселей.
Нужно, чтобы была возможность перемещаться по фото.
Мышку двигаешь влево, фото постепенно перемещается до своего легово края и т.п.

Старый 29.04.2009, 22:18
Stargazer вне форума Посмотреть профиль Отправить личное сообщение для Stargazer Найти все сообщения от Stargazer
  № 4  
Ответить с цитированием
Stargazer

Регистрация: Nov 2008
Сообщений: 528
Цитата:
Сообщение от zelik Посмотреть сообщение
А вот, как продолжить движение, когда мышка выходит из области видимости
Из области видимости чего именно? Если вопрос в том, как отследить мышь за пределами флеша - то AS2 этого не умеет (насчёт AS3 не уверен).

Старый 29.04.2009, 22:24
zelik вне форума Посмотреть профиль Отправить личное сообщение для zelik Найти все сообщения от zelik
  № 5  
Ответить с цитированием
zelik

Регистрация: Mar 2009
Сообщений: 105
Но ведь есть событие onRollOut

Старый 29.04.2009, 23:10
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 6  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Я не понял - у Вас картинка ДВИЖЕТСЯ или встает в зависимости от положения мыши? Потому что если движется, то при уходе мыши за границу движение-то не прекратится, и картинка доползет до края.

Забудьте про onRollOut - как Вы уберете мышь с картинки, которая больше сцены и по условию не должна сдвигаться так, чтобы был виден ее край внутри сцены? И потом - даже если Вы поймаете это событие, что Вы будете с ним делать? Вам ведь нужны координаты мыши за пределами окна плеера))) А это невозможно. Разве что на странице хтмл, с помощью джаваскрипт. Но уверяю Вас, Вам это совершенно не нужно.
__________________
Reality.getBounds(this);

Старый 30.04.2009, 00:38
zelik вне форума Посмотреть профиль Отправить личное сообщение для zelik Найти все сообщения от zelik
  № 7  
Ответить с цитированием
zelik

Регистрация: Mar 2009
Сообщений: 105
Вот код, который написал.

Код AS1/AS2:
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;
};
В onRollOut собирался продолжать двигать клип, по направлению мышки в последний момент до выхода за границы плеера.
Например:

Код AS1/AS2:
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;
				}
			}
		}
	}
Но при этом картинка не движется, а перепрыгивает на конец...

Старый 30.04.2009, 00:59
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 8  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
А, ну так Вы ж ее не двигаете, а только позиционируете, тогда конечно не доедет))
Про onEnterFrame почитайте. И заодно про Math.max и Math.min, чтобы такие этажерки условий не писать.
__________________
Reality.getBounds(this);

Старый 30.04.2009, 01:31
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 9  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Вот пример, здесь с битмапдатой, но смысл одинаков, что просто мувиклип с картинкой гонять.. Да и привыкать уже надо к битмапдате)))
Вложения
Тип файла: rar bitmap_mapslider.rar (192.6 Кб, 291 просмотров)
__________________
Reality.getBounds(this);

Старый 30.04.2009, 16:49
zelik вне форума Посмотреть профиль Отправить личное сообщение для zelik Найти все сообщения от zelik
  № 10  
Ответить с цитированием
zelik

Регистрация: Mar 2009
Сообщений: 105
Спасибо большое.
Просмотр картинки для моей задачи даже более удобнее!
Есть еще несколько вопросов:

1. Можно ли грузить картинку из внутренней библиотеки флеш?

2. Что нужно, чтобы движения останавливалось, есть мышка не движится?

3. Как сделать, чтобы при возвращении мышки в область экрана, движение останавливалось?

Спасибо!

Создать новую тему Ответ Часовой пояс GMT +4, время: 15:43.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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