Hatena::Groupactionscript

ActionScript(AS3)やFlexを勉強しようと思ってはじめた日記

2008年07月19日 土曜日ActionScriptの文法

イベント

| 04:30 | イベント - ActionScript(AS3)やFlexを勉強しようと思ってはじめた日記 を含むブックマーク はてなブックマーク - イベント - ActionScript(AS3)やFlexを勉強しようと思ってはじめた日記 イベント - ActionScript(AS3)やFlexを勉強しようと思ってはじめた日記 のブックマークコメント

イベントの登録

stage.addEventListener("click", clickHandler);
  • stageは、Flash全体を表す表示オブジェクト(らしい)
    • ということは表示オブジェクトは別に作れる?
    • Spriteでつくるオブジェクトは表示オブジェクトじゃないのかなあ?
  • addEventListener()
    • JavaScript
    • stageにイベントを登録している(stageオブジェクトがイベントの監視をしている)
    • clickイベントで実行するイベントハンドラを登録する

イベントハンドラ

private function clickHandler(event:MouseEvent):void{
 処理
}
  • イベントから渡されるオブジェクトも型がある!
  • 戻り値は常にないらしい
  • イベント中でaddChildなどをするときの動作が、JavaScriptと異なる!
    • この状況でJavaScriptでのaddChild()は、clickHandlerのaddChild()を利用することになるはず
    • ActionScriptでは、stageのaddChild()を利用している
      • インスタンスのメソッドを利用している
      • インスタンスに関連付けられたメソッド(この場合addChild())を「バインドメソッド」という
      • まさか、JavaScriptの勉強をすることになるとは思わなかった(Prototype.jsbindが出てくるはず)

イベントは伝播する

  • JavaScriptにはなかったよね?
  • イベントはどんどん伝播する
    • 子から親へ伝播する
  • ということで、伝播をとめるstopPropagation()メソッドがある
  • イベントには段階がある
    • この段階を判別するメソッドもある
  • どこでイベントが発生したのかもわかる