cocos2dx-js 将html控件元素转换成cc.Node

前言: cocos2dx-html5 没有支持输入框我们的做法是通过javascript 创建  input  textarea 添加 container上面

做法:

var inputStr = document.createElement("input"); 
text:文本属性 value:文本内容  style:文本样式 with height top left position等 但是对其位置来很恶心 得根据 container去做位置改变 
但是下面要介绍到是更为省事到办法

var DOMUtil = function() {}
DOMUtil.createTextArea = function(......) {
 var textArea = cc.newElement("textarea");
 textArea.style.fontSize = fontSize + "px";
 textArea.style.color = fontColor;
 textArea.style.background = background;
 textArea.style.width = "100%";
 textArea.style.height = "100%";
 textArea.style.resize = "none";


 var textAreaDOM = new cc.Sprite();
 textAreaDOM.draw = function () {};
 textArea._textAreaDOM = textArea;
 parent.addChild(textAreaDOM, 0, "textAreaDOM");
 cc.DOM.convert(textAreaDOM);
 textAreaDOM.dom.appendChild(textArea);
 textAreaDOM.dom.style.width = width + "px";
 textAreaDOM.dom.style.height = height + "px";
 textAreaDOM.canvas.remove();
 textAreaDOM.setPosition(posx, posy);
 return textArea;
};

使用的时候只需要:
this._textArea = DOMUtil.createTextArea(this, ......);
// 可以用cocos的方式添加监听,比如实现CMD+ENTER提交内容的功能
cc._addEventListener(this._textArea, "keypress", 
function (e) {
   if (e.keyCode === cc.KEY.enter && e.ctrlKey == true) {
   // 提交内容
    e.preventDefault();
   }
); 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值