关键字: Riawave
Riawave 不是一个Flex framework, 而是一个Flex best practice(最佳实践: 就好比SpringSide是java web开发的最佳实践)。Riawave提倡Component Based Design,以提高程序的可扩展性、可维护性和重构能力。
下载地址:http://ria.richtechmedia.com/flexsample/sample.rar
Riawave比较重要的2个类是CustomEvent和ModelLocator。其事件驱动机制基本是围绕这2个类展开的。ModelLocator主要是Singleton的持有数据对象,这里不多说。下面说说CustomEvent
Riawave中的CustomEvent代码如下
- public class CustomEvent extends Event{
-
- public var data:* = "default data";
- public var msg:* = "default msg";
-
-
- public function CustomEvent(type:String, ... args){
-
- super(type, true, true);
-
- if(args){
- this.data = ( args[0] != undefined ) ? args[0] : trace("");
- this.msg = ( args[1] != undefined ) ? args[1] : trace("");
- }
- }
-
- }
我稍微改了一下,主要是参数形式,和默认值。自我感觉这样更好些
- public class CustomEvent extends Event {
-
- public var data : *;
- public var message : String;
-
-
- public function CustomEvent(type:String, data:*=null, message:String="CustomEvent: no message") {
-
- super(type, true, true);
-
- this.data = data;
- this.message = message;
- }
-
- }
再有一点,就是Riawave中的定制事件类型(字符串常量)散布在很多代码里,比如LOGIN_OK就存在ContactProvider.as和FlexExample.mxml中。我把它们提取出来,放在一起CustomEventTypes
- public class CustomEventTypes {
-
- public static const LOGIN_OK:String = "loginOK";
-
- public static const ADD_CONTACT:String = "addContact";
-
- ...
- }
参考 http://ria.richtechmedia.com/