イベントを拾うということはつまり、時間が何秒か過ぎたとか、文字や画像がクリックされたときに何かの関数を呼ぶということです。

Yahoo! Widget Engineでは、主なオブジェクトについて、 ・左ボタンでクリックされた ・左ボタンでダブルクリックされた ・右ボタンでクリックされた ・マウスカーソルが重なった ・マウスカーソルが画像の上空から外れた などのイベントがあらかじめ定義されています。

kon(XML)ファイルの上では

<image name="someImage">
    <onMouseUp>
        log("マウスがクリックされました")
    </onMouseUp>
</image>
という具合に定義しますが、XMLで定義していないものでもJavaScriptで定義してしまうことができます。

まずデバッグウインドウを開いた状態で

/dump someObject
と入力してください。以下の例はyKayoのデスクトップ付箋です。
Object "stickyWindow":
Dumping object...
         alignment: left
        attributes: [object DOMNodeMap]
        childNodes: [object DOMNodeList]
            closed: false
  contextMenuItems: [object MenuItem],[object MenuItem]
        firstChild: [object Image]
            hAlign: left
            height: 166
           hOffset: 99
           hOffset: 99
                id: 
         lastChild: [object TextArea]
             level: normal
            locked: false
              name: stickyWindow
       nextSibling: [object DOMComment]
          nodeName: window
          nodeType: 1
         nodeValue: 
     onContextMenu: undefined
        onDragDrop: undefined
       onDragEnter: undefined
        onDragExit: undefined
    onFirstDisplay: undefined
       onGainFocus: Sticky.onGainFocus();
			Sticky.update(battState, wifiState);
         onKeyDown: undefined
        onKeyPress: undefined
           onKeyUp: undefined
       onLoseFocus: Sticky.onLoseFocus();
       onMouseDown: undefined
      onMouseEnter: undefined
       onMouseExit: undefined
         onMouseUp: undefined
      onMultiClick: yKayoApp.showHuman();
       onTextInput: undefined
           opacity: 255
   opaqueForEvents: false
     ownerDocument: [object WidgetDocument]
        parentNode: [object YWEWidget]
   previousSibling: [object DOMComment]
              root: [object RootView]
            shadow: true
             style: [object Style]
           tagName: window
             title: YKayo付箋
           tooltip: 
            vAlign: top
           visible: true
           visible: true
           vOffset: -1
           vOffset: -1
             width: 258
            zOrder: 0

ここではマウスのクリックを定義してみましょう。
現在のところ、onMouseUpはundefinedになっています。

stickyWindow.onMouseUp=function(arg1,arg2){
    log("クリックされました");
}
このような命令文を書くと、デバッグウインドウにメッセージを出すことができます。

Add new attachment

Only authorized users are allowed to upload new attachments.
« This page (revision-1) was last changed on 23-Oct-2009 13:54 by kei