2012-02-14 60 views
1

我想在我使用的TextArea中禁用複製事件。爲了實現這樣我添加以下代碼塊:Flex - 防止在TextArea中使用滾動複製事件

function initTA(){ 
    var tf:IUITextField = body.mx_internal::getTextField(); 
    tf.enabled = false; 
} 

<mx:TextArea id="body" creationComplete="initTA()" .../> 

這是工作的罰款,除非文本區域中出現這種情況下,滾動條有很多文本的內部。在用戶使用滾動條後,文本區域停止阻止複製事件。

順便說一下,我使用文本區域進行顯示,因爲我使用了富文本區域格式。

感謝您的幫助 謝謝! 烏里

+0

有什麼理由不能設置selectable=false? [(documentation)](http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/controls/TextArea.html#selectable)另外,一般來說,使用mx_internal屬性是個不好的做法,而方法 - 它們並不真正被公開訪問,它們的行爲可以在沒有警告的情況下進行更改。 – 2012-02-14 14:40:57

+0

你是什麼意思,它不起作用?如果你不能選擇它,你還能如何複製文本? – 2012-02-15 15:24:57

+0

我認爲,如果selectable =「false」不起作用,那麼你可能有更大的問題... – 2012-02-15 18:35:58

回答

0

此問題的可能的解決辦法是禁用文本區域組件

function initTA(){ 
    var tf:IUITextField = body.mx_internal::getTextField(); 
    tf.enabled = false; 
} 

<mx:TextArea id="body" creationComplete="initTA()" focusEnabled="false" .../> 

時正在使用滾動條(因大量文字的文本區域這樣的焦點),焦點不會返回到textarea,而間接方式會禁用副本。