在 CocosBuilder 中,有一个Code Connections部分。在第二行,它有三个选项:Don't Assign、Doc root var和Owner var。
有时,我在选择Owner var时遇到错误,但在我将其更改为Doc root var后它工作正常。
我google了很多,但找不到满意的答案。
有谁可以清楚地解释差异?
在 CocosBuilder 中,有一个Code Connections部分。在第二行,它有三个选项:Don't Assign、Doc root var和Owner var。
有时,我在选择Owner var时遇到错误,但在我将其更改为Doc root var后它工作正常。
我google了很多,但找不到满意的答案。
有谁可以清楚地解释差异?
不要分配仅仅意味着您没有使用代码连接。
Doc root var表示您正在连接自定义 cocos2d 类。这会将文档(CCB 阶段/文件)中的对象粘合/连接到您的代码。此选项很方便,但您必须确保提供了根节点的控制器对象。
有时,您需要能够从 ccb 文件的根节点之外的另一个对象访问成员变量并获取回调。为此,您需要将所有者传递给 CCBReader。
如与 cocos2d-x 连接中所述。
Owner var允许您连接到根节点以外的变量,从而为您提供更大的灵活性。您可以将其粘贴到您选择的任何变量上。
您收到的错误很可能是由于提供的名称不可用(变量不存在)引起的。请注意,将属性设置为Doc root var或Owner var并将该字段留空将导致此错误。
链接成员变量时,Doc root var将在根节点的控制器对象中添加一个成员。您可以通过MainScene.myVar
假设您的 JS Controller 是 MainScene 来访问它。这是由场景根层 JS Controller 属性定义的。
或者,您可以通过 JS 控制器连接对不直接绑定到场景的自定义对象执行相同的操作。为此,您将使用Owner var属性。
不分配是默认设置,不执行任何操作。
从本质上讲,这些功能允许您轻松地从代码中引用那些 CCB 对象。
尝试使用CocosBuilder JS 示例游戏可能会有所帮助。如果您还没有阅读有关如何连接 cocos2d-x的文档,可能对您也有用。