Flash AS3教程:Direction类和Dot类

2019-10-08 17:23:11于海丽

}

//鼠标按下去事件
private function onKeyDown(e:KeyboardEvent):void{
key(e.keyCode,true)
}

//鼠标弹上来事件
private function onKeyUp(e:KeyboardEvent):void{
key(e.keyCode,false)
}

//变化状态
private function key(num:uint,isDown:Boolean):void{
switch(num){
case directionAr[UP]:
if(sole) clear();
_up = isDown;
break;
case directionAr[DOWN]:
if(sole) clear();
_down = isDown;
break;
case directionAr[LEFT]:
if(sole) clear();
_left = isDown;
break;
case directionAr[RIGHT]:
if(sole) clear();
_right = isDown;
break;
}
}

//设置按钮
public function setKey(num:uint,vars:uint):void{
directionAr[num] = vars;
}

//清空按键
public function clear():void{
_up = _down = _left = _right = false;
}
}
}Dot类源代码:

CODE:
package index.base.geom{

import flash.events.EventDispatcher;
import flash.display.DisplayObject;

import index.base.events.DotEvent;

public class Dot extends EventDispatcher{

private var _x:Number;
private var _y:Number;
private var _r:Number;
private var dis:DisplayObject;

public var isListen:Boolean;

public function Dot(x_:Number = 0,y_:Number = 0,r_:Number = 0,_isListen:Boolean = false){
_x = x_;
_y = y_;
_r = r_;
isListen = _isListen;
}

//绑定DisplayObject
public function bind(_dis:DisplayObject,isInTime:Boolean = false):void{
dis = _dis;
updata();
if(isInTime) dis.addEventListener("enterFrame",enterFrameFun);
}

//帧频繁事件
private function enterFrameFun(e:Object):void{
if(_x != dis.x) x = dis.x;
if(_y != dis.y) y = dis.y;
if(_r != dis.rotation) r = dis.rotation;