 #11 関数の引数
#11 関数の引数
前回で、プログラム上の不明個所は無くなりました。ですので今回は試しに処理を増やして遊んでみたいと思います。文を1行表示するだけでは、つまらないですからね。試しに、7行目をコピペしてみます。そして、「こんにちは世界」の部分をテキトーに変えてみます。
window.onload = function( ev )                      //  ブラウザloadイベントに関数を設定
{                                                   //  関数の始まり
    const   ca = document.getElementById( 'main' ); //  変数caを宣言し、ブラウザ要素を代入
    const   g = ca.getContext( '2d' );              //  変数gを宣言し、ブラウザ要素の描画コンテキストを代入
    g.font = "40px monospace";                      //  変数gの書体を40ドットへ
    g.fillStyle = "#ff0000";                        //  変数gの描画色を赤へ
    g.fillText( "こんにちは世界", 40, 80 );         //  変数gへ文字列を描画
    g.fillText( "さようなら皆さん", 40, 80 );       //  変数gへ文字列を描画
}                                                   //  関数の終わり
ペーストした行のメッセージ内容を「さようなら皆さん」に変更してみました。これでブラウザを起動してみると、
という感じで、文字が重なってしまい上手く表示されません。コピペしただけじゃダメだということですね。
CanvasRenderingContext2D.fillText()
「構文」の項目には、以下のように記述されています。
void ctx.fillText(text, x, y [, maxWidth]);
この記述と、7行目の記述の対比をしてみます。
void ctx.fillText(      text       , x , y  [, maxWidth]);
      g .fillText( "こんにちは世界", 40, 80             );
カンマ(,)の位置などを揃えて記述してみると、こんな感じになります。そして、Mozillaマニュアルの「引数」欄を見てみると、
text
  現在の font、textAlign、textBaseline、direction の値を使用して描画するテキスト。
x
  テキストの描画を始める、x 軸の座標。
y
  テキストの描画を始める、y 軸の座標。
と書かれているので分かりますよね? それぞれ
 text : "こんにちは世界"
 x : 40
 y : 80
に対応しています。このように、関数のカッコの中に記述されているものを、「関数の引数」と言います。ちなみに、「fillText」部分は「関数名」といいます。そして、関数名は当然ながら固定なのですが、関数の引数については、使用する側が好きなように値を決めることが出来る、というわけです。
今回の目的は、2つの文の描画位置をずらすということでしたよね。Y座標の値を変更すれば解決しそうです。
window.onload = function( ev )                      //  ブラウザloadイベントに関数を設定
{                                                   //  関数の始まり
    const   ca = document.getElementById( 'main' ); //  変数caを宣言し、ブラウザ要素を代入
    const   g = ca.getContext( '2d' );              //  変数gを宣言し、ブラウザ要素の描画コンテキストを代入
    g.font = "40px monospace";                      //  変数gの書体を40ドットへ
    g.fillStyle = "#ff0000";                        //  変数gの描画色を赤へ
    g.fillText( "こんにちは世界", 40, 80 );         //  変数gへ文字列を描画
    g.fillText( "さようなら皆さん", 40, 130 );      //  変数gへ文字列を描画
}                                                   //  関数の終わり
1つ注意点として、この「座標」については、原点(0,0)が領域左上に存在するということです。そして、Y軸は下に向かって増えていきます。数学と上下が逆なので最初のうちは戸惑うかもしれませんが、まあすぐに慣れると思います。
ちなみに、座標の最大値は(640,360)ですが、この値はindex.htmlの10行目に記述した、
<canvas id="main" width="640" height="360" style="background-color:#0000ff;"></canvas>
の、「width="640"」「height="360"」の部分で指定した値になります。ここの数字を変えれば、ブラウザ上の青領域の大きさが変化するので試してみて下さい。
 戻る back
戻る back