2009-11-03 2 views
1

Если у вас есть две текстовые области с разными стилями (fontFamily, вес, цвет и т. Д.), И вы копируете текст от одного к другому, он также копирует стиль из исходной области текста. Есть ли какой-либо способ предотвратить это?Предотвращение копирования стиля из одного гибкого текстаАрхив в другой

Ниже приведен пример кода, который иллюстрирует проблему. Введите текст в верхнем поле и некоторый текст внизу, затем скопируйте некоторые символы из верхней коробки в нижнюю. Я не использую 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 с помощью своей копии? Возможно, вам придется переопределить установщик text или htmlText и вычеркнуть теги (или изменить их).

Я даже не уверен, что копия/вставка текстового поля скопирует HTML внутри. Кажется правдоподобным.

+1

Неа. Я устанавливаю свойство text, не использую htmlText вообще. Если бы я использовал htmlText, я мог бы, возможно, увидеть возникшую проблему. – Shizam

+0

Ничего себе! Ты прав. Протестировал код. Это безумно. Вы все равно сможете обойти это, используя переопределение в сетях «text» или «htmlText». Похоже, что с ним требуется HTML-форматирование. – Glenn

+0

Ха, хорошо знать, я не просто сумасшедший, спасибо за подтверждение :) – Shizam

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, чтобы сохранить текст в двух языках. – Shizam

Смежные вопросы