事件的创建,分发,监听,处理,思路都是很清晰的
事件可以自己继承Event类,然后加入属性存储处理所需参数
分发可以EventDispather分发
监听和处理也不是很难
现在的问题是,处理了事件之后,该如何改变视图?
比如登录模块是一个Module,用的是ModuleLoader加载
那么登录之后,怎么取得另一个Module改变视图?
或者改变主引用程序,切换State或者ViewStack?
我想了一下...也只能写下一下的代码了
方法其实很简单,就是Application.application,获取主应用程序实例
<mx:ViewStack x="{application.width / 2 - 475}" y="{application.height / 2 - 300}"
id="mainView" width="950" height="600">
<!-- 登录模块 -->
<mx:Canvas label="登录" width="100%" height="100%" showEffect="Fade" hideEffect="Fade">
<mx:ModuleLoader id="login" url="com/emavaj/testexam/view/Login.swf"/>
</mx:Canvas>
<!-- 注册模块 -->
<mx:Canvas label="注册" width="100%" height="100%" showEffect="Fade" hideEffect="Fade">
<mx:ModuleLoader url="com/emavaj/testexam/view/Register.swf"/>
</mx:Canvas>
<!-- 后台模块 -->
<mx:Canvas label="" width="100%" height="100%" showEffect="Fade" hideEffect="Fade">
<mx:ModuleLoader id="admin" url="com/emavaj/testexam/view/Admin.swf"/>
</mx:Canvas>
</mx:ViewStack>
上面代码是,主应用程序结构,登录模块Module如下:
<mx:Panel x="322.5" y="176" width="305" height="218" layout="absolute">
<mx:TextInput id="username" x="71" y="42"/>
<mx:TextInput id="password" x="71" y="87" displayAsPassword="true"/>
<mx:Label x="10" y="44" text="用户名:"/>
<mx:Label x="24" y="89" text="密码:"/>
<mx:Button x="219" y="141" label="登录" click="login()"/>
<mx:Button x="155" y="141" label="注册" click="register()"/>
</mx:Panel>
当点击登录时,执行login() 函数,派发事件,处理了之后,需要跳转到Admin这个Module上
只是,我写了一个查找视图的工具类:
package com.emavaj.testexam.util{
import mx.core.Application;
/**.
* 视图工具
*/
public class ViewUtil{
/**单例对象.*/
private static var viewUtil:ViewUtil;
/**获取后台视图.*/
public static function getAdminModule():Object {
return Application.application.admin.child;
}
}
}
其实是个伪类,全部是静态方法
核心代码是:
Application.application
这一句就是取得了整个应用程序实例
然后 .admin 是取得后台模块的 ModuleLoader对象
.child就是真正的后台模块的 Module实例了...
取得了Module实例后,一切就好办了
方法虽笨,但是...简单易懂...
如果各位有更好的方法,请赐教
分享到:
相关推荐
5. **数据绑定**: Flex支持数据绑定,使得视图层和数据模型之间的同步变得简单。通过数据绑定,当模型数据改变时,界面会自动更新,反之亦然。 6. **事件处理**: Flex事件模型允许组件之间进行通信。源码中可能包含...
它可以用来创建视图层,类似于HTML,但提供了更多组件和数据绑定功能。 2. ActionScript:ActionScript是Flex应用的脚本语言,用于编写逻辑代码和处理事件。它是一种面向对象的语言,支持类、接口和包等特性。 三、...
模型层负责数据管理,视图层展示用户界面,控制器层处理用户输入和业务逻辑。 7. ** BlazeDS与LiveCycle Data Services** 这是Flex与后端服务器进行数据交换的桥梁。BlazeDS是一个开源项目,提供AMF(Action ...
在Flex后台管理系统中,Struts负责处理HTTP请求,协调控制层、视图层和模型层之间的交互,确保数据流的正确性,并提供动态生成HTML的能力,以响应Flex客户端的请求。 4. Flex组件:在提供的文件名称列表中,我们...
2. **视图(View)**:视图层是用户界面的展示部分,它与模型层交互,展示模型中的数据。在Flex中,视图由MXML组件和ActionScript类构成,它们呈现用户界面并响应用户交互。 3. **控制器(Controller)**:控制器层...
视图层负责展示数据和接收用户输入。在Flex中,视图通常由MX或Spark组件构成,如Canvas、Button、Label等。视图组件通过数据绑定直接连接到模型对象,当模型数据改变时,视图会自动反映这些变化。例如,一个列表组件...
在Flex 2中,开发者可以利用MXML(Markup for XML)进行界面布局,这是一种简化视图层设计的标记语言。通过MXML,你可以声明式的创建组件,而ActionScript则用于处理逻辑和数据操作。 文档中的“帮助”部分可能会...
模型层负责数据管理,视图层展示用户界面,控制器处理用户交互。Flex框架还包含了服务组件,用于与服务器进行数据交换。 四、Flex组件 Flex组件库包括各种预定义的UI元素,如按钮、文本输入框、列表等。开发者可以...
2. `UserManagerView`:这是视图层的实现,视图层负责展示数据和接收用户的输入。UserManagerView可能包含了与用户管理相关的界面元素,如表格、按钮等,以及这些元素如何响应用户交互的定义。 3. `...
视图层主要负责显示用户界面和接收用户的输入。在Cairngorm中,视图组件监听模型发布的事件,并根据事件更新UI。同时,视图可以触发事件,通知控制器有操作需要处理。 **3. Controller** 控制器层是模型和视图之间...
开发者可以使用Flex中的数据绑定功能来简化模型层与视图层之间的交互,确保数据的实时更新。 #### View(视图) 视图层负责显示模型数据,它包含了用户界面的所有元素。在Flex中,视图由MXML标记语言构建,这些标记...
它允许开发者将视图层的改变自动反映到数据模型,反之亦然,大大简化了UI与数据间的同步工作。PPT中可能包含实例来展示数据绑定的用法。 Flex的事件模型也是学习的重点。通过监听和处理事件,开发者可以响应用户的...
在系统的实现中,我们使用了Flex技术来实现客户端视图层,使用了J2EE技术来实现后台业务逻辑层。最后,我们对系统进行了测试和维护,确保系统的稳定运行。 本文对操作系统精品课程网的设计与实现进行了详细的介绍,...
5. **数据绑定**:Flex支持数据绑定,使得视图层与数据模型之间可以自动保持同步。这意味着当模型中的数据改变时,与之关联的界面元素会自动更新。 6. **事件驱动编程**:Flex应用是基于事件的,用户交互、网络请求...
你可以通过MXML定义组件布局、属性和事件监听器,它与ActionScript相结合,实现视图层的构建。 2. **ActionScript**:ActionScript是Flex的主要编程语言,基于ECMAScript,用于处理应用程序的逻辑和交互。它允许...
在Flex CairngormStoreWeb项目中,模型层负责处理业务逻辑和数据存储,视图层显示UI组件,控制器层协调模型和视图的交互。 4. **WEB-INF**:在Java Web应用中,WEB-INF是一个特殊目录,包含了应用的配置文件、库...
开发者可以通过这些组件轻松地在Flex应用中加载地图、执行地图操作,如缩放、平移,以及调用GIS服务,如查询、分析等。 在描述中提到的“常规地图操作功能”,包括地图的缩放、平移、旋转,以及图层的添加、删除和...