文本在代码里是怎么读呢?lua代码里。。

self._uiLayer = TouchGroup:create()
self:addChild(self._uiLayer)
self._uiLayer:setTouchSwallowEnabled(false)

self.moneyLabel = tolua.cast(self._uiLayer:getWidgetByName("moneyLabel"), "CCLabelBMFont")
self.moneyLabel:setString(""..self.money)

拿不到这个控件啊。另外只有Button没有CCMenu了那跟原有代码不符了啊。

为什么没有回答呢。太简单了吗?我这都卡了一天了好人在哪里。

建议使用seekWidgetByName方法获取,在3.0版本中的引擎不支持getchildbyname获取下一级的节点。

现在没有seekWidgetByName这个方法。能不能告诉我我怎么取到文本类型?我要修改文本。

给你贴一段代码:
local uiLayer = TouchGroup:create()
local root = GUIReader:shareReader():widgetFromJsonFile( gUIPath…"/XXX.json" )
uiLayer:addwidget( root )
local moneyLabel = tolua.cast( uiLayer:getWidgetByName( “moneyLabel” ), “LabelBMFont” )
local nCurrentMoney = 20
moneyLabel:setText( string.format( “%d/100”, nCurrentMoney ) )
你上面的问题猜测是由以下原因造成的:
1 你的moneyLabel没有添加到uiLayer,或者控件名字有错,或者控件名字有重复(当递归搜索控件时,会默认取到第一个就返回)–上述原因造成找不到控件
2 不能设置文本值,很显然你的api调错了(这种问题看看源码就知道了 )
好 码完收工:2:

感谢。确实有重复。但我去掉重复后。取出来还是不对。也可能我没弄对。
后来用widget 的getChildByName一层层取了才行。