Flex 事件分发(FlexViewer事件机制)剥离过程

页面导航:首页 > 网络编程 > Flex > Flex 事件分发(FlexViewer事件机制)剥离过程

Flex 事件分发(FlexViewer事件机制)剥离过程

来源:互联网 作者:脚本宝典 时间:2015-06-23 18:51 【

将FlexViewer里面的事件分发及监听事件机制剥离出来在其他项目中使用 AppEvent.as ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48

将FlexViewer里面的事件分发及监听事件机制剥离出来在其他项目中使用

AppEvent.as

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
package com
{
import flash.events.Event;
 
/**
* @author SamSung
* 创建时间:2014-7-24 下午1:21:05
*
*/
public class AppEvent extends Event
{
//--------------------------------------------------------------------------
//
// Properties
//
//--------------------------------------------------------------------------
 
private var _data:Object;
 
private var _callback:Function;
 
public function AppEvent(type:String, data:Object = null, callback:Function = null)
{
super(type);
_data = data;
_callback = callback;
}
 
 
/**
* The data will be passed via the event. It allows the event dispatcher to publish
* data to event listener(s).
*/
public function get data():Object
{
return _data;
}
 
/**
* @private
*/
public function set data(value:Object):void
{
_data = value;
}
 
/**
* The callback function associated with this event.
*/
public function get callback():Function
{
return _callback;
}
 
/**
* @private
*/
public function set callback(value:Function):void
{
_callback = value;
}
 
/**
* Override clone
*/
public override function clone():Event
{
return new AppEvent(this.type, this.data, this.callback);
}
 
/**
* Dispatch this event.
*/
public function dispatch():Boolean
{
return EventBus.instance.dispatchEvent(this);
}
 
/**
* Dispatch an AppEvent for specified type and with optional data and callback reference.
*/
public static function dispatch(type:String, data:Object = null, callback:Function = null):Boolean
{
return EventBus.instance.dispatchEvent(new AppEvent(type, data, callback));
}
 
public static function addListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
{
EventBus.instance.addEventListener(type, listener, useCapture, priority, useWeakReference);
}
 
public static function removeListener(type:String, listener:Function, useCapture:Boolean = false):void
{
EventBus.instance.removeEventListener(type, listener, useCapture);
}
 
}
}

EventBus.as

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
package com
{
import flash.events.Event;
import flash.events.EventDispatcher;
 
/**
* The EventBus allows centrallized communication among modules without
* point-to-point messaging. It uses the singleton design pattern
* to make sure one event bus is available globally. The bus itself
* is only available to the container. Modules use the container's
* static method to communicate with the event bus.
*/
public class EventBus extends EventDispatcher
{
/** Application event bus instance */
public static const instance:EventBus = new EventBus();
 
/**
* Normally the EventBus is not instantiated via the <b>new</b> method directly.
* The constructor helps enforce only one EvenBus availiable for the application
* (singeton) so that it asures the communication only via a sigle event bus.
*/
public function EventBus()
{
}
 
/**
* The factory method is used to create a instance of the EventBus. It returns
* the only instanace of EventBus and makes sure no another instance is created.
*/
[Deprecated(replacement="instance")]
public static function getInstance():EventBus
{
return instance;
}
 
/**
* Basic dispatch function, dispatches simple named events. In the case
* that the event is only significant by the event token (type string),
* this new dispatch method simplify the code.
*/
[Deprecated(replacement="AppEvent.dispatch")]
public function dispatch(type:String):Boolean
{
return dispatchEvent(new Event(type));
}
}
}

Tags:

相关文章

    文章评论

    最 近 更 新
    热 点 排 行
    Js与CSS工具
    代码转换工具
    
    <