« デザイナーのためのActionScript講座 ― 第4回:文字列と数値 | メイン | デザイナーのためのActionScript講座 ― 第6回:オブジェクトと関数 »
2007年11月 1日
[連載] デザイナーのためのActionScript講座 ― 第5回:関数の仕組みを知る
関数というのは、あらかじめ必要な処理をまとめておくためのものです。
ActionScript にあらかじめ用意された関数を使うこともできますし、自分で関数を新たに作ることもできます。
関数の仕組みを知るために、まずは自分で作ってみましょう。
ただ、これをプレビューしてみても何も起こりません。
関数は定義するだけでは何もおこらず、定義した関数内の処理も実行されません。
これを実行するためには、定義した関数を呼び出さなければなりません。
これをプレビューしてみると、出力に「function : undefined」と表示されます。
undefined とは「値が見つかりませんでした。」という意味です。
例えば
変数a に何も値を入れていないためです。
つまり引数 x に何も値が設定されなかったために x が undefined になったのです。
そこで funcName(); を以下のように書き換えてみます。
関数の呼び出しは、同じスクリプト内であれば、関数の定義より上で呼び出しても、下で呼び出しても 同様に使用することができます。
つまり関数は一度定義すると、その中の処理がどれだけ長くなっても、簡単に何度も呼び出して実行することができるのです。
しかし、このままでは関数の内部ですべて完結してしまって、関数内で計算した結果を、次の計算に活かすといったことができません。
そのために return を追記します。
つづく
ActionScript にあらかじめ用意された関数を使うこともできますし、自分で関数を新たに作ることもできます。
関数の仕組みを知るために、まずは自分で作ってみましょう。
function funcName( x )
{
trace( "func : " + x );
}
関数を簡単に作ってみました。
上記の関数の記述について簡単に説明します。| function |
関数を定義するために必ず function をまず書きます。 変数を定義するときの var のようなものです。 |
| funcName | funcName はこの関数を呼び出すための名前です。 |
| () | 関数に関数外から値を渡したい場合に、この括弧()の中に値を参照するための名前(変数のようなもの)を定義します。 |
| x |
関数の外部から渡された値を参照するための名前です。 関数の外部から渡された値のことを引数(Arguments)といいます。 |
| {} | 括弧{}の中に、この関数が実行する処理を書きます。 |
ただ、これをプレビューしてみても何も起こりません。
関数は定義するだけでは何もおこらず、定義した関数内の処理も実行されません。
これを実行するためには、定義した関数を呼び出さなければなりません。
function funcName( x )
{
trace( "function : " + x );
}
funcName();
funcName(); という行を1行追記しました。これをプレビューしてみると、出力に「function : undefined」と表示されます。
undefined とは「値が見つかりませんでした。」という意味です。
例えば
var a; trace(a);とすると、同じように undefined と表示されます。
変数a に何も値を入れていないためです。
つまり引数 x に何も値が設定されなかったために x が undefined になったのです。
そこで funcName(); を以下のように書き換えてみます。
funcName( "関数" );これをプレビューすると「function : 関数」と表示されます。
関数の呼び出しは、同じスクリプト内であれば、関数の定義より上で呼び出しても、下で呼び出しても 同様に使用することができます。
funcName("呼び出し 1");
function funcName( x ){ trace( x ); }
funcName("呼び出し 2");
まだ、これでは有り難味が感じられないので、以下のように書き換えてみましょう。
function funcName( x , y )
{
trace( x+y );
}
funcName( 10 , 20 );
funcName( 10 , -5 );
funcName( 1 , 10 );
プレビューしてみると「30 5 11」が表示されました。つまり関数は一度定義すると、その中の処理がどれだけ長くなっても、簡単に何度も呼び出して実行することができるのです。
しかし、このままでは関数の内部ですべて完結してしまって、関数内で計算した結果を、次の計算に活かすといったことができません。
そのために return を追記します。
function funcName( x , y )
{
return x+y;
}
var a = funcName(10,20);//結果 : 30
var b = funcName(5,5);//結果 : 10
trace(a+b);//出力 : 40
以下にひとつ例を挙げておきますので、いろいろ書き換えてみて、関数の仕組みに慣れてください。
var a = 2;
var b = 3;
var res = func(func(10,5) / func(b,a));
trace("a="+a);
trace("b="+b);
trace("res"+res);
function func( a , b )
{
trace("func:a="+a);
trace("func:b="+b);
return a*b;
}
つづく
トラックバック(0)
このブログ記事を参照しているブログ一覧: デザイナーのためのActionScript講座 ― 第5回:関数の仕組みを知る
このブログ記事に対するトラックバックURL: http://system.seyself.com/mt-tb.cgi/458

最後の例文で半日悩みましたが、ようやく解読できました。
なんだかお役に立ってるようで、光栄です。
他のスクリプトでも同じだと思うのですが
ActionScript も触れれば触れるほど奥が深いというか
いつまで経っても勉強、勉強なので
お互いがんばりましょう。