Flex4自定义组件怎么传值
在用户登录成功之后跳转到如下的界面,并且在该页面已经能够得到用户的信息,我想问的是,在自定义的组件个人信息的页面怎么样得到当前页面中的用户信息主程序mxml如下:<?xm...
在用户登录成功之后跳转到如下的界面,并且在该页面已经能够得到用户的信息,我想问的是,在自定义的组件个人信息的页面怎么样得到当前页面中的用户信息
主程序mxml如下:
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" xmlns:page="page.*"
creationComplete="init();">
<s:layout>
<s:BasicLayout/>
</s:layout>
<fx:Script>
<![CDATA[
import com.learnsns.dy.valueobject.UserVO;
import mx.controls.Alert;
import mx.managers.BrowserManager;
import mx.managers.IBrowserManager;
import mx.rpc.events.ResultEvent;
import mx.utils.URLUtil;
[Bindable]
public var user:UserVO=new UserVO();
public var usId:String;
private function init():void{
var bm:IBrowserManager=BrowserManager.getInstance();
bm.init();
var o:Object=URLUtil.stringToObject(bm.fragment,"&");
usId=o.userId;
Alert.show(usId);
this.mudao.getUserById(usId);
}
private function getUserByIdHandler(event:ResultEvent):void{
user=event.result as UserVO;
Alert.show(user.trueName);
}
]]>
</fx:Script>
<fx:Declarations>
<!-- 将非可视元素(例如服务、值对象)放在此处 -->
<s:RemoteObject id="mudao" destination="UserService">
<s:method name="getUserById" result="getUserByIdHandler(event)"/>
</s:RemoteObject>
</fx:Declarations>
<s:HGroup>
<mx:HBox width="20%" >
<mx:VBox>
<mx:Image x="33" y="9" width="91" height="91" id="user_photo"/>
<s:Label x="33" y="143" text="姓名:{user.trueName}" width="68"/>
<s:Label text="城市:{user.city}"/>
<s:Button x="31" y="179" label="加为好友" visible="false"/>
</mx:VBox>
</mx:HBox>
<mx:HBox >
<s:VGroup left="10" right="10" top="10" bottom="-109">
<mx:TabNavigator id="tn" width="648" height="598">
<!-- Define each panel using a VBox container. -->
<mx:VBox label="首页">
<page:IndexPage />
</mx:VBox>
<mx:VBox label="个人主页">
<page:HomePage/>
</mx:VBox>
<mx:VBox label="个人信息">
<page:UserInfo/>
</mx:VBox>
</mx:TabNavigator>
</s:VGroup>
</mx:HBox>
</s:HGroup>
</s:Application>
而个人信息页面则是一些textInput标签,需要得到用户的信息在进行更改的其他操作! 展开
主程序mxml如下:
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" xmlns:page="page.*"
creationComplete="init();">
<s:layout>
<s:BasicLayout/>
</s:layout>
<fx:Script>
<![CDATA[
import com.learnsns.dy.valueobject.UserVO;
import mx.controls.Alert;
import mx.managers.BrowserManager;
import mx.managers.IBrowserManager;
import mx.rpc.events.ResultEvent;
import mx.utils.URLUtil;
[Bindable]
public var user:UserVO=new UserVO();
public var usId:String;
private function init():void{
var bm:IBrowserManager=BrowserManager.getInstance();
bm.init();
var o:Object=URLUtil.stringToObject(bm.fragment,"&");
usId=o.userId;
Alert.show(usId);
this.mudao.getUserById(usId);
}
private function getUserByIdHandler(event:ResultEvent):void{
user=event.result as UserVO;
Alert.show(user.trueName);
}
]]>
</fx:Script>
<fx:Declarations>
<!-- 将非可视元素(例如服务、值对象)放在此处 -->
<s:RemoteObject id="mudao" destination="UserService">
<s:method name="getUserById" result="getUserByIdHandler(event)"/>
</s:RemoteObject>
</fx:Declarations>
<s:HGroup>
<mx:HBox width="20%" >
<mx:VBox>
<mx:Image x="33" y="9" width="91" height="91" id="user_photo"/>
<s:Label x="33" y="143" text="姓名:{user.trueName}" width="68"/>
<s:Label text="城市:{user.city}"/>
<s:Button x="31" y="179" label="加为好友" visible="false"/>
</mx:VBox>
</mx:HBox>
<mx:HBox >
<s:VGroup left="10" right="10" top="10" bottom="-109">
<mx:TabNavigator id="tn" width="648" height="598">
<!-- Define each panel using a VBox container. -->
<mx:VBox label="首页">
<page:IndexPage />
</mx:VBox>
<mx:VBox label="个人主页">
<page:HomePage/>
</mx:VBox>
<mx:VBox label="个人信息">
<page:UserInfo/>
</mx:VBox>
</mx:TabNavigator>
</s:VGroup>
</mx:HBox>
</s:HGroup>
</s:Application>
而个人信息页面则是一些textInput标签,需要得到用户的信息在进行更改的其他操作! 展开
2个回答
展开全部
如果不想传值,想直接在UserInfo界面里面拿到User信息,你可以在UserInfo界面中获取当前应用的对象(this.parentApplication),然后通过这个对象拿到User信息,或者因为UserInfo是当前Application的子类,你可以直接在UserInfo里面使用this.parentDocument来得到Application的对象
追问
其实可以这样
在UserInfo中定义一个public类型的UserVO变量,然后在MainFrame中引用UserInfo的时候将得到的user传值进去就行了,
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询