リスナーの内容と挿入点の制御

以下の機能を使って、リスナー出力領域の内容と挿入点の位置をコントロールできます。

clearListener()

リスナー出力領域からすべてのテキストを消去します。

setListenerSel #(<start_integer>,<end_integer>)

リスナーに現在のテキスト選択を設定します。

開始値および終了値は、 0 を始点とするリスナー出力領域テキストの文字オフセットです。

開始値と終了値が同じ場合、選択されたテキストはなく、指定された位置に挿入点が配置されます。

開始値または終了値に -1 を指定すると、挿入点はリスナー出力領域のテキストの末尾に置かれます。

次のメソッドではテキストの末尾に挿入点が置かれます。

setListenerSel #(-1,-1)

次のメソッドでは、リスナー出力領域のすべてのテキストが選択されます。

setListenerSel #(0,-1)

<start_integer>および<end_integer>は、整数リテラルまたは整数として評価される式です。

3ds Max 2014 より前のバージョンでは、この関数は OK を返し、新しく設定された選択をそれ自身の戻り値によって破壊するため使用できませんでした。

原則としてすべての MAXScript 関数は値を返す必要がありますが、これは典型的な例外のケースです。

3ds Max 2014 を起動すると、この関数は何も返さず、実際にはリスナーのテキストを選択します。

getListenerSel()

現在のテキスト選択のインデックスを 2 つの要素を持つ配列 #(start, end) として返します。これらはリスナー出力領域のテキストの文字オフセットであり、 0 で始まります。選択がなく、挿入点だけの場合、開始値と終了値は同じ値になります。このメソッドによって認識されるのは、 setListenerSel() メソッドを使用して設定された選択に限られます。選択の設定に setListenerSel() メソッドが使用されなかった場合、開始値および終了値にはリスナー出力領域のテキストの末尾に対するオフセットが返されます。

getListenerSelText()

現在選択されているテキストを戻します。テキストが選択されておらず、挿入点だけがある場合は、空の文字列を戻します。このメソッドによって認識されるのは、 setListenerSel() メソッドを使用して設定された選択に限られます。選択の設定に setListenerSel() メソッドが使用されなかった場合は、空の文字列を返します。

たとえば、次の行ではリスナー出力領域の内容全体を変数 ListenerText にキャプチャします。

( 
global ListenerText -- Declare variable to capture the Listener to
setListenerSel #(0,-1) -- Select all the text
ListenerText=getListenerSelText() -- Get selected text
setListenerSel #(-1,-1) -- Set insertion point at end of output pane
)
setListenerSelText <replacement_string>

現在の選択項目を置換文字列に置き換えます。テキストが選択されておらず挿入点だけがある場合、 setListenerSelText() は挿入点に置換文字列を挿入します。このメソッドによって認識されるのは、 setListenerSel() メソッドを使用して設定された選択に限られます。選択の設定に setListenerSel() メソッドが使用されなかった場合、挿入点はリスナー出力領域のテキストの末尾になります。< replacement_string >は、文字列リテラルまたは文字列として評価される式です。

include <filename_string>

指定されたファイルの内容をリスナー出力領域に挿入します。挿入されるテキストは評価されません。この関数を使うと、[Shift]+[Enter]で任意に選択されたテキストを実行しながら、あるスクリプトを読み込んでそれをステップ実行することができます。 <filename_string> は文字列リテラルまたは文字列として評価される式で、挿入するファイル名を指定します。

例:

include "my_script.ms"

または

scriptfile="c:\\my_scripts\\my_script.ms"
include scriptfile

ファイル名にディレクトリを明示的に指定しない場合、ファイルは以下のディレクトリの順番に検索されます。

関連事項