由于前一段时间用了EditBox控件感觉还是挺好用的,今天总结发现不知不觉写了不少冗余代码,看着着实不爽,决定修改一下,封装成一个公共方法中,以便后续工作中方便调用,也作为一个提醒,时刻告诫自己不要写一行重复的代码!好了,闲言少叙直接上代码:
--创建EditBox输入框
function funA:createEditBox(name,bgImg,pos,size,inputMode,fontColor,maxLength,fontSize,placeHolder,funHandle)
local editTxt= ccui.EditBox:create(size, bgImg,ccui.TextureResType.plistType) --输入框尺寸,背景图片
editTxt:setAnchorPoint(0.5,0.5)
editTxt:setName(name)
editTxt:setPosition(pos) --设置输入框的位置
editTxt:setFontSize(fontSize) --设置输入设置字体的大小
if maxLength then
editTxt:setMaxLength(maxLength) --设置输入长度为6
end
editTxt:setFontColor(fontColor) --设置输入的字体颜色
--editTxt:setFontName("simhei") --设置输入的字体为simhei.ttf
editTxt:setPlaceHolder(placeHolder) --设置预制提示文本
editTxt:setReturnType(cc.KEYBOARD_RETURNTYPE_DONE) --输入键盘返回类型,done,send,go等KEYBOARD_RETURNTYPE_DONE
editTxt:setInputMode(inputMode) --输入模型,如整数类型,URL,电话号码等,会检测是否符合
editTxt:registerScriptEditBoxHandler(funHandle) --输入框的事件,主要有光标移进去,光标移出来,以及输入内容改变等
-- editTxt:setHACenter() --输入的内容锚点为中心,与anch不同,anch是用来确定控件位置的,而这里是确定输入内容向什么方向展开(。。。说不清了。。自己测试一下)
-- self.panelMiddle:addChild(editTxt,1)
return editTxt
end
下面我们来调用一下,别忘了引用哦~:
--创建Editbox输入框
local fontColor = txtInput:getTextColor()
self.txtInputStr = PublicSystem:createEditBox("txtInputStr","bg/bg_1.png",cc.p(txtInput:getPosition()),
txtInput:getContentSize(),cc.EDITBOX_INPUT_MODE_NUMERIC,fontColor,6,56,"请输入XX",handler(self,self.editboxhandle))
imgInputStrBg:addChild(self.txtInputStr,1)
--委托方法
function MyClubLayer:editboxhandle(streventname,sender)
if streventname == "began" then
elseif streventname == "ended" then
if sender:getName() == "a" then
xxx = sender:getText()
elseif sender:getName() == "b" then
xxx = sender:getText()
elseif sender:getName() == "c" then
xxx = tonumber(sender:getText())
end
elseif streventname == "return" then
elseif streventname == "changed" then
end
end
=================================== the end ====================================
好了,今天的分享就到这里,如有不足之处,还望大家及时指正,随时欢迎探讨交流!!!