VSD スキンスクリプト用オブジェクト リファレンス


VSD 組込みオブジェクト一覧

オブジェクト名 説明
グローバルメソッド・オブジェクト どのオブジェクトにも属さない,グローバルなメソッド・オブジェクトです
Vsd 画面描画等,VSD システムの基本となるオブジェクトです
Log 走行データの取得を行うためのオブジェクトです
Image 画像ファイルを扱うためのオブジェクトです
Font フォントを扱うためのオブジェクトです
File ファイルを扱うためのオブジェクトです
ActiveXObject オートメーション オブジェクトへのインターフェイスを提供するオブジェクトです

グローバルメソッド・オブジェクト

一覧

メソッド
GetDistanceByLngLat()緯度・経度を指定した 2点間の距離を求めます
Include()他の JavaScript ファイルをインクルードします
MessageBox()メッセージボックスを表示します
Print()コンソールに文字列表示します
Printf()書式指定変換した文字列をコンソールに表示します
Sprintf()書式指定変換した文字列を返します

メッセージボックスの表示

MessageBox( string [, caption [, type]] )

パラメータ

  • string
    表示する文字列を指定します.
  • caption
    メッセージボックスのキャプションを指定します.省略時は,デフォルトのキャプションが表示されます.
  • type
    メッセージボックスのスタイルを指定します (解説参照).省略時は MB_OK が指定されたものとみなされます.

返り値

成功すると,0 以外の値が返ります (解説参照)

解説

メッセージボックスを表示します.
Windows API の MessageBox() と同等の機能です.type, 返り値についての詳細はWindows API の解説ページを参照してください.Windows API の解説ページに記載の MB_*, ID* 定数は VSD でも使用できます.

コンソールへの文字列表示

Print( string )

パラメータ

  • string
    表示する文字列を指定します.

返り値

返り値はありません.

解説

コンソールウィンドウを開き,そこにメッセージを表示します.
MessageBox() は,そこで JavaScript の実行が一時停止してしまいますが,Print() は停止しませんので,JavaScript のデバッグ等で情報を表示したい場合などに便利です.

コンソールウィンドウを閉じるためには,コンソールウィンドウにフォーカスがある状態で Ctrl+C キーを押してください (ウィンドウ右上の閉じるボタンで閉じることはできません).


書式指定変換した文字列のコンソールへの表示

Printf( format [, arg ...] )

パラメータ

  • format
    表示する文字列を指定します.
  • arg
    変換に使用する値を指定します.

返り値

返り値はありません.

解説

format に指定された書式に従って変換を行った文字列をコンソールウィンドウに表示します.C 言語の printf() と同等の機能です.
コンソールウィンドウについては Print() を,書式変換については Sprintf() を参照してください.

書式指定変換した文字列の取得

Sprintf( format [, arg ...] )

パラメータ

  • format
    表示する文字列を指定します.
  • arg
    変換に使用する値を指定します.

返り値

変換結果の文字列を返します.

解説

format に指定された書式に従って変換を行った文字列を取得します.C 言語の sprintf() と同等の機能です.
Sprintf() で使用できる書式構文はこちらを参照してください. ただし,以下の機能は使用できません.
  • 文字幅指定,精度指定の *
  • 型フィールド文字の n p S Z
  • サイズ指定の h l ll w I I32 I64

他の JavaScript ファイルのインクルード

Include( file )

パラメータ

  • file
    読み込む JavaScript ファイルを指定します

返り値

返り値はありません.

解説

他の JavaScript ファイルをインクルードします.
file を「Vsd.SkinDir + "file.js"」等とすることで,インクルード元 *.js と同じディレクトリにある file.js をインクルードすることができます.

緯度・経度を指定した 2点間の距離を求める

GetDistanceByLngLat( lng1, lat1, lng2, lat2 )

パラメータ

  • lng1, lng2
    地点 1, 2 の経度を度単位で指定します.西経時はマイナスの値になります.
  • lat1, lat2
    地点 1, 2 の緯度を度単位で指定します.南緯時はマイナスの値になります.

返り値

2点間の距離をメートル単位で返します.

解説

ヒュベニの公式を使用して,2点間の距離をメートル単位で返します.

Vsd オブジェクト

一覧

プロパティ
BestLapTime ベストラップタイム
Config_graph VSD 設定ダイアログの グラフ表示 取得
Config_lap_time VSD 設定ダイアログの ラップタイム表示 取得
Config_map_length VSD 設定ダイアログの 走行軌跡長さ 取得
DateTime GPS 時刻の取得
DiffTime 最速ラップとの時間差
ElapsedTime ラップ経過時間
FrameCnt 現在のフレーム番号
FramePerSecond 動画の FPS
Height 動画の縦サイズ
IsSaving AVIUtl が動画保存中かどうか
LapCnt 走行中ラップ数
LapTime 走行中ラップタイム
MaxFrameCnt 動画の総フレーム数
MaxLapCnt 総ラップ数
Revision VSD for GPS リビジョン番号
SkinDir スキンファイルが置かれているディレクトリ名
Width 動画の横サイズ
メソッド
DrawArc() 円弧・楕円を描画します
DrawCircle() 円・楕円を描画します
DrawGSnake() G スネークを描画します
DrawGoogleMaps() Google マップを描画します
DrawGraph() 各種グラフを描画します
DrawLapTime() ラップタイム表示を描画します
DrawLapTimeLog() ラップタイム表示を描画します
DrawLine() 直線を描画します
DrawLinearMeterScale() 線形メーター用の目盛りを描画します
DrawMap() 走行軌跡を描画します
DrawMapPosition() 走行軌跡と全車位置を描画します
DrawNeedle() 円形メータ用の針を描画します
DrawRect() 四角形を描画します
DrawRoadMap() 地図 (OpenStreetMap) を描画します
DrawPolygon() 多角形を描画します
DrawRaceLapTime() 全車ラップタイムを表示します
DrawRoundMeterScale() 円形メーター用の目盛りを描画します
DrawText() 文字列を描画します
DrawTextAlign() 文字列の配置方法を指定して文字列を描画します
FormatTime() 数値を時間を表す文字列に変換します
Geocoding Google マップの逆ジオコーディングによる住所を取得します
PutImage() 画像を描画します
PutPixel() 点を描画します

動画の情報取得

Vsd.Width
動画の横サイズを取得します.
Vsd.Height
動画の縦サイズを取得します.
Vsd.FrameCnt
現在のフレーム番号を取得します.フレーム番号は 0 から始まります.
Vsd.MaxFrameCnt
動画の総フレーム数を取得します.
Vsd.FramePerSecond
動画の FPS を取得します.

ラップ情報の取得

時間に関しては,すべてミリ秒単位の整数が取得されます.FormatTime() を使用することで,時間を表す文字列に変換できます.

Vsd.LapTime
現在走行中のラップタイムをミリ秒単位で取得します.現在がラップタイム計測中の期間でない場合は,undefined が返されます.
Vsd.BestLapTime
ベストラップタイムをミリ秒単位で取得します.ラップタイム計測をおこなっていない場合は,undefined が返されます.
Vsd.ElapsedTime
現在走行中のラップの経過時間をミリ秒単位で取得します.現在がラップタイム計測中の期間でない場合は,undefined が返されます.
Vsd.DiffTime
現在走行中のラップの,ベストラップとの時間差をミリ秒単位で取得します.現在がラップタイム計測中の期間でない場合は,undefined が返されます.
Vsd.DateTime
GPS 時刻を取得します.1970年1月1日0時0分0秒(UTC)からの経過時間(ミリ秒単位)です.
Vsd.LapCnt
現在走行中のラップ数を取得します.
Vsd.MaxLapCnt
総ラップ数を取得します.

VSD システム情報の取得

Vsd.Config_graph
VSD 設定ダイアログの グラフ表示 のチェックボックス状態を取得します.
Vsd.Config_lap_time
VSD 設定ダイアログの ラップタイム表示 のチェックボックス状態を取得します.
Vsd.Config_map_length
VSD 設定ダイアログの 走行軌跡長さ のスライダ値を取得します.
Vsd.SkinDir
スキンファイル (*.js) のディレクトリ名を取得します.
Vsd.Revision
VSD for GPS のリビジョン番号を取得します.
Vsd.IsSaving
AVIUtl が動画保存を実行中の場合,0 以外の値になります.

1ピクセルを描画

Vsd.PutPixel( x, y, color )

パラメータ

  • x, y
    点を打つ座標を指定します.
  • color
    点のカラーコードを指定します.

返り値

返り値はありません.

解説

1ピクセルを,指定された座標に描画します.

直線の描画

Vsd.DrawLine( x1, y1, x2, y2, color [, width [, pattern]] )

パラメータ

  • x1, y1
    直線の開始座標を指定します.
  • x2, y2
    直線の終了座標を指定します.
  • color
    直線の色をカラーコードで指定します.
  • width
    直線の太さを指定します.省略時は 1 が指定されたものとみなされます.
  • pattern
    直線のパターンを指定します.省略時は 0xFFFFFFFF が指定されたものとみなされます.

返り値

返り値はありません.

解説

直線を描画します.

pattern で指定する数値により点線を描画することができます.pattern の各 bit が 1 のピクセルにのみ実際に描画される直線が,32ピクセルごとに繰り返されて,直線全体が描画されます.
例えば 0xAAAAAAAA を指定すると 1ピクセルごとの点線,0xFFFF0000 なら 16ピクセル毎の点線が描画されます.

バグ: width に 1 以外を指定し,かつ カラーコードのアルファ値が 0x00 でも 0xFF でもない場合,アルファ値が正常に反映されません.


四角形の描画

Vsd.DrawRect( x1, y1, x2, y2, color [, flag] )

パラメータ

  • x1, y1
    長方形の頂点の座標を指定します.
  • x2, y2
    x1, y1 と対角をなす頂点の座標を指定します.
  • color
    長方形を描画するカラーコードを指定します.
  • flag
    長方形の内部を塗りつぶす場合,DRAW_FILL を指定します.

返り値

返り値はありません.

解説

長方形,またはその内部を塗りつぶした図形を描画します.

円の描画

Vsd.DrawCircle( x, y, r, color [, flag] )

パラメータ

  • x, y
    円の中心座標を指定します.
  • r
    円の半径を指定します.
  • color
    円を描画するカラーコードを指定します.
  • flag
    円の内部を塗りつぶす場合,DRAW_FILL を指定します.

返り値

返り値はありません.

解説

円,またはその内部を塗りつぶした図形を描画します.

円弧・楕円の描画

Vsd.DrawArc( x, y, a, b, start_angle, end_angle, color [, flag] )
Vsd.DrawArc( x, y, a, b, c, d, start_angle, end_angle, color )

パラメータ

  • x, y
    円弧の中心座標を指定します.
  • a, b
    外側の楕円の x 方向 / y 方向の半径を指定します.
  • c, d
    内側の楕円の x 方向 / y 方向の半径を指定します.
  • start_angle, end_angle
    円弧の開始角度・終了角度を指定します.
  • color
    円弧のカラーコードを指定します.
  • flag
    楕円の内部を塗りつぶす場合,DRAW_FILL を指定します.start_angle と end_angle が等しくない場合,DRAW_FILL を指定することはできません.

返り値

返り値はありません.

解説

円弧または楕円を描画します.

一つ目の書式では,太さ 1 の線で円弧・楕円を描画,または内部が塗りつぶされた楕円を描画します.
二つ目の書式では,外側の円弧と内側の円弧で囲まれた,幅を持った円弧・楕円を描画します.
start_angle と end_angle の値が等しい場合は,楕円が描画されます. start_angle と end_angle の値が等しくない場合は,start_angle を開始角度として,時計回りに円弧が描画されます.したがって,start_angle と end_angle の指定順序には意味があります.

a と b が等しくない場合,start_angle, end_angle は実際に描画される角度とは異なります.イメージとしては,正円で指定の角度で円弧を描いた後,a, b にしたがって縦横比を変形させる感じです.


文字列の描画

Vsd.DrawTextAlign( x, y, align, text, font [, color [, outline_color]] )
Vsd.DrawText( x, y, text, font [, color [, outline_color]] )

パラメータ

  • x, y
    文字列を描画する座標を指定します.
  • align
    指定した座標に対し,文字列をどのように配置するか (アライメント) を指定します.
  • text
    表示する文字列を指定します.
  • font
    表示に使用する Font オブジェクトを指定します.
  • color
    文字列のカラーコードを指定します.省略時は 0xFFFFFF (白) を指定したものとみなされます.
  • outline_color
    font が縁取り (FONT_OUTLINE) 属性付きで作成されたフォントの場合,縁取り部分のカラーコードを指定します.省略時は 0x000000 (黒) を指定したものとみなされます.font が縁取りでない場合,このパラメータは無視されます.

返り値

返り値はありません.

解説

文字列を描画します.
Vsd.DrawText は,Vsd.DrawTextAlign の align パラメータに ALIGN_LEFT | ALIGN_TOP を指定したのと同じです.

画像の描画

Vsd.PutImage( x, y, image [, align [, img_x , img_y , img_w , img_h ]] )

パラメータ

  • x, y
    画像を描画する座標を指定します.
  • image
    表示する Image オブジェクトを指定します.
  • align
    指定した座標に対し,画像をどのように配置するか (アライメント) を指定します.省略時は 0 を指定したものとみなされます.
  • img_x, img_y, img_w, img_h
    画像の一部だけを描画したい場合,画像内 x, y 座標,描画幅,描画高さを指定します.省略時は,画像全体が描画されます.

返り値

返り値はありません.

解説

指定された座標に対し指定された画像を描画します.

G スネークの描画

Vsd.DrawGSnake( x, y, r, ball_r, width, color_ball, color_line [, length] )

パラメータ

  • x, y
    G メーターの中心座標を指定します.
  • r
    1G 時の半径を指定します.
  • ball_r
    G ボールの半径を指定します.
  • width
    G スネークの線の太さを指定します.
  • color_ball
    G ボールのカラーコードを指定します.
  • color_line
    G スネークのカラーコードを指定します.
  • length
    G スネークの長さを秒数で指定します.省略時は 3秒が指定されたものとみなされます.

返り値

返り値はありません.

解説

G メーター用に,下図のような G ボール (現在の加速度を示す円) と G スネーク (過去の G ボールの動きをトレースした線) を描画します.G スネークの時間的な長さは,length パラメータで設定します. 
r は,1G 時の半径であり,G メーター自体の半径ではないことに注意してください.例えば半径 100,最大値 1.5G の G メーターを描画する場合,r は 100 / 1.5 を設定することになります.

グラフの描画

Vsd.DrawGraph( x1, y1, x2, y2, font, flag, param )

パラメータ

  • x1, y1, x2, y2
    グラフを表示する矩形範囲を指定します.
  • font
    グラフ数値を表示する Font オブジェクトを指定します.
  • flag
    表示するグラフの表示方法保を指定します. 
    GRAPH_HTILE :複数のグラフが選択され,またこのパラメータが指定されている場合,各グラフを横に並べて表示します.
    GRAPH_VTILE :複数のグラフが選択され,またこのパラメータが指定されている場合,各グラフを縦に並べて表示します.
    GRAPH_HTILE と GRAPH_VTILE はどちらも指定しないときは 0 を指定します.その場合はすべてのグラフが重ねて表示されます.
  • param
    表示するグラフ項目の指定,色等を指定する配列を指定します.詳細は解説を参照してください.

返り値

返り値はありません.

解説

スピード・加速度等のグラフを描画します.
まず,MakeGraphParam() 呼び出し前に,描画したいグラフについてのパラメータを配列に指定します.以下に例を示します.
GraphParam = [
//  グラフ項目  数値フォーマット 色
    "Speed",    "%.0f km/h",    0x00FFFF,
    "Tacho",    "%.0f rpm",     0xFF4000,
    "Accel",    "%.0f %%",      0x00FF00,
    "Gx",       "%.2f G[lon]",  0x00FF00,
    "Gy",       "%.2f G[lat]",  0xFF00FF,
];
ひとつのグラフに付き,3つのパラメータを指定します.
1つ目は,描画するグラフの項目です.Speed や Gx などといった,「走行ログ情報の取得」で示されているパラメータ名を指定できる他,ログファイルリーダプラグインでオリジナルの項目を追加している場合,それも指定できます.また,実際にログに記録されていない項目名を指定することもでき,この場合単に無視されます.
2つ目は,グラフの現在値を表示する数値フォーマットを指定します.「%.2f」等が現在の数値に置き換わり,例えば「%.2f」ならば小数点以下 2桁まで表示され,「%.0f」なら小数点以下は表示されません.また,「%」文字自体を表示したい場合は,「%%」と記述する必要があります.
3つ目は,グラフを表示するカラーコードを指定します.

このように作成した配列を DrawGraph() に指定してください.


ラップタイム情報の描画

Vsd.DrawLapTime( x, y, align, font [, color [, color_best [, color_plus [, color_outline]]]] )

パラメータ

  • x, y
    ラップタイム情報を描画する座標を指定します.
  • align
    指定した座標に対し,ラップタイム情報をどのように配置するか (アライメント) を指定します.
  • font
    ラップタイム情報を描画する Font オブジェクトを指定します.
  • color
    文字列のカラーコードを指定します.省略時は,0xFFFFFF (白) が指定されたものとみなされます.
  • color_best
    ベストラップ,及び最速ラップとの時間差がマイナスの時に使用されるカラーコードを指定します.省略時は,0x00FFFF (シアン) が指定されたものとみなされます.
  • color_plus
    最速ラップとの時間差がプラスの時に使用されるカラーコードを指定します.省略時は,0xFF0000 (赤) が指定されたものとみなされます.
  • color_outline
    font が縁取り (FONT_OUTLINE) 属性付きで作成されたフォントの場合,縁取り部分のカラーコードを指定します.省略時は 0x000000 (黒) を指定したものとみなされます.font が縁取りでない場合,このパラメータは無視されます.

返り値

返り値はありません.

解説

下図のような,ラップタイムに関する情報を一括で表示します.
上から,現在ラップの経過時間・ベストラップとの時間差・ベストラップ・過去 3ラップ分のタイムが表示されます.
「ベストラップとの時間差」は,現在ラップとベストラップのタイム差がリアルタイムで表示されます.タイム差は走行距離から算出しているので,走行ラインが大幅に違っていたりすると不正確な値になります.
「過去 3ラップ分のタイム」は,一番下に現在走行中のタイムが表示されます.一般的なレース放送やゲームなどと違い,現在ラップがゴールする前にそのタイムが表示されています.またベストラップは color_best で指定した色で表示されます.

フォントによっては,表示が縦に綺麗に揃わない場合があります.この場合は,font 作成時に attr パラメータに FONT_FIXED を指定してください.


全車ラップタイム情報の描画

Vsd.DrawRaceLapTime( x, y, align, num, font [, color [, color_outline]] )

パラメータ

  • x, y
    ラップタイム情報を描画する座標を指定します.
  • align
    指定した座標に対し,ラップタイム情報をどのように配置するか (アライメント) を指定します.
  • num
    ラップタイムを表示する行数を指定します.
    num > 0 時は,上位 num 人分のラップタイムが表示されます.全ドライバー人数が num に満たない場合でも,num 人分の表示スペースを使って表示します.
    num = 0 時は,全ドライバーのラップタイムが表示されます.
    num < 0 時は,上位 (-num) 人分のラップタイムが表示されます.全ドライバー人数が (-num) に満たない場合は,その人数分の表示スペースを使って表示します.
    表示スペースの違いは,align に ALIGN_VCENTER または ALIGN_BOTTOM を指定時に,表示に差異が現れます.
  • font
    ラップタイム情報を描画する Font オブジェクトを指定します.
  • color
    文字列のカラーコードを指定します.省略時は,0xFFFFFF (白) が指定されたものとみなされます.
  • color_outline
    font が縁取り (FONT_OUTLINE) 属性付きで作成されたフォントの場合,縁取り部分のカラーコードを指定します.省略時は 0x000000 (黒) を指定したものとみなされます.font が縁取りでない場合,このパラメータは無視されます.

返り値

返り値はありません.

解説

レースモニター機能における,全車ラップタイムを表示します.
各車の順位・ドライバー名・周回数・ラップタイム・首位からの時間差を表示します.ラップタイムは,一般的なレース放送やゲームなどと違い,現在ラップがゴールする前にそのタイムが表示されています.

フォントによっては,表示が縦に綺麗に揃わない場合があります.この場合は,font 作成時に attr パラメータに FONT_FIXED を指定してください.


ラップタイム履歴の描画

Vsd.DrawLapTimeLog( x, y, align, lap_num, font [, color [, color_best [, color_outline]]] )

パラメータ

  • x, y
    ラップタイム履歴を描画する座標を指定します.
  • align
    指定した座標に対し,ラップタイム履歴をどのように配置するか (アライメント) を指定します.
  • lap_num
    タイムを表示する最大ラップ数を指定します.
  • font
    ラップタイム履歴を描画する Font オブジェクトを指定します.
  • color
    文字列のカラーコードを指定します.省略時は,0xFFFFFF (白) が指定されたものとみなされます.
  • color_best
    ベストラップ,及び最速ラップとの時間差がマイナスの時に使用されるカラーコードを指定します.省略時は,0x00FFFF (シアン) が指定されたものとみなされます.
  • color_outline
    font が縁取り (FONT_OUTLINE) 属性付きで作成されたフォントの場合,縁取り部分のカラーコードを指定します.省略時は 0x000000 (黒) を指定したものとみなされます.font が縁取りでない場合,このパラメータは無視されます.

返り値

返り値はありません.

解説

下図のような,ラップタイム履歴を表示します.
一番下に現在走行中のタイムが表示されます.一般的なレース放送やゲームなどと違い,現在ラップがゴールする前にそのタイムが表示されています.またベストラップは color_best で指定した色で表示されます.
DrawLapTime() とは違い,ラップタイムの一覧のみが表示されます.

フォントによっては,表示が縦に綺麗に揃わない場合があります.この場合は,font 作成時に attr パラメータに FONT_FIXED を指定してください.


走行軌跡の描画

Vsd.DrawMap( x1, y1, x2, y2, align, width, r, color_indicator, color_0g, color_plus, color_minus )

パラメータ

  • x1, y1, x2, y2
    走行軌跡を表示する矩形範囲を指定します.
  • align
    上記で指定した矩形範囲内に走行軌跡をどのように配置するかを指定します.以下のパラメータの幾つかを `|' (OR 演算子) でつなげて指定します.
    ALIGN_LEFT :矩形範囲の左端に配置します
    ALIGN_HCENTER :矩形範囲の幅中央に配置します
    ALIGN_RIGHT :矩形範囲の右端に配置します
    ALIGN_TOP :矩形範囲の上端に配置します
    ALIGN_VCENTER :矩形範囲の高さ中央に配置します
    ALIGN_BOTTOM :矩形範囲の下端に配置します
  • width
    走行軌跡の線の太さを指定します.
  • r
    自車位置を示す円の半径を指定します.
  • color_indicator
    自車位置を示す円のカラーコードを指定します.
  • color_0g, color_plus, color_minus
    それぞれ前後方向の G が 0 / 加速 / 減速時の走行軌跡の色を指定します.

返り値

返り値はありません.

解説

走行軌跡 (コースマップ) を表示します.走行軌跡は指定された矩形範囲内に収まる範囲の最大の大きさで描画されますので,横幅か高さのどちらかは範囲内いっぱいに描画されます.
また,走行軌跡の時間的な長さは,VSD 設定ダイアログの「走行軌跡長さ」で設定された秒数の長さだけ描画されます.ただし簡易ラップタイム計測を行なっている場合は,走行中のラップの走行軌跡のみが表示されます.

走行軌跡と全車位置の描画

Vsd.DrawMapPosition( x1, y1, x2, y2, align, width, color_line, font [, color_font [, color_outline]] )

パラメータ

  • x1, y1, x2, y2
    走行軌跡を表示する矩形範囲を指定します.
  • align
    上記で指定した矩形範囲内に走行軌跡をどのように配置するかを指定します.以下のパラメータの幾つかを `|' (OR 演算子) でつなげて指定します.
    ALIGN_LEFT :矩形範囲の左端に配置します
    ALIGN_HCENTER :矩形範囲の幅中央に配置します
    ALIGN_RIGHT :矩形範囲の右端に配置します
    ALIGN_TOP :矩形範囲の上端に配置します
    ALIGN_VCENTER :矩形範囲の高さ中央に配置します
    ALIGN_BOTTOM :矩形範囲の下端に配置します
  • width
    走行軌跡の線の太さを指定します.
  • color_line
    走行軌跡の色を指定します.
  • font
    ドライバー名を描画する Font オブジェクトを指定します.
  • color_font
    ドライバー名のカラーコードを指定します.省略時は,0xFFFFFF (白) が指定されたものとみなされます.
  • color_outline
    font が縁取り (FONT_OUTLINE) 属性付きで作成されたフォントの場合,縁取り部分のカラーコードを指定します.省略時は 0x000000 (黒) を指定したものとみなされます.font が縁取りでない場合,このパラメータは無視されます.

返り値

返り値はありません.

解説

レースモニター機能において,走行軌跡 (コースマップ) と全車位置を表示します.走行軌跡は指定された矩形範囲内に収まる範囲の最大の大きさで描画されますので,横幅か高さのどちらかは範囲内いっぱいに描画されます.
また,走行軌跡の時間的な長さは,VSD 設定ダイアログの「走行軌跡長さ」で設定された秒数の長さだけ描画されます.ただし簡易ラップタイム計測を行なっている場合は,走行中のラップの走行軌跡のみが表示されます.

Google マップの描画

Vsd.DrawGoogleMaps( param )

パラメータ

  • param
    Google マップ描画用のパラメータを格納したオブジェクトを指定します.オブジェクトの作成方法はオブジェクトによるパラメータ一括指定を参照してください.以下では,オブジェクトに必要なプロパティ名を説明します.
    • Zoom
      ズームレベルを 0~21 で指定します
    • Maptype
      地図タイプを文字列で指定します.
      "roadmap" :地図
      "satellite" :航空写真
      "terrain" :地形図
      "hybrid" :地図+航空写真
    • X, Y
      地図画像左上の x, y 座標を指定します.
    • Width
      地図画像の幅を指定します.最大 640ピクセルまでです.
    • Height
      地図画像の高さを指定します.最大 640ピクセルまでです.
    • IndicatorSize
      自車インジケータ大きさ (半径) を指定します.
    • IndicatorColor
      自車インジケータのカラーコードを指定します.
    • UpdateTime, UpdateDistance
      地図の更新頻度を指定します.前回地図データを取得してから動画が UpdateTime ミリ秒以上経過し,かつ UpdateDistance ピクセル以上移動した場合にのみ,地図データを更新します.

解説

Google マップを描画します.

返り値

返り値はありません. このメソッドは Google にアクセスし地図データを得ています.Google マップにアクセスするためには「API キー」が必要です.キーは無料で取得できます.キー取得方法はこちらを参照してください.また,マップデータの取得は Google によって1日あたり 25,000 枚に制限されています.

類似機能である DrawRoadMap() との機能比較はこちらを参照してください.


地図 (OpenStreetMap) の描画

Vsd.DrawRoadMap( param )

パラメータ

  • param
    地図描画用のパラメータを格納したオブジェクトを指定します.オブジェクトの作成方法はオブジェクトによるパラメータ一括指定を参照してください.以下では,オブジェクトに必要なプロパティ名を説明します.
    • Zoom
      ズームレベルを 0~19 で指定します
    • Maptype
      将来の拡張のために予約されています.
      必ず "openstreetmap" を指定してください.
    • X, Y
      地図画像左上の x, y 座標を指定します.
    • Width
      地図画像の幅を指定します.
    • Height
      地図画像の高さを指定します.
    • IndicatorSize
      自車インジケータ大きさ (半径) を指定します.
    • IndicatorColor
      自車インジケータのカラーコードを指定します.
    • PathColor
      走行軌跡のカラーコードを指定します.-1 を指定すると走行軌跡を表示しません.
    • PathWidth
      走行軌跡の線の幅を指定します.

返り値

返り値はありません.

解説

地図 (OpenStreetMap) を描画します.
類似機能である DrawGoogleMaps() と比べ,主に地図の著作権から来る制約が緩いものになっています.

DrawRoadMap() と DrawGoogleMaps() との機能比較を以下に示します.

DrawGoogleMaps() DrawLoadMap()
地図データ Google マップ OpenStreetMap
地図種別 ○道路地図,航空写真,地形図,
 道路地図+航空写真
×道路地図
最大サイズ ×640x640 ○無制限
地図データ取得制限 ×25,000枚 / 1日 ○無制限
API キーの取得 ×必要 ○不要
地図スクロール ×設定したタイミングでスクロールし,
 それ以外では自車インジケータが移動
○自車インジケータは常に地図中央に固定,
 地図がスムースにスクロールする
走行軌跡表示 ×なし ○あり

Google マップの逆ジオコーディングによる住所取得

Vsd.Geocoding( param )

パラメータ

  • param
    逆ジオコーディング用のパラメータを格納したオブジェクトを指定します.オブジェクトの作成方法はオブジェクトによるパラメータ一括指定を参照してください.以下では,オブジェクトに必要なプロパティ名を説明します.
    • UpdateTime
      住所の取得頻度を指定します.前回住所データを取得してから動画が UpdateTime ミリ秒以上経過した場合にのみ,住所データを更新します.

返り値

住所を表す文字列が返されます.

解説

Google マップ逆ジオコーディングを実行し,住所を表す文字列を取得します.

結果は Vsd.Geocoding() の返り値として返されるほか,param.Address にも返されます.また,param.Result にはすべてのレスポンスが格納されます.逆ジオコーディングのレスポンスの詳細はこちらを参照してください.

Vsd.Geocoding() は何度実行されても,Google に対しては param.UpdateTime で指定した時間間隔でしかリクエストが実行されません.param.UpdateTime より短い間隔で実行された場合は,前回と同じ結果が返されます.また逆ジオコーディングのリクエストの実行は Google によって1日あたり 2,500 回に制限されています.


円形メータ用目盛り描画

Vsd.DrawRoundMeterScale( param )

パラメータ

  • param
    描画用のパラメータを格納したオブジェクトを指定します.オブジェクトの作成方法はオブジェクトによるパラメータ一括指定を参照してください.以下では,オブジェクトに必要なプロパティ名を説明します.
    • X, Y
      メーター円の中心座標を指定します.
    • R
      メーター円の半径を指定します.
    • Line1Len, Line2Len
      大目盛り・小目盛りの長さを指定します.
    • Line1Width, Line2Width
      大目盛り・小目盛りの線の太さを指定します.
    • Line1Color, Line2Color
      大目盛り・小目盛りの線のカラーコードを指定します.
    • Line1Cnt
      MinAngle ~ MaxAngle の範囲を,大目盛りによって最大何分割するかを指定します.実際に何分割されるかは,解説を参照してください.
    • Line2Cnt
      大目盛りを何分割して小目盛りを表示するかを指定します.
    • MinVal
      メーターの最小数値を指定します.マイナス値も指定可能です.
    • MaxVal
      メーターの最大数値を指定します.
    • MinAngle
      メーター数値が最小の時の角度を指定します.
    • MaxAngle
      メーター数値が最大の時の角度を指定します.MinAngle と値が等しい場合,360°の目盛りが描画されます.
    • NumR
      数値を配置する円周の半径を指定します.
    • FontColor
      目盛り数値を表示するカラーコードを指定します.
    • Font
      目盛り数値を表示する Font オブジェクトを指定します.

返り値

返り値はありません.

解説

円形メータ用の目盛り・数値を描画します.以下の 3 つのパーツから構成されます.
  • 目盛り数値
  • 大目盛り.目盛り数値 1個につき一つの大目盛りが描画されます.
  • 小目盛り.大目盛りを Line2Cnt 等分して描画されます.
何個の大目盛り (と目盛り数値) を描画するかは,MinVal, MaxVal と Line1Cnt から自動的に決定されます.つまり,MinVal ~ MaxVal の範囲が大目盛りによって最大で Line1Cnt 個に分割されるように,大目盛り 1つ分の値が調整されます.
例えば,MinVal=0, MaxVal=120, Line1Cnt=12 の場合,0, 10, 20, ... , 120 と大目盛り (と数値) が描画され,大目盛りによって 12個に分割されます.
ここで MaxVal=130 に変更すると,大目盛り間隔が 10 だと分割数が 13 個になってしまうため,大目盛り間隔は 20 に調整され 0, 20, 40, ... , 120 の数値が描画されます.

MaxAngle, MinAngle 値が等しい場合,360°の目盛りが描画され,また MaxVal に当たる数値は描画されません.例えば,MinAngle == MaxAngle, MinVal=0, MaxVal=10, Line1Cnt=10 とした場合,目盛り数値 10 は (0 に重なるため) 描画されません.

大目盛り・小目盛りは,それぞれ個別に長さ,太さ,色を指定できます.

目盛り数値は,幅・高さ中心点が半径 NumR の円周上になるように配置されます.


線形メータ用目盛り描画

Vsd.DrawLinearMeterScale( param )

パラメータ

  • param
    描画用のパラメータを格納したオブジェクトを指定します.オブジェクトの作成方法はオブジェクトによるパラメータ一括指定を参照してください.以下では,オブジェクトに必要なプロパティ名を説明します.
    • Flag
      メーターの描画方向,及び目盛り数値のアライメントを指定します.以下のパラメータの幾つかを `|' (OR 演算子) でつなげて指定します.
      LMS_HORIZONTAL :水平のメータ用目盛りを描画します.
      LMS_VERTICAL :垂直のメータ用目盛りを描画します.
      ALIGN_* :目盛り数値の文字列をどのように配置するか (アライメント) を指定します.
    • X, Y
      メーターの座標を指定します.
    • Width
      メーターの横幅 (LMS_HORIZONTAL 指定時),縦高さ (LMS_VERTICAL 指定時) を指定します.マイナス値が指定された場合,通常の方向とは逆方向に目盛りが描画されます.
    • Line1Len, Line2Len
      大目盛り・小目盛りの長さを指定します.マイナス値が指定された場合,通常の方向とは逆方向に目盛りが描画されます.
    • Line1Width, Line2Width
      大目盛り・小目盛りの線の太さを指定します.
    • Line1Color, Line2Color
      大目盛り・小目盛りの線のカラーコードを指定します.
    • Line1Cnt
      MinVal ~ MaxVal の範囲を,大目盛りによって最大何分割するかを指定します.実際に何分割されるかは,解説を参照してください.
    • Line2Cnt
      大目盛りを何分割して小目盛りを表示するかを指定します.
    • MinVal
      メーターの最小数値を指定します.マイナス値も指定可能です.
    • MaxVal
      メーターの最大数値を指定します.
    • NumPos
      数値を配置する座標を,Y (LMS_HORIZONTAL 指定時),X (LMS_VERTICAL 指定時) に対する相対位置で指定します.ここで指定された座標に対し,更に Flag で指定されたアライメントが加味され,最終的な目盛り数値描画位置が決まります.
    • FontColor
      目盛り数値を表示するカラーコードを指定します.
    • Font
      目盛り数値を表示する Font オブジェクトを指定します.

返り値

返り値はありません.

解説

線形メータ用の目盛り・数値を描画します.以下の 3 つのパーツから構成されます.
  • 目盛り数値
  • 大目盛り.目盛り数値 1個につき一つの大目盛りが描画されます.
  • 小目盛り.大目盛りを Line2Cnt 等分して描画されます.
何個の大目盛り (と目盛り数値) を描画するかは,MinVal, MaxVal と Line1Cnt から自動的に決定されます.つまり,MinVal ~ MaxVal の範囲が大目盛りによって最大で Line1Cnt 個に分割されるように,大目盛り 1つ分の値が調整されます.
例えば,MinVal=0, MaxVal=120, Line1Cnt=12 の場合,0, 10, 20, ... , 120 と大目盛り (と数値) が描画され,大目盛りによって 12個に分割されます.
ここで MaxVal=130 に変更すると,大目盛り間隔が 10 だと分割数が 13 個になってしまうため,大目盛り間隔は 20 に調整され 0, 20, 40, ... , 120 の数値が描画されます.

大目盛り・小目盛りは,それぞれ個別に長さ,太さ,色を指定できます.


円形メータ用針描画

Vsd.DrawNeedle( x, y, r1, r2, min_angle, max_angle, value, color [, width] )

パラメータ

  • x, y
    針回転の中心座標を指定します.
  • r1, r2
    針の長さを指定します.詳細は解説を参照してください.
  • min_angle
    メーター数値が 0 の時の針の角度を指定します.
  • max_angle
    メーター数値が最大の時の針の角度を指定します.
  • value
    針が指す数値を 0~1 の範囲で指定します.
  • color
    針のカラーコードを指定します.
  • width
    針の線の太さを指定します.

返り値

返り値はありません.

解説

円形メーター用の針を描画します.
メーターの針が指す数値 (value) は 0~1 の範囲で指定します.すなわち value が 1 の時に針は max_angle の角度を指すことになります.例えば最大 180km/h のスピードメータを描画したい場合,value には Vsd.Speed / 180 を指定します.
r2 にはマイナスの値を指定できます.この場合,中心座標の反対側まで伸びる針を描画します.

多角形の描画

Vsd.DrawPolygon( points, color [, flag] )

パラメータ

  • points
    多角形の頂点の x, y 座標を格納した,配列を指定します.
  • color
    多角形を描画する色のカラーコードを指定します.
  • flag
    下記のいずれかの値を指定します.
    DRAW_FILL :多角形の内部を塗りつぶします
    DRAW_NOCLOSE :points で指定された開始座標と終了座標を結ぶ直線を描画しません

返り値

返り値はありません.

解説

DrawPolygon() は,直線で構成される多角形を描画します.
多角形の頂点の x, y 座標を格納した配列を作成し,points に指定します.配列の要素数は必ず偶数個にし,配列の 2n 番目の要素に x 座標,2n+1 番目の要素に y 座標を格納します.

例: 菱型を描画します

var Points = [
// x座標  y座標
     10, 20,  // 頂点1
     20, 10,  // 頂点2
     10,  0,  // 頂点3
      0, 10,  // 頂点4
];
Vsd.DrawPolygon( Points, 0xFFFFFF, DRAW_FILL );

時間を表す文字列への変換

Vsd.FormatTime( time )

パラメータ

  • time
    ミリ秒単位の整数を指定します.

返り値

時間を表す文字列を返します.

解説

ミリ秒単位の数値を「1'23.456」などの時間を表す文字列に変換します.

Log オブジェクト

一覧

プロパティ
プロパティ名 (例: Speed) 現在の「プロパティ名」のログの値を取得します
Min.プロパティ名 (例: Min.Speed)「プロパティ名」の最小値を取得します
Max.プロパティ名 (例: Max.Speed)「プロパティ名」の最大値を取得します
メソッド
ValueOfIndex() 任意の時刻のログの値を取得します

走行ログ情報の取得

ログ情報のプロパティは,ログファイルリーダでどのプロパティを定義したかで使用できるかどうかが決まります.詳しくはログデータの VSD への渡し方を参照してください.
例えば,Log.Speed は現在のスピードを取得します.また,Log.Min.Speed でスピードの最小値,Log.Max.Speed でスピードの最大値を取得します.
以下では代表的なプロパティを示しますが,これらが常に使用できるとは限らず,また別のプロパティが使用できる事もあります.
all_property.js スキンを使用すると,そのときのログで参照できるプロパティをすべて表示できます.

Log.Max.Speed
ログ中の最大スピードを取得します.
Log.Speed
現在のスピードを取得します.
Log.Gx
現在の左右方向の加速度を取得します.
Log.Gy
現在の前後方向の加速度を取得します.
Log.Max.Gx
左右方向の加速度の絶対値の最大値を取得します.
Log.Max.Gy
前後方向の加速度の絶対値の最大値を取得します.

任意の時刻のログの値の取得

Log.ValueOfIndex( property, frame )

パラメータ

  • property
    値を取得するプロパティ名を文字列で指定します.(例: "Speed")
  • frame
    値を取得する時刻を,フレーム番号で指定します.

返り値

取得したログの値を返します.property で指定されたプロパティが存在しない場合は,undefined が返ります.

解説

任意の時刻のログの値を取得します.
Log.Speed などでは,現在値しか取得できませんが,ValueOfIndex() を使用することで,過去または未来の値を取得することができます.

時刻はフレーム番号で指定します.ミリ秒や,ログリーダのレコード番号ではありませんので注意してください.
また frame には小数値を指定することができます.その場合は,例えば 10.3 を指定した場合,フレーム #10 と #11 の値から線形補間した値を取得します.


Image オブジェクト

一覧

コンストラクタ
Image() 画像ファイルをロードします.
Image() 既存の Image オブジェクトのコピーを作成します
プロパティ
Width 画像の横サイズ
Height 画像の縦サイズ
メソッド
Dispose() Image オブジェクトを明示的に破棄します
Resize() 画像を拡大・縮小します
Rotate() 画像を回転します

コンストラクタ

image = new Image( file )

パラメータ

  • file
    画像ファイル名を指定します.

解説

画像ファイルをオープンし,メモリに読込みます.読み込めるフォーマットは,BMP,GIF,JPEG,PNG,TIFF,Exif,WMF,EMF です.
file を「Vsd.SkinDir + "file.png"」等とすることで,スキンファイルと同じディレクトリにある file.png をロードすることができます.

Image オブジェクトのコピー

image = new Image( org_image )

パラメータ

  • org_image
    コピーしたい Image オブジェクトを指定します.

解説

Image オブジェクトをコピーします.同じ画像ファイルを複数読み込む場合,ファイルから読み込むより高速に処理できます.

プロパティ

image.Width
画像の幅を取得します.
image.Height
画像の高さを取得します.

Image オブジェクトの明示的な破棄

image.Dispose()

パラメータ

パラメータはありません.

返り値

返り値はありません.

解説

Image オブジェクトを明示的に破棄します.
JavaScript は,使用されなくなったオブジェクトは自動的に破棄されますが,メモリ節約のためにスクリプトで使用されなくなった時に,明示的に破棄することをおすすめします.

画像サイズの変更

image.Resize( width, height )

パラメータ

  • width
    変更後の画像幅を指定します.
  • height
    変更後の画像高さを指定します.

返り値

返り値はありません.

解説

画像を拡大・縮小して画像サイズを変更します.

画像の回転

image.Rotate( x, y, angle )

パラメータ

  • x, y
    回転の中心となる x, y 座標を指定します.
  • angle
    回転する角度を度単位で指定します.

返り値

返り値はありません.

解説

画像を指定された座標を中心に回転します.
画像サイズは変更されませんので,回転後の画像が画像範囲をはみ出る場合,はみ出た部分は切り捨てられます.また,画像範囲外の領域が画像範囲内に現れた場合,その領域は透明になります.

Font オブジェクト

一覧

コンストラクタ
Font() フォントを作成します
プロパティ
Height フォントの高さ
メソッド
Dispose() Font オブジェクトを明示的に破棄します
GetTextWidth() 文字列を表示した時の横幅を取得します

コンストラクタ

font = new Font( font_name, size [, attr] )

パラメータ

  • font_name
    フォント名を指定します.
  • size
    フォントサイズを指定します.
  • attr
    フォントの修飾情報を指定します.以下のパラメータの幾つかを `|' (OR 演算子) でつなげて指定します.
    省略時は,0 を指定したものとみなされます.
    FONT_BOLD :フォントを太字にします.
    FONT_ITALIC :フォントを斜体にします.
    FONT_OUTLINE :フォントを縁取りにします.
    FONT_FIXED :プロポーショナルフォントを,強制的に固定幅として扱います.
    FONT_NOANTIALIAS :フォントをなめらかにする処理 (アンチエイリアス) を無効にし,フォント描画を高速化します.

解説

指定されたフォント・サイズでフォントを作成します.DrawText() 等,文字列を描画するメソッドに作成したフォントオブジェクトを渡します.

プロポーショナルフォントは各文字の幅が違うため,複数の文字列を縦に並べた場合綺麗に揃わない場合があります.その場合は attr に FONT_FIXED を指定してください.

attr に FONT_NOANTIALIAS を指定した場合,文字のギザギザが目立つようになりますが,描画処理は高速になります.

日本語を正しく表示するためには,日本語フォント名を指定する必要があります.
また "FixedSys" 等,一部のフォントは使用できないことがわかっています.DrawText 等で全く表示されない場合は,他のフォントを試してください.


フォントの高さ取得

font.Height
そのフォントの高さ (空白部分を含む) を取得します.

Font オブジェクトの明示的な破棄

font.Dispose()

パラメータ

パラメータはありません.

返り値

返り値はありません.

解説

Font オブジェクトを明示的に破棄します.
JavaScript は,使用されなくなったオブジェクトは自動的に破棄されますが,メモリ節約のためにスクリプトで使用されなくなった時に,明示的に破棄することをおすすめします.

文字列の描画時の幅取得

font.GetTextWidth( string )

パラメータ

  • string
    幅を取得する文字列を指定します.

返り値

横幅をピクセル数で返します.

解説

Vsd.DrawTextAlign / Vsd.DrawText 等で,font で指定したフォントで文字列 string を描画した時の横幅 (空白部分を含む) を取得します.

File オブジェクト

一覧

コンストラクタ
File() ファイル オブジェクトを作成します
メソッド
Dispose() File オブジェクトを明示的に破棄します
Open() ファイルをオープンします
Close() ファイルをクローズします
ReadLine() テキストファイルを 1行読込みます
Seek() ファイルの読み書きオフセットの位置を変更します
IsEOF() ファイルが終端 (EOF) に達したかを調べます
ReadChar() 8bit 符号付き整数をリードします
ReadUChar() 8bit 符号無し整数をリードします
ReadShortL() 16bit 符号付き整数をリードします
ReadUShortL() 16bit 符号無し整数をリードします
ReadIntL() 32bit 符号付き整数をリードします
ReadUIntL() 32bit 符号無し整数をリードします
ReadFloat() 単精度浮動小数をリードします
ReadDouble() 倍精度浮動小数をリードします
ReadShortB() 16bit 符号付き整数をリードします
ReadUShortB() 16bit 符号無し整数をリードします
ReadIntB() 32bit 符号付き整数をリードします
ReadUIntB() 32bit 符号無し整数をリードします
WriteChar() 8bit 符号付き整数をライトします
WriteDouble() 倍精度浮動小数をライトします
WriteFloat() 単精度浮動小数をライトします
WriteIntB() 32bit 符号付き整数をライトします
WriteIntL() 32bit 符号付き整数をライトします
WriteLine() 文字列をライトします
WriteShortB() 16bit 符号付き整数をライトします
WriteShortL() 16bit 符号付き整数をライトします
ZipNextFile() zip 書庫内の次のファイルをオープンします

コンストラクタ

file = new File()

パラメータ

パラメータはありません.

解説

ファイル オブジェクトを作成します.
ファイルのオープン自体は Open メソッドで行います.

File オブジェクトの明示的な破棄

file.Dispose()

パラメータ

パラメータはありません.

返り値

返り値はありません.

解説

File オブジェクトを明示的に破棄します.同時に開かれていたファイルは閉じられます.
JavaScript は,使用されなくなったオブジェクトは自動的に破棄されますが,メモリ節約のためにスクリプトで使用されなくなった時に,明示的に破棄することをおすすめします.

ファイルを開く

file.Open( file, mode )

パラメータ

  • file
    開くファイル名を指定します.
  • mode
    ファイルオープン時のモードを指定します.
    "r" :テキストモードで読込みファイルとして開きます
    "rb" :バイナリモードで読込みファイルとして開きます
    "zrb" :gzip ファイルをバイナリモードで読込みファイルとして開きます.gzip で圧縮されたファイルを展開しながらリードします.
    "Zrb" :zip ファイルをバイナリモードで読込みファイルとして開きます.zip で圧縮されたファイルを展開しながらリードします.
    "w" :テキストモードで書込みファイルとして開きます
    "wb" :バイナリモードで書込みファイルとして開きます
    "zwb" :gzip ファイルをバイナリモードで書込みファイルとして開きます.書込みデータを gzip で圧縮しながら書き込みます.

返り値

成功した場合は 0 を返します.

解説

ファイルを開きます.
テキスト形式のログをリードする場合はテキストモードで,バイナリ形式のログをリードする場合はバイナリモードで開きます.

zip モードでオープンしたファイルは,リードしかサポートされないため,ライト系のメソッドは実行できません.また Seek() は実行できません.
zip 書庫内には複数のファイルが格納されているため,書庫内のファイルを順次オープンするために ZipNextFile() の実行が必要です.詳細は ZipNextFile() の解説を参照してください.


ファイルを閉じる

file.Close()

パラメータ

パラメータはありません.

返り値

返り値はありません.

解説

ファイルをクローズします.

テキストファイルを 1行読む

file.ReadLine()

パラメータ

パラメータはありません.

返り値

読み込んだ文字列を返します.

解説

テキストファイルを 1行読みます.

文字列を書き込む

file.WriteLine( str )

パラメータ

  • str
    ファイルに書き込む文字列を指定します.

返り値

ファイルに書き込んだバイト数を返します.
エラー時は 0 以下の値が返ります.

解説

文字列をファイルに書き込みます.
文字列の最後後に改行は自動的には付加されません

ファイルアクセス位置の移動

file.Seek( offset, whence )

パラメータ

  • offset
    whence で指定された位置からのオフセット位置を指定します.
  • whence
    ファイル位置の基準となる位置を指定します.
    SEEK_SET :オフセットは offset 位置にセットされます
    SEEK_CUR :オフセットは現在位置に offset バイトを足した位置に設定されます
    SEEK_END :オフセットはファイルのサイズに offset バイトを足した位置に設定されます

返り値

成功すると 0 を返します.

解説

ファイルのアクセス位置を変更します.
Seek() メソッド実行直後は,IsEOF() の返り値は常に 0 になります.
zip モードでオープンしたファイルは Seek() は実行できません.

ファイルの EOF 状態の取得

file.IsEOF()

パラメータ

パラメータはありません.

返り値

ファイルが終端に達している場合,0 以外を返します.

解説

ファイルが終端に達しているかどうかを調べます.
Seek() メソッドを実行直後に IsEOF() メソッドを実行した場合は,必ず 0 が返されます.

バイナリデータを読む

file.ReadChar()
file.ReadUChar()
file.ReadShortL()
file.ReadUShortL()
file.ReadShortB()
file.ReadUShortB()
file.ReadIntL()
file.ReadUIntL()
file.ReadIntB()
file.ReadUIntB()
file.ReadFloat()
file.ReadDouble()

パラメータ

パラメータはありません.

返り値

読み込んだ数値を返します.

解説

各メソッドごとに規定されたバイト数のデータを読込み,それを数値に変換します.
各メソッドごとのバイト数・符号・エンディアンは以下のとおりです.
メソッド データ種別 バイト数 エンディアン
ReadChar 符号有り整数 1 -
ReadUChar 符号無し整数 1 -
ReadShortL 符号有り整数 2 little
ReadUShortL 符号無し整数 2 little
ReadShortB 符号有り整数 2 big
ReadUShortB 符号無し整数 2 big
ReadIntL 符号有り整数 4 little
ReadUIntL 符号無し整数 4 little
ReadIntB 符号有り整数 4 big
ReadUIntB 符号無し整数 4 big
ReadFloat 単精度浮動小数 4 little
ReadDouble 倍精度浮動小数 8 little

バイナリデータを書き込む

file.WriteChar( num )
file.WriteShortL( num )
file.WriteShortB( num )
file.WriteIntL( num )
file.WriteIntB( num )
file.WriteFloat( num )
file.WriteDouble( num )

パラメータ

  • num
    ファイルに書き込む数値を指定します.

返り値

ファイルに書き込んだバイト数を返します.
エラー時は 0 以下の値が返ります.

解説

数値をバイナリデータに変換し,各メソッドごとに指定された規定されたバイト数のデータをファイルに書き込みます.
各メソッドごとのバイト数・符号・エンディアンは以下のとおりです.
メソッド データ種別 バイト数 エンディアン
WriteChar 整数 1 -
WriteShortL 整数 2 little
WriteShortB 整数 2 big
WriteIntL 整数 4 little
WriteIntB 整数 4 big
WriteFloat 単精度浮動小数 4 little
WriteDouble 倍精度浮動小数 8 little

zip 書庫内の次のファイルをオープンする

file.ZipNextFile()

パラメータ

パラメータはありません.

返り値

オープンされた zip 書庫内のファイル名を返します.
それ以上書庫内にファイルがない場合は undefined を返します.

解説

zip 書庫内の最初・次のファイルをオープンし,ReadLine() 等が実行できる状態にします.

zip ファイルを zip モードで Open() した後,最初に ZipNextFile() を実行する必要があります.ZipNextFile() 実行後は,通常のリード系メソッドや IsEOF() を実行できます.
書庫内の一つのファイル処理が終わった後,書庫内の次のファイル処理に進むために ZipNextFile() を実行します.
ZipNextFile() はオープンした書庫内ファイル名を返すため,処理したい目的のファイルかどうかを判断することができます.
zip 書庫内の個々のファイルに対するクローズ操作はありません.

以下に,zip 書庫内の *.txt ファイルの内容をすべてコンソールに出力する例を示します.

var file = new File();
file.Open( "test.zip", "Zrb" );  // zip モードでオープン

var filename;

// zip 書庫内のファイルごとに処理を行う
while( filename = file.ZipNextFile()){
  
  // 拡張子が .txt か判定する
  if( filename.match( /\.txt$/i )){
    
    // 書庫内の 1つのファイルが EOF になるまで,内容をコンソールに出力
    while( !file.IsEOF()) Print( file.ReadLine());
  }
}
file.Close();

ActiveXObject オブジェクト

一覧

コンストラクタ
ActiveXObject() オートメーション オブジェクトへのインターフェイスを作成します

コンストラクタ

obj = new ActiveXObject( server_name )

パラメータ

  • server_name
    オブジェクトを提供するアプリケーション名,クラス名を指定します

解説

Windows Scripting Host 等で提供されている ActiveXObject とほぼ同等の機能です.より詳細な解説は他の ActiveXObject の解説を参照してください.
実装されていない機能も多々ありますが,"WScript.Shell" や "Msxml2.XMLHTTP.6.0" 程度なら動作すると思います.

パラメータについての補足

カラーコード

カラーコードは,16進数 8桁で以下のフォーマットで指定します.

0xAARRGGBB

一般的なカラーコードに加えて,アルファ値 (透明度) を指定できます.
AA はアルファ値を 0x00~0xFF で指定します.0x00 は完全な不透明,0xFF は完全な透明です.アルファ値が 0x00 の時はそれを省略した 0xRRGGBB 形式で記述できます.アルファ値が 0x00・0xFF 以外の場合,処理が重くなるので多用は避けるべきです.

RR, GG, BB は,それぞれ赤・緑・青を 0x00~0xFF で指定します.

例:
0xFFFFFF : 白
0x80FF0000 : 50% の透明度の赤
0 : 16進数で 0x000000,つまり黒

角度指定

角度を指定するパラメータには,度単位の数値を指定します.時計の針で言う所の 3時が 0度であり,時計回りに角度が増加します.
   

アライメント指定

アライメント指定を持つメソッドでは, 文字列や図形等が描画される範囲を長方形とみなした時 (例えば,文字列であれば文字列の横幅×文字高さを長方形とみなす),指定された x, y 座標に対し長方形をどのように配置するかを指定することができます.
以下のパラメータの幾つかを `|' (OR 演算子) でつなげて指定します.
ALIGN_LEFT :x 座標が長方形の左端になるよう配置します
ALIGN_HCENTER :x 座標が長方形の幅中央になるよう配置します
ALIGN_RIGHT :x 座標が長方形の右端になるよう配置します
ALIGN_TOP :y 座標が長方形の上端になるよう配置します
ALIGN_VCENTER :y 座標が長方形の高さ中央になるよう配置します
ALIGN_BOTTOM :y 座標が長方形の下端になるよう配置します

オブジェクトによるパラメータ一括指定

ここでは,パラメータをオブジェクトで指定するメソッドの,オブジェクト作成,使用方法を説明します.
具体的なパラメータは,一つのオブジェクトに全て格納し,メソッドにはそのオブジェクトを指定します.オブジェクトは Initialize() 内で 1回だけ作成するのが良いです.

以下に,DrawGoogleMaps() の例を示します.

function Initialize(){
    
    // パラメータ作成
    GoogleMapsParam = {
        APIKey: "abcdefg",
        Zoom: 14,
        Maptype: "roadmap",
        X:      0,
        Y:      0,
        Width:  400,
        Height: 300,
        IndicatorSize:  12 * Scale,
        IndicatorColor: 0x0080FF,
        UpdateTime:     1000,
        UpdateDistance: 5,
    };
    ...
}

function Draw(){
    // Google マップ描画
    Vsd.DrawGoogleMaps( GoogleMapsParam );
    ...
}