Textfield() - 如何防止出现鼠标右键菜单(具有COPY,PASTE,SELECT ALL等选项的菜单)。
答案 0 :(得分:1)
您是否尝试过自定义InteractiveObject.contextMenu?
答案 1 :(得分:1)
将字段selectable
属性设置为false。
答案 2 :(得分:1)
FlashPlayers默认菜单项。
据我所知,无法删除有意义的基本FlashPlayer项目(设置和关于)。
FlashPlayers内置项目
您可以在编译时指定顶部(播放,暂停等)或从代码中删除顶部(播放,暂停等):
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);
}
}
}
答案 3 :(得分:1)
我找到了隐藏 TextFields 的默认上下文菜单项的方法!
只需设置自定义上下文菜单,然后隐藏内置项。现在,当你右键单击时,没有任何反应!
// hide cut/copy/paste
var cm:ContextMenu = new ContextMenu();
cm.hideBuiltInItems();
textfield.contextMenu = cm;