2011-04-11 6 views
0

텍스트 입력에서 선택한 텍스트를 각 목록의 선택된 심볼로 대체하는 기능을 만드는 방법은 무엇입니까?Flex. 텍스트 입력에서 선택한 텍스트 바꾸기

+0

세부 – Imran

+0

나는이에 설명해주십시오 도움이 될 것입니다

프로그램

필요 없음 변경 텍스트 입력 텍스트를 선택하려면 마우스가되어야합니다. 의 TextInput \t \t X = "422" \t \t Y = "270" \t \t 폭 = "300"텍스트 = "안녕하세요 세르지, 어떻게 예를 들어 내 이름과 목록에 Sersh

+0

다른 말로하면, 그는 flex로 뭔가를하고 싶다. excel과 word로 할 수있다. (하나님, 나는 그것을 말하는 것을 싫어한다.), 특정 테이블을 연결하는 곳 편지의 한 곳으로. (예 : 개인화 된 광고를 보내는 캠페인 : 안녕 , 거래가 있습니다. 텍스트 입력에서 마우스로 텍스트를 선택한 다음 버튼을 눌러 선택한 텍스트를 바꿀 수 있습니다 (전부는 아님). 텍스트) – Jozzeh

답변

1

는 "이므 란 $는"당신이 할 수있다 텍스트 변경 이벤트의 "이므 란 안녕하세요"로 대체됩니다 입력하는 경우가 가득 감사

Explaination 도움이 될 수 있습니다이 샘플을 시도하십시오 주셔서 감사합니다 또한 다른 이벤트를 사용

코드

<?xml version="1.0" encoding="utf-8"?> 
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"> 
     <mx:Script> 
      <![CDATA[ 
       import mx.events.FlexEvent; 

       private var lst:Array = new Array(
               {msg:"Hello", data:"$"}, 
               {msg:"Bye", data:"@"} 
               ); 
       private function textchanged(event:Event):void 
       { 

        var len:int = txt.text.length; 
        if(len!=0) 
        { 
         var msg:String = getMessage(txt.text.charAt(len-1)); 
         if(msg!= null) 
         { 
          txt.removeEventListener(Event.CHANGE,textchanged); 
txt.addEventListener(FlexEvent.UPDATE_COMPLETE,updateComplete); 
          txt.text = txt.text.slice(0, len-1) + " "+ msg; 
         } 
        } 
       } 

       private function updateComplete(event:FlexEvent):void 
       { 
        txt.addEventListener(Event.CHANGE,textchanged); 
       } 

       private function getMessage(data:String):String 
       { 
        var msg:String = null; 
        for each(var obj:Object in lst) 
        { 
         if(obj.data == data) 
         { 
          msg = obj.msg; 
          break; 
         } 
        } 
        return msg; 
       } 
      ]]> 
     </mx:Script> 
     <mx:TextInput id="txt" change="textchanged(event)" /> 

    </mx:Application> 
+0

잘 모르겠다 영어, 러시아 출신 하지만 내게 이해가 안되네 .... 내 텍스트에서 선택한 텍스트를 바꿔야 해. INPUT "Sergii"를 선택하고 목록에 어떤 이름을 클릭하면 ... 내 이름이 선택으로 바뀝니다! – Sersh

+0

내 두 번째 ans를 Pleaes가 확인 – Imran

+0

대단히 감사합니다. Imran 그게 바로 내가 필요로 한 것입니다. – Sersh

1

이 Sampe 목록

<?xml version="1.0" encoding="utf-8"?> 
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"> 
    <mx:Script> 
     <![CDATA[ 
      import mx.events.FlexEvent; 
      [Bindable] 
      private var arr:Array = new Array(
              {msg:"Hello", data:"$"}, 
              {msg:"Bye", data:"@"} 
              ); 

      private function replaceSelection(event:MouseEvent):void 
      { 


        var obj:Object = lst.selectedItem; 
        var selStr:int = txt.selectionBeginIndex; 
        var selEnd:int = txt.selectionEndIndex; 

        if((lst.selectedItem != null)&&(selStr!=selEnd)) 
        { 
         txt.text = txt.text.substring(0,selStr)+lst.selectedItem.msg.toString()+txt.text.substring(selEnd,txt.text.length) 
        } 
      }   

     ]]> 
    </mx:Script> 
    <mx:VBox> 
     <mx:TextInput id="txt" /> 
     <mx:List id="lst" dataProvider="{arr}" labelField="msg" click="{replaceSelection(event)}"/> 
    </mx:VBox> 

</mx:Application> 

을 클릭에 목록 텍스트로의 TextInput에서 선택한 텍스트를 교체 편집 : 데이터 소스로 수정이 필요 삽입 된 XML 파일

XML 파일 "messages.xml"같은에서 {그/플렉스 소스의 루트 폴더}

<?xml version="1.0" encoding="UTF-8"?> 
<root> 
    <item><msg>Hello</msg></item> 
    <item><msg>Bye</msg></item> 
</root> 

플렉스 응용 프로그램에서 Embeding의 XML 파일, 사용 MXML 구성 요소

XML로

<mx:List id="lst" dataProvider="{xml.item}" labelField="msg" click="{replaceSelection(event)}"/> 

작업에 대한 목록 컨트롤에서는

<mx:XML id="xml" source="messages.xml" /> 

수정 : 희망이

+0

대단히 감사합니다. 이므 란.그건 내가 정확히 – Sersh

+0

당신이 welcom, 그래서 받아 들여야 솔루션 : – Imran

+0

이므 란, 그리고 XML 파일에서로드 된 데이터를 만들 수 있습니까? – Sersh