PDA

Просмотр полной версии : И снова: ПРАВЫЙ КЛИК


yana_flash
10.08.2006, 18:11
Сразу оговорюсь - я делала поиск по форуму, пробовала приведенные рецепты, читала ссылки "из лужи к звездам", но ответа не нашла. И теперь задаю вопрос в форуме.

Я пишу интерактивную флэш-обучалку по одному программному продукту. А правый клик в продукте, использованию которого учит моя обучалка, играет не последнюю роль. Более того, в обучалке встроен реалтаймовый симулятор продукта, чтобы пользователь смог наработать реакцию перед тем, как приступать к диспетчерской работе. Поэтому правый клик НУЖЕН. Если его заменить на что-то другое - это будет похоже на подготовку к реальным автогонкам на автосимуляторе с мышкой и клавиатурой. Как бы ты мастерски ни управлял машиной с помощью мышки и клавиатуры - умения владеть реальным рулем это не прибавит.

То, что я сделала, почитав форум, выглядит так:

onRightClick = function() {
// обрабатываю правый клик
}
this.menu = new ContextMenu(MAIN.onRightClick);

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

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

В браузере (Firefox 1.5.0.6, MSIE 6.0) мое меню вообще не появляется - только стандартное флэшовое. Использую Flash Proofessional 8.

Посоветуйте, как можно реализовать в ролике перехват и обработку правого клика? Обучалка представляет собой HTML-браузер с вставленными в текст интерактивными flash-роликами (тесты, практикумы, демонстрации) и предназначена не для веба, а для standalone-работы. Так что если какое-то сочетание браузер/флэш-плеер позволит добиться нужного результата - это было бы отлично.

BigDan
10.08.2006, 18:32
Вопрос: обработчик onRightClick ты сам придумал?

mc6
10.08.2006, 18:36
2BigDan: придумалА :)

BigDan
10.08.2006, 18:40
2BigDan: придумалА :)
Приношу свои извинения:rolleyes:

yana_flash
10.08.2006, 18:47
onRightClick - просто моя функция, которую я "вешаю" на контекстное меню. Ок, поменяла имя обработчика, чтобы уж точно не случилось совпадения с какой-нибудь системной фичей:

_global.MAIN = this;
NaPravyClick = function() {/* Код обработчика */}
this.menu = new ContextMenu(MAIN.NaPravyClick);

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

Psycho Tiger
10.08.2006, 18:55
Оговариваюсь в 1489 раз - КОНТЕКСТНОЕ МЕНЮ ЧИСТО ИЗ ФЛЭША УБРАТЬ НЕЛЬЗЯ.
Нет нет, что вы я не кричу, это чтобы понятнее :)
Ты можеш
А) использовать класс контекстоного меню внося свои изминения
Б) при помощи потустороних програм отредактировать ехе файл и убрать
В) написать 20 писем с недовольстом в макромедия (уже в Адоб)
Г) придумать такой алгоритм убирания меню, какого ещё никто не придумал.
4 варианта - 4 пути.
Дело за тобой.
Чтобы ты не выбрала я желаю тебе удачи от чистого сердца.
Да да, если достучишся до пункта 3, или же до пункта 4 (ОГО)
Тогда обязательно напиши на флэшер :)

yana_flash
10.08.2006, 19:02
Тогда вопрос такой: возможна ли обработка правого клика в директоре?

Der Grossen
10.08.2006, 19:37
Если это desktop application то можно поступить так:
1) Делать из swf exe с помощью MDM Zinc или ему подобных
2) Расковырять exe'шник например ResHack'ом

KidsKilla
10.08.2006, 20:13
Тогда вопрос такой: возможна ли обработка правого клика в директоре?
а райтклик на даблклик поменять?

Буньков Максим
11.08.2006, 10:26
А умные кодеры для КПК придумали прикольную фичу.. для сенсорных моников держишь стилус 5 сек и сробатывает Евент как буд-то правый клик и все...
А я бы юзал класс контесктного Меню и не парился... подумашеь будет висеть Абаут адобе

yana_flash
11.08.2006, 11:29
а райтклик на даблклик поменять?

Повторяю - суть программы - выработать _реакции_. Ты можешь сколько угодно тренировать удар "маваши" с помощью стрелок курсора. Но когда он тебе понадобится в реальной жизни, вместо того, чтобы напрячь нужные мышцы ноги (или руки? знаю только название удара, но не знаю, как выглЯдит :) ), ты мгновенно напряжешь нужные мышцы указательного и большого пальцев правой руки ;) Так что заменять правый клик, увы, нельзя. Иначе бы я это сделала и не задавала глупых вопросов ;)

И все-таки повторю вопрос - можно ли в "Директоре" отслеживать правый клик?

Вопрос номер два. Мне подсказали вариант: "повесить поверх ролика DIV и перехватывать нажатия". К сожалению, узнать у автора совета подробнее, как реализовать эту идею, я не могу. Может, кто-то может объяснить, как перехватывать в браузере клики и перенаправлять их во флэш?

AlexSol
11.08.2006, 11:41
черех javascript, но для этого нужно этот язык знать (и это только в IE рабртает). а файл EXE вас не устроит?

yana_flash
11.08.2006, 12:00
черех javascript, но для этого нужно этот язык знать (и это только в IE рабртает). а файл EXE вас не устроит?

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

EXE не устроит - так как учебник уже представляет собой набор HTML-страниц с гиперссылками и встроенными flash-роликами.

AlexSol
11.08.2006, 12:15
Написать на javascript потребуется только отслеживание события мыши (перемещение, нажатие, отпускание) и передавать событие и координаты во флэш. Конечно, во флэше начнется геморрой с обработкой мышиных событий, но с этим я смогу разобраться.

ну именно так. вот пример перехвата событий. (можете там на форуме вопрос задать) http://www.softtime.ru/javascript/dragndrop.php

yana_flash
11.08.2006, 18:37
Кстати, попробовала реализовать аналоги описанного по ссылкам:

http://www.flasher.ru/src/single/%7Bsrc.pg=1688%7D
http://www.flasher.ru/src/single/%7Bsrc.pg=2047%7D

Примеры, по словам автора, демонстрируют передачу мышиных событий из JavaScript во Flash-ролик.

Сначала очень удивлялась, почему то, что работает у автора, у меня категорически отказывается работать. Потом обнаружила, что авторские ролики прекрасно работают и без JS, и даже вообще безо всякого браузера - и текст колесиком скроллится, и бублик крутится вслед за мышкой. То есть этим роликам нет нужды что-то брать из JS. У меня же ничего не работало потому, что я пыталась выводить на экран данные, которые должен был прислать JS - а он ничего не присылал. Ролики запускала, как и требовал автор, в MSIE 6. Впрочем, его ролики прекрасно шли и под Firefox, и безо всякого браузера вообще ;)

Может, я чего-то не поняла...

Beastriker
12.08.2006, 01:21
а кто-нить может написать пример,
как это сделать (обработчик правой кнопки во флеше)?
мне как-то невдомек +)