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

Вернуться   Форум Flasher.ru > Flash > API приложений и сред

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 04.01.2011, 23:10
passertm вне форума Посмотреть профиль Отправить личное сообщение для passertm Найти все сообщения от passertm
  № 1  
Ответить с цитированием
passertm
[+1 28.12.10]
[+1 29.12.10]
 
Аватар для passertm

Регистрация: Aug 2006
Сообщений: 107
По умолчанию wrapper + получения координать мыши

Здравствуйте.

Есть обьект "А" который не находится непосредственно на stage.
На нем висит слушатель MouseEvent.MOUSE_UP.
На Обьекте А есть обьект Б.
Если нажать мышькой на обьекте Б то, MouseEvent.localX и MouseEvent.localY показывают x и y по отношению к обьекту Б.
Придумал другие варианты решения проблемы но, когда загружаешь под wrapper они все начинают работать не правильно. А мне всего лишь нужно узнать на какую x,y обьекта А нажали мышкой(даже если перед обьектом А в эом месте стоит другой обьект).

один из решений такой
Код AS3:
		function down(e:MouseEvent):void {
			var lx:int = e.localX;
			var ly:int = e.localY;
			var obj:DisplayObject = DisplayObject(e.target);
			while (obj != e.currentTarget) {
				lx += obj.x;
				ly += obj.y;
				obj = obj.parent;
			}
Но и он работает не правильно когда обьект Б бывает изменен в размере(на пример растянут).


Попытки с ориентироваться по e.stageX работают не правильно, при запуске под wrapper c измененным маштабом браузера.
Надоело изобретать велосипет. Как с этим боротся?


Последний раз редактировалось passertm; 04.01.2011 в 23:39.
Старый 04.01.2011, 23:17
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 2  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Не понятно в чем проблема.

Старый 04.01.2011, 23:39
passertm вне форума Посмотреть профиль Отправить личное сообщение для passertm Найти все сообщения от passertm
  № 3  
Ответить с цитированием
passertm
[+1 28.12.10]
[+1 29.12.10]
 
Аватар для passertm

Регистрация: Aug 2006
Сообщений: 107
хм... А почему попала только половина сообшения?


Здравствуйте.

Есть обьект "А" который не находится непосредственно на stage.
На нем висит слушатель MouseEvent.MOUSE_UP.
На Обьекте А есть обьект Б.
Если нажать мышькой на обьекте Б то, MouseEvent.localX и MouseEvent.localY показывают x и y по отношению к обьекту Б.
Придумал другие варианты решения проблемы но, когда загружаешь под wrapper они все начинают работать не правильно. А мне всего лишь нужно узнать на какую x,y обьекта А нажали мышкой(даже если перед обьектом А в эом месте стоит другой обьект).

один из решений такой
Код AS3:
		function down(e:MouseEvent):void {
			var lx:int = e.localX;
			var ly:int = e.localY;
			var obj:DisplayObject = DisplayObject(e.target);
			while (obj != e.currentTarget) {
				lx += obj.x;
				ly += obj.y;
				obj = obj.parent;
			}
Но и он работает не правильно когда обьект Б бывает изменен в размере(на пример растянут).


Попытки с ориентироваться по e.stageX работают не правильно, при запуске под wrapper c измененным маштабом браузера.
Надоело изобретать велосипет. Как с этим боротся?

Старый 05.01.2011, 00:11
passertm вне форума Посмотреть профиль Отправить личное сообщение для passertm Найти все сообщения от passertm
  № 4  
Ответить с цитированием
passertm
[+1 28.12.10]
[+1 29.12.10]
 
Аватар для passertm

Регистрация: Aug 2006
Сообщений: 107
Прикрепил упрашенный вариант того о чем я говорю.
Работает нормально но, под wrapper с измененым маштабом браузера(на пример если 110% поставить) глючит.

Набросано под cs4. Если укого нету cs4 вот скрипты
Код AS3:
var h:Sprite=new Sprite();
h.x=10;
h.y=10;
addChild(h);
 
var s:Sprite=new Sprite();
s.addChild(new Bitmap(new f7(0,0)));
s.width*=3;
s.height*=3;
s.x=30;
s.y=20
h.addChild(s);
 
var s2:Sprite=new Sprite();
s2.addChild(new Bitmap(new f8(0,0)));
s2.x=230;
s2.y=220
h.addChild(s2);
 
var d:Sprite=new Sprite();
h.addChild(d);
h.addEventListener(MouseEvent.MOUSE_DOWN, down);
 
 
 
 
		function down(e:MouseEvent):void {
			var lx:int;
			var ly:int;
			/*
			lx = e.localX;
			ly = e.localY;
			var obj:DisplayObject = DisplayObject(e.target);
			while (obj != e.currentTarget) {
				lx += obj.x;
				ly += obj.y;
				obj = obj.parent;
			}*/
 
			var p:Point=e.currentTarget.localToGlobal(new Point(0,0));
			lx=e.stageX-p.x;
			ly=e.stageY-p.y;
 
 
			d.graphics.lineStyle(5, 0x00ff00);
			d.graphics.moveTo(lx, ly);
			d.graphics.lineTo(lx+1, ly);
		}
Набросал на скорую руку.
h- head(обший контейнер
d-desc(то на чем рисуется)
s,s2- просто спрайты для помех.
Вложения
Тип файла: rar 3.rar (81.2 Кб, 19 просмотров)

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

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

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


 


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


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