SkinItem.ts 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. import { _decorator, Button, Component, Node, sp, Sprite, Vec2 } from 'cc';
  2. import { selectedSkinList, 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(sp.Skeleton)
  8. skin:sp.Skeleton = null;
  9. @property(Sprite)
  10. selectedSprite:Sprite = null;
  11. private _isSelected:boolean = false;
  12. private _key:number = 0;
  13. init(key: number,spineData:sp.SkeletonData,animName:string = "idle",spineOffset:Vec2 = new Vec2(0,0),isSelect:boolean = false)
  14. {
  15. this.skin.skeletonData = spineData;
  16. this.skin.setAnimation(0,animName,true)
  17. this.skin.node.position = this.skin.node.position.clone().add3f(spineOffset.x,spineOffset.y,0)
  18. this.selectedSprite.node.active = isSelect
  19. this._isSelected = isSelect
  20. this._key = key
  21. }
  22. onClick()
  23. {
  24. this._isSelected = !this._isSelected
  25. this.selectedSprite.node.active = this._isSelected
  26. if(this._isSelected)
  27. {
  28. Skin.addSelectSkin(this._key)
  29. }else
  30. {
  31. Skin.removeSelectSkin(this._key)
  32. }
  33. }
  34. protected start(): void {
  35. this.node.on(Node.EventType.TOUCH_END,this.onClick,this)
  36. }
  37. }