code_junkie

Swap main Flex application

Nov 11th, 2011
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.96 KB | None | 0 0
  1. private var mainModuleLogOnEventDispatcher:*;
  2.  
  3. [Bindable]
  4. private var _logOnDetails:LogOnDetails = new LogOnDetails();
  5.  
  6. private function onCreationComplete(event:Event):void
  7. {
  8. // Load log on module.
  9. loadMainModule("LogOnModule.swf");
  10.  
  11. // Pre-load main module while user is logging on.
  12. var mm:IModuleInfo = ModuleManager.getModule("MainModule.swf");
  13. mm.load();
  14. }
  15.  
  16. [Bindable]
  17. private function set logOnDetails(value:LogOnDetails):void
  18. {
  19. _logOnDetails = value;
  20. }
  21.  
  22. private function get logOnDetails():LogOnDetails
  23. {
  24. return _logOnDetails;
  25. }
  26.  
  27. private function loadMainModule(moduleName:String):void
  28. {
  29. // Unload anything already loaded.
  30. if (mainModule.url.length > 0)
  31. {
  32. mainModule.unloadModule();
  33. mainModule.url = "";
  34. }
  35. mainModule.addEventListener(ModuleEvent.READY, handleMainModuleReadyEvent);
  36. mainModule.url = moduleName;
  37. }
  38.  
  39. private function handleMainModuleReadyEvent(event:ModuleEvent):void
  40. {
  41. // Remove listener, we've caught the event now.
  42. mainModule.removeEventListener(ModuleEvent.READY, handleMainModuleReadyEvent);
  43.  
  44. // Add listeners to other events or apply data.
  45. if (mainModule.url == "LogOnModule.swf")
  46. {
  47. mainModuleLogOnEventDispatcher = mainModule.child;
  48. if (mainModule.child != null) {
  49. mainModuleLogOnEventDispatcher.addEventListener("logOnEvent", handleLogOnEvent);
  50. }
  51. }
  52. if (mainModule.url == "MainModule.swf")
  53. {
  54. var mm:* = mainModule.child;
  55. if (mainModule.child != null)
  56. {
  57. mm.logOnDetails = logOnDetails;
  58. }
  59. }
  60. }
  61.  
  62. private function handleLogOnEvent(logOnEvent:LogOnEvent):void
  63. {
  64. mainModuleLogOnEventDispatcher.removeEventListener("logOnEvent", handleLogOnEvent);
  65.  
  66. logOnDetails = logOnEvent.logOnDetails;
  67.  
  68. // Now get person's details and swap in main module if successful.
  69. var parameters:Object = new Object();
  70. parameters.cmd = "viewPerson";
  71. parameters.token = logOnDetails.logOnToken;
  72. viewPersonRequest.send(parameters);
  73. }
  74.  
  75. private function handleViewPersonRequestResult(event:ResultEvent):void
  76. {
  77.  
  78. //*** Loads of setting logonDetails and error handling removed!!! ***//
  79. loadMainModule("MainModule.swf");
  80. currentState = "LoggedOn";
  81. return;
  82. }
  83.  
  84. private function onLogOff(event:MouseEvent):void
  85. {
  86. // Make sure we don't auto-logon when we log off.
  87. var logOnPrefs:SharedObject = SharedObject.getLocal("LogOn", "/");
  88. logOnPrefs.data.loggedOff = true;
  89.  
  90. var parameters:Object = new Object();
  91. parameters.cmd = "logoff";
  92. parameters.token = logOnDetails.logOnToken;
  93. logoffRequest.send(parameters);
  94. loadMainModule("LogOnModule.swf");
  95. currentState = "";
  96. }
  97.  
  98. <!-- *** Loads of view state related mxml removed *** -->
  99. <mx:VBox width="100%" height="100%" horizontalAlign="center" verticalAlign="middle" id="mainModuleVBox">
  100. <basic:IJModuleLoader id="mainModule" url="" width="100%" height="100%" horizontalAlign="center" verticalAlign="middle"/>
  101. </mx:VBox>
  102.  
  103. <mx:Application>
  104. <mx:ViewStack>
  105. <mx:Box> <!-- or whatever for login-->
  106. </mx:Box>
  107. <mx:Box> <!-- application UI widgets here -->
  108. </mx:Box>
  109. </mx:ViewStack>
  110. </mx:Application>
Add Comment
Please, Sign In to add comment