使用按钮粘贴剪贴板中的文本

tef*_*ozi 5 apache-flex clipboard paste

我有控制栏按钮复制,剪切和粘贴,他们想要从剪贴板复制/粘贴一些文本/对象.

复制/剪切工作正常.使用CTRL + V粘贴和上下文菜单也可以正常工作.

但是,当我试图通过控制栏按钮单击处理程序访问剪贴板时,它会抛出错误

SecurityError: Error #2179: The Clipboard.generalClipboard object may only be read while processing a flash.events.Event.PASTE event.
at flash.desktop::Clipboard/getObjectReference()
at flash.desktop::Clipboard/convertNativeFormat()
at flash.desktop::Clipboard/getOriginal()
at flash.desktop::Clipboard/getData()
... 2 more
Run Code Online (Sandbox Code Playgroud)

我知道这是安全问题.

方法Clipboard.generalClipboard.getData()可用于读取系统剪贴板的内容,但仅在从处理flash.events.Event.PASTE事件的事件处理程序中调用它时.

但我必须实现粘贴控制栏按钮.我这样做了吗?

RJ *_*wen 1

我唯一能找到的是使用自定义上下文菜单进行粘贴的能力。您可以在此处找到有关如何执行此操作的示例。我尝试自己调度“粘贴”事件,播放器似乎以某种方式检测到粘贴来自上下文菜单或键盘 - 不完全确定它是如何做到这一点或为什么会这样。我希望其他人可以提供更多说明,但与此同时,上下文菜单是否有效?

更新:我认为没有任何方法可以强制粘贴事件。我一直在运行一些测试,似乎让此事件分派并允许在没有安全错误的情况下调用 Clipboard.generalClipboard.setContents 方法的唯一方法是响应全局粘贴事件,该事件只能分派“从上下文菜单或键盘事件(ctrl+V 或等效平台)安全地“”。抱歉。