Форум 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
этот способ работает засчет одной замечательной особенности кнопок......
...но об этой особенности пусть говорит сам автор, раз он не нее первым обратил внимание =)


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

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