我有控制栏按钮复制、剪切和粘贴,它们假设从剪贴板复制/粘贴一些文本/对象。
复制/剪切工作正常。
使用 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
我知道这是安全问题。
Method Clipboard.generalClipboard.getData() may be used to read the contents of the system Clipboard, but only when it is called from within an event handler processing a flash.events.Event.PASTE event.
但我必须实现粘贴控制栏按钮。我必须这样做吗?
最佳答案
为了克服 Flash Player 强加的这种安全限制,您可以使用 Flash 本地共享对象模拟系统剪贴板的功能,就像这里最初建议的那样http://joeberkovitz.com/blog/2008/12/12/clipboard-using-local-shared-objects/或通过 ExternalInterface 使用 Javascript API 从剪贴板检索数据。
关于apache-flex - 使用按钮从剪贴板粘贴文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1828045/