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

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

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

Регистрация: Mar 2010
Сообщений: 21
По умолчанию MovieClip под курсором

Добрый день снова.

Опять у меня проблема с которой не могу разобраться...
В общем пока задача совсем простая - нужно чтобы MovieClip всегда находился под курсором мышки. Ну и еще нужно чтобы событие было в самом классе мувика.

Если коротко, то сделал вот так
Код AS3:
	this.x = mouseX;
this.y = mouseY;
И получил очень странный эфект - мувик скачет через кадр то в точку 0;0 то куда-то в район курсора... Вроде уже делал такое вот слежение за курсором и все было хорошо, а что в этот раз я совсем не понимаю..


Весь исходник
Значит вот основной класс

Код AS3:
package {
	import flash.display.MovieClip;	
	import Point_mc;
 
	public class Main extends MovieClip {
 
		public function Main () {
 
			var point:Point_mc = new Point_mc();
			point.x = point.y  = 100;
			addChild(point);
 
 
		}	
	}
 
 
}
А вот класс мувика Point_mc

Код AS3:
package {
	import flash.display.MovieClip;
	import flash.events.Event;
	import flash.events.MouseEvent;
	import flash.ui.Mouse;
 
	public class Point_mc extends MovieClip {
 
		public var _click:Boolean = false;
 
		public function Point_mc () {
			this.addEventListener(Event.ENTER_FRAME,point_mover);
			this.addEventListener(MouseEvent.MOUSE_DOWN,click_down);
			this.addEventListener(MouseEvent.MOUSE_UP,click_up);
 
		}
 
 
		public function point_mover(e:Event):void {
			if (_click){			
				this.x = mouseX;
				this.y = mouseY;
			}
		}
		public function click_down(e:MouseEvent):void {
			_click = true;
			Mouse.hide();
		}
		public function click_up(e:MouseEvent):void {
			_click = false;
			Mouse.show();
		}		
	}
 
 
}
Помогите!

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

Регистрация: Sep 2009
Сообщений: 127
Во-первых, вы не с той стороны подошли к решению задачи - вы повесили слушатель на ENTER_FRAME, что делать вовсе не обязательно.
Повесьте слушатель на MOUSE_MOVE, и добавьте в e.updateAfterEvent, например:


Код AS1/AS2:
obj.addEventListener(MouseEvent.MOUSE_DOWN,pickUp);
obj.addEventListener(MouseEvent.MOUSE_UP,place);
function pickUp(e:MouseEvent):void{
	stage.addEventListener(MouseEvent.MOUSE_MOVE, changeXY);
}
function place(e:MouseEvent):void{
	stage.removeEventListener(MouseEvent.MOUSE_MOVE, changeXY);
}
function changeXY(e:MouseEvent):void{
	obj.x = stage.mouseX;
	obj.y = stage.mouseY;
	e.updateAfterEvent();
}

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

Регистрация: Mar 2010
Сообщений: 21
Тут согласен, сейчас полазил по форуму и уже заметил что так можно было сделать

но проблему это не решило (

Кстате вот можно посмотреть на результат
skeleton.rar

Старый 06.03.2010, 21:56
dixus вне форума Посмотреть профиль Отправить личное сообщение для dixus Найти все сообщения от dixus
  № 4  
Ответить с цитированием
dixus

Регистрация: Feb 2010
Сообщений: 33
Небось используете mouseX вместо stage.mouseX, вот и получается фигня (mouseX и mouseY хранят координаты мыши относительно DisplayObject'а, а не сцены)

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

Регистрация: Mar 2010
Сообщений: 21
Уууу спасибо ))))))

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

Регистрация: Sep 2009
Сообщений: 127
Гм, вообще-то я так вам и написал в коде
Код AS3:
obj.x = stage.mouseX;
obj.y = stage.mouseY;

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

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

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


 


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


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