Choice 1 – Bad

The application:

<?xml version="1.0" encoding="utf-8"?><br></br><mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" ><br></br><mx:Script><br></br><![CDATA[	<br></br>  private function initModule(e:Event):void {<br></br>    var ichild:* = myModule.child as IMyModule;                <br></br>    if (ichild != null) {                    <br></br>        ichild.initModule();<br></br>    }<br></br>  }<br></br>]]><br></br></mx:Script><br></br>...<br></br><mx:ModuleLoader id="myModule" url="myModule.swf" <b>ready="initModule(event);"</b>/>	<br></br>...<br></br></mx:Application><br></br>

The module:

<?xml version="1.0" encoding="utf-8"?><br></br><mx:Module xmlns:mx="http://www.adobe.com/2006/mxml" implements="IMyModule" ><br></br><mx:Script><br></br><![CDATA[	<br></br>[Bindable]<br></br>public serviceName:String = new String("http://localhost:8080/myService");<br></br>  <br></br>public function initModule():void{<br></br>   <b>myHService.send();<br></br>   //it will fail here!!! because myHService.url = null <br></br>   //the module is loaded, not initialized<br></br></b>}<br></br>]]><br></br></mx:Script><br></br>...<br></br><mx:HTTPService id="myHService" url="{serviceName}" method="GET" <br></br>   useProxy="false" resultFormat="e4x" showBusyCursor="true" /><br></br>...<br></br></mx:Module><br></br>

This will not work because the ready event is sent when the swf is loaded not initialized.

Choice 2 – Ok

The application:

<?xml version="1.0" encoding="utf-8"?><br></br><mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" ><br></br><mx:Script><br></br><![CDATA[	<br></br>  private function initModule(e:Event):void {<br></br>    var ichild:* = myModule.child as IMyModule;                <br></br>    if (ichild != null) {                    <br></br>        ichild.initModule();<br></br>    }<br></br>  }<br></br>]]><br></br></mx:Script><br></br>...<br></br><mx:ModuleLoader id="myModule" url="myModule.swf" ready="initModule(event);"/>	<br></br>...<br></br></mx:Application><br></br>

The module:

<?xml version="1.0" encoding="utf-8"?><br></br><mx:Module xmlns:mx="http://www.adobe.com/2006/mxml" implements="IMyModule" <br></br>	<b>creationComplete="creationComplete(event)"</b>><br></br><mx:Script><br></br><![CDATA[	<br></br>[Bindable]<br></br>public serviceName:String = new String("http://localhost:8080/myService");<br></br>  <br></br>public function initModule():void{<br></br>   //other initialization<br></br>}<br></br><br></br>public function creationComplete(event:Event):void{<br></br>   myHService.send();<br></br>}<br></br>]]><br></br></mx:Script><br></br>...<br></br><mx:HTTPService id="myHService" url="{serviceName}" method="GET" <br></br>   useProxy="false" resultFormat="e4x" showBusyCursor="true" /><br></br>...<br></br></mx:Module><br></br>

This will work.