SkinItem.ts 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. import { _decorator, Button, Component, instantiate, Node, Prefab, sp, Sprite, Vec2, Vec3 } from 'cc';
  2. import {Skin } from '../../script/Manager/LocalDataMgr';
  3. import { LayerMgr } from '../../script/Manager/LayerMgr';
  4. import EventMgr from '../../script/Manager/EventMgr';
  5. const { ccclass, property } = _decorator;
  6. @ccclass('SkinItem')
  7. export class SkinItem extends Component {
  8. @property(Node)
  9. skinRoot:Node = null;
  10. @property(Sprite)
  11. selectedSprite:Sprite = null;
  12. private _isSelected:boolean = false;
  13. private _key:number = 0;
  14. private _spine:sp.Skeleton = null;
  15. // init(key: number,spineData:sp.SkeletonData,animName:string = "idle",spineOffset:Vec2 = new Vec2(0,0),isSelect:boolean = false)
  16. // {
  17. // this.skin.skeletonData = spineData;
  18. // this.skin.setAnimation(0,animName,true)
  19. // this.skin.node.position = this.skin.node.position.clone().add3f(spineOffset.x,spineOffset.y,0)
  20. // this.selectedSprite.node.active = isSelect
  21. // this._isSelected = isSelect
  22. // this._key = key
  23. // }
  24. init(key: number,spine:Prefab,animName:string = "idle",spineOffset:Vec2 = new Vec2(0,0),isSelect:boolean = false)
  25. {
  26. let skin = instantiate(spine)
  27. this.skinRoot.addChild(skin)
  28. skin.setPosition(Vec3.ZERO)
  29. skin.position = skin.position.clone().add3f(spineOffset.x,spineOffset.y,0)
  30. this.selectedSprite.node.active = isSelect
  31. this._isSelected = isSelect
  32. this._key = key
  33. this._spine = skin.getComponent(sp.Skeleton)
  34. if(!this._spine.getCurrent(0))
  35. this._spine.setAnimation(0,animName,true)
  36. }
  37. onClick()
  38. {
  39. this.setSelectSkin(!this._isSelected)
  40. }
  41. protected start(): void {
  42. this.node.on(Node.EventType.TOUCH_END,this.onClick,this)
  43. }
  44. setSelectSkin(isSelect:boolean)
  45. {
  46. this._isSelected = isSelect
  47. this.selectedSprite.node.active = this._isSelected
  48. if(this._isSelected)
  49. {
  50. Skin.addSelectSkin(this._key)
  51. }else
  52. {
  53. Skin.removeSelectSkin(this._key)
  54. }
  55. EventMgr.ins.dispatchEvent("refreshSelectFrame",this.node)
  56. }
  57. setSelevtFrame(isShow) {
  58. this.selectedSprite.node.active = isShow
  59. }
  60. }