【教程】【FLEX】#006 控件位置的拖动

上一篇笔记学习了怎么从 把一个控件拖放到另外一个控件里面(即 A --》 B里面)。

而现在呢,则是学习  怎么把 A 拖到另外一个位置。 (A --》A位置改变);


先说一下实现的思路(主要也就是思路,不是什么技术问题):

1、在控件拖动前要先注册好控件的MouseDown事件。(可以在控件创建好的时候注册,获取其他你觉得合适的时候)

2、当鼠标MouseDown下的时候(鼠标点击下去,未放开鼠标的时候),注册控件的面板的MouseMoveROLL_UP事件以及控件的MouseUP

3、在MouseMove的处理方法里面设置控件的x,y ,算法看代码截图里面。

4、在MouseUp的处理事件里面,记得清除掉控件的ROLL_UPROLL_UPROLL_UP事件。

这样呢,当鼠标点击下,就可以拖动控件的位置。鼠标放开或者移出面板范围的时候,清除面板移动,面板移出和鼠标放开的事件。网址:yii666.com

代码例子:

1、之所以把MouseMove事件设置在面板上,因为如果拖动速度太快的话,鼠标位置会移出控件对象之外,导致拖动停止。

2、设置ROLL_OUT事件,如果鼠标移出了面板之外,控件就停止移动了。

【教程】【FLEX】#006 控件位置的拖动


贴上一个封装好的类(可以实现控件的拖动和控件的大小改变,不过有一些小问题,还没来得及改。):

(详细的代码,封装好的一个类,只要传入控件对象,以及控件所在的面板对象就可以,帮你实现拖动了。)

核心封装类 和调用例子:

【教程】【FLEX】#006 控件位置的拖动

1、类的功能

1.1 实现控件的位置拖动

1.2 实现控件大小的改变网址:yii666.com<

调用方法

//创建这个控件操作的类

var operator:ControlOperate = new ControlOperate(this,null);  

 //传入控件对象(所有需要移动的控件都是使用这个类,所以控件对象传入放在方法里了)

operator.setVariate(control);

加上这两句的效果:

【教程】【FLEX】#006 控件位置的拖动

拖动的效果:

【教程】【FLEX】#006 控件位置的拖动

点击那个些小点,可以改变控件的大小。(上面,右边的点,改变控件大小的算法有问题,还没修改)

【教程】【FLEX】#006 控件位置的拖动

多个控件的话文章地址https://www.yii666.com/article/764118.html

【教程】【FLEX】#006 控件位置的拖动文章来源地址:https://www.yii666.com/article/764118.html

多个控件调用的方法: Application1_creationComplete是Application创建结束调用的方法。文章来源地址https://www.yii666.com/article/764118.html

1、声明了一个ControlOperate对象

2、实例化(传入当前的面板对象,以及另外一个面板的对象显示控件的属性,目前未实现))

3、传入控件对象,传入之后,会为该对象注册相应的事件。

【教程】【FLEX】#006 控件位置的拖动

 

版权声明:本文内容来源于网络,版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。文本页已经标记具体来源原文地址,请点击原文查看来源网址,站内文章以及资源内容站长不承诺其正确性,如侵犯了您的权益,请联系站长如有侵权请联系站长,将立刻删除

【教程】【FLEX】#006 控件位置的拖动-相关文章

  1. 【教程】【FLEX】#006 控件位置的拖动

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信图片_20190322181744_03.jpg

微信扫一扫打赏

请作者喝杯咖啡吧~

支付宝扫一扫领取红包,优惠每天领

二维码1

zhifubaohongbao.png

二维码2

zhifubaohongbao2.png