成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

詳解Flex控件拖動技術

開發 后端
本文向大家介紹一下Flex控件拖動概念,在程序中如果想實現Flex控件拖動一般的實現思路應該是監聽鼠標的按下事件、鼠標的移動事件以及鼠標釋放事件。

本文和大家重點討論一下Flex控件拖動,在程序中如果想實現Flex控件拖動一般的實現思路應該是監聽鼠標的按下事件、鼠標的移動事件以及鼠標釋放事件。

Flex控件拖動

在程序中如果想實現Flex控件拖動一般的實現思路應該是監聽鼠標的按下事件、鼠標的移動事件以及鼠標釋放事件。在mousedown的時候做一個 flag,表示鼠標已經按下,并且保存鼠標按下時的坐標。然后再mousemove的時候判斷flag是否是鼠標按下狀態,得到鼠標的偏移量根據移動的偏 移量調節控件的位置。最后在mouseup事件中將flag還原。

在Flex中這一切變得非常簡單,因為Flex在Sprite類中定義了兩個函數startDrag()和stopDrag()。大家可能對Sprite 類不太熟悉。的確直接用到這個類的時候確實不多,但是我們對這個類的子類應該是非常熟悉的UIComponent。哈哈,看到重量級的了吧。 UIComponent類可是所有可視控件的鼻祖,也就是說我們能看到的所有的控件都是Sprite的子類。也就意味著所有的可視控件都擁有 startDrag()和stopDrag()這兩個函數。

這時候大家要問了,說了這個么半天這兩個函數有什么特殊之處呢?這和瘋狂有什么聯系呢?接下來我來說是這個兩個瘋狂的函數。首先說startDrag,官 方文檔上是這樣描述的:“讓使用者拖動制定的Sprite,拖動狀態會一直保持,直到明確的調用stopDrag函數或者另外一個Sprite開始拖動。

 同一個時間內只能有一個Sprite處于拖動狀態”。也就是說如果想實現某個Flex控件拖動,直接調用startDrag函數就可以了,結束拖動就調用 stopDrag函數。最原始的控件拖動思想在Flex中再無用武之地了。然后再簡單提一下stopDarg函數,因為剛才在介紹startDrag函數 中已經提到這個函數的作用了,所以直接把官方說明在說一下:“結束startDarg函數。在調用stopDrag函數或者另外一個Sprite被拖動之 前Sprite會保持拖動狀態。同一個時間內只能有一個Sprite處于拖動狀態”。

最簡單的實現方法,在想要拖動的Flex控件的mouseDown事件中調用startDrag函數,然后再控件的mouseUp事件中調用stopDrag函數 就非常輕松的實現了控件拖動,僅僅只有兩行代碼。

下面是實現一個按鈕拖動的例子:

  1. view plaincopy to clipboardprint?  
  2. <?xml version="1.0" encoding="utf-8"?>   
  3. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:ns1="*">   
  4. <mx:Button id="btn" mouseDown="startMove(event)" mouseUp="stopMove(event)" label="move"/>   
  5. <mx:Script>   
  6. <!--[CDATA[     
  7. private function startMove(event:Event):void     
  8. {     
  9. Sprite(event.target).startDrag();     
  10. }     
  11. private function stopMove(event:Event):void     
  12. {     
  13. Sprite(event.target).stopDrag();     
  14. }     
  15. ]]-->   
  16. </mx:Script>   
  17. </mx:Application>   
  18. <?xml version="1.0" encoding="utf-8"?> 
  19. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:ns1="*"> 
  20. <mx:Button id="btn" mouseDown="startMove(event)" mouseUp="stopMove(event)" label="move"/> 
  21. <mx:Script> 
  22. <!--[CDATA[  
  23. private function startMove(event:Event):void  
  24. {  
  25. Sprite(event.target).startDrag();  
  26. }  
  27. private function stopMove(event:Event):void  
  28. {  
  29. Sprite(event.target).stopDrag();  
  30. }  
  31. ]]--> 
  32. </mx:Script> 
  33. </mx:Application> 
  34.  

 【編輯推薦】

  1. 五大方法實現Flex性能優化
  2. 技術分享 添加FLex右鍵菜單的方法
  3. 技術前沿 看Flex客戶端緩存技術如何使用
  4. 12個Flex常用功能代碼再現
  5. 學習筆記 Flex國際化如何支持其他語言

 

 
 

責任編輯:佚名 來源: javaeye.com
相關推薦

2010-07-30 09:56:02

Flex控件

2010-08-10 17:13:58

Flex技術

2010-08-12 09:25:35

Flex控件

2010-08-02 16:00:55

Flex配置

2010-07-30 10:02:40

Flex驗證控件

2010-07-30 10:13:38

Flex控件

2010-08-09 09:09:43

Flex技術

2009-07-15 11:20:05

MyEclipse F

2010-07-27 14:58:02

Flex ArrayC

2010-08-05 09:05:14

Flex Button

2010-08-09 13:25:02

FlexSilverlight

2009-06-16 15:25:17

SilverlightJavaFXFlex

2010-08-06 14:13:31

FlexDataGrid分頁控

2010-08-09 15:41:13

Flex字體

2010-07-28 12:41:18

Flex組件

2010-08-09 09:41:02

Flex3

2010-07-27 10:19:28

Flex

2010-08-12 13:59:37

FlexList控件

2010-08-06 15:11:44

Flex界面控件

2010-07-27 14:00:53

Flex ComboB
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩中文字幕在线观看视频 | 综合二区| 性色在线 | 国产精品成人一区二区三区夜夜夜 | 91亚洲国产精品 | 黄色小视频大全 | 狠狠的操 | 国产日韩亚洲欧美 | 99精品99 | 视频一区二区中文字幕 | 精品久久久久久亚洲综合网 | 黄色欧美 | 一区二区视屏 | 一本色道精品久久一区二区三区 | 久久久久久女 | 天堂资源最新在线 | 国产精品高潮呻吟久久aⅴ码 | 国产成人免费视频网站高清观看视频 | 亚洲人免费视频 | 久久精品一区二区 | 九一视频在线观看 | 精一区二区 | 国产免费av在线 | 久久国内精品 | 在线免费看黄 | 日韩免费一区 | 在线视频日韩 | 亚洲一区二区不卡在线观看 | 精品国产黄a∨片高清在线 成人区精品一区二区婷婷 日本一区二区视频 | 国产丝袜一区二区三区免费视频 | 91免费在线看 | 亚洲一区中文字幕在线观看 | 美女天天干天天操 | 丁香综合| av片毛片 | 羞羞视频在线观看网站 | 欧美狠狠操 | 99爱国产 | 国产日韩精品视频 | 五月婷婷丁香婷婷 | 偷拍第一页 |