DisplayObject クラスのサブクラスとして Bitmap と Shape を紹介しましたが、次は、もう一つのたぶん一番良く参照されるサブクラスです。
InteractiveObject クラス
DisplayObject クラスにユーザーインタラクションのためのイベント等を追加した抽象クラスが InteractionObject クラス(livedocs@lab)です。概念的には、画面に表示されて、マウスやキーボード入力に反応するオブジェクトをモデル化したものと考えることができるでしょう。(ということは、Bitmap や Shape は、ユーザーが直接操作できないわけです。) InteractiveObject の直接のサブクラスには SimpleButton や TextField などがあります。この InteractionObject クラス(のサブクラス)はフォーカスの制御の単位にもなります。
これにより、AS1/2 では何種類もあったユーザーイベントの扱いが一つのクラスに集約され、すっきりと統一されました。AS2 の Key や Mouse といったグローバルオブジェクトによるユーザーイベントのハンドリングは AS3 にはありません。
イベントモデル自体も、新しくなっています。AS3 の新しいイベントモデルについては、重要なトピックですので別の機会に改めて詳しく説明したいと思っています。今回はとりあえず主なイベントの種類だけざっと触れておきます。
InteractiveObject がサポートするイベントは、AS2 では MovieClip や Button が持っていたイベントを引き継ぐものや、
mouseDown : マウスボタンを押した mouseUp : マウスボタンを離した keyDown : キーを押した keyUp : キーを離した focusIn : オブジェクトがフォーカスされた focusOut : オブジェクトがフォーカスを失くした
V2 UIComponent のイベントと同じもの、または新規追加(ダブルクリックなど)されたものがあります。
click : マウスがクリックされた doubleClick : マウスがダブルクリックされた keyFocusChange : キー操作でフォーカスを変えようとした
また、InteractiveOjbect には、右クリックをしたときに表示されるコンテキストメニューを InteractiveObject.contextMenu プロパティに設定することが出来ます。ただ、相変わらずトップレベルのオブジェクトにしか有効ではないようです。
コメントする