CPreloader.js 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. function CPreloader() {
  2. var _iMaskWidth;
  3. var _iMaskHeight;
  4. var _oLoadingText;
  5. var _oProgressBar;
  6. var _oMaskPreloader;
  7. var _oFade;
  8. var _oIcon;
  9. var _oIconMask;
  10. var _oContainer;
  11. this._init = function () {
  12. s_oSpriteLibrary.init(this._onImagesLoaded, this._onAllImagesLoaded, this);
  13. s_oSpriteLibrary.addSprite("progress_bar", "./sprites/progress_bar.png");
  14. s_oSpriteLibrary.addSprite("200x200", "./sprites/200x200.jpg");
  15. s_oSpriteLibrary.loadSprites();
  16. _oContainer = new createjs.Container();
  17. s_oStage.addChild(_oContainer);
  18. };
  19. this.unload = function () {
  20. _oContainer.removeAllChildren();
  21. };
  22. this._onImagesLoaded = function () {
  23. };
  24. this._onAllImagesLoaded = function () {
  25. this.attachSprites();
  26. s_oMain.preloaderReady();
  27. };
  28. this.attachSprites = function () {
  29. var oBg = new createjs.Shape();
  30. oBg.graphics.beginFill("black").drawRect(0, 0, CANVAS_WIDTH, CANVAS_HEIGHT);
  31. _oContainer.addChild(oBg);
  32. var oSprite = s_oSpriteLibrary.getSprite('200x200');
  33. _oIcon = createBitmap(oSprite);
  34. _oIcon.regX = oSprite.width * 0.5;
  35. _oIcon.regY = oSprite.height * 0.5;
  36. _oIcon.x = CANVAS_WIDTH/2;
  37. _oIcon.y = CANVAS_HEIGHT/2 - 140;
  38. _oContainer.addChild(_oIcon);
  39. _oIconMask = new createjs.Shape();
  40. _oIconMask.graphics.beginFill("rgba(0,0,0,0.01)").drawRoundRect(_oIcon.x - 100, _oIcon.y - 100, 200, 200, 10);
  41. _oContainer.addChild(_oIconMask);
  42. _oIcon.mask = _oIconMask;
  43. var oSprite = s_oSpriteLibrary.getSprite('progress_bar');
  44. _oProgressBar = createBitmap(oSprite);
  45. _oProgressBar.x = CANVAS_WIDTH/2 - (oSprite.width / 2);
  46. _oProgressBar.y = CANVAS_HEIGHT/2 + 90;
  47. _oContainer.addChild(_oProgressBar);
  48. _iMaskWidth = oSprite.width;
  49. _iMaskHeight = oSprite.height;
  50. _oMaskPreloader = new createjs.Shape();
  51. _oMaskPreloader.graphics.beginFill("rgba(0,0,0,0.01)").drawRect(_oProgressBar.x, _oProgressBar.y, 1, _iMaskHeight);
  52. _oContainer.addChild(_oMaskPreloader);
  53. _oProgressBar.mask = _oMaskPreloader;
  54. _oLoadingText = new createjs.Text("", "30px " + FONT_GAME, "#fff");
  55. _oLoadingText.x = CANVAS_WIDTH/2;
  56. _oLoadingText.y = CANVAS_HEIGHT/2 + 140;
  57. _oLoadingText.textBaseline = "alphabetic";
  58. _oLoadingText.textAlign = "center";
  59. _oContainer.addChild(_oLoadingText);
  60. _oFade = new createjs.Shape();
  61. _oFade.graphics.beginFill("black").drawRect(0, 0, CANVAS_WIDTH, CANVAS_HEIGHT);
  62. _oContainer.addChild(_oFade);
  63. createjs.Tween.get(_oFade).to({alpha: 0}, 500).call(function () {
  64. createjs.Tween.removeTweens(_oFade);
  65. _oContainer.removeChild(_oFade);
  66. });
  67. };
  68. this.refreshLoader = function (iPerc) {
  69. _oLoadingText.text = iPerc + "%";
  70. if (iPerc === 100) {
  71. s_oMain._onRemovePreloader();
  72. _oLoadingText.visible = false;
  73. _oProgressBar.visible = false;
  74. };
  75. _oMaskPreloader.graphics.clear();
  76. var iNewMaskWidth = Math.floor((iPerc * _iMaskWidth) / 100);
  77. _oMaskPreloader.graphics.beginFill("rgba(0,0,0,0.01)").drawRect(_oProgressBar.x, _oProgressBar.y, iNewMaskWidth, _iMaskHeight);
  78. };
  79. this._init();
  80. }