我正在嘗試編寫一個簡單的多核PureMVC helloword。我得到錯誤:此Notifier的multitonKey尚未初始化!Flex MultiCore PureMVC通知程序初始化錯誤
at org.puremvc.as3.multicore.patterns.observer::Notifier/get facade()[C:\ Documents and Settings \ Owner.CapricornOne \ My Documents \ My Workspaces \ PureMVC \ PureMVC_AS3_MultiCore \ src \ org \ puremvc \ as3 \ multicore \ patterns \ observer \ Notifier.as:89] at com.jacksutest.view :: ApplicationMediator()[C:\ myworkspace \ MyPureMVC \ src \ com \ jacksutest \ view \ ApplicationMediator.as:15]
這裏是主MXML:
public static const APP_NAME : String = "MyPureMVC";
private var facade : ApplicationFacade = ApplicationFacade.getInstance(APP_NAME);
public function init() : void
{
facade.startup(this);
}
...
<組件:WordForm ID = 「theWordForm」/ >
這是ApplicationFacade。 public class ApplicationFacade extends Facade實現IFacade {0} {0} {0} public static const STARTUP:String =「Startup」; public static const VERIFY_WORD:String =「VerifyWord」;
public function ApplicationFacade(key:String)
{
super(key);
}
public static function removeInstance(key:String):void
{
if(null != instanceMap)
{
if(null != instanceMap[key])
{
delete instanceMap[key];
}
}
}
/**
* Singleton ApplicationFacade Factory Method
*/
public static function getInstance(key:String):ApplicationFacade
{
if (null == instanceMap[key])
{
instanceMap[key] = new ApplicationFacade(key);
}
return instanceMap[key] as ApplicationFacade;
}
/**
* Register Commands with the Controller
*/
override protected function initializeController():void
{
super.initializeController();
registerCommand(STARTUP, StartupCommand);
registerCommand(VERIFY_WORD, VerifyWordCommand);
}
public function startup(app : MyPureMVC):void
{
trace("In facade startup");
sendNotification(STARTUP, app);
}
public function verifyWord(wordDTO : WordDTO) : void
{
sendNotification(VERIFY_WORD, wordDTO);
}
}
}
這是啓動命令
public class StartupCommand extends MacroCommand
{
public function StartupCommand()
{
trace("Startup command created");
addSubCommand(ModelPrepCommand);
addSubCommand(ViewPrepCommand);
}
}
這是ViewPrepCommand
public class ViewPrepCommand extends SimpleCommand
{
override public function execute(note : INotification) : void
{
var app : MyPureMVC = note.getBody() as MyPureMVC;
facade.registerMediator(new ApplicationMediator(app));
}
}
這是ApplicationMediator:
public class ApplicationMediator extends Mediator implements IMediator
{
public static const NAME : String = "MyPureMVCApplicationMediator";
public function ApplicationMediator(mainApp : MyPureMVC)
{
facade.registerMediator(new WordFormMediator(mainApp.theWordForm));
}
當facade.registerMediator發生錯誤。
+ +1對於發佈解決方案,一旦你解決了;) – dain 2011-05-28 13:01:08