LoadingViewInitiator.ts 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. import { EventDispatcher } from "../../engines/events/EventDispatcher";
  2. import IInitiator from "../../engines/initiators/IInitiator";
  3. import InitiatorEvent from "../../engines/initiators/InitiatorEvent";
  4. import LoadingView from "../../engines/loadingView/LoadingView";
  5. export default class LoadingViewInitiator extends EventDispatcher implements IInitiator
  6. {
  7. private __layerRoot:cc.Node;
  8. private __loadingViewPackage:string;
  9. private __loadingViewResName:string;
  10. constructor(layerRoot:cc.Node,loadingViewPackage:string,loadingViewResName:string){
  11. super();
  12. this.__loadingViewPackage=loadingViewPackage;
  13. this.__loadingViewResName=loadingViewResName;
  14. this.__layerRoot=layerRoot;
  15. }
  16. Start(): void {
  17. this.InitLayers();
  18. fgui.UIPackage.loadPackage(cc.resources,this.__loadingViewPackage,this.OnLoadingViewLoadComplete.bind(this));
  19. }
  20. private InitLayers():void{
  21. if(this.__layerRoot==null){
  22. throw new Error("layerRoot==null");
  23. }
  24. fgui.GRoot.create(this.__layerRoot);
  25. this.CreateLayers(10);
  26. }
  27. /**
  28. * 初始化层
  29. * @param count
  30. */
  31. private CreateLayers(count:number):void{
  32. let layer:fgui.GComponent;
  33. for (let index = 0; index < count; index++) {
  34. layer=new fgui.GComponent();
  35. layer.node.name=index.toString();
  36. layer.name=index.toString();
  37. fgui.GRoot.inst.addChild(layer);
  38. }
  39. }
  40. private OnLoadingViewLoadComplete(err:Error):void{
  41. if(err){
  42. throw new Error("加载LoadingView出错"+this.__loadingViewPackage+this.__loadingViewResName);
  43. }
  44. let view:fgui.GComponent=fgui.UIPackage.createObject(this.__loadingViewPackage,this.__loadingViewResName).asCom;
  45. let progressBar:fgui.GProgressBar=view.getChild("progressBar") as fgui.GProgressBar;
  46. let label:fgui.GLabel=view.getChild("label") as fgui.GLabel;
  47. LoadingView.single.Init(view,progressBar,label);
  48. LoadingView.single.Show();
  49. //完成
  50. this.DispatchEvent(InitiatorEvent.EVENT_COMPLETE);
  51. }
  52. Destroy(): void {
  53. this.__layerRoot=null;
  54. }
  55. GetName(): string {
  56. return "LoadingViewInitiator";
  57. }
  58. }