2016-10-08 5 views
-1

я хочу отключающее контекстное меню, я никогда не работал с ActionScript, после некоторого поиска я нашел этот код для отключения контекстного меню:VideoJS Swf Удалить Контекстное меню

stage.addEventListener(MouseEvent.RIGHT_CLICK, function(e:MouseEvent):void {}); 
stage.addEventListener(MouseEvent.CONTEXT_MENU, function(e:MouseEvent):void {}); 

Mouse.hide(); 

я хочу знать, как можно применить его в VideoJS. в виде.

Вот исходный код в ActionScript https://github.com/videojs/video-js-swf/tree/master/src

+0

Как вы используете класс VideoJS в своем проекте? Вы хотите настроить VideoJS.as или код проекта? –

+0

@ FrédericCox Я использую 'grunt mxmlc' и компилирую SWF-файл. – user1086010

+0

Но как вы создаете экземпляр класса VideoJS в своем коде? Если вы делаете что-то вроде var videoJS: VideoJS = new VideoJS(); затем после этого добавьте eventlisteners для rightClick и contextMenu и используйте evt.preventDefault или установите пустой пользовательский contextMenu. Это может сработать. Если у вас есть образец кода, который поможет –

ответ

0

«Я нахожу этот код для отключения контекстного меню ... Я хочу знать, как можно применить его в VideoJS.as».

Open VideoJS.as ... Найдите следующий код (строка 57 и далее):

// add content-menu version info 

    var _ctxVersion:ContextMenuItem = new ContextMenuItem("VideoJS Flash Component v" + VERSION, false, false); 
    var _ctxAbout:ContextMenuItem = new ContextMenuItem("Copyright © 2014 Brightcove, Inc.", false, false); 
    var _ctxMenu:ContextMenu = new ContextMenu(); 
    _ctxMenu.hideBuiltInItems(); 
    _ctxMenu.customItems.push(_ctxVersion, _ctxAbout); 
    this.contextMenu = _ctxMenu; 


Изменить это, чтобы стать

// add content-menu version info 

/* 
var _ctxVersion:ContextMenuItem = new ContextMenuItem("VideoJS Flash Component v" + VERSION, false, false); 
var _ctxAbout:ContextMenuItem = new ContextMenuItem("Copyright © 2014 Brightcove, Inc.", false, false); 
var _ctxMenu:ContextMenu = new ContextMenu(); 
_ctxMenu.hideBuiltInItems(); 
_ctxMenu.customItems.push(_ctxVersion, _ctxAbout); 
this.contextMenu = _ctxMenu; 
*/ 

this.addEventListener(MouseEvent.RIGHT_CLICK, function(e:MouseEvent):void {}); 
this.addEventListener(MouseEvent.CONTEXT_MENU, function(e:MouseEvent):void {}); 

Теперь попробуйте скомпилировать новый Выход SWF для VideoJS. Если он работал правильно, при щелчке правой кнопкой мыши не должно быть ответа. Над кодом непроверено (нет времени), но это правильная логика кода.

Сообщите мне, если это рабочее решение.

+0

, я попробовал это, чтобы он дал мне эту ошибку. Http://codepaste.net/r1nyaa – user1086010

+0

Я протестировал код. Он работает нормально. Таким образом, у вас есть правильный ответ на ваш вопрос, поскольку касается изменения кода в файле '.as'. Пожалуйста, отметьте его как решенный и задайте новый вопрос о каких-либо дополнительных проблемах (ваша ** новая ошибка ** связана с вашими настройками компилятора MXMLC, ничего плохого в моем ответе или Video-JS) ... –

+0

Вы получаете эти ошибки потому что в FlashPlayer ** 11.2 ** были добавлены обновления AS3 для разрешения 'CONTEXT_MENU' и' RIGHT_CLICK'. Вероятно, ваш компилятор производит выходные данные (swf) для старых версий Flash Player. ** Я протестировал это ** с помощью Flash IDE, и я получаю ту же самую ошибку **, только если ** Я выбираю вывод в какую-то более старую версию SWF (то есть: версия ** 10.1 **). Я не использую 'Grunt MXMLC', но если он использует FLEX SDK, просто перейдите в папку установки и найдите эти папки ...' Frameworks \ Libs \ Player' теперь в этой папке 'Player', что вы видите? (должна быть подпапка с версией Flash Player как имя). –

Смежные вопросы