如题:
我想在引擎提供的cc.Button基础上 扩展出一个点击就能播放特定动画,或者声音的组件。
然后我继承了cc.Button 但是这些属性都暴露出来了,貌似没初始化成功,
引擎里面的修改_updateState按钮状态是私有的(我又不想修改引擎的内部)
我找了一下以往的帖子,貌似说是要开编辑器模式,我用的ts,不知道这样写对不对,没效果。
请问一下大家有什么其他的好方法吗?
没有的话我就自己写个按钮组件了。
如题:
我想在引擎提供的cc.Button基础上 扩展出一个点击就能播放特定动画,或者声音的组件。
然后我继承了cc.Button 但是这些属性都暴露出来了,貌似没初始化成功,
引擎里面的修改_updateState按钮状态是私有的(我又不想修改引擎的内部)
我找了一下以往的帖子,貌似说是要开编辑器模式,我用的ts,不知道这样写对不对,没效果。
请问一下大家有什么其他的好方法吗?
没有的话我就自己写个按钮组件了。
没有,我是让自定义组件和cc.Button共存,不算很好的做法
cc.Button自定义了 inspector,所以有特定的属性面板……
至于它的inspector代码在哪我也找不到……一直是未解之谜。
你在creator上打开开发者工具,button的inspector就在Source的inspector文件夹下面,这个要重写inspector文件就好了。
处理回调用自定义组件做,点击效果用button
谢谢各位大佬的帮助
不知道大家说的是不是 resources\engine\cocos2d\core\components下的CCButton.js
1、button.js 有找到一推,只是在 Source目录下对应的inspector button没找到
2、cc.Button.prototype._onTouchEnded 的 prototype里没有_onTouchEnded 这个函数
你可以整个按钮声音组件挂按钮就可以了
const { ccclass, property,requireComponent } = cc._decorator;
@ccclass
@requireComponent(cc.Button)
export default class ClickAudioss extends cc.Component {
@property(cc.AudioClip)
AudioClip:cc.AudioClip = null;
@property({min:0,max:1,slide:true})
volume:number = 1;
onLoad() {
this.node.on(cc.Node.EventType.TOUCH_END, this._playAudio, this);
}
onDestroy() {
this.node.off(cc.Node.EventType.TOUCH_END, this._playAudio, this);
}
_playAudio() {
if (this.AudioClip) {
cc.audioEngine.play(this.AudioClip, false, this.volume);
}
}
}