Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Регистрация Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 19.10.2010, 12:54
AlexDesinger вне форума Посмотреть профиль Отправить личное сообщение для AlexDesinger Посетить домашнюю страницу AlexDesinger Найти все сообщения от AlexDesinger
  № 1  
Ответить с цитированием
AlexDesinger

Регистрация: Feb 2007
Сообщений: 563
По умолчанию capture mouse right click

Всем привет, собственно вопрос в том, возможно ли средствами as3 захватить событие клика правой нопки мыши? Пробовал разные поиски - по-моему сводиться все к тому, чтобы захватить событие через java, но мне этот способ не подойдет, подскажите плз.

Старый 19.10.2010, 14:00
vapes вне форума Посмотреть профиль Отправить личное сообщение для vapes Найти все сообщения от vapes
  № 2  
Ответить с цитированием
vapes
 
Аватар для vapes

блогер
Регистрация: Nov 2006
Адрес: Минск
Сообщений: 369
Записей в блоге: 6
Отправить сообщение для vapes с помощью ICQ Отправить сообщение для vapes с помощью Skype™
Можно. Когда вылазит менюшка с сеттингами, то диспатчится ивент что она вылезла. Я его слушаю в своем компоненте. А поскольку она вылазит только на клик правой кнопкой, то можно взять еще маусХ и маусУ и можно генерить полноценный райт клик ивент (унаследовал его от маус ивент).

http://www.adobe.com/livedocs/flash/...riptLangRefV3/

Старый 19.10.2010, 14:33
incvizitor вне форума Посмотреть профиль Отправить личное сообщение для incvizitor Найти все сообщения от incvizitor
  № 3  
Ответить с цитированием
incvizitor
 
Аватар для incvizitor

блогер
Регистрация: Sep 2008
Адрес: Менск
Сообщений: 586
Записей в блоге: 1
Отправить сообщение для incvizitor с помощью Skype™
Цитата:
но мне этот способ не подойдет
Структура сайта запрещает? Или просто не удобно?
__________________
ranga

Старый 19.10.2010, 14:51
tsarapkabel вне форума Посмотреть профиль Отправить личное сообщение для tsarapkabel Найти все сообщения от tsarapkabel
  № 4  
Ответить с цитированием
tsarapkabel
 
Аватар для tsarapkabel

Регистрация: Nov 2009
Адрес: в златоглавой
Сообщений: 745
Код AS3:
var cMenu:ContextMenu = new ContextMenu();
this.contextMenu = cMenu;
 
cMenu.addEventListener(ContextMenuEvent.MENU_SELECT, menuSelectHandler, false, 0, true);
 
function menuSelectHandler(event:ContextMenuEvent):void {
    trace("правый клик");
}

Старый 19.10.2010, 15:07
incvizitor вне форума Посмотреть профиль Отправить личное сообщение для incvizitor Найти все сообщения от incvizitor
  № 5  
Ответить с цитированием
incvizitor
 
Аватар для incvizitor

блогер
Регистрация: Sep 2008
Адрес: Менск
Сообщений: 586
Записей в блоге: 1
Отправить сообщение для incvizitor с помощью Skype™
tsarapkabel, и вверху страницы надо еще написать: "НЕ ОБРАЩАЙТЕ ВНИМАНИЕ НА ОТКРЫВАЮЩЕЕСЯ ОКНО".
__________________
ranga

Старый 19.10.2010, 15:20
AlexDesinger вне форума Посмотреть профиль Отправить личное сообщение для AlexDesinger Посетить домашнюю страницу AlexDesinger Найти все сообщения от AlexDesinger
  № 6  
Ответить с цитированием
AlexDesinger

Регистрация: Feb 2007
Сообщений: 563
Цитата:
Можно. Когда вылазит менюшка с сеттингами, то диспатчится ивент что она вылезла
Оооу =)

Цитата:
Структура сайта запрещает? Или просто не удобно?
к сожалению это приложение для локального исполнения, и то будет интегрировано в другое)).

да, но я смогу прослушать только глобально, прослушать от определенного объекта видимо не получиться, так?

Старый 19.10.2010, 15:41
tsarapkabel вне форума Посмотреть профиль Отправить личное сообщение для tsarapkabel Найти все сообщения от tsarapkabel
  № 7  
Ответить с цитированием
tsarapkabel
 
Аватар для tsarapkabel

Регистрация: Nov 2009
Адрес: в златоглавой
Сообщений: 745
incvizitor, вопрос вроде был
Цитата:
Сообщение от AlexDesinger Посмотреть сообщение
...возможно ли средствами as3 захватить событие клика правой нопки мыши?
А про меню там ничего не сказано!

Старый 19.10.2010, 15:51
incvizitor вне форума Посмотреть профиль Отправить личное сообщение для incvizitor Найти все сообщения от incvizitor
  № 8  
Ответить с цитированием
incvizitor
 
Аватар для incvizitor

блогер
Регистрация: Sep 2008
Адрес: Менск
Сообщений: 586
Записей в блоге: 1
Отправить сообщение для incvizitor с помощью Skype™
@AlexDesinger:

Код AS3:
package vaukalak.utils 
{
    import flash.display.DisplayObject;
    import flash.display.InteractiveObject;
    import flash.display.Stage;
    import flash.events.Event;
    import flash.external.ExternalInterface;
    import flash.geom.Point;
 
    /**
     * ...
     * @author vaukalak
     */
    public class RightMouseEvent extends Event 
    {
 
        public static const CLICK:String = "Right Click";
        private static var _stage:Stage;
 
        //переопределения класса Event
 
        public function RightMouseEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false) 
        { 
            super(type, bubbles, cancelable);
        } 
 
        public override function clone():Event 
        { 
            return new RightMouseEvent(type, bubbles, cancelable);
        } 
 
        public override function toString():String 
        { 
            return formatToString("RightMouseEvent", "type", "bubbles", "cancelable", "eventPhase"); 
        }
 
        //в метод enable нужно передать объект stage
 
        public static function enable(stage:Stage):void {
            _stage = stage;
            ExternalInterface.addCallback("rightClick", _onRightClick);
        }
 
        //метод _onRightClick отыскивает непосредственно верхний объект под мышой, и приказывает объекту распространить событие
 
        private static function _onRightClick():void {
            var objs:Array = _stage.getObjectsUnderPoint(new Point(_stage.mouseX, _stage.mouseY));
            (objs[objs.length-1] as DisplayObject).dispatchEvent(new RightMouseEvent(RightMouseEvent.CLICK,true));
        }
 
    }
 
}
Вот этот класс я написал для браузерных версий. По сути Вам нужно посмотреть только метод "_onRightClick". В flash IDE Если на ContextMenuEvent делать trace то (только при первом трэйсе) меню исчезнет. Может быть есть еще что-то что может спрятать его, но это вне предела моих знаний.
__________________
ranga

Старый 19.10.2010, 15:51
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 9  
Ответить с цитированием
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
Так и говорили бы, что локально.
Disabling Menu on Right-Click:
To disable the Flash menu that appears when you right-click on a projector, use the following syntax:

fscommand("showmenu", "false");
(с) http://www.kirupa.com/developer/flas...orcommands.htm
aka google flash right click projector
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают.

Старый 19.10.2010, 16:44
AlexDesinger вне форума Посмотреть профиль Отправить личное сообщение для AlexDesinger Посетить домашнюю страницу AlexDesinger Найти все сообщения от AlexDesinger
  № 10  
Ответить с цитированием
AlexDesinger

Регистрация: Feb 2007
Сообщений: 563
incvizitor, класс, я пожалую запишу себе этот клас на будущее, думаю только его можнно доработать до того, чтобы заставлять генерировать событие не самый верхний объект под мышкой, а какой нть определенный, естественно если он под мышкой)))

всем спасибо огромное, я сделал правда попроще)))
просто сохранил объект который генерирует событие MouseOver в момент нажатия правой кнопки, и вызвал нужную мне функцию)))

Создать новую тему Ответ Часовой пояс GMT +4, время: 13:31.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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