`
houwei
  • 浏览: 61816 次
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

Flex 开发架构(一): 混沌未开-Flex-all-in-one

    博客分类:
  • Flex
阅读更多

混沌未开,顾名思义就是匹萨店里面烘烤的色香味俱全的一个pizza大饼,在一个面饼的底板上,混合所有的原料。 Lets make Pizza!

 

Flex与生俱来的是它的事件驱动(event-driven)的特点。就是说,Flex可以使用它的标签做到任何事情。因此开发一个Flex应用程序最简单,最基础的方法就是使用Flex标签,先来看看代码。

 

Loginview,用户界面部分:

 

<mx:Form id=”loginForm” x=”0″ y=”0″>
          <mx:FormItem label=”Username:” >
               <mx:TextInput id=”username” />
           </mx:FormItem>
           <mx:FormItem label=”Password:” >
               <mx:TextInput id=”password” displayAsPassword=”true” />
           </mx:FormItem>
           <mx:FormItem direction=”horizontal” verticalGap=”15″ paddingTop=”5″ width=”170″>
               <mx:Button id=”loginBtn” label=”Login” click=”login()”/>
           </mx:FormItem>
 </mx:Form>

 

 

 

使用 <mx:RemoteObject> 标签调用远程服务:

 

<mx:RemoteObject  id=”loginReq” destination=”flexmvcRO”>
    <mx:method name=”login” result=”loginHandler(event)” fault=”mx.controls.Alert.show(event.fault.faultString)”>
     <mx:arguments>
      <userName>{username.text}</userName>
      <password>{password.text}</password>
     </mx:arguments>
    </mx:method>
</mx:RemoteObject>

 

现在,在login方法中发送请求:

 

   if(Validator.validateAll(validators).length == 0){
     loginReq.login.send();
   }  

 

 

在发送请求之后,需要建立一个返回结果的处理方法:

 

  private function  loginHandler(event:ResultEvent):void{
    var isLogin:Boolean = event.result as Boolean;
   if(isLogin){
    this.parentApplication.viewStack.selectedIndex=1;
    dispatchEvent(new LoginUserEvent(username.text));
   }
  }

 

 

 

最后,在页面之间建立联系,在这里我使用播送事件:

 

dispatchEvent(new LoginUserEvent(username.text));

 

 

播送用户自定义的事件,就必须在代码最前面写入下述的元标签代码:

 

 <mx:Metadata>
     [Event(name="loginUser", type="flash.events.Event")]
</mx:Metadata

 

 

然后,建立用户自定义的事件LoginUserEvent.as:

 

import flash.events.Event;
 public class LoginUserEvent extends Event
 {
  public static const LOGINUSEREVENT:String =”loginUser”;
  public var loginUserName:String = “”;
  
  public function LoginUserEvent(userName:String)
  {
   super(LOGINUSEREVENT, true, true);
   this.loginUserName = userName;
  }
  override public function clone():Event {
     
      return new LoginUserEvent(loginUserName);
     
   }

 

 

当登录成功后,密友列表页面将会显示,BuddyListVew.mxml

重要的是在列表代码中,首先要监听LoginUserEvent,因此要创建一个preinitialize的方法:

 

<mx:Panel xmlns:mx=”http://www.adobe.com/2006/mxml” title=”Buddy List of {loginUserName}”     preinitialize=”init()” width=”500″ height=”320″>
   private function init():void{
   this.parentApplication.addEventListener(LoginUserEvent.LOGINUSEREVENT, getUserName);
 }

 

 

然后完成事件监听的管理程序:

 

private function getUserName(event:LoginUserEvent):void{
loginUserName = event.loginUserName;
loginReq.getAllFriends.send();
}

 

 

发送获得全部密友列表的请求,并且创建对应的管理方法:

   private function getAllFriendsHandler(event:ResultEvent):void{
   mybuddyList = event.result as ArrayCollection;
   
  }

 

在代码中,必须包含定义远程对象的标签:

<mx:RemoteObject  id=”loginReq” destination=”flexmvcRO”>
    <mx:method name=”getAllFriends” result=”getAllFriendsHandler(event)” fault=”mx.controls.Alert.show(event.fault.faultString)”>
     <mx:arguments>
      <userName>{loginUserName}</userName>
     </mx:arguments>
    </mx:method>
</mx:RemoteObject>

  

 

 

 

 

 

使用Flex标签完成程序方法非常简单,并且对于简单的系统来说, 也是非常有效,其商务逻辑层也不复杂。但在实际的应用中,并非只存在这样的项目,相反,实际工作中往往需要大量的远程对象的通讯。

 

好了,来看看:中央管理-Flex Central Management.

 

 

 

 

 

 

 

 

 

 

 

10
1
分享到:
评论

相关推荐

    flex布局-flex-layout-master.zip

    - `flex`:是`flex-grow`, `flex-shrink`和`flex-basis`的简写形式。 - `align-self`:允许单个Flex项独立设置其在交叉轴上的对齐方式,覆盖容器的`align-items`属性。 5. **Flex容器属性**:用于控制整个Flex...

    前端移动Web第二天:Flex伸缩布局-携程首页案例.zip

    此外,通过设置`flex-grow`, `flex-shrink`和`flex-basis`这三个Flex项目的属性,可以控制它们在可用空间中的扩展、收缩和基础大小。 总的来说,通过Flex布局,携程首页能够实现响应式设计,保证在不同分辨率和屏幕...

    flex滚动条三种实现方式

    在前端开发中,Flex布局(Flexible Box)是一种用于创建弹性盒模型的CSS3模块,它极大地增强了网页布局的灵活性。而当内容超出容器时,滚动条的出现是必不可少的。在Flex布局中,我们可以有几种不同的方法来实现滚动...

    QCon 2009 beijing全球企业开发大会ppt:11.Flex体系架构深度剖析

    本次演讲旨在从产品核心、工具及数据服务、应用开发三个层面全面解析Flex体系架构,帮助参会者更深入地理解Flex生态系统及其在丰富互联网应用(RIA)中的作用。 #### 一、Flex的历史与演进 - **企业应用的发展历程**...

    plugin-flex:Twilio CLI插件可与Flex插件构建器进行交互

    @ twilio-labs / plugin-flex Twilio CLI插件可与进行交互该插件为添加了功能,以便在本地开发,构建和部署; 它使用 。要求安装Twilio CLI 通过npm或yarn : $ npm install -g twilio-cli$ yarn global add twilio-...

    跟我StepByStep学FLEX教程------王一松

    - **FLEX介绍**:FLEX是一种用于构建跨平台富互联网应用程序(RIA)的技术。它使用了一种名为MXML的标记语言来创建用户界面,并利用ActionScript进行逻辑处理。FLEX能够与多种后端技术集成,如Java、.NET等,支持...

    Flex布局笔记.docx

    - `flex`:属性简写,一次设置`flex-grow`, `flex-shrink`和`flex-basis`,如`flex: 1 0 auto`表示增长比例为1,不收缩,基础大小为自动。 通过这些属性的组合使用,开发者可以创建出各种复杂的动态布局,适应不同...

    (微信小程序毕业设计)电器租赁小程序

    flex-direction: row; } .nav { flex-wrap: wrap; justify-content: center; padding-top: 20rpx; background: #fff; } .nav-item { margin: 30rpx 50rpx 10rpx; width: 80rpx; } .nav-item image { ...

    动画演示flex属性 - 可点击切换属性

    动画演示flex布局,包括flex父容器属性以及flex布局子元素...flex-start:侧轴开始 flex-end:侧轴结束 center:居中 stretch:拉伸(默认值) 四. justify-content 子盒子主轴方向上的对齐方式 等,字数不够,无法一一列举

    微信小程序-微信小程序的Flex布局demo

    wxflex 微信小程序的Flex布局demo-4种必备常用的Flex布局模式 微信小程序开发论坛 垂直微信小程序开发交流社区:http://weappdev.com 官方建议的Flex布局 &gt; Flex的布局相比传统的float布局来... align-self: flex-end;

    Food-Blog-Template --- Using-Flex-Box:食品博客模板-使用Flex Box

    4. `justify-content`:沿主轴方向调整项目布局,可设置为`flex-start`(左对齐)、`flex-end`(右对齐)、`center`(居中)、`space-between`(两端对齐,项目之间有等间距)、`space-around`(每个项目两侧的间隔...

    Flex 开发架构

    1. **混沌未开—Flex-all-in-one** - 在早期阶段,开发者可能倾向于将所有代码都放在一个Flex项目中,这种方式虽然简单直接,但在项目逐渐扩大时会变得难以管理和维护。 2. **中央管理—Flex Central Management** ...

    微信小程序 Flex布局详解

    弹性因子(flex-grow, flex-shrink, flex-basis)在微信小程序的Flex布局中,每个伸缩项目都可以通过flex属性来指定其弹性因子,它是一个简写属性,可以设置三个值:flex-grow, flex-shrink, 和 flex-basis。1. flex...

    FLEX资源--------PureMVC开发包下载

    "FLEX资源--------PureMVC开发包下载" 这个标题指出,我们关注的是一个与Adobe Flex相关的资源,具体来说是PureMVC框架的开发包。PureMVC是一个多层应用架构(MVC)框架,适用于Flex开发者,帮助他们更有效地组织和...

    解决flex布局space-between最后一行左对齐的方法

    首先看代码和效果↓ &lt;style&gt; .main { outline: 1px solid; display: flex; justify-content: space-... flex-wrap: wrap; } .main&gt;div { width: 100px; height: 100px; margin-bottom: 10px; backg

    flex开发系列书籍:基于REST服务的WebGIS系统

    根据给定文件的信息,本文将深入探讨基于Flex和REST服务的WebGIS系统开发,并通过陇西县地理空间信息应用系统这一实例,展示如何利用这些技术提高WebGIS开发效率及用户体验。 ### 一、WebGIS的发展历程及其问题 ...

    flex_component.zip_flex

    - `flex`是一个简写属性,等同于设置`flex-grow`, `flex-shrink` 和 `flex-basis`。例如,`flex: 1 0 auto;` 等同于 `flex-grow: 1; flex-shrink: 0; flex-basis: auto;`。 - `align-self: stretch`是默认值,使得...

    FLEX教程-FLEX教程

    - **Cairngorm**: 一个流行的 Flex 应用架构模式。 - **特点**: - 基于 MVC 设计模式。 - 简化 Flex 应用的开发和维护。 #### 32. Demo15:Cairngorm - **实现**: - 分解应用为模型、视图和控制器三个部分。 -...

Global site tag (gtag.js) - Google Analytics