エディタ内でなんらかの操作を行うと、そのアクションは JavaScript 環境で「イベント」をトリガします。他のエディタのサブシステムとプラグインは、これらのイベントをリッスンし、さらにアクションを実行して応答します。これにより、他のシステムが応答するためのさらに多くのイベントが発行される可能性があります。
エディタ内で発生するイベントをリッスンし、ユーザ独自の新しいイベントを発行することで、独自のプラグインをこのイベント フレームワークに接続することができます。
次を実行することで、プラグインにイベントをリッスンさせて応答するように設定できます。
.stingray_plugin ファイル内の event 拡張機能がイベントの発生時に 1 つのアクションまたはアクションの組み合わせを実行するように設定します。「エディタのイベントに応答する」を参照してください。
event-service モジュールによって公開される on() 関数を呼び出して、イベントの発生時にエディタが自動的に呼び出す JavaScript 関数を登録します。たとえば、次のようになります。
require(["services/event-service"], function (eventService) { eventService.on("my-custom-named-event", function() { console.warn("Event triggered!"); } ) })
次を実行して、プラグインがエディタ内のすべてのリスナーに新しいイベントを送信するように設定できます。
プラグイン内で action 拡張機能を、指定したイベントを発行するように設定します。アクションの type を event に設定し、その event を発行するイベントの名前に設定します。「アクションを登録する」を参照してください。
event-service モジュールで公開された emit() または offer() 関数を呼び出します。emit() を使用して、指定したイベントに応答するように登録されたすべてリスナーをトリガします。offer() を使用して、1 つのリスナーのみをトリガします。
リスナーを登録するときに、キーとしてイベント名を使用する必要があります。プラグインのイベント フレームワークをフルに活用するには、エディタが発行するイベントの名前とそのイベントがいつ発生するかを把握する必要があります。
オートデスクは現在、すべてのイベントが記載された完全なリストの作成に取り組んでいます。このリストには、エディタの JavaScript レイヤ、プラグイン レイヤ、またはバックエンド C# レイヤでトリガされたかに関係なくすべてのイベントが含まれます。できる限り早くリストを公開する予定です。
現在のところ、お使いのプラグインは、主にユーザ自身のプラグインからトリガしたイベントへの応答に制限されています。ただし、エディタの JavaScript モジュールおよび標準 Stingray プラグインを調べて、イベント サービスの on()、emit()、offer() 関数への呼び出しを探すこともできます。