Я использую ModuleLoader, а IFlexModuleFactory нужен для ModuleManager. В общем сакральный смысл интерфейсов мне постичь не удалось. Пришлось поступить трусливо, обьявить интерфейс расширением IEventDispatcher и общаться с ним через события. Работает, данные передаются, но морального удовлетворения нет. Если кто расскажет как правильно общаться с модулями - буду благодарен. Потому как сам не могу понять. В Flex 3 Cookbook вообще написано
Цитата:
|
When using an <mx:ModuleLoader> object, the module instance is available from the child property:
|
а так не работает нифига, даже с примером из этой книги. В общем вот новый код интерфейса и кусок кода приложения:

Код AS3:
package ifc
{
import flash.events.IEventDispatcher;
public interface IStatusBar extends IEventDispatcher
{
function logInfo(eventType:String,eventText:String = ""):void;
}
}

Код AS3:
<mx:Script>
<![CDATA[
public var statusIfc:IStatusBar;
private function initApp():void
{
loadModule(mainStatusbar,"StatusBar.swf");
}
public function statusInterface():void {
statusIfc = mainStatusbar.child as IStatusBar;
}
private function connectHandler(event:Event):void {
statusIfc.logInfo(event.type);
}
]]>
</mx:Script>
<mx:Canvas>
<mx:ModuleLoader id="mainStatusbar" ready="statusInterface()"/>
</mx:Canvas>