在CocosBuilder中,有一个代码连接部分。在第二行,它有三个选项:不分配, Doc root var 和所有者var 。
有时候,当我选择所有者var 时出现错误,但在我将其更改为 Doc root var 之后工作正常。
我谷歌很多,但找不到满意的答案。
有人能解释清楚区别吗?
答案 0 :(得分:4)
不分配只是意味着您没有使用代码连接。
Doc root var 表示您正在连接自定义cocos2d类。这会将文档中的对象(CCB阶段/文件)粘贴/连接到您的代码。此选项很方便,但您必须确保提供了根节点的控制器对象。
有时您需要能够从中获取成员变量并获取 回调到另一个对象而不是ccb文件的根节点。去做 这将需要将所有者传递给CCBReader。
如Connecting with cocos2d-x中所述。
所有者var 允许您连接到根节点以外的变量,为您提供more flexibility。您可以将其粘贴到您选择的任何变量上。
您获得的错误很可能是由于提供了一个不可用的名称(该变量不存在)。请注意,将该属性设置为 Doc root var 或所有者var 并将该字段留空将导致此错误。
答案 1 :(得分:2)
当linking member variables Doc root var 将在根节点的控制器对象中添加成员时。假设您的JS Controller是MainScene,您可以通过MainScene.myVar
访问它。这是由场景根层JS Controller属性定义的。
或者,您可以使用不通过JS Controller连接直接绑定到场景的自定义对象执行相同的操作。为此,您可以使用所有者var 属性。
不分配是默认设置,不执行任何操作。
从本质上讲,这些功能允许您轻松地从代码中引用这些CCB对象。
尝试使用CocosBuilder JS Example Games可能会有所帮助。如果您尚未阅读,how to connect with cocos2d-x上的文档也可能对您有用。