`
lorry1113
  • 浏览: 263286 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

flex 使用viewstack实现页面的跳转(转)

    博客分类:
  • flex
阅读更多

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>

我的这个方法虽然可以实现跳转,但应该还有更好的方法。等我继续学习后再与大家分享。
这个只是我的一个简单的方法的实现,大家如果还有更好的方法,欢迎指正。谢谢^_^
分享到:
评论
4 楼 lorry1113 2010-09-29  
对啊,flex本就是一个APPLICATION,其他的都是它的子孙。不存在说明跳转,刚从JSP转过来做FLEX不习惯罢了
3 楼 远去的渡口 2010-09-29  
lorry1113 写道
<local:login_page id="login"></local:login_page>
<local:home_page id="home"></local:home_page>
这俩个是俩个自定义组件,你随便建俩个看看

狂晕,还以为是我的编辑器不提示。。。
不过,感觉flex里面其实真的也不需要象jsp一样跳转,如果我们总是习惯用它来和之前的jsp比较,还真是有点小麻烦,呵
昨天我已经完成从一个页面“跳”到另一个页面,简单替换组件就ok,感觉这个也挺好用的,不用这么麻烦去“跳转”了
2 楼 lorry1113 2010-09-28  
<local:login_page id="login"></local:login_page>
<local:home_page id="home"></local:home_page>
这俩个是俩个自定义组件,你随便建俩个看看
1 楼 远去的渡口 2010-09-28  
<local:login_page id="login"></local:login_page>  这种用法我这边怎么没有呢?是不是写错了?

相关推荐

    flex使用viewstack切换页面的例子

    综上所述,"flex使用viewstack切换页面的例子"展示了如何利用Flex 4的ViewStack组件创建多页面应用,通过编程或用户交互来切换不同视图,提供更好的用户导航体验。在实际开发中,理解并熟练运用这些知识点对于构建...

    Flex页面跳转.txt

    在Flex开发中,页面跳转是一项基本且重要的功能,它能够帮助开发者实现应用内的导航逻辑,为用户提供流畅的使用体验。根据给定文件的信息,本文将深入探讨Flex页面跳转的各种方式,并通过具体的代码示例来解释如何在...

    Flex viewstack切换

    Flex 实现viewstack简单切换。

    flex sample-跳转

    在Flex中,ViewStack是一个非常重要的容器控件,它允许你在应用程序中实现页面间的导航和切换效果。在这个名为"flex sample-跳转"的项目中,我们可以深入探讨Flex中的ViewStack控件以及与其相关的开发技巧。 ...

    flex页面跳转及数据绑定

    例如,在示例代码中,我们创建了三个子组件(shouye, leixing, makeid)并设置其标签和显示效果,然后通过按钮点击事件改变ViewStack的选择项来实现页面跳转。 2. **navigateToURL**:此方法用于打开新的浏览器窗口...

    flex动态导航跳转页面

    在本场景中,"flex动态导航跳转页面"意味着开发者使用Flex构建了一个具有动态导航功能的页面,该页面能够根据用户的操作或特定条件,引导用户跳转到不同的子页面或功能模块。 1. **Flex架构和组件**: Flex框架...

    flex的跳转

    以下是对Flex中实现页面跳转的几种方法的详细解释: 1. **使用ViewStack组件**: ViewStack是一种布局容器,它允许你在其中添加多个子组件,并通过改变selectedChild属性来显示或隐藏不同的子组件,从而实现类似...

    利用viewstack组件实现各个子组件之间的跳转和数据传递

    在本文中,我们将深入探讨如何使用ActionScript 3(AS3)中的ViewStack组件来实现在Flex应用程序中各个子组件之间的动态切换以及数据传递。ViewStack是Adobe Flex提供的一种容器,它允许用户在多个子组件之间进行...

    Flexstore源码解析1 ViewStack+ToggleButtonBar实现幕布特效

    ViewStack通过改变其子组件的可见性来实现页面之间的切换效果,这使得它非常适合用来创建类似幻灯片或幕布的切换效果。在Flexstore的实现中,每个幕布可能对应ViewStack中的一个子组件,当用户触发切换操作时,...

    flex4可用的3D页面切换

    为了实现3D页面切换,开发者可能还使用了`ViewStack`或`TabNavigator`组件,它们是Flex 4中用来管理多个视图或页面的容器。通过在用户切换页面时应用3D转换,可以创建出深度感和动态效果。 总的来说,这个项目展示...

    MXViewStackEffectExample FLEX切换效果

    MXViewStackEffectExample是基于Adobe Flex的一个示例项目,展示了如何使用MXViewStack组件和效果来实现平滑的视图切换。Flex是一个开源的、基于MXML和ActionScript的框架,用于构建富互联网应用程序(RIA)。这个...

    Flex详细文档.pdf

    - **多页面(States)**: 支持页面状态之间的转换,可以实现复杂的应用程序逻辑。 ##### 2. 数据处理与交互 - **数据绑定**: Flex支持强大的数据绑定机制,允许UI组件自动更新其内容以反映模型数据的变化。 - **...

    使用Flex4.5开发Android应用程序

    总结,使用Flex 4.5开发Android应用程序可以借助其强大的UI组件库、良好的编程模型和对原生API的访问能力,实现高效、跨平台的移动应用开发。虽然现在Flex可能不再是主流的Android开发工具,但了解其工作原理和优势...

    FLEX 3D螺旋相册

    在Flex中,我们可以使用MXML或ActionScript来实现3D效果,例如使用`&lt;mx:ViewStack&gt;`或`&lt;mx:Canvas&gt;`组件进行3D布局,并通过`translate3D()`、`rotate3D()`等函数控制对象的位移和旋转。在实现3D螺旋相册时,图片会...

    Flex 3D特效

    1. **Flex 3D组件**:Flex 3D特效主要通过使用以下几种关键组件来实现: - `mx:ViewStack`:提供在不同视图之间切换的能力,可以用于创建3D翻转效果。 - `mx:Accordion`:允许用户展开和折叠多个面板,可实现3D...

    Flex 对象调用之间的 数据传递 包括 页面调用之间的数据传递 -

    在Flex中,`ViewStack`或`NavigatorContent`等容器控件可以用来切换不同的页面或视图。如果需要在页面间传递数据,可以使用以下策略: 1. 使用全局变量:在全局范围内声明变量,但这种方法容易引发错误,因为多个...

    Flex ViewStack高度异常问题

    我跟WonJia打算写一个类似于《Flex编程注意之XX》的系列文章,此系列文章主要就是介绍一些我们在实际的项目中发现的一些Flex的问题,而这些问题可能已经被人发现了,也可能没被人发现,所以在此记录一下。

    Flex视图切换,自定义控件Demo.rar

    Flex提供了一些内置组件和设计模式来实现这一功能,如ViewStack、TabNavigator和Accordian等。这些组件可以根据用户的操作自动切换显示的内容,或者通过编程方式控制视图的切换。 ViewStack是一个简单的视图容器,...

    [使用Flex4.5开发黑莓平板应用].源代码

    此样本可能展示了如何使用Flex的ViewStack或NavigatorContent等组件来管理多个视图,以及在不同视图间导航的方法。 通过学习和研究这些示例,开发者可以掌握Flex4.5在BlackBerry平板应用开发中的核心概念和技术,...

Global site tag (gtag.js) - Google Analytics