Просмотр полной версии : И снова: ПРАВЫЙ КЛИК
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-работы. Так что если какое-то сочетание браузер/флэш-плеер позволит добиться нужного результата - это было бы отлично.
Вопрос: обработчик onRightClick ты сам придумал?
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 и перехватывать нажатия". К сожалению, узнать у автора совета подробнее, как реализовать эту идею, я не могу. Может, кто-то может объяснить, как перехватывать в браузере клики и перенаправлять их во флэш?
черех javascript, но для этого нужно этот язык знать (и это только в IE рабртает). а файл EXE вас не устроит?
yana_flash
11.08.2006, 12:00
черех javascript, но для этого нужно этот язык знать (и это только в IE рабртает). а файл EXE вас не устроит?
Написать на javascript потребуется только отслеживание события мыши (перемещение, нажатие, отпускание) и передавать событие и координаты во флэш. Конечно, во флэше начнется геморрой с обработкой мышиных событий, но с этим я смогу разобраться.
EXE не устроит - так как учебник уже представляет собой набор HTML-страниц с гиперссылками и встроенными flash-роликами.
Написать на 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
а кто-нить может написать пример,
как это сделать (обработчик правой кнопки во флеше)?
мне как-то невдомек +)
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.