CPreloader.js 4.0 KB

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