2 var X_Event_Rename = {},
\r
3 X_Event_RenameTo = {},
\r
5 // TODO IFRAMEload, SCRIPTload, LINKload raw.readyState !== 'complete' && raw.readyState !== 'loaded' && this.dispatch( 'load' )
\r
10 'IFRAMEload' : function( eventDispatcher ){
\r
11 eventDispatcher[ 'listen' ]( 'readystatechange', X_Event_proxy.IFRAMEload_proxy );
\r
14 IFRAMEload_proxy : function( e ){
\r
15 var raw = this[ '_rawObject' ];
\r
17 return ( raw.readyState === 'complete' || raw.readyState === 'loaded' ) ?
\r
18 X_EventDispatcher_actualHandleEvent( 'load' ) : X_CALLBACK_PREVENT_DEFAULT | X_CALLBACK_STOP_PROPAGATION;
\r
21 // TODO focusin focusout
\r
24 'contextmenu' : function( eventDispatcher ){
\r
25 eventDispatcher[ 'listen' ]( 'mousedown', contextmenu_proxy );
\r
28 contextmenu_proxy : function( e ){
\r
29 return e.button === 2 ? this[ 'dispatch' ]( 'contextmenu' ) : X_CALLBACK_NONE;
\r
33 X_Event_toPointer = !X_UA_HID.POINTER && ( X_UA_HID.TOUCH ?
\r
35 'touchstart' : 'pointerdown',
\r
36 'mousedown' : 'pointerdown',
\r
37 'touchend' : 'pointerup',
\r
38 'mouseup' : 'pointerup',
\r
39 'touchmove' : 'pointermove',
\r
40 'mousemove' : 'pointermove',
\r
41 'touchleave' : 'pointerleave',
\r
42 'mouseout' : 'pointerout',
\r
43 'mouseleave' : 'pointerleave',
\r
44 'touchcancel' : 'pointercancel',
\r
45 'contextmenu' : 'contextmenu',
\r
46 'dbclick' : 'dbclick',
\r
50 'mousedown' : 'pointerdown',
\r
51 'mouseup' : 'pointerup',
\r
52 'mousemove' : 'pointermove',
\r
53 'mouseout' : 'pointerout',
\r
54 'mouseleave' : 'pointerleave',
\r
55 'contextmenu' : 'contextmenu',
\r
56 'dbclick' : 'dbclick',
\r
61 X_EVENT_PRE_INIT = 5, // X_LISTENERS_KILL_RESERVED に +1 した値から開始。
\r
62 X_EVENT_XTREE_READY = 6,
\r
66 X_EVENT_XDOM_READY = 8,
\r
68 X_EVENT_COMPLETE = 9,
\r
70 X_EVENT_SUCCESS = 11,
\r
72 X_EVENT_PROGRESS = 13,
\r
73 X_EVENT_BEFORE_CANCEL = 14,
\r
74 X_EVENT_CANCELED = 15,
\r
75 X_EVENT_TIMEOUT = 16,
\r
77 X_EVENT_BEFORE_KILL_INSTANCE = 17,
\r
78 X_EVENT_KILL_INSTANCE_CANCELED = 18,
\r
79 X_EVENT_KILL_INSTANCE = 19,
\r
81 X_EVENT_VIEW_ACTIVATE = 20,
\r
82 X_EVENT_VIEW_DEACTIVATE = 21,
\r
83 X_EVENT_VIEW_RESIZED = 22,
\r
84 X_EVENT_VIEW_TURNED = 23,
\r
86 X_EVENT_BASE_FONT_RESIZED = 24,
\r
88 X_EVENT_BEFORE_UPDATE = 25,
\r
89 X_EVENT_UPDATED = 26,
\r
90 X_EVENT_AFTER_UPDATE = 27,
\r
92 X_EVENT_HASH_CHANGED = 28,
\r
95 X_EVENT_BEFORE_UNLOAD = 29,
\r
96 X_EVENT_UNLOAD = 30,
\r
98 X_EVENT_BACKEND_READY = 31,
\r
99 X_EVENT_BACKEND_NONE = 32,
\r
100 X_EVENT_BACKEND_RESEARCH = 33,
\r
101 X_EVENT_BACKEND_CHANGED = 34,
\r
103 X_EVENT_ANIME_BEFORE_START = 35,
\r
104 X_EVENT_ANIME_START = 36,
\r
105 X_EVENT_ANIME = 37,
\r
106 X_EVENT_ANIME_END = 38,
\r
107 X_EVENT_ANIME_BEFORE_STOP = 39,
\r
108 X_EVENT_ANIME_STOP = 40,
\r
110 X_EVENT_GPU_RELEASED = 41,
\r
112 X_EVENT_MEDIA_PLAYING = 42,
\r
113 X_EVENT_MEDIA_BEFORE_LOOP = 43,
\r
114 X_EVENT_MEDIA_LOOPED = 44,
\r
115 X_EVENT_MEDIA_PAUSED = 45,
\r
116 X_EVENT_MEDIA_ENDED = 46,
\r
117 X_EVENT_MEDIA_WAITING = 47,
\r
118 X_EVENT_MEDIA_SEEKING = 48,
\r
119 X_EVENT_MEDIA_WAIT_FOR_TOUCH = 49,
\r
121 X_EVENT_NEED_AUTH = 50,
\r
123 X_EVENT_DEBUG = 51,
\r
128 // on_screen_keyboard_show
\r
129 // on_screen_keyboard_hide
\r
132 * フレームワーク内で定義されたイベント。
\r
133 * @namespace X.Event
\r
135 X[ 'Event' ] = /** @lends X.Event */
\r
138 * X.ViewPort で発生する。DomContentLoaded に相当。document.body.innerHTML の内容から X.Node ツリーの作成が完了した。
\r
139 * このイベント以降、X.Doc.create(), X.Doc.find() 等が可能になる。
\r
141 'XDOM_READY' : X_EVENT_XDOM_READY,
\r
143 'COMPLETE' : X_EVENT_COMPLETE,
\r
144 'READY' : X_EVENT_READY,
\r
145 'SUCCESS' : X_EVENT_SUCCESS,
\r
146 'ERROR' : X_EVENT_ERROR,
\r
147 'PROGRESS' : X_EVENT_PROGRESS,
\r
148 'BEFORE_CANCEL' : X_EVENT_BEFORE_CANCEL,
\r
149 'CANCELED' : X_EVENT_CANCELED,
\r
150 'TIMEOUT' : X_EVENT_TIMEOUT,
\r
153 * X.EventDispatcher インスタンスを kill() すると発生。キャンセル可能。
\r
155 'BEFORE_KILL_INSTANCE' : X_EVENT_BEFORE_KILL_INSTANCE,
\r
157 * X.EventDispatcher インスタンスの kill() がキャンセルされた場合に発生。
\r
159 'KILL_INSTANCE_CANCELED' : X_EVENT_KILL_INSTANCE_CANCELED,
\r
161 * X.EventDispatcher インスタンスの kill が確定し、kill プロセスの前に発生。
\r
163 'KILL_INSTANCE' : X_EVENT_KILL_INSTANCE,
\r
166 * X.ViewPort で発生する。'visibilitychange', 'pageshow', window.onfocus を検出している。
\r
168 'VIEW_ACTIVATE' : X_EVENT_VIEW_ACTIVATE,
\r
170 * X.ViewPort で発生する。'visibilitychange', 'pagehide', window.onblur を検出している。
\r
172 'VIEW_DEACTIVATE' : X_EVENT_VIEW_DEACTIVATE,
\r
174 * X.ViewPort で発生する。
\r
176 'VIEW_RESIZED' : X_EVENT_VIEW_RESIZED,
\r
178 * X.ViewPort で発生する。
\r
180 'VIEW_TURNED' : X_EVENT_VIEW_TURNED,
\r
182 * X.ViewPort で発生する。ベースフォントサイズが変化すると発生する。body 直下の隠し要素のテキストサイズの変化で検出している。
\r
184 'BASE_FONT_RESIZED' : X_EVENT_BASE_FONT_RESIZED,
\r
187 * X_System で発生する。このイベントで要素のサイズを取得すると無限ループに!
\r
189 'BEFORE_UPDATE' : X_EVENT_BEFORE_UPDATE,
\r
191 * X_System で発生する。X.Node ツリーへの変更を Real DOM に反映した。
\r
193 'UPDATED' : X_EVENT_UPDATED,
\r
196 * X.ViewPort で発生する。X.Node ツリーへの変更を Real DOM に反映した。このイベントは lazyDispatch している。
\r
198 'AFTER_UPDATE' : X_EVENT_AFTER_UPDATE,
\r
200 'HASH_CHANGED' : X_EVENT_HASH_CHANGED,
\r
203 * X.ViewPort で発生する。
\r
205 'BEFORE_UNLOAD' : X_EVENT_BEFORE_UNLOAD,
\r
207 * X.ViewPort で発生する。
\r
209 'UNLOAD' : X_EVENT_UNLOAD,
\r
211 'BACKEND_READY' : X_EVENT_BACKEND_READY,
\r
212 'BACKEND_NONE' : X_EVENT_BACKEND_NONE,
\r
213 'BACKEND_RESEARCH' : X_EVENT_BACKEND_RESEARCH,
\r
214 'BACKEND_CHANGED' : X_EVENT_BACKEND_CHANGED,
\r
216 'ANIME_BEFORE_START' : X_EVENT_ANIME_BEFORE_START,
\r
217 'ANIME_START' : X_EVENT_ANIME_START,
\r
218 'ANIME' : X_EVENT_ANIME,
\r
219 'ANIME_END' : X_EVENT_ANIME_END,
\r
221 * xnode.stop() のみ、指定時間による停止では呼ばれない
\r
223 'ANIME_BEFORE_STOP' : X_EVENT_ANIME_BEFORE_STOP,
\r
224 'ANIME_STOP' : X_EVENT_ANIME_STOP,
\r
226 'GPU_RELEASED' : X_EVENT_GPU_RELEASED,
\r
228 'MEDIA_PLAYING' : X_EVENT_MEDIA_PLAYING,
\r
229 'MEDIA_BEFORE_LOOP' : X_EVENT_MEDIA_BEFORE_LOOP, // cancelable
\r
230 'MEDIA_LOOPED' : X_EVENT_MEDIA_LOOPED,
\r
231 'MEDIA_PAUSED' : X_EVENT_MEDIA_PAUSED,
\r
232 'MEDIA_ENDED' : X_EVENT_MEDIA_ENDED,
\r
233 'MEDIA_WAITING' : X_EVENT_MEDIA_WAITING,
\r
234 'MEDIA_SEEKING' : X_EVENT_MEDIA_SEEKING,
\r
235 'MEDIA_WAIT_FOR_TOUCH' : X_EVENT_MEDIA_WAIT_FOR_TOUCH,
\r
237 'NEED_AUTH' : X_EVENT_NEED_AUTH,
\r
239 'DEBUG' : X_EVENT_DEBUG
\r
242 X_TEMP.onSystemReady.push(
\r
245 for( k in X_Event_Rename ){
\r
246 //if( X_EMPTY_OBJECT[ k ] ) continue;
\r
247 name = X_Event_Rename[ k ];
\r
248 if( X_Type_isArray( name ) ){
\r
249 for( i = name.length; i; ){
\r
250 X_Event_RenameTo[ name[ --i ] ] = k;
\r
253 X_Event_RenameTo[ name ] = k;
\r