Cocos2dx Lua教程:tolua.cast、tolua.type与tolua.isnull详解 | 南锋

南锋

南奔万里空,脱死锋镝余

Cocos2dx Lua教程:tolua.cast、tolua.type与tolua.isnull详解

tolua.cast(对象,类型名)强制类型转换

layer -> node

1
tolua.cast(layer,"cc.Node")

一般用于在方法a定义一个精灵,设置tag为2
但在方法b取出来,它却不是精灵,没有精灵的一些属性和方法。
这个时候要强制转换类型了。

tolua.type(类型名)

返回一个C++对象的类型描述字符串

1
2
local node = display.newNode()
print(tolua.type(node)) -- 输出CCNode

tolua.isnull

检查指定Lua值中保存的C++对象是否已经被删除。
我们将在C++对象保存到Lua值后,只要还有Lua代码在使用这些值,那么即使 C++ 对象已经被删除了,但 Lua 值仍然会存在。如果此时调用 Lua 值的方法就会出错。

因此可以用 tolua.isnull() 检查 Lua 值中的 C++ 对象是否已经被删除。

原文链接 ,
+