ResultUI.ts 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. import { _decorator, Component, Node, sp } from 'cc';
  2. const { ccclass, property } = _decorator;
  3. @ccclass('ResultUI')
  4. export class ResultUI extends Component {
  5. @property({type:Node,tooltip:'胜利界面'})
  6. win:Node = null;
  7. @property({type:Node,tooltip:'失败界面'})
  8. lose:Node = null;
  9. @property({type:Node,tooltip:'点击返回'})
  10. back:Node = null;
  11. @property({type:sp.Skeleton,tooltip:'胜利动画'})
  12. winSpine:sp.Skeleton = null;
  13. @property({type:sp.Skeleton,tooltip:'失败动画'})
  14. loseSpine:sp.Skeleton = null;
  15. //是否等待动画播放完毕
  16. bWait = false
  17. //是否动画播放完毕
  18. bAnimOver = false
  19. private _endcallback:Function
  20. protected onLoad(): void {
  21. this.loseSpine.setCompleteListener(this.actionComplete.bind(this))
  22. }
  23. show(bWin:boolean,bLast:boolean = false,callback:Function = null) {
  24. this.bAnimOver = false
  25. this.bWait = bLast
  26. this.back.active = bLast
  27. if(bWin){
  28. this.win.active = true
  29. this.lose.active = false
  30. }else{
  31. this.loseSpine.setAnimation(0,'lose',false)
  32. }
  33. this._endcallback = callback
  34. }
  35. actionComplete(trackEntry:sp.spine.TrackEntry) {
  36. this.bAnimOver = true
  37. if(this.bWait) return
  38. this.node.active = false
  39. this._endcallback&&this._endcallback()
  40. }
  41. onTouchButton() {
  42. this.bWait = false
  43. if(this.bAnimOver){
  44. this.node.active = false
  45. this._endcallback&&this._endcallback()
  46. }
  47. }
  48. }