スクリプト ユーティリティおよびロールアウトでは、ロールアウトの現在の状態へのアクセスを提供する複数のプロパティが使用できます。
true の場合は、ロールアウトが開いています。 false の場合は、ロールアウトが閉じています。 true または false をこのプロパティに代入し、ロールアウトを開いたりロールアップしたりできます。
ロールアウトが拡張ビューポート内にある場合は True を返します。
ロールアウトがダイアログ バーとして登録されている場合は True を返します。
ロールアウトが createDialog <rollout> を使用して作成されたダイアログ ボックスに現在表示されている場合、 True を返します。 常時有効です。
ロールアウトが現在表示されている場合は true を返し、そうでない場合は false を返します。
スクリプト プラグインかカスタム アトリビュートによってロールアウトが表示されている場合、このプロパティにはスクリプト プラグインか CA のインスタンスが含まれます。ロールアウト イベント ハンドラでデバッガのブレークが発生したとき、スクリプト プラグインか CA のインスタンスの変数に簡単にアクセスできるようにするため、3ds Max 8 でこのプロパティが追加されました。この場合、イベント ハンドラの所有者はロールアウトなので、 getVar owner.owner を使用してスクリプト プラグインか CA のインスタンスにアクセスできます。
<rollout>.hwnd Integer, read-only
ロールアウトが開いている場合は、そのロールアウトのウィンドウ HWND ハンドルを格納します。ロールアウトが閉じている場合は 0 になります。
<rollout>.rolloutFloater RolloutFloater, read-only
3ds Max 2019 の
新機能: ロールアウトを収容するロールアウト フロータを含めます。ロールアウトがフロータ内にない場合は、undefined になります。
<rollout>.autoLayoutOnResize Boolean
3ds Max 2019 の
新機能: サイズを変更したときの自動レイアウトがフロータで有効になっている場合は、true です。
いくつかのメソッドを使用して、ユーティリティを開いたり閉じたり、[ユーティリティ](Utilities)パネルのロールアウトの追加や削除を実行できます。これらのメソッドを次に示します。
[ユーティリティ](Utilities)パネルでユーティリティのメイン ロールアウトを開きます。これは、MAXScript の[ユーティリティ](Utilities)パネル ロールアウトにある[ユーティリティ](Utilities)リストからユーティリティをクリックする操作と同じです。
[ユーティリティ](Utilities)パネルでユーティリティのメイン ロールアウトを閉じます。これは、このロールアウトの[閉じる](Close)ボタンをクリックする操作と同じです。
ロールアウトを[ユーティリティ](Utilities)パネルに追加します。 addRollout() 関数の rolledUp: パラメータでは、ロールアップされた状態でロールアウトが追加されるかどうかを指定します。この既定値は false で、ロールアウトは完全に開いた状態で追加されます。追加のロールアウトは、 addRollout() 呼び出し順に整理されるので、呼び出す順番に注意して、希望する順序を確保してください。
[ユーティリティ](Utilities)パネルからロールアウトを削除します。
メソッド addRollout() および removeRollout() の詳細については、「スクリプトで書かれたユーティリティでの複数のロールアウトの管理」を参照してください。
updateRolloutLayout (<rollout_floater> | <rollout>) forceUpdate:<bool>
3ds Max 2019 の
新機能: 指定したロールアウト フロータ内のロールアウトまたはダイアログ ボックス内のロールアウトのレイアウトを更新します。ただし、ロールアウト フロータとロールアウトの両方の
autoLayoutOnResize プロパティが false に設定されていて、かつこのメソッドに対して forceUpdate パラメータが false に設定されているか、または指定されていない(既定は false)場合は除きます。forceUpdate が true の場合は、autoLayoutOnResize の設定に関係なく、レイアウトは更新されます。
ロールアウト内の特定のユーザ インタフェース項目に対して指定するイベント ハンドラのほかに、ユーザがロールアウト全体を最初に開いたとき( open )、および明示的に閉じたとき( close )に呼び出されるハンドラの機能を定義できます。このハンドラは、初期化コードやロールアウトが閉じたときのクリーンアップに便利で、1 つのスクリプトで書かれたユーティリティで複数のロールアウトを管理する場合に必要です。ロールアウト フロータ ウィンドウのサイズが変更されたり移動されたりすると、それに伴ってロールアウト フロータ ウィンドウの最初のロールアウト上でイベント ハンドラ(それぞれ resized や moved)が呼び出されます。追加のイベント ハンドラ( oktoclose )は、ロールアウトを閉じてもよいかどうかを確認するために呼び出されます。
ロールアウトまたはユーティリティが開いたときに呼び出されます。
ロールアウトまたはユーティリティが閉じたときに呼び出されます。
ロールアウトの[閉じる](Close)ボタンをユーザがクリックしたときに呼び出されます。これにより、スクリプト作成者が閉じる操作を継続するかどうかを決定できます。式が true 値に評価される場合は、ロールアウトを閉じることができます。式が false 値に評価される場合は、閉じる操作が無視され、ロールアウトやユーティリティは開いたままになります。
次の例では、[OK To Close]チェック ボタンにチェックマークが付くまでユーティリティは閉じません。
ダイアログ、ロールアウト フロータ、ロールアウトにフォーカスがあり、[F1]が押された場合に呼び出されます。
ロールアウトまたはロールアウト内のロールアウト コントロールにフォーカスがある場合、コードはそのロールアウトに対して「ヘルプ」イベント ハンドラが定義されているかどうかを確認します。
そうでなく、ロールアウトがロールアウト フロータ内にある場合、フロータはメッセージを受け取り、フロータ内の最初のロールアウトに「ヘルプ」イベント ハンドラがあるかどうかを確認し、存在する場合はそれを呼び出します。
ロールアウトがサブロールアウト内にある場合、MAXScript は明示的に同じチェックを実行し、サブロールアウト内の最初のロールアウトに対してハンドラを呼び出します。
「ヘルプ」イベント ハンドラが見つからない場合、メッセージは最終的に 3ds Max ウィンドウに渡され、3ds Max ヘルプが呼び出されます。
ロールアウトまたはユーティリティがロール アップまたはロール ダウンされたときに呼び出されます。引数には、ロールアウトがロール ダウンされた(開かれた)場合には true 、ロールアウトがロール アップされた(閉じられた)場合には false が含まれます。
ユーザ操作、またはロールアウト フロータ ウィンドウの size プロパティを変更するスクリプトによってロールアウト フロータ ウィンドウがサイズ変更されるとき、最初のロールアウト上で呼び出されます。 resized イベント ハンドラ式のロールアウト フロータ ウィンドウをサイズ変更することによって resized イベント ハンドラが再び呼び出されることはありません。< arg > の値は、ロールアウト フロータ ウィンドウの現在の幅と高さです。
ユーザ操作、またはロールアウト フロータ ウィンドウの pos プロパティを変更するスクリプトによってロールアウト フロータ ウィンドウが移動されるとき、最初のロールアウト上で呼び出されます。< arg > の値は、ピクセル単位での画面上のロールアウト フロータ ウィンドウの現在位置です。
以下の例では、動作を記録するログ ファイルを保持し、ロールアウトのオープンおよびクローズ ハンドラを使用して、ログ ファイルを開閉します。
次の例では、ロールアウト フロータ ウィンドウがサイズ変更されるときに on resized イベント ハンドラが呼び出されます。イベントは、ロールアウト フロータ ウィンドウの最初のロールアウトだけで生成されるため、 on b resized イベント ハンドラは全く呼び出されません。