See sharedCode portion of my presentation on modules at blogs.adobe.com/aharui
________________________________ From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf Of Mark Sent: Wednesday, March 28, 2007 11:48 AM To: [email protected] Subject: [flexcoders] PopUpManager Problem I need some help with an error I am getting when using the popupmanager. Essentially the problem I am having is if I dynamically load SWFs from my main application and more than one of the SWF uses the popupmanager I receive an error. The specific error I am getting is: TypeError: Error #1009: Cannot access a property or method of a null object reference. at mx.managers::PopUpManager$/addPopUp() at mx.controls::Alert$/show() at Tab2/::onClick() at Tab2/___Button1_click() My test app to reproduce this problem is essentially on the main application a tabnavigator with two VBox as the tabs. The SWF files then get loaded dynamically into those VBox. The two SWF files only contain a button to press and it displays an Alert (the builtin Alert uses PopUpManager). Has anyone seen this error before! and can shed some insight? Thanks in advance. --Mark Below is my code to reproduce this: PopUpApp.as package { import mx.core.Application; import flash.events.Event; public class PopUpApp extends Application { [Bindable] public var debug:Boolean; public function PopUpApp() { super(); //Invoke the Application superclass this.addEventListener("creationComplete", onCreationComplete); } ! private function onCreationComplete(event:Event):voi! d &nb sp; { debug = (this.url.indexOf("-debug.swf")) > -1 ? true : false; } } } PopUpProblem.mxml <?xml version="1.0" encoding="utf-8"?> <local:PopUpApp xmlns:local="*" xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="100%" height="100%" creationComplete="onCreationComplete();"> <mx:Script> <![CDATA[ import mx.events.ModuleEvent; import mx.modules.ModuleManager; import mx.modules.IModuleInfo; public var tab1Mod:IModuleInfo; public var tab2Mod:IModuleInfo; private function onCreationComplete():void { if (this.debug) { tab1Mod = ModuleManager.getModule("Tab1-debug.swf"); tab2Mod = ModuleManager.getModule("Tab2-debug.swf"); ! ; &nbs! p; } else { tab1Mod = ModuleManager.getModule("Tab1.swf"); tab2Mod = ModuleManager.getModule("Tab2.swf"); } tab1Mod.addEventListener(ModuleEvent.READY, tab1ModReady); tab2Mod.addEventListener(ModuleEvent.READY, tab2ModReady); tab1Mod.load(); &! nbsp; tab2Mod.load(); } private function tab1ModReady(event:ModuleEvent):void { tab1.addChild(tab1Mod.factory.create() as DisplayObject); } private function tab2ModReady(event:ModuleEvent):void { tab2.addChild(tab2Mod.factory.create() as DisplayObject); } ! ]]> </mx:Script> ! &n bsp; <mx:TabNavigator width="100%" height="100%"> <mx:VBox id="tab1" label="Tab 1" width="100%" height="100%" /> <mx:VBox id="tab2" label="Tab 2" width="100%" height="100%" /> </mx:TabNavigator> </local:PopUpApp> Tab1.mxml <?xml version="1.0" encoding="utf-8"?> <mx:Module xmlns:mx="http://www.adobe.com/2006/mxml" layout="horizontal" percentWidth="100" percentHeight="100"> <mx:Script> <![CDATA[ import mx.controls.Alert; import flash.events.MouseEvent; ! ; private function onClick(event:MouseEvent):void { mx.controls.Alert.show("Tab1 Alert"); } ]]> </mx:Script> <mx:Button label="Button" click="onClick(event);"/> </mx:Module> Tab2.mxml <?xml version="1.0" encoding="utf-8"?> <mx:Module xmlns:mx="http://www.adobe.com/2006/mxml" layout="horizontal" percentWidth="100" percentHeight="100"> <mx:Script> <![CDATA[ import mx.controls.Alert; &! nbsp; import flash.events.MouseEvent; ! & nbsp; private function onClick(event:MouseEvent):void { mx.controls.Alert.show("Tab2 Alert"); } ]]> </mx:Script> <mx:Button label="Button" click="onClick(event);"/> </mx:Module>

