第七章 用户交互 :移动物体
1.拖动和放开物体
startDrag(lockCenter,rect)
lockCenter 表示按下后鼠标时候要和物体的中心点对齐,rect表示锁定拖拽的范围。
stopDrag();
与鼠标的MOUSE_DOWN,MOUSE_UP联合使用
1.拖动和放开物体
startDrag(lockCenter,rect)
lockCenter 表示按下后鼠标时候要和物体的中心点对齐,rect表示锁定拖拽的范围。
stopDrag();
与鼠标的MOUSE_DOWN,MOUSE_UP联合使用
2.抛。
import flash.events.MouseEvent;
import flash.display.*;
import flash.events.Event;
var vx:Number;
var vy:Number;
var bounce:Number = -0.7;
var gravity:Number = 0.5;
var oldX:Number;
var oldY:Number;
init();
function init():void
{
stage.align = StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.NO_SCALE;
circle.x =stage.stageWidth / 2;
circle.y = stage.stageHeight/2;
vx = Math.random() * 10 - 5;
vy = -10;
circle.addEventListener(MouseEvent.MOUSE_DOWN,onDown);
addEventListener(Event.ENTER_FRAME,onFrame);
}
function onFrame(e:Event):void
{
circle.x += vx;
vy += gravity;
circle.y += vy;
if(circle.x + circle.width / 2 > stage.stageWidth)
{
circle.x = stage.stageWidth - circle.width / 2;
vx *= bounce;
}
else if(circle.x - circle.width / 2 < 0)
{
circle.x = circle.width / 2;
vx *= bounce;
}
if(circle.y + circle.height / 2 > stage.stageHeight)
{
circle.y = stage.stageHeight - circle.height/2;
vy *= bounce;
}
else if(circle.y - circle.height / 2 < 0)
{
circle.y = circle.height / 2;
vy *= bounce;
}
}
function onDown(e:MouseEvent):void
{
oldX = circle.x;
oldY = circle.y;
stage.addEventListener(MouseEvent.MOUSE_UP,onUp);
(circle as Sprite).startDrag(); // 第一个参数 lockCenter表示鼠标是否与拖动对象中心点对齐
removeEventListener(Event.ENTER_FRAME,onFrame);
addEventListener(Event.ENTER_FRAME,trackVectory);
}
function onUp(e:MouseEvent):void
{
stage.removeEventListener(MouseEvent.MOUSE_UP,onUp);
(circle as Sprite).stopDrag();
removeEventListener(Event.ENTER_FRAME,trackVectory);
addEventListener(Event.ENTER_FRAME,onFrame);
}
function trackVectory(e:Event):void
{
vx = circle.x - oldX;
vy = circle.y - oldY;
oldX = circle.x;
oldY = circle.y;
}