• 微课视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
微课江湖
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 微课视频
  • photoshop
  • Fireworks
  • CorelDraw
  • Illustrator
  • Painter
  • Freehand
  • Indesign
  • flash
  • maya
  • autocad
  • 3dmax
您的位置:首页 > 平面设计 >flash > Flash AS3教程:Direction类和Dot类

Flash AS3教程:Direction类和Dot类

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-05-24

佚名 向大家分享了Flash AS3教程:Direction类和Dot类,其中包含flash as3教程,flash as3 api,flash as3帮助,flash as3视频教程,flash游戏修改器as3等知识点,遇到此问题的同学们可以参考下
前面讲述了Flash as3教程:OutDisplay类,本篇对Direction类的方法属性和Dot的更新部分讲解。
关于该例子的教程请关注第九篇笔记!
即将出Direction类与Dot类的实战使用教程,本篇只对Direction类的方法属性和Dot的更新部分讲解

首先是
index.base.game.Direction类
作用:控制飞机游戏,坦克游戏,或者一些和方向有关的方向按键操作

构造函数:
public function Direction(_area:InteractiveObject,isSole:Boolean = false,_up:uint = 38,_down:uint = 40,_left:uint = 37,_right:uint = 39)
参数一:方向键的作用区域,如果_area当前不是焦点,那么是侦听不到键盘事件的,一般这儿都是使用Stage做为作用区域
参数二:是否为单向事件触发,如果为false,那么按了什么键就是什么,可以同时触发上和左等两个或者两个以上的事件,反之以最后按的那个键为准
参数三,四,五,六:按键的键值,默认为38,40,37,39,分别是方向键的上下左右!

start方法:
public function start():void
开始捕获事件,当触发构造函数,将自动执行start方法

stop方法:
public function stop():void
停止捕获事件

setKey方法:
public function setKey(num:uint,vars:uint):void
设置按键键值
参数一:方向键标识,请参考该类的常量属性
参数二:按键键值

常量属性:
public static const UP:uint = 0;
public static const DOWN:uint = 1;
public static const LEFT:uint = 2;
public static const RIGHT:uint = 3;
分别代表:上下左右的方向键标识

clear方法:
public function clear():void
清除所有方向记录

area属性:
public var area:InteractiveObject
返回作用区域

sole属性:
public var sole:Boolean
返回是否单向操作

DirectionEvent.DO事件:
当有方向键是按下去的时候,则会发布事件,事件中含有up,down,left,right,4个属性,分别表示哪几个键是按下去的!

========== 气 死 你 的 分 割 线 ==========

Dot类在前面的整理笔记中,曾经说过,这次是更新类的方法和属性
增加了旋转属性,并且可以计算当前方向的某距离后的点

以下只对更新的方法和属性进行讲解:其他的请看老的整理笔记:

go方法:
public function go(num:Number,isChange:Boolean = false):Dot
参数一,表示面向旋转方向前进多少的距离
参数二,表示是否也跟新该点基于num变化之后的点坐标

clear方法:
public function clear():void
清空绑定对象的引用

r 属性:
public function set r(num:Number):void
public function get r():Number
旋转属性的设置,如果isListener值为真,则改变旋转值会触发R_CHANGE的事件

Direction类源代码:

CODE:
package index.base.game{

import flash.events.EventDispatcher;
import flash.events.KeyboardEvent;
import flash.events.Event;
import flash.display.InteractiveObject;

import index.base.events.DirectionEvent;

public class Direction extends EventDispatcher{

//方向表示
public static const UP:uint = 0;
public static const DOWN:uint = 1;
public static const LEFT:uint = 2;
public static const RIGHT:uint = 3;

//作用区域
public var area:InteractiveObject;
//是否单向
public var sole:Boolean;

//上下左右键值
private const directionAr:Array = new Array(4);

//是否上下左右
private var _up:Boolean = false;
private var _down:Boolean = false;
private var _left:Boolean = false;
private var _right:Boolean = false;

public function Direction(_area:InteractiveObject,isSole:Boolean = false,_up:uint = 38,_down:uint = 40,_left:uint = 37,_right:uint = 39){
area = _area;
sole = isSole;
directionAr[UP] = _up;
directionAr[DOWN] = _down;
directionAr[LEFT] = _left;
directionAr[RIGHT] = _right;
start();
}

//开始获取事件
public function start():void{
area.addEventListener(KeyboardEvent.KEY_DOWN,onKeyDown);
area.addEventListener(KeyboardEvent.KEY_UP,onKeyUp);
area.addEventListener(Event.ENTER_FRAME,onEnterFrame);
}

//事件帧频繁触发
private function onEnterFrame(e:Event):void{
var num:uint = Number(_up) Number(_down) Number(_left) Number(_right);
if(num == 0){
return;
}

var eve:DirectionEvent = new DirectionEvent(DirectionEvent.DO);
eve.up = _up;
eve.down = _down;
eve.left = _left;
eve.right = _right;
dispatchEvent(eve);
}

//停止获取事件
public function stop():void{
area.removeEventListener(KeyboardEvent.KEY_DOWN,onKeyDown);
area.removeEventListener(KeyboardEvent.KEY_UP,onKeyUp);
area.removeEventListener(Event.ENTER_FRAME,onEnterFrame);
}

//鼠标按下去事件
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;
pri

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • flash文本竖排效果实现as3代码
  • Flash AS3 连锁反应的粒子动画
  • Flash AS3 制作文字飞出动画
  • Flash AS3 快速制作烟雾动画
  • Flash AS3代码实现鼠标跟随喷枪涂鸦效果
  • Flash AS3的parameters对象处理网页参数
  • FLASH AS3与网页JS参数值传递的问题
  • 从基础开始深入学Flash AS3教程(6)(译文)
  • Flash as3教程:OutDisplay类
  • 从基础开始深入学Flash AS3教程(7)(译文)

相关文章

  • 2017-05-24flash怎么使用鼠标绘制一枝桂花枝?
  • 2017-05-24Flash制作青蛙跳荷叶游戏动画
  • 2017-05-24Flash基础教程:学Flash的技巧
  • 2017-05-24Flash制作调皮小太阳GIF动画效果图
  • 2017-05-24FLASH怎么制作一个小蝌蚪自由游泳的动画?
  • 2017-05-24Flash AS3创建一个横向滑动的导航条菜单
  • 2017-05-24Flash引导层动画实例:引导线制作飞舞的蝴蝶
  • 2017-05-24入门:flash的动画制作操作方法
  • 2017-05-24控制Flash8里的flvs视频播放停止
  • 2017-05-24flash CS5使用3D平移工具在3D空间中旋转影片剪辑

文章分类

  • photoshop
  • Fireworks
  • CorelDraw
  • Illustrator
  • Painter
  • Freehand
  • Indesign
  • flash
  • maya
  • autocad
  • 3dmax

最近更新的内容

    • flash怎么制作一辆汽车开过的动画?
    • 控制Flash8里的flvs视频播放停止
    • flash怎么制作一个闪亮的流星坠落的动画?
    • 用flash制作纸飞机滑翔天空的gif动画效果
    • Flash CS3制作Fla形式的组件
    • Flash制作有创意的2011新年动画贺卡
    • flash标尺在哪? flash使用标尺的基础知识
    • flash怎么制作简单的遮罩动画?
    • FLASH怎么制作一双筷子夹起小球的动画教程?
    • 用flash制作一种从一种颜色变化的七彩文字动画

关于我们 - 联系我们 - 免责声明 - 网站地图

©2015-2018 All Rights Reserved. 微课江湖 版权所有