本文和大家重点讨论一下Flex组件开发过程中遇到的常见问题及解决方案,相信通过本文的学习你对Flex组件开发有更加深刻的认识。
Flex组件开发总结
1.如何监听键盘事件?
- <mx:TextAreaidmx:TextAreaid="textEditor"keyDown="sendKeyHandler(event)"x="11"y="366"width="399"/>
- privatefunctionsendKeyHandler(evt:KeyboardEvent):void
- {
- //Enter键
- if(evt.keyCode==13)
- {
- this.sendTxt();
- return;
- }
- }
代码说明:有两种类型的键盘事件:KeyboardEvent.KEY_DOWN和KeyboardEvent.KEY_UP
以上是监听的是回车事件
要是想监听组合键,例如:Ctrl+Enter键,代码如下:
- if(evt.keyCode==13&&evt.ctrlKey)
- {
- }
2.Flex组件开发时怎么控制RichTextEditor的控制栏?
利用showControlBar属性,控制RichTextEditor的控制栏,这样把整个控制栏都关闭了
要是想分别控制控制栏中各寄宿控件,可以参考如下代码:
- this.textEditor.alignButtons.height=0;
- this.textEditor.alignButtons.visible=false;
- this.textEditor.bulletButton.height=0;
- this.textEditor.bulletButton.visible=false;
- this.textEditor.linkTextInput.height=0;
- this.textEditor.linkTextInput.visible=false;
- this.textEditor._RichTextEditor_VRule1.height=0;
- this.textEditor._RichTextEditor_VRule1.visible=false;
- this.textEditor._RichTextEditor_VRule2.height=0;
- this.textEditor._RichTextEditor_VRule2.visible=false;
当然,还可以参考这文章
http://blog.minidx.com/2008/12/29/1841.html
3.Flex组件开发时控件双击事件(DoubleClickEvent)怎么没反应?
- <mx:ButtondoubleClickEnabledmx:ButtondoubleClickEnabled="true"doubleClick="doubleClickHandler(event)"x="48"y="32"label="Button"/>
- privatefunctiondoubleClickHandler(evt:MouseEvent):void
- {
- Alert.show("doubleClick");
- }
代码说明:
doubleClickEnabled属性:指定对象是否接收doubleClick事件。默认值为false,这意味着在默认情况下,不接收doubleClick事件。如果将doubleClickEnabled属性设置为true,实例在其范围内接收doubleClick事件
4.Flex组件开发时怎么在TextArea的光标位置插入字符?
- <mx:TextAreaidmx:TextAreaid="textEditor"x="11"y="366"width="399"/>
- privatefunctioninsertString(insertStr:String):void
- {
- if(this.textEditor.selectionBeginIndex==this.textEditor.selectionEndIndex)
- {
- varstartPart:String=this.textEditor.text.substring(0,this.textEditor.selectionBeginIndex);
- varendPart:String=this.textEditor.text.substring(this.textEditor.selectionEndIndex,
- this.textEditor.text.length);
- startPart+=insertStr;
- startPart+=endPart;
- this.textEditor.text=startPart;
- }
- else
- {
- this.textEditor.text=insertStr;
- }
- }
5.实现TextArea控件的滚动条始终保持在最下面?
- this.txt_content.addEventListener(FlexEvent.VALUE_COMMIT,VALUE_COMMITHandler);
- privatefunctionVALUE_COMMITHandler(evt:FlexEvent):
- void{txt_contenttxt_content.verticalScrollPosition=
- txt_content.maxVerticalScrollPosition;
- }
代码说明:这段代码是为了实现TextArea控件的滚动条始终保持在最下面,以方便用户查看聊天信息
要是VBox控件需要实现类似效果,可以看如下代码:
- <mx:VBoxidmx:VBoxid="vd"updateComplete="updateCompleteHandler(event)"
- x="10"y="10"width="399"height="348">
- privatefunctionupdateCompleteHandler(evt:FlexEvent):void
- {
- thisthis.vd.verticalScrollPosition=this.vd.maxVerticalScrollPosition;
- }
【编辑推荐】
- Flex组件开发总结
- 从Flex Builder更名看Flash平台战略
- Flex及FlexBuilder2.0开发环境详解
- FlexBuilder3.0与Eclipse3.4的***结合
- 学习笔记 FlexBuilder2.0中如何使用基于Lists的控件