设为首页 加入收藏 网站搜索 繁體中文 中国建站网 — 站长资源分享平台

[更新]键位设置组件和连招组件[KeyMapper & ComboInput]

来源:136z.Com 作者:佚名 时间:2005-07-19 00:17:18

解决了有时不能更改按钮名的bug。Flash的类型转换的问题。
更改了使用的方法,现在不需要在场景中添加km和ci的组件了,只需在库中保留km_ci组件,然后在代码中new出KeyMapper或者ComboInput的对象即可。

使用方法:
点击浏览该文件
组件:
点击浏览该文件

/**
system required:
Flash mx 2k4 or later
Flash player 6 or later
AS 2
*/

///////////////// KeyMapper class ////////////////
/*
class xp.gameLib.input.KeyMapper extends MovieClip implements xp.events.EventDispatcher_itf
{
public function KeyMapper(b:Object, m:Array);
public function addEventListener(event:String, handler):Void;
public function addMap(m:Array):Number;
public function dispatchEvent(eventObj:Object):Void;
public function dispatchQueue(queueObj:Object, eventObj:Object):Void;
function set enabled(e:Boolean);
function get enabled():Boolean;
public function getButtons():Array;
public function getMap(i:Number):Array;
public function getMappedKey(q:String):Number;
public function removeEventListener(event:String, handler):Void;
public function setButtons(b:Object);
public function switchMap(i:Number);
};
*/

//initialize and set buttons and corresponding key codes
//the keys used here are: w,a,s,d,u,i,j,k;
//**the last 4 keys are not used ’cause there are only 4 buttons defined.
var km:xp.gameLib.input.KeyMapper=new xp.gameLib.input.KeyMapper(["up","down","front","back"],[87, 83, 68, 65, 85, 73, 74, 75]);
/**
OR:
var km:KeyMapper=new KeyMapper("up,down,front,back",[87, 83, 68, 65, 85, 73, 74, 75]);
var km:KeyMapper=new KeyMapper();
*/
//add another button_to_key map
//return an ID for this map
var id=km.addMap([87, 83, 68, 65, 85, 73, 74, 75]);
//enable or disable key mapper.
km.enabled=true;//=false
//get all buttons
var buttons:Array=km.getButtons();
trace(buttons);
//get a map or as default get the current map
var mapA:Array=km.getMap(id);
trace(mapA);
/*
OR:
km.getMap();//to return current
*/
//get key code for a specific button
trace(km.getMappedKey("up"));
//reset buttons,
km.setButtons(["up","down","front","back"]);
//or: km.setButtons("up,down,front,back");
//choose another map
km.switchMap(id);

//make some Object to receive buttons event:
km.addEventListener("button",_root);
_root.button=function(eo){
var re=""
for (i in eo.btn) re+=i+"--"+eo.btn[i]+" ";
trace(re);
}
/*
there are some global value for buttons state
_global._KD = 1;
_global._KU = 2;
_global._KH = 3;
_global._KR = 4;
you can use these value to determine the button states:
KD:key just pressed down
KU:key just released up
KH:key is holding down
KR:key is free
*/
/*
////////////////////////// output: ///////////////////////////////
INFO: buttons set to up,down,front,back
up,down,front,back
87,83,68,65,85,73,74,75
87
INFO: buttons set to up,down,front,back
back--4 front--4 down--4 up--3
back--4 front--4 down--4 up--4
back--4 front--1 down--4 up--4
back--4 front--3 down--4 up--4
back--4 front--3 down--4 up--4
back--4 front--3 down--4 up--4
*/
////////////////////////////////////////////////////// before using this Class,I suggest you’d better read the code & comment through carefully first

/*
////////////////////// ComboInput class /////////
class xp.gameLib.input.ComboInput extends MovieClip
{
public function ComboInput(bf:Number, inputDevice:xp.events.EventDispatcher_itf);
public function addCombo(c:Object, priority:Object, nm:String, io:Object):Number;
public function addComboToState(id, st);
public var addListener:Function;
public function addState(st:String);
function set broadcastType(p:String);
function get broadcastType():String;
public var defaultDelay:Number;
public function getCombo(id:Number):String;
public function listAllState();
function set pFuncName(p:String);
function get pFuncName():String;
static var prio:Object;
public var removeListener:Function;
public function resetBuffer(bf:Number);
function set state(st);
function get state():String;
};
*/
//create new ComboInput Object for combo input test
//1st parameter is buffer size ComboInput used for storing input button data from KeyMapper(or sth else dispatching ’button’ event)

[1] [2]  下一页

Tags:

  • 好的评价 如果您觉得好,就请您
      0%(0)
  • 差的评价 如果您觉得差,就请您
      0%(0)
  • 相关文章
    广告赞助

    文章随便看看 设计素材 建站学院 网页模板 视频教程

    网友评论

    共有 0 位网友发表了评论,得分 0 分,平均 0 分    查看完整评论

    用户名: 查看更多评论

    分 值:100分 85分 70分 55分 40分 25分 10分 1分

    内 容:

             通知管理员 验证码: