代表用户交互事件。事件和相对应的事件处理器定义在事件中。
MOUSE
鼠标事件组
KEY
键盘事件组
FOCUS
焦点事件组
BEHAVIOR_EVENT
被特定的行为生成(或组合成)的事件组,如(BUTTON_CLICK、EDIT_VALUE_CHANGING等)
SCROLL
滚动事件组
SIZE
尺寸事件组(目前只有一个事件:onSize)
MOUSE_ENTER
事件的类型,鼠标进入元素。
MOUSE_LEAVE
事件的类型,鼠标离开元素。
MOUSE_MOVE
事件的类型,鼠标在元素上移动。
MOUSE_DOWN
事件的类型,鼠标按钮在元素上按下。
MOUSE_UP
事件的类型,鼠标按钮在元素上按起。
MOUSE_CLICK
事件的类型,鼠标按钮在元素上单击。
MOUSE_DCLICK
事件的类型,鼠标按钮在元素上双击。
MOUSE_WHEEL
事件的类型,鼠标按钮在元素上滚动滚轮。
MOUSE_TICK
事件的类型,鼠标在元素上按下或按起。
MOUSE_IDLE
事件的类型,鼠标脉冲事件。当鼠标在元素上右一段事件没有按下或移动时会发送该消息。默认的该事件触发气泡提示。
MOUSE_DRAG_REQUEST
鼠标按下并且移动超过某个阈值后触发这个事件。当在和
DROP
事件的类型,拖拽动作中元素被放下,target为被放下的元素。
DRAG_ENTER
事件的类型,被拖拽元素到达某个目标(target)元素上,该目标元素是当前可接受拖拽项的目标之一。
DRAG_LEAVE
事件的类型,被拖拽元素离开某个目标(target)元素上,该目标元素是当前即将离开的可接受拖拽项的目标之一。
DRAG_REQUEST
事件的类型,在被拖拽元素开始拖拽之前发生的源通知事件。要取消拖拽请在事件处理器中返回true。
KEY_DOWN
事件的类型,当元素或它的子元素聚焦时按下了键盘按键。
KEY_UP
事件的类型,当元素或它的子元素聚焦时按起了键盘按键。
KEY_CHAR
事件的类型,当元素或它的子元素聚焦时按下了某个字符。
SCROLL_HOME
SCROLL_END
SCROLL_STEP_PLUS
SCROLL_STEP_MINUS
SCROLL_PAGE_PLUS
SCROLL_PAGE_MINUS
SCROLL_POS
GESTURE_REQUEST
引擎发送该消息来请求元素制成的手势。通过对Event.flags字段使用"或"操作来设置。下面是支持的标志/手势类型:
Event.GESTURE_FLAG_ZOOM
- 两手指缩放;Event.GESTURE_FLAG_ROTATE
- 两手指选择;Event.GESTURE_FLAG_PAN_VERTICAL
- 垂直滑动或平移;Event.GESTURE_FLAG_PAN_HORIZONTAL
- 水平滑动或平移;Event.GESTURE_FLAG_TAP1
- 按住并点一下(Press and tap)手势;Event.GESTURE_FLAG_TAP2
- 两指点击(Two Finger tap);Event.GESTURE_FLAG_PAN_WITH_GUTTER
- PAN_VERTICAL and PAN_HORIZONTAL modifier - gutter.Event.GESTURE_FLAG_PAN_WITH_INERTIA
- PAN_VERTICAL and PAN_HORIZONTAL modifier - generate inertia events.Event.GESTURE_FLAGS_ALL
- 所有标志/事件GESTURE_ZOOM
缩放手势。 Event.deltaV
字段是一个浮点数,当放大时,它>1.0;当缩小是它<1.0。
GESTURE_PAN
滑动/平移手势. Event.deltaX
和Event.deltaY
字段是整数值 - 在X、Y方向上的像素数。
GESTURE_ROTATE
旋转手势。Event.deltaV
字段是角度增量(弧度)。
GESTURE_TAP1
按住并点一下(Press and tap)手势。
GESTURE_TAP2
两指点击(Two Finger tap)手势。
Event.flags字段在所有事件(除了GESTURE_REQUEST)总共是以下状态值的或操作集:
Event.GESTURE_STATE_BEGIN
- 在手势事件序列中第一个事件已经"on"。Event.GESTURE_STATE_INERTIA
- 被惯性处理器(inertia processor)合成的事件已经"on"。Event.GESTURE_STATE_END
- 在手势事件序列中最后一个事件已经"on"LOST_FOCUS
GOT_FOCUS
BUTTON_CLICK
BUTTON_PRESS
BUTTON_STATE_CHANGED
复选/单选框状态被改变。(并非所有的BUTTON_CLICK事件都会修改这个状态。)
EDIT_VALUE_CHANGING
EDIT_VALUE_CHANGED
SELECT_SELECTION_CHANGED
SELECT_STATE_CHANGED
HYPERLINK_CLICK
ACTIVATE_CHILD
POPUP_REQUEST
POPUP_READY
POPUP_DISMISSED
POPUP_DISMISSING
MENU_ITEM_ACTIVE
鼠标经过菜单项事件。Event.target为该菜单项,Event.owner为菜单的引发者。
MENU_ITEM_CLICK
单机菜单项事件。Event.target为该菜单项,Event.owner为菜单的引发者。
CONTEXT_MENU_REQUEST
当上下文菜单需要显示时引擎会触发该事件。evt.target
是鼠标右键点击的顶层元素。evt.source
[读/写]是将要弹出的菜单元素。当处理该事件时你可以设置你自己的菜单元素到evt.source字段。
CONTEXT_MENU_SETUP
当上下文菜单找到时触发该事件。evt.source
是该菜单元素,你可以修改它。
VISUAL_STATUS_CHANGED
当元素的可见性(display
/visibility
CSS属性)修改时触发该事件。该事件之后发送给该元素本身(不会进行冒泡)。
DISABLED_STATUS_CHANGED
当元素或者它的容器元素修改了它的禁用(disabled)状态是触发。
TOOLTIP_REQUEST
气泡提示的请求,该事件是在鼠标空闲(MOUSE_IDLE)期间触发的。evt.source中的元素是将要显示的气泡提示元素。你可以设置你自己的DOM元素到evt.source字段。若要取消其他提示,请设置evt.source为null,且事件处理函数返回true。
DOCUMENT_COMPLETE
当文档加载完成后触发——所有的外部资源加载完毕。evt.target为文档的根节点( )。注意:即使某些外部资源未获取到最终也会触发该事件。那些未获取到资源的元素会在状态标识位中设置
:incomplete
标识。
FORM_SUBMIT
behavior:form从表单中的type=submit按钮检查到提交事件。evt.data
字段是一个映射表对象,为发送到服务端的数据。你可以修改数据或通过返回true
(事件被处理了)来放弃提交。Y
FORM_RESET
behavior:form从表单中的type=reset按钮检查到提交事件。 evt.data
字段为设置到输入字段中的数据。
SINKING
switch(evt.type) { case Event.MOUSE_DOWN | Event.SINKING: // 在所有子元素之前处理 case Event.MOUSE_DOWN: // 若所有子元素都没有处理,则在这里处理 }
HANDLED
switch(evt.type) { case Event.MOUSE_DOWN: // 在所有子元素之后,且它们都么有处理该事件。 case Event.MOUSE_DOWN | Event.HANDLED: // 在所有子元素之后,且某些子元素处理了该事件。 }
DRAGGING_MOVE
DRAGGING_COPY
下面的draggingMode属性的值。
VK_CANCEL VK_BACK VK_TAB VK_CLEAR VK_RETURN VK_SHIFT VK_CONTROL VK_MENU VK_PAUSE VK_CAPITAL VK_KANA VK_HANGUL VK_JUNJA VK_FINAL VK_HANJA VK_KANJI VK_ESCAPE VK_CONVERT VK_SPACE VK_PRIOR VK_NEXT VK_END VK_HOME VK_LEFT VK_UP VK_RIGHT VK_DOWN VK_SELECT VK_PRINT VK_EXECUTE VK_SNAPSHOT VK_INSERT VK_DELETE VK_HELP VK_SLEEP VK_NUMPAD0 VK_NUMPAD1 VK_NUMPAD2 VK_NUMPAD3 VK_NUMPAD4 VK_NUMPAD5 VK_NUMPAD6 VK_NUMPAD7 VK_NUMPAD8 VK_NUMPAD9 VK_MULTIPLY VK_ADD VK_SEPARATOR VK_SUBTRACT VK_DECIMAL VK_DIVIDE VK_F1 VK_F2 VK_F3 VK_F4 VK_F5 VK_F6 VK_F7 VK_F8 VK_F9 VK_F10 VK_F11 VK_F12 VK_F13 VK_F14 VK_F15 VK_F16 VK_F17 VK_F18 VK_F19 VK_F20 VK_F21 VK_F22 VK_F23 VK_F24
示例:
switch(event.keyCode) { case Event.VK_HOME: index = 0; break; case Event.VK_END: index = this.length - 1; break; }
type
只读 - Integer,事件的类型,其值为上面定义的常量之一。
altKey
只读 - true/false, 如果ALT键被按下则返回true。该字段对应鼠标、键盘事件有效。
ctrlKey
只读 - true/false, 如果CTRL键被按下则返回true。该字段对应鼠标、键盘事件有效。
shiftKey
只读 - true/false, 如果SHIFT键被按下则返回true。该字段对应鼠标、键盘事件有效。
shortcutKey
r - true/false, 如果CTRL(Windows)或COMMAND (OSX)键被按下则返回true。该字段对应鼠标、键盘事件有效。如果你想以跨平台的方式处理键盘快捷命令时请使用使用这个属性。Windows系统中的CTRL+C 等同于OSX中的COMMAND+C。
commandKey
r - true/false, 如果Win(Windows)或COMMAND (OSX)键被按下则返回true。该字段对应鼠标、键盘事件有效。
extendedKey
r - true/false, 表示是否按下了扩展键, 比如101或102键盘中右边的ALT和CTRL键。
mainButton
只读 - true/false, 鼠标主按钮(通常是鼠标左键)是否按下。该字段对应鼠标事件有效。
propButton
只读 - true/false, 鼠标属性按钮(通常是鼠标右键)是否按下。
buttons
只读 - integer, 位标志,用于表示按下的鼠标按钮, 0x01 - 鼠标主(通常是左键)按钮, 0x02 - 鼠标右键, 0x04 - 鼠标中间按钮。
target
只读 - Element, 该事件的目标元素。
reason
读写 - integer, 控制事件代码的reason字段。
keyCode
只读 - integer, KEY_DOWN/KEY_UP事件的按键代码。KEY_CHAR事件的按下字符的代码点(codepoint)。
group
只读 - symbol, 事件组标识符,这里它是事件处理函数的标识符: #onMouse, #onKey, #onFocus等.
wheelDelta
只读 - integer, 鼠标滚轮"脉冲"事件 - 在onMouse/MOUSE_WHEEL事件中有效。值为-1或+1(取决于方向)。
scrollPos
只读 - integer, 在SCROLL_POS事件中的滚动位置。
scrollAxis
只读 - #vertical | #horizontal, 滚动条在滚动事件中的坐标轴。
x
只读 - integer, 鼠标事件中相对于元素本身(它的内容盒的原点)的x坐标。
y
只读 - integer, 鼠标事件中相对于元素本身(它的内容盒的原点)的y坐标。
xRoot
只读 - integer, 鼠标事件中相对于根元素()的x坐标。
yRoot
只读 -integer, 鼠标事件中相对于根元素()的y坐标。
xView
只读 - integer, 鼠标事件中相对于视图(窗口)的x坐标。
yView
只读 - integer, 鼠标事件中相对于视图(窗口)的y坐标。
xScreen
只读 - integer, 鼠标事件中相对于屏幕的x坐标。
yScreen
只读 -integer, 鼠标事件中相对于屏幕的y坐标。
owner
读写 - Element, MENU_ITEM_CLICK事件中该菜单的拥有者(引发者), 它也是Element.sendEvent方法的最后一个参数。
isOnIcon
只读 - true | false, 仅onMouse(evt)事件函数中有效。当鼠标在图标区域时返回true。元素的图标是指foreground、no-repeat的图像。
dragging
只读 - Element, onMouse(evt) 和 onExchange(evt) 事件函数有效。在onMouse()中是被拖动元素的引用。在onExchange()中是被拖动的数据。
draggingMode
只读 - integer, onMouse(evt)事件函数中有效。拖动模式 - Event.DRAGGING_MOVE或Event.DRAGGING_COPY——当前的拖动模式。
draggingDataType
只读 - symbol, onExchange(evt)事件函数中有效。以下值之一:
#text
-#html
#url
#file
#json
deltaV, deltaX, deltaY, flags
- onGesture()事件函数中的特有字段。将上面的GESTURE_****值的说明。
match
(eventName:string [,selector:string]) : true | false
当事件含有eventName事件名且它的目标元素匹配selector选择器。eventName可以接受符号事件名称:
exchangeData
() : array of symbols.
返回一个关联到exchange操作上的数据项类型的列表。这个列表是一个数组,它包含#text
, #html
, #url
, #file
, #picture
或#json
。
exchangeData
(dataType:symbol) : value
这个方法可以或安全到指定数据类型的数据:
#text
- 返回字符串 - 拖拽文本;
#html
- 返回(url,html)部分 - 被拖拽的HTML片段和HTML本身的url;
#url
- 返回(caption,url)部分 - 标题和url本身;
#file
- 返回文件名数组 - 被拖拽的文件路径列表;
#picture
- 如果拖拽数据中包含一个图像,则返回Image对象;
#json
- 返回一个值 - json值。
符号事件名称被Element.subscribe("name", ...)
、Element.on("name", ...)
、Event.match("name", ...)
以及event "name" () {}
方法使用。
"click"
- 按钮和超链接点击;
"dblclick"
- 鼠标双击;
"change"
- value值被用户修改;
"submit"
- 在form表单数据提交前触发表单提交事件;
"reset"
- 在form表单数据被重置前触发表单重置事件;
"expand"
- 当各种Bheavior展开(expand)项时被触发(如树视图插件),event.target即为展开的元素;
"collapse"
- 当各种Bheavior折叠(collapse)项时被触发(如树视图插件),event.target即为折叠的元素;
"statechange"
- UI状态修改。例如,当光标或选择位置改变时,behavior:textarea和behavior:richtext行为会触发该UI事件;
"contextmenu"
- 上下文菜单请求(鼠标右击或属性按键点击);
"animationstart"
- 动画生命周期事件 - 通知元素上的动画将要开始;
"animationend"
- 动画生命周期事件 - 通知元素上的动画将要结束;
"mediachange"
- Event.MEDIA_CHANGED, mediachange在运行时检查到显示设置/参数发生改变时被触发。仅当前视图(view)的根文档可以接收这个事件;
"contentchange"
- Event.CONTENT_CHANGED, 当元素的内容发生改变(增加或移除)时接收到这个事件;
"inputlangchange"
- Event.INPUT_LANGUAGE_CHANGED, 当用户改变了输入语言时,当前的聚焦元素收到这个事件。event.data是一个字符串 - ISO语言国家代码。
"mousedown"
- Event.MOUSE_DOWN 事件;
"mouseup"
- Event.MOUSE_UP 事件;
"mousemove"
- Event.MOUSE_MOVE 事件;
"mouseenter"
- Event.MOUSE_ENTER 事件,鼠标进入该元素内。
"mouseleave"
- Event.MOUSE_LEAVE 事件, 鼠标离开该元素。
"mousedragrequest"
- Event.MOUSE_DRAG_REQUEST 事件, 拖动操作(鼠标按下并且移动)被检查到时触发。
"focusin"
- Event.FOCUS_IN, 焦点进入事件,当元素或它内部的元素获取到焦点时触发该事件。如果焦点依然停留在容器元素内部,则容器元素不会接收到这个事件。
"focusout"
- Event.FOCUS_OUT, 焦点离开事件,当元素或它内部的元素失去到焦点时触发该事件。如果焦点依然停留在容器元素内部,则容器元素不会接收到这个事件。
"focus"
- Event.GOT_FOCUS, 获得焦点事件,当元素获取焦点时触发该事件, Event.target是获取焦点的元素。
"blur"
- Event.LOST_FOCUS, 失去焦点事件,当元素失去焦点时触发该事件, Event.target是失去焦点的元素。
"keydown"
- Event.KEY_DOWN, 键盘按下键事件,当有一个键被按下时触发。Event.keyCode是虚拟键代码 - Event.VK_****值之一。
"keyup"
- Event.KEY_UP, 键盘按起键事件,当一个按键松开时触发。Event.keyCode是虚拟键代码 - Event.VK_****值之一。
"keypress"
- Event.KEY_CHAR, 键盘按键事件,当鼠标接收到字符值时被触发。Event.keyCode是字符的UNICODE代码值。
"scroll"
- 滚动事件;
"popuprequest"
- Event.POPUP_REQUEST, 当popup元素被创建的第一时间被触发, 这时弹出窗口尚未创建。event.source为弹出popup元素。可以使用这个事件来填充popup的内容。
"popupready"
- Event.POPUP_READY, 当popup元素创建的最后一阶段被触发, 这时弹出窗口已经被创建。 event.source 为弹出popup元素。
"popupdismissed"
- Event.POPUP_DISMISSED, 这个事件在弹出窗口从屏幕上移除后被触发。
"tooltiprequest"
- Event.TOOLTIP_REQUEST, 该事件用于响应Event.MOUSE_IDLE。
"close"
- Event.DOCUMENT_CLOSE, 这个事件在文档从它的容器(view或frame)中移除时被触发。仅文档元素和它的容器可以接收这个事件。
"closerequest"
- Event.DOCUMENT_CLOSE_REQUEST, 这个事件在请求文档从它的容器(view或frame)中移除时被触发,仅文档元素和它的容器可以接收这个事件。通过处理这个请求,应用程序可以通过是处理器中设置event.cancel = true;
来取消窗口或文档的关闭。
"ready"
- Event.DOCUMENT_READY, 当文档被解析完毕并且它的DOM已经创建好时被触发。仅文档元素和它的容器可以接收这个事件。
"complete"
- Event.DOCUMENT_COMPLETE, 当文档下载完毕它请求的所有资源(图片、样式、脚本)之后被触发。仅文档元素和它的容器可以接收这个事件。
"query:{command}"
- 这个事件在查询准备执行{command}时被触发。比如当准备从剪切板粘贴到元素上时,"query:edit:paste"事件被发送给该元素以检查是否可以接收粘贴的内容。这个元素可以设置event.result字段来反馈是否支持这个command。Command在event.data字段中有一个额外的command参数。
"exec:{command}"
- 这个事件在执行{command}时被触发。比如当元素执行从剪切板粘贴命令时会触发"exec:edit:paste"事件。
任何其他字符串都会被认为是自定义事件, 要post/send这样的事件,需要使用Element.postEvent
/sendEvent(name,...)
方法。