CPreloader.js 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. function CPreloader() {
  2. var _iMaskWidth;
  3. var _iMaskHeight;
  4. var _oLoadingText;
  5. var _oProgressBar;
  6. var _oMaskPreloader;
  7. var _oFade;
  8. var _oContainer;
  9. this._init = function () {
  10. s_oSpriteLibrary.init(this._onImagesLoaded, this._onAllImagesLoaded, this);
  11. s_oSpriteLibrary.addSprite("bg_menu", "./sprites/bg_menu.jpg");
  12. s_oSpriteLibrary.addSprite("progress_bar", "./sprites/progress_bar.png");
  13. s_oSpriteLibrary.loadSprites();
  14. _oContainer = new createjs.Container();
  15. s_oStage.addChild(_oContainer);
  16. };
  17. this.unload = function () {
  18. _oContainer.removeAllChildren();
  19. };
  20. this.hide = function () {
  21. var oParent = this;
  22. setTimeout(function () {
  23. createjs.Tween.get(_oFade).to({alpha: 1}, 500).call(function () {
  24. oParent.unload();
  25. s_oMain.gotoMenu();
  26. });
  27. }, 1000);
  28. };
  29. this._onImagesLoaded = function () {
  30. };
  31. this._onAllImagesLoaded = function () {
  32. this.attachSprites();
  33. s_oMain.preloaderReady();
  34. };
  35. this.attachSprites = function () {
  36. var oBg = createBitmap(s_oSpriteLibrary.getSprite('bg_menu'));
  37. _oContainer.addChild(oBg);
  38. var oSprite = s_oSpriteLibrary.getSprite('progress_bar');
  39. _oProgressBar = createBitmap(oSprite);
  40. _oProgressBar.x = CANVAS_WIDTH / 2 - (oSprite.width / 2);
  41. _oProgressBar.y = CANVAS_HEIGHT - 180;
  42. _oContainer.addChild(_oProgressBar);
  43. _iMaskWidth = oSprite.width;
  44. _iMaskHeight = oSprite.height;
  45. _oMaskPreloader = new createjs.Shape();
  46. _oMaskPreloader.graphics.beginFill("rgba(255,255,255,0.01)").drawRect(_oProgressBar.x, _oProgressBar.y, 1, _iMaskHeight);
  47. _oContainer.addChild(_oMaskPreloader);
  48. _oProgressBar.mask = _oMaskPreloader;
  49. _oLoadingText = new createjs.Text("", "30px " + FONT_GAME, "#fff");
  50. _oLoadingText.x = CANVAS_WIDTH / 2;
  51. _oLoadingText.y = CANVAS_HEIGHT - 176;
  52. _oLoadingText.shadow = new createjs.Shadow("#000", 2, 2, 2);
  53. _oLoadingText.textBaseline = "alphabetic";
  54. _oLoadingText.textAlign = "center";
  55. _oContainer.addChild(_oLoadingText);
  56. _oFade = new createjs.Shape();
  57. _oFade.graphics.beginFill("black").drawRect(0, 0, CANVAS_WIDTH, CANVAS_HEIGHT);
  58. _oFade.alpha = 0;
  59. _oContainer.addChild(_oFade);
  60. };
  61. this.refreshLoader = function (iPerc) {
  62. _oLoadingText.text = iPerc + "%";
  63. _oMaskPreloader.graphics.clear();
  64. var iNewMaskWidth = Math.floor((iPerc * _iMaskWidth) / 100);
  65. _oMaskPreloader.graphics.beginFill("rgba(255,255,255,0.01)").drawRect(_oProgressBar.x, _oProgressBar.y, iNewMaskWidth, _iMaskHeight);
  66. };
  67. this._init();
  68. }