【发布时间】:2012-03-25 02:03:54
【问题描述】:
我正在 AIR 中构建一个 Flex 4 应用程序。
我制作了一个 main.mxml 和一个 login.mxml 组件。一切正常,但我无法在我的两个 mxml(MAIN 和 COMPONENT)之间进行通信
登录有效,但它必须向主服务器发送一个事件,我可以更改主服务器中的状态。
这是我的裁剪代码。
login.mxml
//resulthandler if login is succesfull
loginUserResult.addEventListener(ResultEvent.RESULT, loginUserResultHandler);
public function loginUserResultHandler(event:ResultEvent):void
{
if(loginUserResult.lastResult == 1)
{
dispatchEvent(new Event('myLoginSuccesfull'));
trace("dispatchEvent - myLoginSuccesfull ");
}
else
{
this.loginErrorLBL.text = "Username and/or password aren't valid.";
}
}
所以 login.mxml 成功发送事件。
main.mxml
<fx:Script>
<![CDATA[
import mx.events.FlexEvent;
protected function windowedapplication1_initializeHandler(event:FlexEvent):void
{
loginInstanceCom.addEventListener('myLoginSuccesfull', onLoginSuccesful);
}
protected function onLoginSuccesful(event:Event):void{
trace("onLoginSuccesful recived");
currentState = "main";
}
]]>
</fx:Script>
</fx:Script>
<s:states>
<s:State name="State1"/>
<s:State name="main"/>
</s:states>
<components:login id="loginInstanceCom" x="263" y="10" width="239" height="223" includeIn="State1">
</components:login>
因此,来自组件 loginInstanceCom 的实例在我使用相同 ID 的窗口应用程序初始化中无法识别。
它给出了以下错误:
TypeError:错误 #1009:无法访问空对象引用的属性或方法。
希望有人可以帮助我。 谢谢!
【问题讨论】:
-
你不能只使用视图堆栈而不是状态吗?在我看来,国家的弹性太丑了。
标签: apache-flex flex4 components