hi i don't know weather its help full for you . place the button inside the module and get the URL from the parent application and set inside the module as shown below
headerMod.mxml -------------------------- <?xml version="1.0" encoding="utf-8"?> <mx:Module xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"> <mx:Script> <![CDATA[ [Embed(source="assets/images/jpl_head.png")] [Bindable] public var headerImgCls:Class; public function changeUserPic(picUrl:String):void{ userPics.source = picUrl; } private function asssignData():void { userPics.source=parentApplication.getURL(); } ]]> </mx:Script> <mx:Canvas> <mx:Image id="hdImg" width="1000" height="75" source="{headerImgCls}"/> <mx:Image id="userPics" x="924" y="9" width="54" height="54"/> <mx:Button x="143" y="154" label="Button" click="asssignData()"/> </mx:Canvas> </mx:Module> index.mxml ----------------- <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" backgroundColor="#f2f2f2" backgroundAlpha="1" layout="absolute" width="1000" height="800" xmlns:view="com.jpl.view.*" creationComplete="init()"> <mx:Script> <![CDATA[ import mx.controls.Alert; import com.jpl.modules.*; import mx.events.ModuleEvent; import mx.modules.ModuleManager; import mx.modules.IModuleInfo; private var moduleInfo:IModuleInfo; private function init():void{ loadHeader(); } private var jpl_head:Object; //loading header into application private function loadHeader():void{ mod_progress.visible = true; moduleInfo = ModuleManager.getModule( "com/jpl/modules/ headerMod.swf" ); moduleInfo.addEventListener( ModuleEvent.READY, onHeaderModuleReady); moduleInfo.addEventListener(ModuleEvent.ERROR, handleHeaderModuleError); moduleInfo.addEventListener(ModuleEvent.PROGRESS, onHeaderModuleProgress); moduleInfo.load(); } protected function onHeaderModuleReady( moduleEvent:ModuleEvent ):void{ jpl_head = moduleInfo.factory.create() as headerMod; mod_holder.addChild(moduleInfo.factory.create() as DisplayObject); trace('Module successfully loaded : '+ moduleEvent.module.url); mod_progress.label = "" mod_progress.visible = false; } protected function handleHeaderModuleError( moduleEvent:ModuleEvent ):void{ throw new Error( "Module error loading : " + moduleEvent.module.url ); } protected function onHeaderModuleProgress( moduleEvent:ModuleEvent ):void{ trace( "Downloading Module : "+ moduleEvent.module.url ); mod_progress.label = 'Loading Header'; mod_progress.setProgress( moduleEvent.bytesLoaded, moduleEvent.bytesTotal ); } public function getURL():String { return 'video_icon.png'; } ]]> </mx:Script> <mx:Canvas id="mod_holder"> </mx:Canvas> <mx:ProgressBar id="mod_progress" width="300" indeterminate="true" trackHeight="5" labelPlacement="top" label="Loading .."/> </mx:Application> is this help full for u? On Feb 10, 4:44 pm, Flex Hatter <[email protected]> wrote: > I'm attaching the flex project archive of the above project. > I'm still stuck in the same place. Can anybody help me... > Flex 3.5 file > > > > > > > > On Fri, Feb 4, 2011 at 6:05 PM, Flex Hatter <[email protected]> wrote: > > Thanks for that. > > I have tried debugging also.... What I have understood looking into that > > is, > > inside the module the image components 'userPics' is not a image component > > instead it is a object with null assigned to it. I think thats the reason > > it is saying > > 'Cannot access a property or method of a null object reference' > > > I have tried checking examples in the internet I found many examples where > > they will > > be accessing function and variables inside the module and that is working > > for me too. > > Have ever tried accessing UI component in module from main application. > > > On Fri, Feb 4, 2011 at 12:51 PM, Kronos <[email protected]> wrote: > > >> Sorry cant help u much... the code looks fine. However my guess is > >> that your module is not getting loaded for some reason. > >> Why dont u debug the code and see if ur onHeaderModuleReady function > >> is getting called or not. The most likely expanation is that it isnt > >> and because of that ur variable jpl_head never gets initialized. > >> Another thing that u can see before debugging is when the application > >> loads is the default image (jpl_head.png) getting displayed on the > >> screen. If it is then there is something else wrong in the code and u > >> wont find out without debugging. > > >> Sorry if I am stating the obvious. > > >> On Feb 3, 8:57 pm, Flex Hatter <[email protected]> wrote: > >> > Hi all, > > >> > Im still stuck with this... anybody know solution for this? > > >> > On Thu, Jan 27, 2011 at 5:26 PM, Flex Hatter <[email protected]> > >> wrote: > >> > > Hi all, > > >> > > I'm trying to use module in flex. I tried create a header module which > >> is > >> > > loaded by the main > >> > > application and should update the image component in the header. I > >> have > >> > > posted my code > >> > > below. I cannot update the image component in header, please help me > >> in > >> > > fixing the code and > >> > > suggest me if any better way. > > >> > > *index.mxml* > >> > > <?xml version="1.0" encoding="utf-8"?> > >> > > <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" > >> > > backgroundColor="#f2f2f2" backgroundAlpha="1" > >> > > layout="absolute" width="1000" height="800" > >> > > creationComplete="init()"> > >> > > <mx:Script> > >> > > <![CDATA[ > >> > > import mx.controls.Alert; > >> > > import com.jpl.modules.*; > >> > > import mx.events.ModuleEvent; > >> > > import mx.modules.ModuleManager; > >> > > import mx.modules.IModuleInfo; > > >> > > private var moduleInfo:IModuleInfo; > >> > > private function init():void{ > >> > > loadHeader(); > >> > > } > > >> > > private var jpl_head:Object; > >> > > //loading header into application > >> > > private function loadHeader():void{ > >> > > mod_progress.visible = true; > >> > > moduleInfo = ModuleManager.getModule( > >> > > "com/jpl/modules/headerMod.swf" ); > >> > > moduleInfo.addEventListener( ModuleEvent.READY, > >> > > onHeaderModuleReady); > >> > > moduleInfo.addEventListener(ModuleEvent.ERROR, > >> > > handleHeaderModuleError); > >> > > moduleInfo.addEventListener(ModuleEvent.PROGRESS, > >> > > onHeaderModuleProgress); > >> > > moduleInfo.load(); > >> > > } > >> > > protected function onHeaderModuleReady( > >> > > moduleEvent:ModuleEvent ):void{ > >> > > jpl_head = moduleInfo.factory.create() as > >> headerMod; > >> > > mod_holder.addChild(moduleInfo.factory.create() as > >> > > DisplayObject); > >> > > mod_progress.label = "" > >> > > mod_progress.visible = false; > >> > > } > >> > > protected function handleHeaderModuleError( > >> > > moduleEvent:ModuleEvent ):void{ > >> > > throw new Error( "Module error loading : " + > >> > > moduleEvent.module.url ); > >> > > } > >> > > protected function onHeaderModuleProgress( > >> > > moduleEvent:ModuleEvent ):void{ > >> > > mod_progress.label = 'Loading Header'; > >> > > mod_progress.setProgress( moduleEvent.bytesLoaded, > >> > > moduleEvent.bytesTotal ); > >> > > } > >> > > ]]> > >> > > </mx:Script> > > >> > > <mx:Canvas id="mod_holder"> > >> > > </mx:Canvas> > > >> > > <mx:ProgressBar id="mod_progress" > >> > > width="300" indeterminate="true" > >> > > trackHeight="5" labelPlacement="top" > >> > > label="Loading .."/> > >> > > <mx:Button x="143" y="154" label="Button" > >> > > click="jpl_head.changeUserPic('video_icon.png');"/> > > >> > > </mx:Application> > > >> > > *headerMod.mxml* > >> > > <?xml version="1.0" encoding="utf-8"?> > >> > > <mx:Module xmlns:mx="http://www.adobe.com/2006/mxml" > >> layout="absolute"> > >> > > <mx:Script> > >> > > <![CDATA[ > >> > > [Embed(source="assets/images/jpl_head.png")] > >> > > [Bindable] > >> > > public var headerImgCls:Class; > > >> > > public function changeUserPic(picUrl:String):void{ > >> > > userPics.source = picUrl; > >> > > } > >> > > ]]> > >> > > </mx:Script> > >> > > <mx:Canvas> > >> > > <mx:Image id="hdImg" width="1000" height="75" > >> > > source="{headerImgCls}"/> > >> > > <mx:Image id="userPics" x="924" y="9" > >> > > width="54" height="54"/> > >> > > </mx:Canvas> > >> > > </mx:Module> > > >> > > *Error on clicking button in index.mxml* > >> > > TypeError: Error #1009: Cannot access a property or method of a null > >> object > >> > > reference. > >> > > at > > >> com.jpl.modules::headerMod/changeUserPic()[E:\FlexTraining\jlp\src\com\jpl\ > >> modules\headerMod.mxml:10] > >> > > at > >> > > index/___index_Button1_click()[E:\FlexTraining\jlp\src\index.mxml:56] > > >> -- > >> You received this message because you are subscribed to the Google Groups > >> "Flex India Community" group. > >> To post to this group, send email to [email protected]. > >> To unsubscribe from this group, send email to > >> [email protected]. > >> For more options, visit this group at > >>http://groups.google.com/group/flex_india?hl=en. > > > > jlp2.zip > 200KViewDownload -- You received this message because you are subscribed to the Google Groups "Flex India Community" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/flex_india?hl=en.

