MMF2の基礎概念13

●オブジェクトイベント

主要なすべてのオブジェクトは「オブジェクトイベント」を持つことができる。「オブジェクトイベント」は各オブジェクトのプロパティから新規に作成する。「オブジェクトイベント」に直接アクセスするためのキーボードショートカットが無いのでアクセスがやや面倒くさい面がある。

object_event

オブジェクトイベントの作成


object_event_icon

オブジェクトイベントを持たせるとアイコンに小さな変化


オブジェクトイベントは一つのオブジェクトで複数持つことができる。イベントの実行順はグローバルイベントの後。

>>基礎概念2を参照

複数のオブジェクトがそれぞれオブジェクトイベントを持つ場合、オブジェクトイベント同士の実行優先順位はフレームエディター上に配置した時の順番と一致しこの順番変更はできない。現在の実行順を参照する機能も無いので、無計画にオブジェクトイベントを作りすぎると実行順が不明になって管理できなくなる。

一応プロパティからオブジェクトイベントに固有の名前をつけることができるけどこれは他と重複しても問題ないらしい(※1)。というのも、この名前は各オブジェクトイベントを区別するための識別子(identifier)では無いようなので、すなわちプロパティからつけた名前で指定したオブジェクトイベントをフレームイベントや他オブジェクトイベントから呼び出し参照・連携させることもできない、あるいはそういう機能が無い。
(※1)オブジェクト内部で同じ名前のオブジェクトイベントを複数作るとイベントエディターからオブジェクトイベントにアクセスできなくなる弊害はある。実行順にどう影響するか(あるいはバグなのか)など仕様に不明な点もあるので同じ名前にしない方が良いのは間違いない。

object_event_call

名前が重複すると呼び出しが消える

object_event_non_error

名前が重複しないと呼び出しできる(これが普通)

オブジェクトイベントにはフレーム内の他オブジェクトをインポートできる。ただしオブジェクトイベントには(グローバルイベントにも)「オブジェクトグループ」など実体を持たない「識別子(identifier)」はインポートできない。

object_event_import

他オブジェクトをインポートする

●オブジェクトイベントの有効性

オブジェクトイベントから「他オブジェクトのインポート」を利用すると、そのオブジェクトイベント内で使われるあるいは関連性があるオブジェクトだけでイベントをまとめることができるので、ソースコードの閲覧性が良くなる。必然的にそのイベントに関連の無いオブジェクトが除外されるので、後からコードの見直しをする際にも「このイベントにはこのオブジェクトが関連するんだな」というオブジェクト同士の依存関係が把握しやすいなどのメリットもある。

●オブジェクトイベントの弱点

前述の通り、実行順が明示されないので他のオブジェクトイベントに優先して特定のオブジェクトイベントを実行させようとか企むと管理が大変で失敗するかも。イベント順が多少ひっくり返っても影響が無い程度の処理に止めるのが吉で、あくまでも厳密な優先順位にこだわる処理ならフレームイベントに収めた方が良い。これも前述だが「オブジェクトグループ」をインポートできない仕様も考慮した方が良い。

基礎概念:リスト
12345678910
111213141516171819Last
 

前へ戻る 次へ進む