Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   Вылет мыши за пределы флэшки. (http://www.flasher.ru/forum/showthread.php?t=41540)

DeliMIter 05.01.2003 16:12

Вылет мыши за пределы флэшки.
 
Вложений: 1
Неоднократно поднимался здесь вопрос, как проверить, находится ли мышка над областью флэш-плэйера (суть флэшки) или вылетела за пределы. И всегда давался бэмэ однозначный ответ, что средствами ТОЛЬКО флэша эту проблему решить нельзя. Среди наиболее частых ответов мелькал JS.

И вот свершилось!!!! В аттаче вы найдете флэшку, которая МОЖЕТ. Кто поймет, как она работает - тот удостоится БОНУСА!!! Естественно в виде алгоритма.

Iv 05.01.2003 16:36

единственный работающий на 100% алгоритм - это прозрачная кнопка на весь экран поверх всего.
и это давно известно - ты не первопроходец.
имеет побочный эффект - нельзя юзать события других кнопок - onRollOver и т.п.

John Connor 05.01.2003 16:43

эх... а я то уж понадеялся =))

Nox Noctis 05.01.2003 16:52

мда... респект увидевшему это недоглюк-недофичу...
а ведь все так просто...
даже обидно...

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

2BitSky
НЕТ ! тут все хитрее... там нет прозрачной кнопки на весь экран =)
так что с остальными кнопками все пучком =)

2ндглюк
и правильно надеялся =) в МХ решение чистенькое...
...ну, правда заглючить можно, если знать что именно глючить...

DeliMIter 05.01.2003 16:58

2BitSky

Ты неправ :))) Загрузи флэш и проверь :)))

Iv 05.01.2003 17:02

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

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

MasterAlien 05.01.2003 17:13

2 Nox Noctis
Хе - хе !
В данном примере как раз использована КНОПКА НА ВЕСЬ ЭКРАН !!!!
в ней стоит код :

on (rollOver, rollOut, dragOver, dragOut)
{
_flag = true;
}


А в самом мувике :

function oEF()
{
D.text = _flag ? "inside" : "outside";
_flag = false;
T[0]._y = -1000;
T[0]._x = -1000;
T[1]._x = _soundbuftime;
T[1]._y = _quality;
T.unshift(T.pop());
} // End of the function
function onMouseMove()
{
_flag = true;
onEnterFrame = oEF;
delete("onMouseMove");
} // End of the function
function onMouseDown()
{
D.text = "mouse button is down";
onEnterFrame = oEF2;
} // End of the function
function onMouseUp()
{
onEnterFrame = oEF;
} // End of the function
T1.useHandCursor = false;
T2.useHandCursor = false;
T = [T1, T2];




Т.Е с помощью обычного

T1.useHandCursor = false;
T2.useHandCursor = false;

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

А сам способ - стар как мир , к томуже глючит ,если нажать ПРАВУЮ кнопку МЫШИ

Iv 05.01.2003 17:14

Variable _level0.$version = "WIN 6,0,50,0"
Variable _level0.oEF = [function 'oEF']
Variable _level0.onMouseDown = [function 'onMouseDown']
Variable _level0.onMouseUp = [function 'onMouseUp']
Variable _level0.T = [object #4, class 'Array'] [
0:[movieclip:_level0.T1],
1:[movieclip:_level0.T2]
]
Variable _level0._flag = false
Variable _level0.onEnterFrame = [function 'oEF']
Edit Text: Target="_level0.D"
variable = null,
text = "outside",
htmlText = "outside",
html = false, textWidth = 283, textHeight = 36, maxChars = null,
borderColor = 0x000000, backgroundColor = 0xFFFFFF, textColor = 0x000000, border = false,
background = false, wordWrap = false, password = false, multiline = false,
selectable = false, scroll = 1, hscroll = 0, maxscroll = 1,
maxhscroll = 0, bottomScroll = 1,
type = "dynamic",
embedFonts = false, restrict = null, length = 7, tabIndex = undefined,
autoSize = "none",
condenseWhite = false
Button: Target="_level0.T1"
Variable _level0.T1.useHandCursor = false
Variable _level0.T1.tabIndex = [getter/setter] undefined
Button: Target="_level0.T2"
Variable _level0.T2.useHandCursor = false
Variable _level0.T2.tabIndex = [getter/setter] undefined


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

убеди исходником...

Iv 05.01.2003 17:15

а ... ну вот у человека есть вьювер

Nox Noctis 05.01.2003 17:19

Цитата:

Оригинал написал(а) MasterAlien
2 Nox Noctis
Хе - хе !
...
убирается курсор , отсутствие которого и привел некоторых людей , включая тебя в замешательство.

один совет можно ? =)
не надо считать себя умнее всех остальных =)))
там НЕТ кнопки на весь экран =)
Н Е Т У =)
а то, что вы не поняли что там происходит, даже вскрыв исходник - это ваши половые трудности =))) (без обид)

2Bitsky
этот способ работает засчет одной замечательной особенности кнопок......
...но об этой особенности пусть говорит сам автор, раз он не нее первым обратил внимание =)

DeliMIter 05.01.2003 17:25

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

Глюк с правой кнопкой мыши нашел Нокс, собственно если вы обратите внимание, то НИ ОДНА кнопка при открытом попап меню не работает как надо. Прабачайце калi ласка :)

Кодвьювер КОЕ-ГДЕ ошибся, и ошибся в конкретно ключевых местах.

Iv 05.01.2003 17:34

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

Iv 05.01.2003 17:40

к тому же у тебя в исходнике лажа:
прозрачная кнопка (мувик) драгается левым верхним углом и поэтому мышь постоянно вылетает за ее пределы.
это незаметно когда снизу нет кнопки, которая реагирует на ролловер, но стоит положить - увидишь сам.

и решенье с драганьем кнопки хуже чем с кнопкой на весь экран: при том же результате больше нагрузка на проц. зачем это?

DeliMIter 05.01.2003 17:49

2BitSky

Не слушаешь. Сделай по-своему, чтобы флэшка явно знала, когда мышь внутри, а когда снаружи и выложи. Не придирайся к мелочам :))) Все что ты говоришь справедливо, но решаемо.

[subway]design 05.01.2003 18:23

1. DeliMIter'ский свф: наведите мышь и нажмите Tab.
2. Приведите хоть один жизненный пример, когда необходимо перманентно знать, где находится курсор - "в" или "вне".

DeliMIter 05.01.2003 18:38

Пинг-Понг
Арканоид

...а так же любая другая игра, базирующаяся на управлении движением мыши.

2subway[design]

Пасиб, поправил ;))))

[subway]design 05.01.2003 23:46

Пинг-понг? Фиг! Сейчас сам такой пишу - и без проверки прекрасно работает :)

DeliMIter 06.01.2003 18:20

Напишешь - напиши мне, наступит моя очередь ГНОБИТЬ ;))))

Zergy 06.01.2003 19:03

2 DeliMIter Ты затронул важную (по крайней мере для меня чейчас ;) ) тему.

На мой взгляд,в больших проектах актуальны именно флэш-вставки а не полноэкранные мувики.
Тут и встаёт вопрос интеграции. Если интегрированный флэш является активным, т.е. взаимодействует с пользователем,
он должен грамотно реагировать на все такие события, в идеале предусмотренные Макромедией. Не важно, какое именно это событие,
скажу вот что: Если в Макромедии допустили такую недоработку, прийдётся искать способ её обойти нам. Существует ли панацея ???

Кстати, реальный пример трабла : http://www.flasher.ru/forum/showthre...threadid=41261

Zergy 06.01.2003 22:44

чё-то не пойму...
 
Блин! Может я туп, не фтыкаю я....Объясните новичку pls, вот MasterAlien повесил исходник. Не знаком я с _flag, ну ладно, назначение примерно понимаю. А как и чем вызываются функции типа

function onMouseMove()
{
_flag = true;
onEnterFrame = oEF;
delete("onMouseMove");
} // End of the function
function onMouseDown()
{

:confused:

DeliMIter 06.01.2003 22:56

В эмыксе есть т.н. триггеры событий. Почитать про них можно в хелпе. onMouseMove ~ on (mouseMove).

gonzalez 10.02.2003 22:51

а исходник дай плиииз!
 
богом тебя молю, нет всеми богами!!!!

:)
wrecker@mail.ee

Zergy 11.02.2003 11:07

:) :)
И мне тоже, будь любезен wsa@kursknet.ru

gonzalez 16.02.2003 02:55

я вот одного не понимаю, жалко чтоли? :) Может ты на этом скрипте хочешь денег заработать?

TTS 17.02.2003 03:41

Блин! Да скрипт уже весь тут раздели, осталось пару ошибок поправить.

llllllllll 12.03.2003 17:36

Вложений: 1
А вот мне тут тоже понадобилось для самодельного курсора знать где мыша, честно говоря меня устраивает вариант с кнопкой на весь экран, ... гляньте мож у кого какие идеи еще проснутся, ... в принципе не отрабатывает( пока, что - влом делать =)) ситуацию с нажатой кнопкой, и с текстовыми полями (selectable) - но для курсора это мне и на руку ...


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

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