柔性。替换文本输入中的选定文本

Posted

技术标签:

【中文标题】柔性。替换文本输入中的选定文本【英文标题】:Flex. Replace the selected text in Text Input 【发布时间】:2011-08-02 21:00:04 【问题描述】:

如何创建一个函数来替换每个列表中所选文本的符号上的文本 INPUT 中的所选文本?

谢谢

【问题讨论】:

我有一个文本 INPUT 我必须是鼠标来选择文本。例如我的名字并将其替换为列表中的名称 换句话说,他想在 flex 中做一些你可以用 excel 和 word 做的事情(天哪,我讨厌这样说),你将某个表链接到信中的某个位置. (例如发送个性化广告的广告系列:您好 ,我有一笔交易。他想用鼠标在文本输入中选择文本,然后按一个按钮来替换所选文本(不是所有的文字)。 【参考方案1】:

请尝试此示例,它可能对您有帮助,非常感谢

说明 如果您键入“Imran $”,它将在文本更改事件中将其替换为“Imran Hello”,您也可以使用任何其他事件

代码

 <?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>

【讨论】:

我不太懂英语,我来自俄罗斯 但你不懂我....我必须从我的文本 INPUT 中替换所选文本 我选择“Sergii”,当您单击列表中的任何名称时..我的名字被选择替换! 非常感谢伊姆兰。这正是我所需要的【参考方案2】:

此示例将 TextInput 中的选定文本替换为单击列表时的列表文本

<?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>

已编辑:需要修改嵌入 XML 文件作为数据源

XML 文件 "messages.xml" 它在 Flex Source 的同一/根文件夹中

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

在 Flex 应用程序中嵌入 XML 文件,使用 MXML 组件

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

列表控件中的修改,用于使用 XML

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

注意:程序无需其他更改

希望这会有所帮助

【讨论】:

非常感谢伊姆兰。这正是我所需要的 Imran,可以从XML文件中加载数据吗? 是的,我已经修改了 ans,它在编译时将 XML 文件嵌入 SWF 中。希望这会有所帮助

以上是关于柔性。替换文本输入中的选定文本的主要内容,如果未能解决你的问题,请参考以下文章

将输入文本框中的文本替换为所选自动完成选项中的文本

如何从输入文本中删除选定的文本?

获取select2中选定选项的值,然后使用jquery将值设置为输入文本?

替换 Chrome 扩展中的用户文本输入

Android文本输入布局更改选定状态颜色

如何在另一个文本输入中获取选定的文本。出现错误“'ScreenManager' 对象没有属性 'widget_1'”