加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

SandboxMouseEvent, FlexMouseEvent,Flex 多选 ComboBox

发布时间:2020-12-15 04:24:11 所属栏目:百科 来源:网络整理
导读:说多了墨迹,直接帖代码 ? MyClassFactory 类 如下: [java] ? view plain copy import ?flash.display.DisplayObject;?? ?? import ?mx.core.ClassFactory;?? import ?mx.states.OverrideBase;?? ?? public ? class ?MyClassFactory? extends ?ClassFactory

说多了墨迹,直接帖代码

?

MyClassFactory 类 如下:

[java]? view plain copy
  1. import?flash.display.DisplayObject;??
  2. ??
  3. import?mx.core.ClassFactory;??
  4. import?mx.states.OverrideBase;??
  5. ??
  6. public?class?MyClassFactory?extends?ClassFactory??
  7. {??
  8. ????public?function?MyClassFactory(generator:Class=null)??
  9. ????{??
  10. ????????super(generator);??
  11. ????}??
  12. private?var?eventArray:Array=new?Array();??
  13. ????private?var?_properties:Array=new?Array();??
  14. public?function?addInitEventListener(type:String,?listener:Function,?useCapture:Boolean=false,?priority:int=0,useWeakReference:Boolean=false):void{??
  15. ????????eventArray.push({type:type,listener:listener,useCapture:useCapture,priority:priority,useWeakReference:useWeakReference});??
  16. ????}??
  17. public?function?addInitProperties(key:String,value:*):void{??
  18. ????????_properties.push({key:key,value:value});??
  19. ??????
  20. ????override?public?function?newInstance():*{??
  21. ????????trace("MyClassFactory.newInstance();");??
  22. ????????var?obj:*=super.newInstance();??
  23. ????????var?event:Object;??
  24. ????????if(eventArray!=null&&eventArray.length>0&&obj?as?DisplayObject){??
  25. ????????????var?i:0;??
  26. ????????????for(i=0;i<_properties.length;i++){??
  27. ????????????????event=_properties[i];??
  28. ????????????????if(event.value?is?Function){??
  29. ????????????????????obj[event.key]=event.value();??
  30. ????????????????}else{??
  31. ????????????????????obj[event.key]=event.value;??
  32. ????????????????}??
  33. ??????????????????
  34. ????????????}??
  35. ??????????????
  36. 0;i<eventArray.length;i++){??
  37. ????????????????event=eventArray[i];??
  38. ????????????????DisplayObject(obj).addEventListener(event.type,event.listener,event.useCapture,event.priority,event.useWeakReference);??
  39. ????????????}??
  40. ????????}??
  41. return?obj??
  42. }??

?

?

MyComboBox 类 如下:

?

copy
    import?flash.events.Event;??
  1. import?flash.events.MouseEvent;??
  2. import?mx.collections.ArrayCollection;??
  3. import?mx.controls.ComboBox;??
  4. import?mx.controls.List;??
  5. import?mx.controls.listClasses.ListBase;??
  6. import?mx.events.FlexEvent;??
  7. import?mx.events.FlexMouseEvent;??
  8. import?mx.events.ListEvent;??
  9. import?mx.events.SandboxMouseEvent;??
  10. class?MyComboBox?extends?ComboBox??
  11. {??
  12. public?function?MyComboBox()??
  13. ????{??
  14. super();??
  15. this.dropdownFactory=new?MyClassFactory(List);??
  16. this.getDropdownFactory().addInitEventListener(ListEvent.CHANGE,dropdown_Change,1);??
  17. this.getDropdownFactory().addInitEventListener(MouseEvent.MOUSE_DOWN,?dropdown_mouseDownHandler);??
  18. this.getDropdownFactory().addInitEventListener(FlexMouseEvent.MOUSE_DOWN_OUTSIDE,?dropdown_mouSEOutsideHandler);??
  19. this.getDropdownFactory().addInitEventListener(FlexMouseEvent.MOUSE_WHEEL_OUTSIDE,?dropdown_mouSEOutsideHandler);??
  20. this.getDropdownFactory().addInitEventListener(SandboxMouseEvent.MOUSE_DOWN_SOMEWHERE,153); background-color:inherit; font-weight:bold">this.getDropdownFactory().addInitEventListener(SandboxMouseEvent.MOUSE_WHEEL_SOMEWHERE,153); background-color:inherit; font-weight:bold">this.getDropdownFactory().addInitProperties("allowMultipleSelection",153); background-color:inherit; font-weight:bold">true);??
  21. this.getDropdownFactory().addInitProperties("selectedItems",getSelectedItems);??
  22. private?var?_selectedItems:Array;??
  23. private?var?_selectedIndices:Array;??
  24. private?var?_separation:String=",";??
  25. ????[Bindable("change")]??
  26. ????[Bindable("valueCommit")]??
  27. public?function?get?selectedItems():Array{??
  28. return??_selectedItems==null?[]:_selectedItems;??
  29. public?function?set?selectedItems(array:Array): ????????var?t:String;??
  30. this._selectedItems=array;??
  31. this.text=selectedLabel;??
  32. public?function?get?selectedIndices():Array{??
  33. return?_selectedIndices!=null?_selectedIndices:[];??
  34. public?function?set?selectedIndices(array:Array):this._selectedIndices=array;??
  35. ????/**?
  36. ?????*?Label?分隔符?
  37. ?????*?*/??
  38. public?function?get?separation():String{??
  39. return?this._separation;??
  40. public?function?set?separation(value:String):this._separation=value;??
  41. public?function?getSelectedItems():Array{??
  42. this.selectedItems;??
  43. ?????*?选中项时,Ctrl?是否按下?
  44. private?var?ctrlKey:Boolean=false;??
  45. private?function?dropdown_Change(event:ListEvent): ????????var?listBase:ListBase=event.currentTarget?as?ListBase;??
  46. this.selectedItems=listBase.selectedItems;??
  47. this.selectedIndices=listBase.selectedIndices;??
  48. ??????????
  49. ????????trace("dropdown_Change-----"+"selectedItems:"+selectedItems.length+"t"+"selectedIndices:"+selectedIndices.length);??
  50. ??????
  51. private?function?dropdown_mouseDownHandler(event:MouseEvent): ????????ctrlKey=event.ctrlKey;??
  52. private?function?dropdown_mouseDownOutSide(event:FlexMouseEvent): ????????close();??
  53. public?function?close(trigger:Event=null):if(!ctrlKey){??
  54. super.close(trigger);//未按下?Ctrl?时?关闭??
  55. ????????}??
  56. ????override?public?function?get?selectedLabel():String??
  57. ????????var?array:Array= ????????var?result:String="";??
  58. for(var?i:0;i<array.length;i++){??
  59. ????????????result+=itemToLabel(array[i]);??
  60. ????????????if(i!=(array.length-1)){??
  61. ????????????????result+=separation;??
  62. ??????????
  63. return?result;??
  64. public?function??getDropdownFactory():MyClassFactory{??
  65. super.dropdownFactory?as?MyClassFactory;??
  66. ?????*??@private?
  67. ?????*/??
  68. private?function?dropdown_mouSEOutsideHandler(event:Event):void??
  69. ????????trace("selectedItems:"+selectedItems.length+"t"+"selectedIndices:"+selectedIndices.length);??
  70. if?(event?is?MouseEvent)??
  71. ????????{??
  72. ????????????var?mouseEvent:MouseEvent?=?MouseEvent(event);??
  73. if?(!hitTestPoint(mouseEvent.stageX,?mouseEvent.stageY,?true))??
  74. ????????????{??
  75. super.close(event);??
  76. else?if?(event?is?SandboxMouseEvent)???
  77. super.close(event);??
  78. }??


调用代码 如下:

[html]? copy
    <my:MyComboBox?width="180">??
  1. ????my:dataProvider>??
  2. ????????s:ArrayCollection ????????????fx:String>选项一</ ????????????>选项二>选项三>选项四>选项五my:MyComboBox>??


(按Ctrl 点击选择项 为多选)


转载:http://www.voidcn.com/article/p-fdlfofxw-zz.html

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读