SkinItem.ts 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  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. 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.setPosition(Vec3.ZERO)
  28. skin.position = skin.position.clone().add3f(spineOffset.x,spineOffset.y,0)
  29. this.selectedSprite.node.active = isSelect
  30. this._isSelected = isSelect
  31. this._key = key
  32. this._spine = skin.getComponent(sp.Skeleton)
  33. if(!this._spine.getCurrent(0))
  34. this._spine.setAnimation(0,animName,true)
  35. }
  36. onClick()
  37. {
  38. this.setSelectSkin(!this._isSelected)
  39. }
  40. protected start(): void {
  41. this.node.on(Node.EventType.TOUCH_END,this.onClick,this)
  42. }
  43. setSelectSkin(isSelect:boolean)
  44. {
  45. this._isSelected = isSelect
  46. this.selectedSprite.node.active = this._isSelected
  47. if(this._isSelected)
  48. {
  49. Skin.addSelectSkin(this._key)
  50. }else
  51. {
  52. Skin.removeSelectSkin(this._key)
  53. }
  54. }
  55. }