首页 专题 H5案例 前端导航 UI框架

Phaser常用API整理:事件系统及用户交互

作者:TG 日期: 2016-07-20 字数: 6230 阅读: 7887
一、事件系统
1.事件系统对象Phaser.Signal
2.Signal对象的使用
(1)创建
var signal=new Phaser.Signal()
(2)添加事件监听器
signal.add(listener,listenerContext?,priority?,args?)
signal.addOnce(listener,listenerContext?,priority?,args?)
(3)移除事件监听器
signal.remove(listener)
signal.removeAll()
(4)分发事件
signal.dispatch(param?)
(5)销毁Signal对象
signal.dispose()
3.系统事件

var game=new Phaser.Game()


game.onBlur  //游戏失去焦点事件

game.onFocus  //游戏得到焦点事件

game.onPause  //游戏暂停事件

game.onResume  //游戏恢复事件


//监听

game.onPause.add(function(){

   console.log('游戏已经暂停')

})


game.scale.onFullScreenChange   //当进入或退出全屏时

game.scale.onOrientationChange  //当设备的横竖屏切换时

game.scale.onSizeChange   //当游戏尺寸改变时

资源加载中的一些事件

var game=new Phaser.Game()


game.load.onFileComplete  //当一个文件加载完成时 (一般在设置loading页面时用到)

game.load.onFileErroe  //当一个文件加载失败时

game.loda.onFileStart  //当一个文件开始加载时

game.load.onLoadComplete  //当所有资源加载完成时

动画事件

var animation=new Phaser.Animation()


animation.onStart  //动画开始时

animation.onComplete  //动画完成时

animation.onLoop  //动画循环播放时

animation.onUpdate  //动画的帧变化时


补间动画

var tween=game.add.tween()


tween.onStart  //动画开始时

tween.onComplete  //动画完成时

tween.onLoop  //动画循环时

tween.onRepeat  //动画重复时


二、用户交互

var game=new Phaser.Game()


game.input.onDown  //按下事件

game.input.onUp  //离开事件

game.input.onTap  //轻击事件

game.input.onHold  //长按事件


//添加鼠标或手指移动事件侦听器

game.input.addMoveCallback(callback,context)

//删除鼠标或手指移动事件侦听器

game.input.deleteMoveCallback(callback,context)



var game=new Phaser.Game()


//获取最近一次激活的Pointer对象

var pointer=game.input.activePointer;


pointer.clientX  //指针事件发生时的x坐标

pointer.clientY  //指针事件发生时的y坐标


pointer.isDown  //用来判断指针是否在按下状态

pointer.isUp  //用来判断指针是否在释放状态

鼠标对象

var game=new Phaser.Game()


//获取鼠标对象

var mouse=game.input.mouse;

//获取为鼠标定制的Pointer对象

var mousePointer=game.input.mousePointer;


//设置鼠标滚轮事件的回调函数

mouse.mouseWheelCallback

//鼠标滚轮的滚动方向,1为向上,-1为向下

mouse.wheelDelta


mousePointer.leftButton  //鼠标左键对象

mousePointer.middleButton //鼠标中键对象

mousePointer.rightButton //鼠标右键对象

键盘对象

var game=new Phaser.Game()


//获取键盘对象

var keyboard=game.input.keyboard;


//添加按键回调

keyboard.addCallbacks(context,onDown,onUp,onPress)

//创建一个键对象

keyboard.addKey(keycode) //keycode为键码,返回Phaser.Key对象

//创建一个包含上下左右方向键的对象

keyboard.createCursorKeys()


key.isDown  //用来判断该键是否处于按下状态

key.isUp   //用来判断该键是否处于释放状态

key.onDown  //键按下时的Signal(事件)对象

key.onUp  //键释放时的Signal对象


key.altKey  //判断是否alt键也被同时按下

key.ctrlKey  //判断是否ctrl键也被同时按下

key.shiftKey  //判断是否shift键也被同时按下


特定游戏对象的交互处理

var game=new Phaser.Game()

var sprite=game.add.sprite(0

sprite.inputEnabled=true  //开启输入事件

//获取该游戏对象的Phaser.Events对象

var events=sprite.events;


events.onInputDown  //当有指针在该对象上按下时的事件

events.onInputUp  //当有指针在该对象上释放时的事件

events.onInputOver  //当有指针进入该对象时的事件

events.onInputOute  //当有指针离开该对象时的事件


sprite.inputEnabled=true  //开启输入事件

//获取该对象的Phaser.InputHandler对象

var inputHandler=sprite.input


inputHandler.enableDrag()  //使之能够拖动

inputHandler.disableDrag()  //禁用拖动


inputHandler.pointerOver()   //判断指针是否在该对象之内

inputHandler.pointerOut()  //判断指针是否在该对象之外

inputHandler.pointerX  //当指针在对象内时,相对于该对象的x坐标

inputHandler.pointerY  //当指针在对象内时,相对于对象的y坐标


//当设置为true时,在单击或拖动该对象时,它会自动位于显示列表的最上方

inputHandler.bringToTop




目录