之前工作的时候一直使用的是lua脚本语言,最近刚刚接触cocos-JS发现要踩的坑还有很多,再次将我踩过的一些坑写出来。转入正题
在cocosjs中创建一个button(按钮)大体可以分为3种方法。
1.创建一个Menu。
2.使用cocostudio编辑器编辑ui界面导入到工程中通过getChildByTag(),getChildByName()获取这个button。
3.直接 new ccui.Button();
但是 会出现报错 ccui is not defined,原因就是没有引入“extensions”模块,所以需要在project.json中的 modules中添加 extensions,ex:modules:["cocos2d-x","extensions"];
修改之后就可以正常使用ccui
var btn_close= new ccui.Button(res.Btn_close_normal,res.Btn_close_selected); //btn_close.loadTextureDisabled(res.HelloWorld_png); //设置导入资源true //btn_close.loadTextureNormal(res.HelloWorld_png); //btn_close.setTouchEnabled(false);设置按钮能否点击 //btn_close.setScale9Enabled(true);//设置按钮能否进行scale9缩放,需要设置按钮的尺寸 btn_close.setPosition(size.width/2,size.height/2); btn_close.setPressedActionEnabled(false);//设置是否伴随点击缩放按钮图片 btn_close.setTitleText("Title Button");//在按钮上方添加一个label. //btn_close.setContentSize(cc.size(150,48)); //btn_close.addTouchEventListener(this.touchEvent,this)<p class="p1"> </p> btn_close.addClickEventListener cc.MenuItem (function (sender,type) { cc.log("哈哈哈111"); if(type==ccui.Widget.TOUCH_BEGAN) { cc.log("哈哈哈"); } },this); this.addChild(btn_close);
通过ccuix.Button 创建的btn,存在两种触发点击事件的方法
addClickEventListener(只在按钮点击触发一次),addTouchEventListener(按钮点击 抬起 移动 取消状态触发事件)
<pre name="code" class="javascript">touchEvent: function (sender,type) { switch (type) { case ccui.Widget.TOUCH_BEGAN: cc.log("Touch Down"); break; case ccui.Widget.TOUCH_MOVED: cc.log("Touch Move"); break; case ccui.Widget.TOUCH_ENDED: cc.log("Touch Up"); break; case ccui.Widget.TOUCH_CANCELED: cc.log("Touch Cancelled"); break; default: break; } }