PreloadState.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. var preload;
  2. function OnEnterPreloadState() {
  3. controller.handlePreloadRequest();
  4. if ( !controller.isFinish ) {
  5. ptwUI.showLoadingUI();
  6. controller.isPreloadFinished = false;
  7. controller.isPreloadTimeUp = false;
  8. controller.preloadTimer = setTimeout("preloadTimeUp()", controller.minPreloadTime);
  9. }
  10. }
  11. function OnExitPreloadState()
  12. {
  13. }
  14. function preloadTimeUp() {
  15. controller.isPreloadTimeUp = true;
  16. if ( controller.isPreloadFinished ) {
  17. SM.SetStateByName("inGame");
  18. }
  19. }
  20. function preloadImages(questions) {
  21. var manifest = [];
  22. for (var i = 0; i < questions.length; i = i + 1) {
  23. manifest.push({ src: sprintf("__%05d.png", questions[i]["ID"]), id: "" + i });
  24. }
  25. if (preload == null || typeof (preload) == 'undefined') {
  26. preload = new createjs.LoadQueue(true, "./" + controller.dataBaseUrl + "img/");
  27. preload.addEventListener("progress", handleProgress);
  28. preload.addEventListener("complete", handleComplete);
  29. preload.addEventListener("fileload", handleFileLoad);
  30. }
  31. preload.loadManifest(manifest);
  32. }
  33. function handleProgress(event) {
  34. ptwUI.showLoadingUIProgress(event);
  35. }
  36. function handleFileLoad(event) {
  37. var question = new Question(controller.questionRepo[event.item.id], event.result.src);
  38. ptwUI.addQuestion(question);
  39. }
  40. function handleComplete()
  41. {
  42. controller.isPreloadFinished = true;
  43. if ( controller.isPreloadTimeUp ) {
  44. SM.SetStateByName("inGame");
  45. }
  46. }
  47. var PreloadState = new State( OnEnterPreloadState, OnExitPreloadState );