给组件添加移动事件监听
2013-09-05 15:39
274 查看
亲, 转载请附本文链接哦~
package poolandlane { import flash.events.MouseEvent; import flash.geom.Point; import mx.core.UIComponent; /** * 组件移动监听工具类 * @author Admin * */ public class DragElement { private var downPoint:Point; private var elem:UIComponent; private static var instance:DragElement; public function DragElement() { if(instance != null) { throw new Error("instance is not null"); } instance = this; } public static function getInstance():DragElement { if(instance == null) { instance = new DragElement(); } return instance; } public function addDragEvent(ui:UIComponent):void { elem = ui; ui.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler); } private function mouseDownHandler(event:MouseEvent):void { downPoint = new Point(event.localX, event.localY); elem.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler); elem.addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler); } protected function mouseMoveHandler(event:MouseEvent):void { elem.x += event.localX - downPoint.x; elem.y += event.localY - downPoint.y; event.stopPropagation(); } private function mouseUpHandler(event:MouseEvent):void { elem.removeEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler); elem.removeEventListener(MouseEvent.MOUSE_UP, mouseUpHandler); event.stopPropagation(); } } }
使用方法:
DragElement.getInstance().addDragEvent(想要移动的组件id);
相关文章推荐
- extjs组件添加事件监听的三种方式
- react native添加监听跨组件调用事件
- SWT的button组件中,添加单击事件监听
- extjs组件添加事件监听的三种方式
- 【UE4】【C++】WASD添加力到组件上让整个物体移动(油门Throttle),OnHit移动事件绑定
- jquery动态添加组件监听事件
- [转]extjs组件添加事件监听的三种方式
- java 往frame或组件中添加监听事件无效
- extjs组件添加事件监听的三种方式
- extjs组件添加事件监听的三种方式 http://blog.sina.com.cn/s/blog_48d7f92901011cfn.html
- extjs组件添加事件监听的三种方式
- Extjs中为RadioGroup组件添加监听事件,来控制另一个组件是否显示
- 给自定义View添加TouchEvent事件监听
- 为.net中的ListBox控件添加双击事件-.NET教程,组件控件开发
- cocos2d JS touch(触摸监听)-快速添加事件监听器到管理器
- android之实现各个组件点击事件监听
- vuejs2.0实现分页组件,使用$emit进行事件监听数据传递
- JS 添加/删除事件监听
- vue使用$emit时,父组件无法监听到子组件的事件实例
- ListView中使用单例添加按钮事件监听