刚刚写了个元件左右拖动demo,记录一下,以便后续查看。是通过startDrag()这个方法来进行元件拖动的。
通常默认直接使用mc.startDrag()方法来进行拖动。
以下为adobe官方的api:
startDrag() |
方法 |
public function startDrag(lockCenter:Boolean = false, bounds:Rectangle = null):void
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 9, AIR 1.0, Flash Lite 4 |
允许用户拖动指定的 Sprite。Sprite 将一直保持可拖动,直到通过调用 Sprite.stopDrag()
方法来明确停止,或直到将另一个 Sprite 变为可拖动为止。在同一时间只有一个 Sprite 是可拖动的。
三维显示对象跟随指针,Sprite.startDrag()
将在由显示对象定义的三维平面中移动对象。或者,如果显示对象为二维对象和三维对象的子对象,则二维对象将在由三维父对象定义的三维平面中移动。
参数
lockCenter:Boolean (default = false ) — 指定将可拖动的 sprite 锁定到指针位置中心 (true ),还是锁定到用户第一次单击该 sprite 的位置 (false )。 |
|
bounds:Rectangle (default = null ) — 相对于 Sprite 父级的坐标的值,用于指定 Sprite 约束矩形。 |
具体步骤:
1、通常flash cs5创建一个fla
2、创建元件,取名为RectMc,添加一个1100*400的矩形。
3、回到场景,将刚刚创建的元件拖动到场景中,实例名为“mc”
4、在第一帧右击添加动作,或按“F9”进入as3代码编写。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
import
flash.events.MouseEvent;
import
flash.geom.Rectangle;
//注册鼠标按下事件
mc.addEventListener(MouseEvent.MOUSE_DOWN,mouseDown);
//注册鼠标松开事件
mc.addEventListener(MouseEvent.MOUSE_UP,mouseUp);
//创建矩形,参数:1,2表示x,y轴坐标,3,4表示宽度,和高度。
var
rect:Rectangle =
new
Rectangle(-
550
,mc.y,
550
,
0
);
function
mouseDown(e:MouseEvent):
void
{
//添加拖动,
//false表示跟随鼠标移动,rect表示可以移动的范围,即x轴方向移动
mc.startDrag(
false
,rect);
}
function
mouseUp(e:MouseEvent):
void
{
mc.stopDrag();
}
|
以上就完成了元件左右拖动。
本文转自xuzw13 51CTO博客,原文链接:http://blog.51cto.com/xuzhiwei/1219497,如需转载请自行联系原作者