Scott,
I may get corrected on this one, but take it for what it is worth.
I thought you had to create an instance of manager classes in the main application even if you did not use them there.
So you would put something like the following into your MainView.mxml :
private var dragManager:DragManager;

I do this out of habit, but not sure if it solves anything.

HTH,
Tony


Scott Melby wrote:


I am converting my application to use Modules... so far most things are
working, but I have run into two errors that I have yet to work around.
I have pasted the parts of the code pertaining to modules below the message.

1) Sometimes a refresh of the browser window (I am setup for
deeplinking... so it returns to the selectedIndex) results in a Class
not found error where the Class that cannot be found is my Module class
for the module for the deep link selectedIndex. Stack trace is pasted
below.

2) I am also getting intermittent DragManager exceptions. I thought
that using the SharedCodeModule approach would resolve this... but I
must have done something wrong.

As always any help is appreciated.

Thanks
Scott

--- MainView.mxml ---

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml <http://www.adobe.com/2006/mxml>"
layout="absolute" xmlns:components="common.components.*"
creationComplete="init()" height="100%" width="100%"
paddingBottom="0" paddingTop="0" paddingLeft="0" paddingRight="0">

<mx:Style source="/PMStyles.css"/>

<mx:Script>
<![CDATA[
import common.data.Project;
...

public function init():void
{
var m:IModuleInfo =
ModuleManager.getModule("SharedCodeModule.swf");
m.load(ApplicationDomain.currentDomain);
}

public function handleTabIndexChanged(event:IndexChangedEvent):void
{
deactivateOldTab(event.oldIndex);
activateNewTab(event.newIndex);
}

public function deactivateOldTab(index:int):void
{
if(index == 0)
{
ApplicationModule(projReportModule.child).deactivate();
}
else if(index == 1)
{
ApplicationModule(projDetailsModule.child).deactivate();
}
else if(index == 2)
{
ApplicationModule(elTaskModule.child).deactivate();
}
else if(index == 6)
{
ApplicationModule(setupMod.child).deactivate();
}
}

public function activateNewTab(index:int):void
{
if(index == 0)
{
if(projReportModule.child != null)
{
ApplicationModule(projReportModule.child).init();
}
}
else if(index == 1)
{

if(projDetailsModule.child != null)
{
ApplicationModule(projDetailsModule.child).init();
}
}
else if(index == 2)
{

if(elTaskModule.child != null)
{
ApplicationModule(elTaskModule.child).init();
}
}
else if(index == 6)
{

if(setupMod.child != null)
{
ApplicationModule(setupMod.child).init();
}
}

}

]]>
</mx:Script>

<mx:Panel width="100%" height="100%" horizontalCenter="0"
layout="absolute" resizeEffect="Resize"
title="Project Management System - Verson 2.02"
paddingBottom="0" paddingTop="0" paddingLeft="0"
paddingRight="0">
<components:ExtTabNavigator id="tn" width="100%" height="100%"
historyManagementEnabled="true"
change="handleTabIndexChanged(event)">
<mx:ModuleLoader id="projReportModule"
url="projectReportModule/ProjectReportModule.swf" label="Project Report"/>
<mx:ModuleLoader id="projDetailsModule"
url="projectDetailsModule/ProjectDetailsModule.swf" label="Project
Details"/>
<mx:ModuleLoader id="elTaskModule"
url="elementTaskModule/ElementTaskModule.swf" label="Element/Task"/>
<mx:VBox label="Production Report"/>
<mx:VBox label="Design Report"/>
<mx:VBox label="Calendar"/>
<mx:ModuleLoader id="setupMod"
url="setupModule/SetupModule.swf" label="Setup"/>
</components:ExtTabNavigator>

<mx:ApplicationControlBar width="95%" height="35">
<mx:HBox width="90%">
<mx:Label text="Status:" color="blue"
visible="{statusMsg.text.length > 0}"/>
<mx:Label id="statusMsg" text=""/>
</mx:HBox>
<mx:LinkButton id="logoutLink" color="0x0000ff" toolTip="Logout
{m_userName}" label="Logout {m_userName}" click="logoutUser(event)"/>
</mx:ApplicationControlBar>
</mx:Panel>

</mx:Application>

--- SharedCodeModule.mxml ---
<?xml version="1.0" encoding="utf-8"?>
<mx:Module xmlns:mx="http://www.adobe.com/2006/mxml <http://www.adobe.com/2006/mxml>">
<mx:Script>
<![CDATA[
import mx.managers.PopUpManager;
import common.util.Controller;
import mx.managers.DragManager;

private var controller:Controller;
private var dragManager:DragManager;
private var popupManager:PopUpManager
]]>
</mx:Script>
</mx:Module>

--- Module Class not found exception ---
Error: Class 'projectReportModule.ProjectReportModule' not found.
at _ProjectReportModule_mx_core_FlexModuleFactory/create()
at
mx.modules::ModuleLoader/moduleReadyHandler()[E:\dev\flex\sdk\frameworks\projects\framework\src\mx\modules\ModuleLoader.as:332]
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at
ModuleInfoProxy/moduleEventHandler()[E:\dev\flex\sdk\frameworks\projects\framework\src\mx\modules\ModuleManager.as:1025]
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at
ModuleInfo/readyHandler()[E:\dev\flex\sdk\frameworks\projects\framework\src\mx\modules\ModuleManager.as:704]
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at
mx.core::FlexModuleFactory/update()[E:\dev\flex\sdk\frameworks\projects\framework\src\mx\core\FlexModuleFactory.as:324]
at
mx.core::FlexModuleFactory/docFrameHandler()[E:\dev\flex\sdk\frameworks\projects\framework\src\mx\core\FlexModuleFactory.as:412]

--- TypeCoercion exception ---
TypeError: Error #1034: Type Coercion failed: cannot convert
mx.managers::[EMAIL PROTECTED] to mx.managers.IDragManager.
at mx.managers::DragManager$/get
impl()[E:\dev\flex\sdk\frameworks\projects\framework\src\mx\managers\DragManager.as:150]
at mx.managers::DragManager$/get
isDragging()[E:\dev\flex\sdk\frameworks\projects\framework\src\mx\managers\DragManager.as:185]
at
mx.controls.listClasses::ListBase/dragScroll()[E:\dev\flex\sdk\frameworks\projects\framework\src\mx\controls\listClasses\ListBase.as:7083]
at Function/http://adobe.com/AS3/2006/builtin::apply <http://adobe.com/AS3/2006/builtin::apply>()
at <anonymous>()
at SetIntervalTimer/onTimer()
at flash.utils::Timer/_timerDispatch()
at flash.utils::Timer/tick()

Reply via email to