スクリプト ユーティリティおよびロールアウトでは、ロールアウトの現在の状態へのアクセスを提供する複数のプロパティが使用できます。
true の場合は、ロールアウトが開いています。 false の場合は、ロールアウトが閉じています。 true または false をこのプロパティに代入し、ロールアウトを開いたりロールアップしたりできます。
ロールアウトが拡張ビューポート内にある場合は True を返します。
ロールアウトがダイアログ バーとして登録されている場合は True を返します。
ロールアウトが createDialog <rollout> を使用して作成されたダイアログ ボックスに現在表示されている場合、 True を返します。 常時有効です。
このプロパティは、ダイアログ ボックスが最小化、最大化、標準のどの状態にあるのかを取得/設定します。ロールアウトがダイアログ ボックス内に存在しないか、ダイアログ ボックスがダイアログ バーであるかビューポート内にある場合、'undefined' を返します。
ロールアウトがダイアログ ボックス内にあり、ダイアログ バーでないかビューポート内にない場合、このプロパティは有効です。このプロパティを設定する場合、ダイアログ ボックスの作成スタイル設定のサポートしていない値は無視されます。たとえば、プロパティの値を #maximized に設定した場合、createDialog のスタイル引数内で #style_maximizebox が指定されていなかったら、何のアクションも発生しません。
ロールアウトが現在表示されている場合は true を返し、そうでない場合は false を返します。
スクリプト プラグインかカスタム アトリビュートによってロールアウトが表示されている場合、このプロパティにはスクリプト プラグインか CA のインスタンスが含まれます。ロールアウト イベント ハンドラでデバッガのブレークが発生したとき、スクリプト プラグインか CA のインスタンスの変数に簡単にアクセスできるようにするため、3ds Max 8 でこのプロパティが追加されました。この場合、イベント ハンドラの所有者はロールアウトなので、 getVar owner.owner を使用してスクリプト プラグインか CA のインスタンスにアクセスできます。
<rollout>.hwnd Integer, read-only
ロールアウトが開いている場合は、そのロールアウトのウィンドウ HWND ハンドルを格納します。ロールアウトが閉じている場合は 0 になります。
フロータが拡張ビューポート内にあれば、 True になります。
フロータがダイアログ バーとして登録されていれば、 True になります。
このプロパティは、ダイアログ ボックスが最小化、最大化、標準のどの状態にあるのかを取得/設定します。ロールアウトがダイアログ ボックス内に存在しないか、ダイアログ ボックスがダイアログ バーであるかビューポート内にある場合、'undefined' を返します。
このプロパティは、dialogBar でもなくビューポート内にもない Rolloutfloaters に対して有効です。
いくつかのメソッドを使用して、ユーティリティを開いたり閉じたり、[ユーティリティ](Utilities)パネルのロールアウトの追加や削除を実行できます。これらのメソッドを次に示します。
[ユーティリティ](Utilities)パネルでユーティリティのメイン ロールアウトを開きます。これは、MAXScript の[ユーティリティ](Utilities)パネル ロールアウトにある[ユーティリティ](Utilities)リストからユーティリティをクリックする操作と同じです。
[ユーティリティ](Utilities)パネルでユーティリティのメイン ロールアウトを閉じます。これは、このロールアウトの[閉じる](Close)ボタンをクリックする操作と同じです。
ロールアウトを[ユーティリティ](Utilities)パネルに追加します。 addRollout() 関数の rolledUp: パラメータでは、ロールアップされた状態でロールアウトが追加されるかどうかを指定します。この既定値は false で、ロールアウトは完全に開いた状態で追加されます。追加のロールアウトは、 addRollout() 呼び出し順に整理されるので、呼び出す順番に注意して、希望する順序を確保してください。
ウィンドウのクライアント領域のサイズを返します。これは、次のコードと同じです。
point2 <rollout>.width <rollout>.height
[ユーティリティ](Utilities)パネルからロールアウトを削除します。
メソッド addRollout() および removeRollout() の詳細については、「スクリプトで書かれたユーティリティでの複数のロールアウトの管理」を参照してください。
ロールアウト内の特定のユーザ インタフェース項目に対して指定するイベント ハンドラのほかに、ユーザがロールアウト全体を最初に開いたとき( 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 イベント ハンドラは全く呼び出されません。