Transmission.ts 880 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. import { _decorator, Component, Node } from 'cc';
  2. const { ccclass, property } = _decorator;
  3. export interface evt {
  4. onSend: (data: any) => void
  5. save: (data: any) => void
  6. }
  7. @ccclass('Transmission')
  8. export class Transmission extends Component {
  9. private _evt = chsdk.get_new_event<evt>();
  10. private _data: any
  11. get data(){
  12. return this._data
  13. }
  14. get evt() {
  15. return this._evt;
  16. }
  17. send(data: any) {
  18. this._evt.emit('onSend', data)
  19. }
  20. save(data: any) {
  21. this._data = data
  22. this._evt.emit('save', data)
  23. }
  24. onSave(save: (data: any) => void,target_?: any, once_?: boolean){
  25. this._evt.on('save',save,target_,once_)
  26. if(this.data){
  27. this._evt.emit('save',this.data)
  28. }
  29. }
  30. protected onDestroy(): void {
  31. this._evt?.clearAll()
  32. this._data = null
  33. }
  34. }