creator TS触摸事件

当我手指触摸按钮的时候初始化预制,但是想要在手指离开时销毁所产生的预制,请问如何实现?
public voiceLayer():void {
let speech = cc.instantiate(this.voicePrefab)
this.voiceNode.addChild(speech);

}


public onClick(): void {
    //手指触摸到屏幕时触发
    this.voiceClick.node.on(cc.Node.EventType.TOUCH_START, function (event) {
        this.voiceLayer();
       // this.voiceNode.active = true;
    }.bind(this), this)

    //手指离开屏幕时触发
    this.voiceClick.node.on(cc.Node.EventType.TOUCH_END, function () {
       // this.voiceNode.active = false;
       setTimeout(() => {
        ComUI.showSpeechMsg("语音信息" ,4)
       }, 1000);
     
    }.bind(this), this)
}
	之前想到把预制生成的节点隐藏,但是效果并不好,当再次点击时有重影

有重影 是因为老铁你又instantiate了一个啊。。先判断下 有没有 有过了 就别再实例化一个了

嗯嗯,但如果我想要在手指松开的时候直接把那个实例的预制destory掉应该如何实现呢?

public voiceLayer():void {
   let speech = cc.instantiate(this.voicePrefab);
   speech.name = 'speech';
   this.voiceNode.addChild(speech);
}

public onClick(): void {
    //手指触摸到屏幕时触发
    this.voiceClick.node.on(cc.Node.EventType.TOUCH_START, function (event) {
        this.voiceLayer();
    }.bind(this), this)

    //手指离开屏幕时触发
    this.voiceClick.node.on(cc.Node.EventType.TOUCH_END, function () {
       // this.voiceNode.active = false;
       setTimeout(() => {
        ComUI.showSpeechMsg("语音信息" ,4)
        this.voiceNode.getChildByName('speech').destory();
       }, 1000);
     
    }.bind(this), this)
}

这样应该满足你要求

还是不行,手指放开的时候报错:
Uncaught TypeError: this.voiceNode.getChildByName(…).destory is not a function