这次弄个简单点的,自定义按钮。 其实,有了前面所定义的LSprite,LBitmap等类,定义按钮就很方便了。 下面是添加按钮的代码: JavaScript Code 复制内容到剪贴板 function gameInit(event){ backL
原理:建立一个继承自LSprite的LButton类,给按钮设定两个图片,然后侦听鼠标位置,当鼠标移动到按钮上的时候,变换按钮状态,就是一个简单的按钮。
这里,我用mousemove来侦听鼠标位置,给LGlobal类添加一个buttonList数组,当创建按钮的时候,把按钮加入到buttonList,然后当移动鼠标的时候,就可以从buttonList数组判断鼠标是否在按钮上,然后当按钮被删除后,将按钮从buttonList数组中删除。
一些修改:
1,修改LSprite类,添加die方法,每个LSprite当被removeChild的时候,调用自己的die方法,die方法里放一些被移除是必需处理的事件,比如这次的按钮,要从buttonList中删除。
2,给每个构造器添加objectindex,用来区分每个对象。
3,修改addChild方法,添加DisplayObject.parent = self,就是给每个自对象指定父级对象。
准备完毕,开始创建按钮类LButton。
- function LButton(bitmap_up,bitmap_over){
- base(this,LSprite,[]);
- var self = this;
- self.type = "LButton";
- self.bitmap_up = bitmap_up;
- self.addChild(bitmap_up);
- if(bitmap_over == null){
- bitmap_over = bitmap_up;
- }else{
- self.addChild(bitmap_over);
- }
- self.bitmap_over = bitmap_over;
- self.bitmap_over.visible = false;
- self.bitmap_up.visible = true;
- LGlobal.buttonList.push(self);
- }
- LButton.prototype.buttonModeChange = function (){
- var self = this;
- var cood={x:0,y:0};
- var parent = self.parent;
- while(parent != "root"){
- cood.x += parent.x;
- cood.y += parent.y;
- parent = parent.parent;
- }
- if(self.ismouseon(LGlobal.mouseMoveEvent,cood)){
- self.bitmap_up.visible = false;
- self.bitmap_over.visible = true;
- }else{
- self.bitmap_over.visible = false;
- self.bitmap_up.visible = true;
- }
- }
- LButton.prototype.die = function (){
- var self = this;
- arguments.callee.super.die.call(this);
- for(var i=0;i<LGlobal.buttonList.length;i++){
- if(LGlobal.buttonList[i].objectindex == self.objectindex){
- LGlobal.buttonList.splice(i,1);
- break;
- }
- }
- }
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。
-
HTML5开发的翻页效果
2014-11-16 21:26
-
仿AS语法来写HTML5-终篇LegendForHtml5Programming
2014-11-16 21:26
-
仿AS语法来写HTML5—第9章,URLLoader读取文件
2014-11-16 21:26
-
仿AS语法来写HTML5—第8章,图片处理+粒子
2014-11-16 21:26