qc.Behaviour

描述

所有组件的基类,可以挂载到任何的Node节点(通过编辑器的Add Component功能或者通过Node的addScript)

注意:永远不用直接通过new的方式创建组件,请通过Node节点的addScript方法来构建。

定义一个组件

    // 函数原型
    qc.defineBehaviour = function(clazz:string, parent:class, init:function, fields:object);

    // 例子:定义组件qc.demo.Test
    qc.defineBehaviour('qc.demo.Test', qc.Behaviour, function() {
        // 组件初始化代码
        this.year = 2015;
    }, {
        // 需要序列化的字段及类型
        year: qc.Serializer.NUMBER
    })

变量

变量名 作用
gameObject:qc.Node 挂载的Node节点
name:string 组件对应节点的名字
enable: boolean 组件是不是启用,不启用时组件的update、preUpdate、postUpdate、render、postRender将不会被调度。设置此字段,会触发onEnable和onDisable的调用
runInEditor: boolean 组件是不是在编辑器模式下运行,默认为false
game: qc.Game 只读。对应的游戏实例

方法

方法名 作用
getScript 见:Node.getScript
getScripts 见:Node.getScripts
destroy 销毁本组件,并从挂载的节点删除。此函数会触发onDestroy的调用
addListener 注册事件监听,在对象析构时会自动移除事件监听

回调方法

方法名 作用
awake 如果定义了此函数,组件被创建时(或者反序列化完毕后)将被调用,一般做些组件初始化的逻辑
preUpdate 如果定义了此函数,在帧调度时首先被调用
update 帧调度
postUpdate 在update后被调用
onDown 如果对应的节点可以点击,在鼠标按下时自动调用本函数
onUp 如果对应的节点可以点击,在鼠标松开时自动调用本函数
onClick 如果对应的节点可以点击,在鼠标一次点击时自动调用本函数
onDragStart 此节点开始被拖拽时,此函数自动被调用
onDrag 节点在拖拽过程中,每帧被调用
onDragEnd 节点拖拽结束时,此函数自动被调用
isAllowDrop 本节点是否允许接纳拖拽中的对象,如果可以返回true
onEnable 组件启用时被调度
onDisable 组件不可用时被调度
onDestroy 组件被销毁时被调度,一般用于回收必要的资源

相关范例

results matching ""

    No results matching ""