LoadingViewInitiator.ts 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  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. layer.setSize(fgui.GRoot.inst.width,fgui.GRoot.inst.height);
  39. }
  40. }
  41. private OnLoadingViewLoadComplete(err:Error):void{
  42. if(err){
  43. throw new Error("加载LoadingView出错"+this.__loadingViewPackage+this.__loadingViewResName);
  44. }
  45. let view:fgui.GComponent=fgui.UIPackage.createObject(this.__loadingViewPackage,this.__loadingViewResName).asCom;
  46. let progressBar:fgui.GProgressBar=view.getChild("progressBar") as fgui.GProgressBar;
  47. let label:fgui.GLabel=view.getChild("label") as fgui.GLabel;
  48. LoadingView.single.Init(view,progressBar,label);
  49. LoadingView.single.Show();
  50. //完成
  51. this.DispatchEvent(InitiatorEvent.EVENT_COMPLETE);
  52. }
  53. Destroy(): void {
  54. this.__layerRoot=null;
  55. }
  56. GetName(): string {
  57. return "LoadingViewInitiator";
  58. }
  59. }