草庐IT

flex viewstack的简单应用

李思威 2023-03-28 原文
1          Flex API里面介绍viewstack:

MX ViewStack 导航器容器由一组彼此上下堆叠的子容器组成,其中一次只可以显示一个子容器。选择另一个子容器后,它将显示在原来子容器的位置处,所以看起来好像此子容器替换了原来的子容器。但是,原来的子容器仍然存在,只不过它现在处于不可见状态。

注意:MX 导航器容器的直接子容器必须为 MX 容器(MX 布局或 MX 导航器容器)或者 Spark NavigatorContent 容器。您不能直接在某一导航器中嵌套控件或除 Spark NavigatorContent 容器之外的 Spark 容器;它们必须是子 MX 容器的子容器。

ViewStack 容器不提供用于选择当前哪个子容器可见的用户界面。通常,ActionScript 中设置其 selectedIndexselectedChild 属性以响应某些用户操作。或者,可以将 MX LinkBar、TabBar、ButtonBar 或者 ToggleButtonBar 控件或 Spark ButtonBar 控件与 ViewStack 容器关联,以提供一个导航界面。为此,请将 ViewStack 容器指定为 LinkBar、TabBar 或 ToggleButtonBar 容器的 dataProvider 属性的值。

2    简单应用:

  2.1   selectedChild

 

 。Work.mxml组件里的代码:

 

  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <local:WorkAS xmlns:fx="http://ns.adobe.com/mxml/2009"   
  3.               xmlns:s="library://ns.adobe.com/flex/spark"   
  4.               xmlns:mx="library://ns.adobe.com/flex/mx" xmlns:local="*" width="400" height="300"> 
  5.     <fx:Declarations> 
  6.         <!-- 将非可视元素(例如服务、值对象)放在此处 --> 
  7.         <s:RadioButtonGroup id="index"/> 
  8.     </fx:Declarations> 
  9.     <mx:VBox> 
  10.         <mx:HBox> 
  11.     <s:RadioButton label="111"  groupName="index"/> 
  12.     <s:RadioButton label="222"  groupName="index"/> 
  13.     <s:RadioButton label="333"  groupName="index"/> 
  14.     <s:RadioButton label="444"  groupName="index"/> 
  15.             </mx:HBox> 
  16.         <mx:VBox> 
  17.     <mx:ViewStack id="viewstack"> 
  18.         <mx:VBox id="new1"> 
  19.             <s:Button label="1111"/> 
  20.         </mx:VBox> 
  21.         <mx:VBox id="new2"> 
  22.             <s:Button label="2222"/> 
  23.         </mx:VBox> 
  24.         <mx:VBox id="new3"> 
  25.             <s:Button label="3333"/> 
  26.         </mx:VBox> 
  27.         <mx:VBox id="new4"> 
  28.             <s:Button label="4444"/> 
  29.         </mx:VBox> 
  30.     </mx:ViewStack> 
  31.             </mx:VBox> 
  32.         </mx:VBox>  
  33. </local:WorkAS> 

WorkAS.as文件里面的代码:
 

 

  1. package  
  2. {  
  3.     import flash.events.Event;  
  4.       
  5.     import mx.containers.VBox;  
  6.     import mx.containers.ViewStack;  
  7.     import mx.events.FlexEvent;  
  8.       
  9.     import spark.components.Application;  
  10.     import spark.components.RadioButtonGroup;  
  11.       
  12.     public class WorkAS extends Application  
  13.     {  
  14.         public var index:RadioButtonGroup;  
  15.         public var viewstack:ViewStack;  
  16.         public var new1:VBox;  
  17.         public var new2:VBox;  
  18.         public var new3:VBox;  
  19.         public var new4:VBox;  
  20.         public function WorkAS()  
  21.         {  
  22.             super();  
  23.             addEventListener(FlexEvent.CREATION_COMPLETE,initer);  
  24.         }  
  25.         private function initer(event:FlexEvent):void{  
  26.             index.addEventListener(Event.CHANGE,change);  
  27.               
  28.         }  
  29.         private function change(event:Event):void{  
  30.             if("111"==index.selectedValue){  
  31.                 viewstack.selectedChild=new1;  
  32.             }  
  33.             else if("222"==index.selectedValue){  
  34.                 viewstack.selectedChild=new2;  
  35.             }  
  36.             else if("333"==index.selectedValue){  
  37.                 viewstack.selectedChild=new3;  
  38.             }  
  39.             else if("444"==index.selectedValue){  
  40.                 viewstack.selectedChild=new4;  
  41.             }  
  42.         }  
  43.     }  
运行效果:

   

 

 

 2.2  ToggleButtonBar

mxml组件代码:

  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <Day3:DMMainAS xmlns:fx="http://ns.adobe.com/mxml/2009"   
  3.                xmlns:s="library://ns.adobe.com/flex/spark"   
  4.                xmlns:mx="library://ns.adobe.com/flex/mx" xmlns:Day3="Day3.*" > 
  5.     <fx:Declarations> 
  6.         <!-- 将非可视元素(例如服务、值对象)放在此处 --> 
  7.     </fx:Declarations> 
  8. <mx:VBox>
  9.     <mx:ToggleButtonBar dataProvider="viewstack"> 
  10.     </mx:ToggleButtonBar> 
  11.     <mx:ViewStack id="viewstack"> 
  12.         <mx:VBox label="First"> 
  13.             <s:Button label="按钮1111"/> 
  14.         </mx:VBox> 
  15.         <mx:VBox label="Second"> 
  16.             <s:Button label="按钮2222"/> 
  17.         </mx:VBox> 
  18.         <mx:VBox label="Third"> 
  19.             <s:Button label="按钮3333"/> 
  20. </mx:VBox> 
  21. </mx:ViewStack> 
  22. </mx:VBox>
  23. </Day3:DMMainAS> 
 运行效果:

 

     

 

 以上 viewstack的两种基本用法 学习ING....

 

有关flex viewstack的简单应用的更多相关文章

  1. ruby - 将差异补丁应用于字符串/文件 - 2

    对于具有离线功能的智能手机应用程序,我正在为Xml文件创建单向文本同步。我希望我的服务器将增量/差异(例如GNU差异补丁)发送到目标设备。这是计划:Time=0Server:hasversion_1ofXmlfile(~800kiB)Client:hasversion_1ofXmlfile(~800kiB)Time=1Server:hasversion_1andversion_2ofXmlfile(each~800kiB)computesdeltaoftheseversions(=patch)(~10kiB)sendspatchtoClient(~10kiBtransferred)Cl

  2. ruby-on-rails - Rails 应用程序之间的通信 - 2

    我构建了两个需要相互通信和发送文件的Rails应用程序。例如,一个Rails应用程序会发送请求以查看其他应用程序数据库中的表。然后另一个应用程序将呈现该表的json并将其发回。我还希望一个应用程序将存储在其公共(public)目录中的文本文件发送到另一个应用程序的公共(public)目录。我从来没有做过这样的事情,所以我什至不知道从哪里开始。任何帮助,将不胜感激。谢谢! 最佳答案 无论Rails是什么,几乎所有Web应用程序都有您的要求,大多数现代Web应用程序都需要相互通信。但是有一个小小的理解需要你坚持下去,网站不应直接访问彼此

  3. ruby - 无法运行 Rails 2.x 应用程序 - 2

    我尝试运行2.x应用程序。我使用rvm并为此应用程序设置其他版本的ruby​​:$rvmuseree-1.8.7-head我尝试运行服务器,然后出现很多错误:$script/serverNOTE:Gem.source_indexisdeprecated,useSpecification.Itwillberemovedonorafter2011-11-01.Gem.source_indexcalledfrom/Users/serg/rails_projects_terminal/work_proj/spohelp/config/../vendor/rails/railties/lib/r

  4. ruby-on-rails - Rails 应用程序中的 Rails : How are you using application_controller. rb 是新手吗? - 2

    刚入门rails,开始慢慢理解。有人可以解释或给我一些关于在application_controller中编码的好处或时间和原因的想法吗?有哪些用例。您如何为Rails应用程序使用应用程序Controller?我不想在那里放太多代码,因为据我了解,每个请求都会调用此Controller。这是真的? 最佳答案 ApplicationController实际上是您应用程序中的每个其他Controller都将从中继承的类(尽管这不是强制性的)。我同意不要用太多代码弄乱它并保持干净整洁的态度,尽管在某些情况下ApplicationContr

  5. ruby-on-rails - 如何在我的 Rails 应用程序 View 中打印 ruby​​ 变量的内容? - 2

    我是一个Rails初学者,但我想从我的RailsView(html.haml文件)中查看Ruby变量的内容。我试图在ruby​​中打印出变量(认为它会在终端中出现),但没有得到任何结果。有什么建议吗?我知道Rails调试器,但更喜欢使用inspect来打印我的变量。 最佳答案 您可以在View中使用puts方法将信息输出到服务器控制台。您应该能够在View中的任何位置使用Haml执行以下操作:-puts@my_variable.inspect 关于ruby-on-rails-如何在我的R

  6. ruby - 简单获取法拉第超时 - 2

    有没有办法在这个简单的get方法中添加超时选项?我正在使用法拉第3.3。Faraday.get(url)四处寻找,我只能先发起连接后应用超时选项,然后应用超时选项。或者有什么简单的方法?这就是我现在正在做的:conn=Faraday.newresponse=conn.getdo|req|req.urlurlreq.options.timeout=2#2secondsend 最佳答案 试试这个:conn=Faraday.newdo|conn|conn.options.timeout=20endresponse=conn.get(url

  7. ruby - 用 Ruby 编写一个简单的网络服务器 - 2

    我想在Ruby中创建一个用于开发目的的极其简单的Web服务器(不,不想使用现成的解决方案)。代码如下:#!/usr/bin/rubyrequire'socket'server=TCPServer.new('127.0.0.1',8080)whileconnection=server.acceptheaders=[]length=0whileline=connection.getsheaders想法是从命令行运行这个脚本,提供另一个脚本,它将在其标准输入上获取请求,并在其标准输出上返回完整的响应。到目前为止一切顺利,但事实证明这真的很脆弱,因为它在第二个请求上中断并出现错误:/usr/b

  8. ruby-on-rails - 简单的 Ruby on Rails 问题——如何将评论附加到用户和文章? - 2

    我意识到这可能是一个非常基本的问题,但我现在已经花了几天时间回过头来解决这个问题,但出于某种原因,Google就是没有帮助我。(我认为部分问题在于我是一个初学者,我不知道该问什么......)我也看过O'Reilly的RubyCookbook和RailsAPI,但我仍然停留在这个问题上.我找到了一些关于多态关系的信息,但它似乎不是我需要的(尽管如果我错了请告诉我)。我正在尝试调整MichaelHartl'stutorial创建一个包含用户、文章和评论的博客应用程序(不使用脚手架)。我希望评论既属于用户又属于文章。我的主要问题是:我不知道如何将当前文章的ID放入评论Controller。

  9. ruby-on-rails - 如何在 Gem 中获取 Rails 应用程序的根目录 - 2

    是否可以在应用程序中包含的gem代码中知道应用程序的Rails文件系统根目录?这是gem来源的示例:moduleMyGemdefself.included(base)putsRails.root#returnnilendendActionController::Base.send:include,MyGem谢谢,抱歉我的英语不好 最佳答案 我发现解决类似问题的解决方案是使用railtie初始化程序包含我的模块。所以,在你的/lib/mygem/railtie.rbmoduleMyGemclassRailtie使用此代码,您的模块将在

  10. 世界前沿3D开发引擎HOOPS全面讲解——集3D数据读取、3D图形渲染、3D数据发布于一体的全新3D应用开发工具 - 2

    无论您是想搭建桌面端、WEB端或者移动端APP应用,HOOPSPlatform组件都可以为您提供弹性的3D集成架构,同时,由工业领域3D技术专家组成的HOOPS技术团队也能为您提供技术支持服务。如果您的客户期望有一种在多个平台(桌面/WEB/APP,而且某些客户端是“瘦”客户端)快速、方便地将数据接入到3D应用系统的解决方案,并且当访问数据时,在各个平台上的性能和用户体验保持一致,HOOPSPlatform将帮助您完成。利用HOOPSPlatform,您可以开发在任何环境下的3D基础应用架构。HOOPSPlatform可以帮您打造3D创新型产品,HOOPSSDK包含的技术有:快速且准确的CAD

随机推荐