2009-06-03 3 views
0

Flex 3.Как разделить текст по строкам

Я создал объект TextArea. Затем я набрал в нем какой-то текст. Затем я получил этот текст, используя свойство TextArea.text.

Как разделить текст, который я получил по строкам, и преобразовать его в массив строк?

ответ

1

Если «\ n» не работает для вас, попробуйте «\ r» (возврат каретки). Вот код, демонстрирующий, как это было бы работать - просто введите в поле, и вы увидите содержимый массив изменятся:

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

    <mx:Script> 
     <![CDATA[ 

      import mx.events.CollectionEvent; 
      import mx.collections.ArrayCollection; 
      import mx.events.FlexEvent; 

      [Bindable] 
      private var ac:ArrayCollection; 

      protected function onCreationComplete(event:FlexEvent):void 
      { 
       ac = new ArrayCollection(); 
       ac.addEventListener(CollectionEvent.COLLECTION_CHANGE, onCollectionChange);  
      } 

      protected function onKeyUp(event:KeyboardEvent):void 
      { 
       ac.source = event.target.text.split("\r"); 
      } 

      protected function onCollectionChange(event:CollectionEvent):void 
      { 
       contents.text = ac.source.join("\r");   
      } 

     ]]> 
    </mx:Script> 

    <mx:TextArea id="input" x="19" y="22" width="273" height="175" keyUp="onKeyUp(event)" /> 
    <mx:TextArea id="contents" x="112" y="249" width="180" height="175" editable="false" /> 
    <mx:Label x="19" y="222" text="Array Length:" fontWeight="bold" /> 
    <mx:Label x="37" y="250" text="Contents:" fontWeight="bold" /> 
    <mx:Label x="111" y="222" text="{ac.length}" /> 

</mx:Application> 

Надеется, что это помогает!

+0

спасибо большое !!! это то, что мне нужно! – simplemagik

0

Что для вас значит «разделение по линиям»? Обычным является сканирование текста для последнего пробела перед текстовой шириной и вызов этой строки.

+0

Мне нужно преобразовать многострочный текст в массив строк, где каждый элемент является отдельной строкой (строка текста?) – simplemagik

0

В соответствии с this site символом для подачи строки является «\ n». Используя функцию Split() с «\ n», вы должны иметь возможность разделить строку на массив строк, разделенный линиями.

+0

Это была моя первая мысль решить эту проблему таким образом. Но это не сработает! – simplemagik

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