flex4.5使用viewstack实现页面跳转
来源:互联网 发布:seo排名优化服务 编辑:程序博客网 时间:2024/06/04 19:47
创建一个flex项目,主页面为main.mxml放在默认包下,和三个Canvas组件(放在component包下),代码如下:
main.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:component="component.*">
<fx:Declarations>
<!-- 将非可视元素(例如服务、值对象)放在此处 -->
</fx:Declarations>
<mx:ViewStack id = "pageStores">
<component:login id="login">
</component:login>
<component:welcome id="welcome" width="331" height="226">
</component:welcome>
<component:mainframe id="mainframe" width="398" height="304">
</component:mainframe>
</mx:ViewStack>
</s:Application>
<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas
xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" width="400" height="304"
creationComplete="init()" >
<fx:Declarations>
<!-- 将非可视元素(例如服务、值对象)放在此处 -->
</fx:Declarations>
<fx:Script>
<![CDATA[
import mx.containers.ViewStack;
import mx.controls.Alert;
private var vs:ViewStack; //vs是main.mxml中定义的viewstack
private function init():void
{
vs = this.parent as ViewStack; //初始login的时候获得main.mxml中的viewstack,即pagestores(它的id),记住,要在login.mxml中加
//入:creationComplete="init()
}
private function getChild(str:String):Object //这段代码是为了获得指定页面对应的对象
{
for each(var obj in vs.getChildren()) //遍历vs中的所有子组件(即所有页面),页面不会太多,顶多一二十个,所以这个方法不会太耗时
{
if(obj.name === str) //如果是想找的页面,就返回这个对象。比如想找到welcome.mxml,则令str="welcome"
{
break;
}
}
return obj;
}
private function btnClick(event:Event):void //确定按钮的响应
{
var obj:Object = getChild("welcome"); //找到想要显示的对象
if(username.text == "admin" && password.text == "admin") //如果用户名与密码正确
{
vs.selectedChild = obj as mx.containers.Canvas; //将welcome作为显示的页面,即实现了页面的跳转
}
else
{
mx.controls.Alert.show("用户名或者密码错误!","ERROR!");
}
}
private function btnClick1(event:Event):void{
var obj:Object=getChild("mainframe");
vs.selectedChild = obj as mx.containers.Canvas;
}
protected function button1_clickHandler(event:MouseEvent):void
{
// TODO Auto-generated method stub
btnClick(event);
}
protected function button2_clickHandler(event:MouseEvent):void
{
// TODO Auto-generated method stub
btnClick1(event);
}
]]>
</fx:Script>
<s:Panel x="24" y="29" width="366" height="265" title="登录">
<s:TextInput x="107" y="31" id="username" toolTip="用户名"/>
<s:TextInput x="108" y="81" id="password" toolTip="密码"/>
<s:Label x="49" y="32" width="43" height="20" text="用户名"/>
<s:Label x="53" y="81" width="43" height="20" text="密码"/>
<s:Button x="200" y="121" label="登录" click="button1_clickHandler(event)"/>
<s:Button x="200" y="175" label="主窗体" click="button2_clickHandler(event)"/>
</s:Panel>
</mx:Canvas>
welcome.mxml
<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" width="400" height="300">
<fx:Declarations>
<!-- 将非可视元素(例如服务、值对象)放在此处 -->
</fx:Declarations>
<s:Label x="39" y="29" text="登录成功"/>
</mx:Canvas>
mainframe.mxml
<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" width="400" height="300"
creationComplete="init()">
<fx:Script>
<![CDATA[
import mx.containers.ViewStack;
private var vs:ViewStack;
private function init():void{
vs=this.parent as ViewStack;
}
private function getChild(str:String):Object{
for each(var obj in vs.getChildren()){
if(obj.name===str){
break;
}
}
return obj;
}
private function btnClick(event:Event):void{
var obj:Object=getChild("login");
vs.selectedChild= obj as mx.containers.Canvas;
}
protected function button1_clickHandler(event:MouseEvent):void
{
// TODO Auto-generated method stub
btnClick(event);
}
]]>
</fx:Script>
<fx:Declarations>
<!-- 将非可视元素(例如服务、值对象)放在此处 -->
</fx:Declarations>
<mx:AdvancedDataGrid id="adg1" x="27" y="44" designViewDataType="flat">
<mx:columns>
<mx:AdvancedDataGridColumn dataField="col1" headerText="列 1"/>
<mx:AdvancedDataGridColumn dataField="col2" headerText="列 2"/>
<mx:AdvancedDataGridColumn dataField="col3" headerText="列 3"/>
</mx:columns>
</mx:AdvancedDataGrid>
<s:Button x="185" y="263" label="返回登录页面" click="button1_clickHandler(event)"/>
</mx:Canvas>
本人QQ:735900995,谢谢指导
- flex4.5使用viewstack实现页面跳转
- flex 使用viewstack实现页面的跳转
- flex 使用viewstack实现页面的跳转(转)
- flex 使用viewstack实现页面的跳转(转)
- Flex ViewStack页面跳转
- flex4的viewstack之间的跳转
- ViewStack实现页面切换功能
- flex页面跳转-viewStack(1)
- Flex4的页面跳转
- flex页面跳转-viewStack(2)-强制页面初始化
- Flex4 学习--页面跳转方式
- Flex4 学习--页面跳转方式
- 使用viewstack
- 使用storyboard实现页面跳转
- 使用Intent实现页面跳转
- 使用Intent实现页面跳转
- 使用Intent实现页面跳转
- 使用AJAX实现页面跳转
- Propeller:Google正开发的Android和iOS上的Flipboard杀手
- C/C++基本类型字节
- 什么是FastCGI?
- Apache + resin 配置集群(负载均衡)
- 用JSP实现上传文件的两种方法
- flex4.5使用viewstack实现页面跳转
- 杂文1
- 采用圣天狗网络授权,认证不通过
- 两道题、明白永远爱你的人是谁!
- Java Swing获取系统字体
- JSP彩色验证码
- Boss Seam概论
- Struts+Spring+Hibernate快速入门
- AIR版的IFrame(在AIR中嵌入HTML)