Textfield () - как предотвратить щелчок правой кнопкой мыши в меню - PullRequest
1 голос
/ 23 февраля 2009

Textfield () - как предотвратить появление меню правой кнопки мыши (меню с параметрами COPY, PASTE, SELECT ALL и т. Д.).

Ответы [ 4 ]

1 голос
/ 28 октября 2011

Я нашел способ скрыть элементы контекстного меню по умолчанию для TextFields !

Просто установите пользовательское контекстное меню и скройте встроенные элементы. Теперь, когда вы щелкнете правой кнопкой мыши, ничего не произойдет!

 // hide cut/copy/paste
 var cm:ContextMenu = new ContextMenu();
 cm.hideBuiltInItems();
 textfield.contextMenu = cm;
1 голос
/ 23 февраля 2009

Установите для свойства поля selectable значение false.

1 голос
/ 24 февраля 2009

Элементы меню FlashPlayers по умолчанию.

Насколько я знаю, вы не можете удалить основные элементы FlashPlayer (Настройки и О программе), которые имеют смысл.

Встроенные элементы FlashPlayers

Вы можете удалить верхние (Play, Pause и т. Д.), Указав его при компиляции или из кода:

contextMenu.hideBuiltInItems();

или в глобальном контексте:

stage.showDefaultContextMenu = false; 

Элементы меню, связанные с TextField

Копирование / вставка / выделение также встроено для TextFields, и кажется, что вы не сможете их скрыть. Однако, поскольку кажется, что вы действительно хотите избавиться от них, вот обходной путь . В приведенном ниже примере показано, как можно добавить прозрачную кнопку поверх textField, чтобы отвести поведение мыши в сторону:

package  
{
    import flash.display.Sprite;
    import flash.display.Stage;
    import flash.events.MouseEvent;
    import flash.text.TextField;
    import flash.text.TextFieldType;
    import flash.ui.ContextMenu;        


    public class TestText extends Sprite 
    {

        private var textField:TextField;

        public function TestText()
        {
            // Removes the inbuit items from the contextMenu

            var contextMenu:ContextMenu = new ContextMenu();
            contextMenu.hideBuiltInItems();
            this.contextMenu = contextMenu;

            // Adds a simple input TextField

            textField = addChild(new TextField()) as TextField;
            textField.type = TextFieldType.INPUT;
            textField.text = "Test Text";

            // Covers the TextField with a transparent shape

            var shape:Sprite = addChild(new Sprite()) as Sprite;
            shape.graphics.beginFill(0, 0);
            shape.graphics.drawRect(0, 0, textField.width, textField.height);
            shape.mouseChildren = false;

            // Listens to a click on the mask to activate typing

            shape.addEventListener(MouseEvent.CLICK, eventClickHandler);
        }

        private function eventClickHandler(event:MouseEvent):void
        {
            // Sets the focus to the underlaying TextField and makes 
            // a full selection of the existing text.

            stage.focus = textField;
            textField.setSelection(0, textField.text.length);
        }
    }
}
1 голос
/ 23 февраля 2009

вы пробовали с пользовательским InteractiveObject.contextMenu ?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...