<?xml version="1.0" encoding="utf-8"?><!DOCTYPE article  PUBLIC '-//OASIS//DTD DocBook XML V4.4//EN'  'http://www.docbook.org/xml/4.4/docbookx.dtd'><article><articleinfo><title>etoys引数のあるスクリプト</title><revhistory><revision><revnumber>11</revnumber><date>2011-07-19 02:56:00</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>10</revnumber><date>2011-07-19 02:52:36</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>9</revnumber><date>2011-07-19 02:49:48</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>8</revnumber><date>2011-07-19 02:37:16</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>7</revnumber><date>2011-07-19 02:34:17</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>6</revnumber><date>2011-07-19 02:33:47</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>5</revnumber><date>2011-07-19 02:25:36</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>4</revnumber><date>2011-07-19 02:14:23</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>3</revnumber><date>2011-07-19 02:08:56</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>2</revnumber><date>2011-07-19 02:02:59</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>1</revnumber><date>2011-07-19 01:58:43</date><authorinitials>masahiko</authorinitials></revision></revhistory></articleinfo><section><title>引数のあるスクリプト</title><!--rule (<hr>) is not applicable to DocBook--><section><title>スクリプトの呼び出し</title><para>処理内容が多くてスクリプトが長くなるときには、 内容ごとに別のスクリプトに分けて記述し、 これを呼び出して使うことができます。 </para><section><title>例１</title><para>とんぼのスクリプト１がこのように記述されているとき、 </para><itemizedlist><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/etoys%E5%BC%95%E6%95%B0%E3%81%AE%E3%81%82%E3%82%8B%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88?action=AttachFile&amp;do=get&amp;target=call01.png"/></imageobject><textobject><phrase>call01.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist><para>スクリプト１をスクリプト２の中で利用することができます。 </para><itemizedlist><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/etoys%E5%BC%95%E6%95%B0%E3%81%AE%E3%81%82%E3%82%8B%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88?action=AttachFile&amp;do=get&amp;target=call02.png"/></imageobject><textobject><phrase>call02.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist><para>この場合 </para><itemizedlist><listitem><para>スクリプト２を<emphasis role="strong">チクタク</emphasis>にし </para></listitem><listitem><para>スクリプト１は<emphasis role="strong">ノーマル</emphasis>にしておく </para></listitem></itemizedlist><para>ことに注意して下さい。 </para></section><section><title>例２</title><para>カウンタを使って場合わけをした場合です。 </para><para>処理内容によりスクリプトを分割しています。 </para><itemizedlist><listitem><para>スクリプト１に動きを </para></listitem><listitem><para>スクリプト２にカウンタの処理を </para></listitem></itemizedlist><para>記述しています。 </para><itemizedlist><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/etoys%E5%BC%95%E6%95%B0%E3%81%AE%E3%81%82%E3%82%8B%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88?action=AttachFile&amp;do=get&amp;target=call03.png"/></imageobject><textobject><phrase>call03.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist></section></section><section><title>例３</title><para>さらに場合わけを行って、ちょっとだけ異なった動作をさせる場合です。 </para><para>１つの動きは </para><itemizedlist><listitem><para>回す　５ </para></listitem><listitem><para>進める　１０ </para></listitem></itemizedlist><para>もう１つの動きは </para><itemizedlist><listitem><para>回す　－５ </para></listitem><listitem><para>進める　１０ </para></listitem></itemizedlist><para>と、回す量だけが異なっています。 </para><para>共通する処理内容だけをスクリプト１の中に書き、 これをスクリプト２で利用することにすれば 次のように書けます。 </para><itemizedlist><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/etoys%E5%BC%95%E6%95%B0%E3%81%AE%E3%81%82%E3%82%8B%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88?action=AttachFile&amp;do=get&amp;target=call04.png"/></imageobject><textobject><phrase>call04.png</phrase></textobject></inlinemediaobject> </para></listitem><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/etoys%E5%BC%95%E6%95%B0%E3%81%AE%E3%81%82%E3%82%8B%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88?action=AttachFile&amp;do=get&amp;target=call05.png"/></imageobject><textobject><phrase>call05.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist><para>しかし、これでは動きについての命令が スクリプト１とスクリプト２に分かれてしまい プログラムとしては分かりにくいものになってしまいます。 </para><!--rule (<hr>) is not applicable to DocBook--></section><section><title>引数のあるスクリプト</title><itemizedlist><listitem override="none"><para>スクリプト間で値を受け渡すことができます。 </para></listitem><listitem override="none"><para>値を渡すには引数(ひきすう)を使います。 </para></listitem></itemizedlist><section><title>呼び出される側のスクリプトに引数を追加</title><para>呼び出される側のスクリプトを表示し 右上のメニューボタンを押します。 </para><itemizedlist><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/etoys%E5%BC%95%E6%95%B0%E3%81%AE%E3%81%82%E3%82%8B%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88?action=AttachFile&amp;do=get&amp;target=call07.png"/></imageobject><textobject><phrase>call07.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist><para>引数を追加を選びます。 </para><itemizedlist><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/etoys%E5%BC%95%E6%95%B0%E3%81%AE%E3%81%82%E3%82%8B%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88?action=AttachFile&amp;do=get&amp;target=call06.png"/></imageobject><textobject><phrase>call06.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist><para>引数が追加されます。 </para><itemizedlist><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/etoys%E5%BC%95%E6%95%B0%E3%81%AE%E3%81%82%E3%82%8B%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88?action=AttachFile&amp;do=get&amp;target=call08.png"/></imageobject><textobject><phrase>call08.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist></section><section><title>引数の値を利用する</title><para>引数の部分をドラッグして 引数の値を利用したい箇所に 割り当てます。 </para><itemizedlist><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/etoys%E5%BC%95%E6%95%B0%E3%81%AE%E3%81%82%E3%82%8B%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88?action=AttachFile&amp;do=get&amp;target=call09.png"/></imageobject><textobject><phrase>call09.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist><para>このようになります。 </para><itemizedlist><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/etoys%E5%BC%95%E6%95%B0%E3%81%AE%E3%81%82%E3%82%8B%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88?action=AttachFile&amp;do=get&amp;target=call10.png"/></imageobject><textobject><phrase>call10.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist></section><section><title>引数のあるスクリプトの形</title><para>引数のあるスクリプトは </para><itemizedlist><listitem><para>スクリプトの上部は左のように、 </para></listitem><listitem><para>ビューアの表示は右のように </para></listitem></itemizedlist><para>なっています。 </para><itemizedlist><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/etoys%E5%BC%95%E6%95%B0%E3%81%AE%E3%81%82%E3%82%8B%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88?action=AttachFile&amp;do=get&amp;target=call12b.png"/></imageobject><textobject><phrase>call12b.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist><para>同じ形式で、左の number と右の 5 が対応しているのが分かります。 </para></section><section><title>引数のあるスクリプトを使う</title><para>引数のあるスクリプトは使い方がちょっと違います。 </para><itemizedlist><listitem><para>引数の値を指定して使います。 </para></listitem><listitem><para>チクタクにすることはできません。 </para></listitem></itemizedlist><para>ビューアで見るとこのようになっています。 </para><itemizedlist><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/etoys%E5%BC%95%E6%95%B0%E3%81%AE%E3%81%82%E3%82%8B%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88?action=AttachFile&amp;do=get&amp;target=call11.png"/></imageobject><textobject><phrase>call11.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist><para>！を押すと スクリプト１：の右にある５を引数の値として 実行されます。 </para><itemizedlist><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/etoys%E5%BC%95%E6%95%B0%E3%81%AE%E3%81%82%E3%82%8B%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88?action=AttachFile&amp;do=get&amp;target=call12a.png"/></imageobject><textobject><phrase>call12a.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist><para>赤で示した箇所が対応し、 Numberと書かれている箇所が５だとして実行されます。 ただし、スクリプトがこのように変わるわけではありません。 </para><itemizedlist><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/etoys%E5%BC%95%E6%95%B0%E3%81%AE%E3%81%82%E3%82%8B%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88?action=AttachFile&amp;do=get&amp;target=call13.png"/></imageobject><textobject><phrase>call13.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist><para>引数の値を１０に変えて実行すると </para><itemizedlist><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/etoys%E5%BC%95%E6%95%B0%E3%81%AE%E3%81%82%E3%82%8B%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88?action=AttachFile&amp;do=get&amp;target=call14.png"/></imageobject><textobject><phrase>call14.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist><para>numberの箇所が１０だとして実行されます。 </para><itemizedlist><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/etoys%E5%BC%95%E6%95%B0%E3%81%AE%E3%81%82%E3%82%8B%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88?action=AttachFile&amp;do=get&amp;target=call15.png"/></imageobject><textobject><phrase>call15.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist></section><section><title>例４</title><para>引数のあるスクリプトを使うと 例３のスクリプト２はこのように書けます。 </para><itemizedlist><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/etoys%E5%BC%95%E6%95%B0%E3%81%AE%E3%81%82%E3%82%8B%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88?action=AttachFile&amp;do=get&amp;target=call16.png"/></imageobject><textobject><phrase>call16.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist><!--rule (<hr>) is not applicable to DocBook--></section></section><section><title>補足</title><para>引数も変数と同様に、型を指定することができます。 </para><itemizedlist><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/etoys%E5%BC%95%E6%95%B0%E3%81%AE%E3%81%82%E3%82%8B%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88?action=AttachFile&amp;do=get&amp;target=call17.png"/></imageobject><textobject><phrase>call17.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist><para>よく使うのは次の３つです。 </para><itemizedlist><listitem><para>boolean はい/いいえ </para></listitem><listitem><para>number 数値 </para></listitem><listitem><para>string 文字 </para></listitem></itemizedlist></section></section></article>