我希望修改节点透明度时,能获取到事件消息。
cc.Node.EventType.COLOR_CHANGED只能监听颜色变化。
每帧获取透明度不就行了
/** 在需要的组件中监听 */
this.node.on("OPACITY_CHANGED", (event: cc.Event) => {
console.log("修改了透明度", event.target.name);
}, this);
/** 在最开始初始化的时候执行一次 或者 放在js文件中并把该脚本导入为插件 */
Object.defineProperties(cc.Node.prototype, {
opacity: {
set: function (val) {
this._opacity = val;
let event = new cc.Event("OPACITY_CHANGED", false);
event.currentTarget = this.node;
event.target = this.node;
this.dispatchEvent(event);
},
get: function () {
return this._opacity;
}
}
});
this.node.opacity = 0;
解决了,大佬牛逼。
不知道为什么引擎没有直接提供这个事件监听
一堆监听性能消耗是个问题