2009-11-03 80 views
1

如果您有兩個不同樣式(fontFamily,weight,color等)的文本區域,並且您將文本從一個文本複製到另一個文本區域,它也會複製源文本區域中的樣式。有沒有什麼光滑的方法來防止這種情況發生?防止從一個flex textArea複製樣式到另一個

下面是一個可以說明問題的代碼示例。在頂部框中鍵入一些文本,在底部鍵入一些文本,然後將一些字符從頂部框複製到底部。我沒有使用htmltext。

<?xml version="1.0" encoding="utf-8"?> 
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"> 
    <mx:VBox width="100%" height="100%"> 
    <mx:TextArea id="source" width="100%" fontWeight="bold" fontSize="20" height="50" /> 
    <mx:TextArea id="dest" width="100%" height="50" /> 
    </mx:VBox> 
</mx:Application> 

回答

0

你能舉一個代碼示例嗎?

我的第一個猜測是您正在設置第一個文本區域的htmlText屬性,並且您的顏色和樣式通過HTML。你是否複製了你的副本的html標籤?您可能需要覆蓋texthtmlText設置器並去除標籤(或更改它們)。

我甚至不確定textarea的複製/粘貼將複製HTML內部。似乎似乎合理,但。

+1

都能跟得上。我設置文本屬性,根本不使用htmlText。如果我使用htmlText,那麼我可能會看到問題發生。 – Shizam 2009-11-04 01:46:21

+0

哇!你是對的。測試了代碼。這太瘋狂了。您仍然可以使用「文本」或「htmlText」設置器的覆蓋來繞過它。似乎它正在採取一些HTML格式。 – Glenn 2009-11-04 02:09:49

+0

哈,很高興知道我不只是瘋了,多謝確認:) – Shizam 2009-11-04 03:15:22

2

這裏是一個可怕的骯髒的黑客是得到它完成:

<?xml version="1.0" encoding="utf-8"?> 
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" 
    layout="absolute" 
    > 

    <mx:Script> 
     <![CDATA[ 

      public function reformat():void 
      { 
       var hold:String = two.text 
       two.text = "" 
       two.htmlText = hold 
      } 


     ]]> 
    </mx:Script> 

    <mx:VBox width="100%" height="100%" > 

     <mx:Button click="bonk()" /> 

     <mx:TextArea fontWeight="bold" id="one" width="100%" height="100%" /> 

     <mx:TextArea fontWeight="normal" id="two" width="100%" height="100%" change="reformat()" /> 

    </mx:VBox> 


</mx:Application> 
+0

這非常接近解決方案。這裏唯一的缺點是two.text現在是空的,你必須使用htmlText,以任何方式保持文本填充two.text? – Shizam 2009-11-04 01:38:21

相關問題