-drop XML ファイルでは、新しい形式の datasrc ファイルを指定することができます。このファイルには、i-drop コントロールを 3ds Max ビューポートにドラッグ アンド ドロップする際に実行される、ドラッグ アンド ドロップ ハンドラ付きの macroScript が含まれています。新しいファイルの形式は、「ドロップ スクリプト」と呼ばれ、拡張子「 .ds 」が付いています。これらのファイルには、1 つまたは複数の特別な dropscript イベントに使用するハンドラを持つ、単一の macroScript 定義が含まれています。 .ds ファイルに単一の macroScript 以外のテキストが存在する場合、それらのテキストはすべて無視されます。
次に、「foo.ds」という dropScript ファイルを指定する XML の例を示します。
現在の dropScript イベントは、位置パラメータとキーワード パラメータの混合で提供されます。最初のパラメータは位置パラメータです。このパラメータは、必ずドロップが実行されているウィンドウのコード名になります。次のパラメータは、キーワード パラメータです。このパラメータは、ドラッグまたはドロップが実行されているウィンドウによって名前および数値が異なります。
可能な値は、 #max および #viewport です。マウスが MAX ウィンドウ上にある場合は #max が返され、マウスがビューポート上にある場合は #viewport が返されます。
マウスの座標。<window> から #max が返された場合、 point: はスクリーン座標になります。<window> から #viewport が返された場合、point はビューポート内の座標になります。
このパラメータを指定すると、コントロールを MAX ビューポートにドラッグする間に、「 droppable 」ハンドラが連続して呼び出され、項目がその位置でドロップ可能かどうかによって true または false が返されます。マウスがシーン ノード上にない場合、 <item> 引数の値は undefined です。dropScript でドロップを制限する必要がある場合は、「 droppable 」 フィルタを実装します。
「 drop 」ハンドラは、ユーザが i-drop コントロールをビューポートに最終的にドロップするときに呼び出され、 「 droppable 」と同じパラメータが渡されます。
たとえば、ビューポート ウィンドウにドロップする場合、完全なシグネチャは次のようになります。
ただし、キーワード引数はオプションであるため、必要なキーワード引数の任意のサブセットを選択することができます。
このようにしてキーワードを渡すことにより、扱いにくい固定されたポジショナル引数のセットを必要とすることなく、さまざまなコンテキスト ウィンドウで変数と広範囲にわたるコンテキスト情報を提供することができます。
ドロップ可能ハンドルは、マウスが球のシーン ノード上にある場合にのみ、ドロップを許可します。ドロップが完了すると、その球は 1.2 倍に拡大され、マテリアル エディタのスロット 1 にあるマテリアルが割り当てられます。