UIClickEft.ts 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. import { GameEvent } from "../../../data/const/EventConst";
  2. import GameDataCenter from "../../../data/GameDataCenter";
  3. import EventMng from "../../../manager/EventMng";
  4. import SpineNode from "../../../utils/SpineNode";
  5. const { ccclass, property } = cc._decorator;
  6. @ccclass
  7. export default class UIClickEft extends cc.Component {
  8. clickEft: SpineNode
  9. protected onEnable(): void {
  10. EventMng.on(GameEvent.ON_CLICK, this.onClick, this)
  11. }
  12. protected onDisable(): void {
  13. EventMng.off(GameEvent.ON_CLICK, this.onClick, this)
  14. }
  15. start() {
  16. cc.game.addPersistRootNode(this.node)
  17. let node = new SpineNode("spine", "effect_dianji01/effect_dianji01", 1, "animation", false, 1, () => {
  18. this.clickEft = node
  19. // node.spine.setCompleteListener((trackEntry: sp.spine.TrackEntry) => {
  20. // this.clickEft.node.active = false
  21. // })
  22. // node.active = false
  23. this.clickEft.spine.setCompleteListener(this.OnCompleteListener.bind(this));
  24. }, true)
  25. node.parent = this.node
  26. node.x = -200
  27. }
  28. onClick(event) {
  29. GameDataCenter.time.guideRuoTime = 0
  30. if (this.clickEft == null) {
  31. return
  32. }
  33. this.clickEft.active = true;
  34. this.clickEft.x = event.getLocationX()
  35. this.clickEft.y = event.getLocationY()
  36. this.clickEft.spine.setAnimation(0, "animation", false)
  37. }
  38. OnCompleteListener() {
  39. this.clickEft.active = false;
  40. }
  41. }