博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
html5隐藏自定义控制按钮,用仿ActionScript的语法来编写html5——第七篇,自定义按钮...
阅读量:4873 次
发布时间:2019-06-11

本文共 2234 字,大约阅读时间需要 7 分钟。

第七篇,自定义按钮

这次弄个简单点的,自定义按钮。

其实,有了前面所定义的LSprite,LBitmap等类,定义按钮就很方便了。

下面是添加按钮的代码,

function gameInit(event){

backLayer = new LSprite();

addChild(backLayer);

btn01 = new LButton(new LBitmap(new LBitmapData(imglist["replay_button_up"])),new LBitmap(new LBitmapData(imglist["replay_button_over"])));

btn01.x = 76;

btn01.y = 50;

backLayer.addChild(btn01);

btn02 = new LButton(new LBitmap(new LBitmapData(imglist["quit_button_up"])),new LBitmap(new LBitmapData(imglist["quit_button_over"])));

btn02.x = 76;

btn02.y = 100;

backLayer.addChild(btn02);

btn01.addEventListener(LMouseEvent.MOUSE_DOWN, onmousedown01);

btn02.addEventListener(LMouseEvent.MOUSE_DOWN, onmousedown02);

}

function onmousedown01(event){

alert("btn01 on click");

}

function onmousedown02(event){

alert("btn02 on click");

}

原理:建立一个继承自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

if(LGlobal.buttonList[i].objectindex == self.objectindex){

LGlobal.buttonList.splice(i,1);

break;

}

}

}

看一下成果吧,看不到效果的请下载支持html5的浏览器

转载地址:http://mhcxp.baihongyu.com/

你可能感兴趣的文章
与FPGA相关的独热码
查看>>
systemd(CentOS7)启动zookeeper
查看>>
测试相关
查看>>
java.lang.ClassCastException: com.sun.proxy.$Proxy0 cannot be cast to java.sql.Connection异常问题解决...
查看>>
[CQOI 2018]社交网络
查看>>
HTML5基础总结
查看>>
Android Studio开发入门-引用jar及so文件
查看>>
ADO constants include file for VBScript
查看>>
ExtJs4.2 RadioGroup CheckboxGroup
查看>>
InnoDB Undo Log
查看>>
在Application中集成Microsoft Translator服务之使用http获取服务
查看>>
flask页面中Head标签内容为空问题
查看>>
Centos7 Putty SSH密钥登录
查看>>
HDU 6330--Visual Cube(构造,计算)
查看>>
小说Symbian的签名
查看>>
Objective-C中ORM的运用:实体对象和字典的相互自动转换
查看>>
高级java面试宝典
查看>>
振动和抖动效果
查看>>
Asp.Net MVC4入门指南(7):给电影表和模型添加新字段
查看>>
AngularJS入门
查看>>