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.

Reply via email to