【问题标题】:How to add Custom Context Menu to Text Area Control in ActionScript 3?如何在 ActionScript 3 中将自定义上下文菜单添加到文本区域控件?
【发布时间】:2017-03-31 21:45:43
【问题描述】:

我正在使用以下代码来声明一个文本区域:

<s:TextArea id="txtArea" width="{this.width}" height="{this.height}" borderVisible="false" focusAlpha="0.01" selectionHighlighting="always" styleName="scrollableText"needsSoftKeyboard="true" focusRect="false" direction="{textBoxDirction}" buttonMode="true" useHandCursor="true" mouseChildren="true"/>

我想向此文本区域添加自定义上下文菜单并添加自定义上下文菜单,我正在使用以下代码:

var contextMenu = new ContextMenu();
contextMenu.hideBuiltInItems();
contextMenu.clipboardMenu = false;
contextMenu.addItem(new ContextMenuItem("Start Select"));
contextMenu.addItem(new ContextMenuItem("Start Copy"));

txtArea.contextMenu = contextMenu;

但我的问题是,在第一次右键单击中添加它之后,我得到了默认的上下文菜单,即

从第二次右键单击我得到我的自定义上下文菜单,即

我不知道为什么我没有通过第一次右键单击获得自定义上下文菜单。

所以如果有人能找到我做错的地方或如何解决这个问题,请帮助我解决。

【问题讨论】:

  • 您必须创建自己的 textarea 类,然后查看鼠标右键事件,以显示自定义上下文菜单,这很容易吗?不,这不可能吗?没有。
  • @payam sbr 我认为您在这里忽略了重点。已经实现了显示自定义上下文菜单,并且不需要自定义类。问题是为什么菜单在第一次出现时显示不同。
  • 嗨@payamsbr我认为你无法理解我的问题,我的问题是为什么我在第一次右键单击时获得默认上下文菜单而不是获得自定义上下文菜单,因为我已经添加了自定义我的 textArea 组件的上下文菜单,第二次右键单击显示。

标签: actionscript-3 apache-flex actionscript flex4


【解决方案1】:

以下代码解决了我的问题:

var contextMenu = new ContextMenu();
contextMenu.hideBuiltInItems();
contextMenu.clipboardMenu = false;
contextMenu.addItem(new ContextMenuItem("Start Select"));
contextMenu.addItem(new ContextMenuItem("Start Copy"));

(txtArea.textDisplay as RichEditableText).contextMenu = contextMenu;

不是将自定义上下文菜单直接放入 textArea 控件,如果我们像上面那样放入 richEditableText 就可以解决这个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-21
    • 1970-01-01
    • 2015-01-09
    • 2017-06-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多