2011-01-12 84 views
0

我有我的項目在Flex3開發工作,按Ctrl + C在Flash播放器(SWF文件)時,瀏覽器是谷歌Chrome瀏覽器

<<Site Link Removed now>>

您可以點擊此處查看,這個問題我我正面臨的是,當swf在Chrome瀏覽器中運行時,從屏幕textarea複製(Ctrl + C)內容。

假設,我必須在舞臺上添加一些文字,所以在左邊打開的文字區域,我不能複製文字區域寫的文字,雖然通過在文字區域右鍵點擊,並選擇複製選項,多數民衆贊成在工作,但我的客戶已要求通過使用Ctrl + C複製內容,雖然它與其他瀏覽器非常好,

只鉻不支持複製(Ctrl + C),雖然選擇全部(按Ctrl + A)正在

所以這個事情,這是我THOT我SHD討論,可能有人b也甲肝同樣的問題,

感謝ü所有提前,,

ANKUR夏爾馬

回答

2

使用KeyboardEvent.KEY_DOWN檢測 「C」 被按下。然後檢查ctrlKey,看它是否已關閉,並使用System.setClipboard(source.text);設置剪貼板中的內容

textArea.addEventListener (KeyboardEvent.KEY_DOWN, onKeyDown); 

private function onKeyDown (ev : KeyboardEvent) : void 
{ 
    if (ev.keyCode != 67 || !ev.ctrlKey) return; 
    var text:String = textArea.text; 
    System.setClipboard(text); 
} 

小心,但:有時奇怪的事情都可能發生SIMUL遠遠地,像文本內容消失等。你可能需要解決這個問題!

1

這不僅僅是鉻,做這個,Safari和其他一些瀏覽器做到這一點。

最好的辦法是使用JavaScript庫來捕獲這些鍵盤事件,然後將它們傳遞給您的Flex應用程序。

兩者之間的通信:http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/external/ExternalInterface.html

如何檢測JavaScript的鍵盤快捷方式(已經在Chrome在Windows XP上測試按Ctrl + 1:http://www.openjs.com/scripts/events/keyboard_shortcuts/

+0

也可能是您在偵聽器中使用了KeyboardEvent.KEY_DOWN而不是KeyboardEvent.KEY_UP。前者在過去沒有檢測到按下ctrl/shirt/alt鍵。 (對不起,如果這在你的例子中是顯而易見的,但是我目前無法看到它) – robmcm 2011-01-12 09:25:26

+0

我在Safari瀏覽器,Mozilla,IE瀏覽器上檢查過,它工作正常,我找不到問題在Chrome瀏覽器中出現問題, thanx @robmcm這個 – 2011-01-12 09:31:56