f34acd86-1a25-4e05-b1ba-5e57ef8183f8.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. "use strict";
  2. cc._RF.push(module, 'f34ac2GGiVOBbG6XlfvgYP4', 'LocalizedSprite');
  3. // LocalizedSprite.js
  4. "use strict";
  5. var SpriteFrameSet = require('SpriteFrameSet');
  6. cc.Class({
  7. "extends": cc.Component,
  8. editor: {
  9. executeInEditMode: true,
  10. inspector: 'packages://i18n/inspector/localized-sprite.js',
  11. menu: 'i18n/LocalizedSprite'
  12. },
  13. properties: {
  14. spriteFrameSet: {
  15. "default": [],
  16. type: SpriteFrameSet
  17. }
  18. },
  19. onLoad: function onLoad() {
  20. this.fetchRender();
  21. },
  22. fetchRender: function fetchRender() {
  23. var sprite = this.getComponent(cc.Sprite);
  24. if (sprite) {
  25. this.sprite = sprite;
  26. this.updateSprite(window.i18n.curLang);
  27. return;
  28. }
  29. },
  30. getSpriteFrameByLang: function getSpriteFrameByLang(lang) {
  31. for (var i = 0; i < this.spriteFrameSet.length; ++i) {
  32. if (this.spriteFrameSet[i].language === lang) {
  33. return this.spriteFrameSet[i].spriteFrame;
  34. }
  35. }
  36. },
  37. updateSprite: function updateSprite(language) {
  38. if (!this.sprite) {
  39. cc.error('Failed to update localized sprite, sprite component is invalid!');
  40. return;
  41. }
  42. var spriteFrame = this.getSpriteFrameByLang(language);
  43. if (!spriteFrame && this.spriteFrameSet[0]) {
  44. spriteFrame = this.spriteFrameSet[0].spriteFrame;
  45. }
  46. this.sprite.spriteFrame = spriteFrame;
  47. }
  48. });
  49. cc._RF.pop();