<handler>

イベントハンドラをオブジェクトに関連付けるタグ。

  • name属性にはイベント名を書きます。<handler>タグの親タグにそのイベントが発生すると<handler>タグ内のスクリプトが実行されます。
  • クラスの面からみると、イベントハンドラはオーバーライドされません。
  • reference属性を使うと、<handler>タグの親以外の他のオブジェクトのイベントを拾うことができます。

イベントに反応してスクリプトを動作させるための記述には下記のサンプルの通り何通りもあります。 このサンプルで行くと、

  • ささいなスクリプトはボタン1の例のように、<handler>を使うまでもなく属性値で記述。
  • 込み入ったスクリプトはボタン2の例のように<handler>内に記述。
  • イベント発生源よりも、作用対象側に記述するほうがいいならボタン3の例のようにreference属性で発生源を指定。
  • 複数のイベントで同じ動作をさせたいならボタン4の例のように動作そのものは<method>に書いておき、各<handler>からアクセスする。

という感じで使い分けできます。自由度高いので好みの問題かもしれませんが。

この内容を表示するためには Adobe Flash Plugin が必要です。

<?xml version="1.0" encoding="UTF-8"?>
<canvas proxied="false" bgcolor="0xeeeeee"> 
  <simplelayout spacing="5"/>
 
  <button onclick="txt1.setText('ボタン1押されました')">ボタン1</button>
  <text name="txt1"/> 
 
  <button>ボタン2 
    <handler name="onclick">
       txt2.setText("ボタン2押されました");
    </handler>
  </button>
  <text name="txt2"/> 
 
  <button name="btn3">ボタン3</button>
  <text>
     <handler name="onclick" reference="btn3">
        this.setText("ボタン3押されました");
     </handler>
  </text>
 
  <button>ボタン4 
    <handler name="onclick">
      this.osareta();
    </handler>
    <method name="osareta">
       txt4.setText("ボタン4押されました");
    </method>
  </button>
  <text name="txt4"/> 
 
</canvas>
handler.txt · 最終更新: 2009/10/18 03:36 (外部編集)
Copyright © 2008~ずっと ason(minamotonoason@gmail.com,waldiz membo-db)