Определение позиции курсора мыши @ DeForum.ru
DeДверь  
Логин:  
Пароль:  
  Автологин  
   
Разместить рекламу
Письмо админу
Правила | FAQ | *Поиск | Наша команда | Регистрация | Вход
 
 
 Страница 1 из 1 [ Сообщений: 9 ] 
*   Список форумов / Технологии изображения / Flash » ответить » создать топик « | »
Автор Сообщение
IonDen666 Муж.
постоянный участник
109
Сообщения: 3234
Зарегистрирован: 25.11.04
Откуда: Москва
Заголовок сообщения: Определение позиции курсора мыши
Сообщение Добавлено: 1 Апрель 2006, 14:43:59 
Подскажите, как определить наличие или отсутствие курсора над поверхностью флэш-ролика?

_________________
Frontend developer: IonDen.com
nuran
«Лектор»
46
Сообщения: 1569
Зарегистрирован: 21.05.04
Сообщение Добавлено: 1 Апрель 2006, 22:22:10 
да вроде никак

_________________
blog : flash / unity
IonDen666 Муж.
постоянный участник
109
Сообщения: 3234
Зарегистрирован: 25.11.04
Откуда: Москва
Сообщение Добавлено: 1 Апрель 2006, 22:30:11 
Мдя...
поставим вопрос по другому:

есть такая вот штука:
http://www.fanton.ru/test2/

когда я двигаю мышкой над ней, она движется, но если я уберу курсор за пределы флэхи, движение не прекращается, что не есть гуд в данном случае.

_________________
Frontend developer: IonDen.com
@st@l@vist@
участник
70
Сообщения: 1606
Зарегистрирован: 20.03.03
Откуда: St.Petersburg
Сообщение Добавлено: 2 Апрель 2006, 01:28:04 
Кнопку, размером со Stage, сделай.
На onRollOver - пиши в переменную что IN.
На onRollOut - OUT.

onEnterFrame (выполняется из событий самым последним) - тут проверяй IN/OUT, и если в пределах фильма, то расчитывай позицию курсора и делай что необходимо.
IonDen666 Муж.
постоянный участник
109
Сообщения: 3234
Зарегистрирован: 25.11.04
Откуда: Москва
Сообщение Добавлено: 2 Апрель 2006, 16:57:10 
@st@l@vist@, ага. Работает, только косяк другой сразу же вылез. На этой флэшке, каждая картинка - это тоже кнопка, соответственно они почти полностью перекрывают всю область.

_________________
Frontend developer: IonDen.com
@st@l@vist@
участник
70
Сообщения: 1606
Зарегистрирован: 20.03.03
Откуда: St.Petersburg
Сообщение Добавлено: 2 Апрель 2006, 17:11:44 
Есть два решения, … вообще, единственное что нельзя решить - это текстовые поля …

1) Делаем каждую кнопку мувиком и далее пользуемся hitTest - это проще и вернее для твоего варианта.

2) Переписываем следующие события onRollOver, onDragOver (IN) и onRollOut, onDragOut (OUT) и для MovieClip.prototype и для Button.prototype

Примерно так:

Button.prototype.addProperty
(
"onRollOver",
function()
{
_global.MouseInStage = true;
this.__onRollOver();
},
function(f)
{
this.__onRollOver = f;
}
);

btn.onRollOver = function()
{
trace("ok");
}

При этом кнопка на весь Stage должна лежать ниже всех активных элементов. ОПЯТЬ ЖЕ! Используем то что onRollOver и прочие события у всех объектов выполнятся раньше чем onEnterFrame, поэтому когда у одной кнопки случится onRollOut, у другой сразу же будет onRollOver, onRollOver не случиться только если мы уберем курсор во вне, столкнемся с текстовым полем или нажмем правый кнопк мыши :)
IonDen666 Муж.
постоянный участник
109
Сообщения: 3234
Зарегистрирован: 25.11.04
Откуда: Москва
Сообщение Добавлено: 2 Апрель 2006, 17:20:31 
@st@l@vist@, хм, попробую...

_________________
Frontend developer: IonDen.com
Мигель Муж.
участник
75
Сообщения: 1453
Зарегистрирован: 09.01.04
Откуда: http://design-cafe.ru
Сообщение Добавлено: 2 Апрель 2006, 17:46:24 
книжный пример. примерно то, о чем говорил @st@l@vist@.
та же кнопка в принципе, на весь экран.
А чтобы она не перекрывала остальные, надо поместить ее на самый низкий уровень, или просто отрицательный уровень.

Код:
_global.borderWatcher={};   
AsBroadcaster.initialize(borderWatcher);     
borderWatcher.init = function():Void {
   var clip:MovieClip = _root.createEmptyMovieClip("list_clip"+Math.random(), -16000);
   clip.lineStyle(1, 0, 0);         
   clip.beginFill(0, 0);
   clip.moveTo(0, 0);
   var xMax:Number = Stage.width, yMax:Number = Stage.height;
   clip.lineTo(0, yMax), clip.lineTo(xMax, yMax), clip.lineTo(xMax, 0), clip.lineTo(0);
   clip.endFill();
   clip.useHandCursor = false;     
   clip.onRollOut = function():Void {
      borderWatcher.broadcastMessage("onStageRollOut");
   };
   clip.onRollOver = function():Void {
      borderWatcher.broadcastMessage("onStageRollOver");
   };
};
borderWatcher.init();         
//**********************************************************
borderWatcher.addListener(info);           
info.onStageRollOut = function():Void {
   this.text = "Указатель вышел за границы фильма";
};
info.onStageRollOver = function():Void {
   this.text = "Указатель вошел в границы фильма";
};

_________________
_____
Работа Изображение Работы Изображение О Работе
IonDen666 Муж.
постоянный участник
109
Сообщения: 3234
Зарегистрирован: 25.11.04
Откуда: Москва
Сообщение Добавлено: 5 Апрель 2006, 13:05:41 
все работает, всем спасибо :beer:

_________________
Frontend developer: IonDen.com
*   Список форумов / Технологии изображения / Flash « | » » ответить » создать топик
 Страница 1 из 1 [ Сообщений: 9 ] 
Показать сообщения за:   Поле сортировки  
Найти:
Перейти:  
Уровень доступа: Вы не можете начинать темы. Вы не можете отвечать на сообщения. Вы не можете редактировать свои сообщения. Вы не можете удалять свои сообщения. Вы не можете добавлять вложения.
cron


ООО ДеФорум
При использовании материалов сайта ссылка на DeForum.ru — обязательна.
Проект Павла Батурина ©2001-2077; // Powered by phpBB © 2013 phpBB Group
Rambler's Top100