SkinItem.ts 2.0 KB

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