柔性。替换文本输入中的选定文本
Posted
技术标签:
【中文标题】柔性。替换文本输入中的选定文本【英文标题】:Flex. Replace the selected text in Text Input 【发布时间】:2011-08-02 21:00:04 【问题描述】:如何创建一个函数来替换每个列表中所选文本的符号上的文本 INPUT 中的所选文本?
谢谢
【问题讨论】:
我有一个文本 INPUT 我必须是鼠标来选择文本。例如我的名字并将其替换为列表中的名称请尝试此示例,它可能对您有帮助,非常感谢
说明 如果您键入“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 中替换所选文本此示例将 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 中。希望这会有所帮助以上是关于柔性。替换文本输入中的选定文本的主要内容,如果未能解决你的问题,请参考以下文章