flex中实际没有页面跳转的概念,都只有在一个页面中,隐藏显示。那怎样才能很好地实现页面的跳转呢?我经过昨天不懈地努力尝试,终于实现了一种页面跳转的方法。
在网上查询相关资料中,都是说有如下几种方法:1)viewstack, 2)state, 3)modular, 4)navigatortourl等。我的这个方法也是用viewstack来实现。
使用viewstack时,我碰到的主要问题是:到底是要把某一页面的相关处理(比如该页面的按钮响应事件)放在该页面里处理,还是要放在main.mxml中来处理呢?因为放主mxml中处理,那假设要实现登陆跳转到另外一个界面,登录框中的“确定”按钮的响应方法该怎么写?没法写。。。把它写在主mxml中,在子mxml中找不到。我的解决方法是放在子页面里处理。具体实现如下:
(1)新建一个flex工程(main.mxml)
(2)新建两个mxml component(login.mxml, welcome.mxml)
假设要实现的效果是,在login中单击“确定”按钮,可以从login跳转到welcome(开始时显示的是login):
(3)在main.mxml中使用viewstack组建,把login和welcome作为viewstack的子组件,即
<mx:ViewStack id = "pageStores">
<local:login_page id="login"></local:login_page> //注意,要使login先显示出来,则要把它放第一个
<local:home_page id="home"></local:home_page>
</mx:ViewStack>
(4)在login中添加如下代码:
<mx:Script>
<![CDATA[
import mx.containers.ViewStack; //导入viwstack包,下面要用到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 Canvas; //将welcome作为显示的页面,即实现了页面的跳转
}
else
{
Alert.show("用户名或者密码错误!","ERROR!");
}
}
]]>
</mx:Script>
我的这个方法虽然可以实现跳转,但应该还有更好的方法。等我继续学习后再与大家分享。
这个只是我的一个简单的方法的实现,大家如果还有更好的方法,欢迎指正。谢谢^_^
分享到:
相关推荐
综上所述,"flex使用viewstack切换页面的例子"展示了如何利用Flex 4的ViewStack组件创建多页面应用,通过编程或用户交互来切换不同视图,提供更好的用户导航体验。在实际开发中,理解并熟练运用这些知识点对于构建...
在Flex开发中,页面跳转是一项基本且重要的功能,它能够帮助开发者实现应用内的导航逻辑,为用户提供流畅的使用体验。根据给定文件的信息,本文将深入探讨Flex页面跳转的各种方式,并通过具体的代码示例来解释如何在...
Flex 实现viewstack简单切换。
在Flex中,ViewStack是一个非常重要的容器控件,它允许你在应用程序中实现页面间的导航和切换效果。在这个名为"flex sample-跳转"的项目中,我们可以深入探讨Flex中的ViewStack控件以及与其相关的开发技巧。 ...
例如,在示例代码中,我们创建了三个子组件(shouye, leixing, makeid)并设置其标签和显示效果,然后通过按钮点击事件改变ViewStack的选择项来实现页面跳转。 2. **navigateToURL**:此方法用于打开新的浏览器窗口...
在本场景中,"flex动态导航跳转页面"意味着开发者使用Flex构建了一个具有动态导航功能的页面,该页面能够根据用户的操作或特定条件,引导用户跳转到不同的子页面或功能模块。 1. **Flex架构和组件**: Flex框架...
以下是对Flex中实现页面跳转的几种方法的详细解释: 1. **使用ViewStack组件**: ViewStack是一种布局容器,它允许你在其中添加多个子组件,并通过改变selectedChild属性来显示或隐藏不同的子组件,从而实现类似...
在本文中,我们将深入探讨如何使用ActionScript 3(AS3)中的ViewStack组件来实现在Flex应用程序中各个子组件之间的动态切换以及数据传递。ViewStack是Adobe Flex提供的一种容器,它允许用户在多个子组件之间进行...
ViewStack通过改变其子组件的可见性来实现页面之间的切换效果,这使得它非常适合用来创建类似幻灯片或幕布的切换效果。在Flexstore的实现中,每个幕布可能对应ViewStack中的一个子组件,当用户触发切换操作时,...
为了实现3D页面切换,开发者可能还使用了`ViewStack`或`TabNavigator`组件,它们是Flex 4中用来管理多个视图或页面的容器。通过在用户切换页面时应用3D转换,可以创建出深度感和动态效果。 总的来说,这个项目展示...
MXViewStackEffectExample是基于Adobe Flex的一个示例项目,展示了如何使用MXViewStack组件和效果来实现平滑的视图切换。Flex是一个开源的、基于MXML和ActionScript的框架,用于构建富互联网应用程序(RIA)。这个...
- **多页面(States)**: 支持页面状态之间的转换,可以实现复杂的应用程序逻辑。 ##### 2. 数据处理与交互 - **数据绑定**: Flex支持强大的数据绑定机制,允许UI组件自动更新其内容以反映模型数据的变化。 - **...
总结,使用Flex 4.5开发Android应用程序可以借助其强大的UI组件库、良好的编程模型和对原生API的访问能力,实现高效、跨平台的移动应用开发。虽然现在Flex可能不再是主流的Android开发工具,但了解其工作原理和优势...
在Flex中,我们可以使用MXML或ActionScript来实现3D效果,例如使用`<mx:ViewStack>`或`<mx:Canvas>`组件进行3D布局,并通过`translate3D()`、`rotate3D()`等函数控制对象的位移和旋转。在实现3D螺旋相册时,图片会...
1. **Flex 3D组件**:Flex 3D特效主要通过使用以下几种关键组件来实现: - `mx:ViewStack`:提供在不同视图之间切换的能力,可以用于创建3D翻转效果。 - `mx:Accordion`:允许用户展开和折叠多个面板,可实现3D...
在Flex中,`ViewStack`或`NavigatorContent`等容器控件可以用来切换不同的页面或视图。如果需要在页面间传递数据,可以使用以下策略: 1. 使用全局变量:在全局范围内声明变量,但这种方法容易引发错误,因为多个...
我跟WonJia打算写一个类似于《Flex编程注意之XX》的系列文章,此系列文章主要就是介绍一些我们在实际的项目中发现的一些Flex的问题,而这些问题可能已经被人发现了,也可能没被人发现,所以在此记录一下。
Flex提供了一些内置组件和设计模式来实现这一功能,如ViewStack、TabNavigator和Accordian等。这些组件可以根据用户的操作自动切换显示的内容,或者通过编程方式控制视图的切换。 ViewStack是一个简单的视图容器,...
此样本可能展示了如何使用Flex的ViewStack或NavigatorContent等组件来管理多个视图,以及在不同视图间导航的方法。 通过学习和研究这些示例,开发者可以掌握Flex4.5在BlackBerry平板应用开发中的核心概念和技术,...