関数

関数(function)とは

  • 西暦を昭和に変換するスクリプトを書きます
  • 1975年は昭和何年?
var showa:Number;

showa = 1975 - 1925;
trace("1975年は、昭和" + showa + "年です。");


しかし、この場合は「値」が変数の中に入っていて答えは決まっています。
すべての変換にこれをしていたら、記述の量が膨大になってしまいます。


それをまとめて使いやすくするのが「関数」です。



function 関数名(引数){
 //関数として実行したい内容
 return (戻り値)
}

  • 関数とは「function」というキーワードを使って、「ブロックにまとめた処理」に名前をつけたもの
  • 関数は、「引数」というものを受け取って、「戻り値」というものを返すことができる



function 自動販売機(お金) : 缶入り飲料{
 お金を数える;
 注文を受ける;
 return コーヒー;
}


ローカル変数

  • functionの中だけで適用
function calc(a, b) {
	var a:Number;
	var b:Number;
	var c:Number;
	
	c = a + b;
	
	return c;
}

trace(calc(2, 10));



関数の名前

  • 変数の名前の付け方と同じルール
引数と戻り値
  • 「引数」は、関数が受け取るパラメータ

-

  • 西暦と昭和の変換をまとめると
  • 西暦の年を受け取り、昭和の年を返す
function yearWorldToShowa(world:Number):Number {
	var showa:Number = world - 1925;
	
	return showa;
}
関数の呼び出し
  • 関数を使うこと
var year:Number;

year = yearWorldToShowa( 1975 ); //1975で関数呼び出し
trace("1975年は、昭和" + year + "年です");

year = yearWorldToShowa( 1945 ); //1945で関数呼び出し
trace("1945年は、昭和" + year + "年です");

year = yearWorldToShowa( 1960 ); //1960で関数呼び出し
trace("1960年は、昭和" + year + "年です");

//ここから下は関数の定義(呼び出されないと実行されない)
function yearWorldToShowa(world:Number):Number {
	var showa:Number = world - 1925;
	
	return showa;
}


結果、


戻り値がない関数
  • 関数の中で計算までおこなうように変更したので、返す「戻り値」がなくなりました
  • 戻り値がないときは、戻り値のところに「Void」と書きます
  • 返すものがなくなったので、return文はなくなります
  • 受け取る戻り値がなくなったので、受取り手である変数「year」もなくなります
yearWorldToShowa( 1975 ); 
yearWorldToShowa( 1945 ); 
yearWorldToShowa( 1960 ); 

//ここから関数の定義
function yearWorldToShowa(world:Number):Void {
	var showa:Number = world - 1925;
	trace(world + "年は、昭和" + showa + "年です");
}
戻り値も引数もない関数
  • この関数は、引数も受け取らず、何も返しません
  • メッセージを表示するだけ
  • 引数はないので「()」
  • 戻り値はないので、戻りの型は「Void」
printMessage();

function printMessage():Void {
	trace("ActionScriptは難しい");
}
  1. あるプログラムから呼ばれて実行し、終了するとそのプログラムの呼び出したところへ戻る
  2. 引数はいくつでも持つことができる
  3. 引数は関数内だけで有効なローカル変数である
  4. 呼び出し元のプログラムへ結果(戻り値)を渡すことができる
ボタンが押されるたびに


var rate:Number = 10; 

function topMove():Void {
	lemon_mc._y -= rate;
}
function rightMove():Void {
	lemon_mc._x += rate;
}
function bottomMove():Void {
	lemon_mc._y += rate;
}
function leftMove():Void {
	lemon_mc._x -= rate;
}

top_btn.onRelease = topMove;
right_btn.onRelease = topMove;
bottom_btn.onRelease = bottomMove;
left_btn.onRelease = leftMove;
ボタンを押し続けると

var rate:Number = 10;

function topMove():Void {
		peach_mc.onEnterFrame = function() {
		peach_mc._y -= rate;
			if(peach_mc._y <= -10) {
				peach_mc._y =310;
			}
	}
}
function rightMove():Void {
	peach_mc.onEnterFrame = function() {
		peach_mc._x += rate;
			if(peach_mc._x >= 510) {
				peach_mc._x = -10;
			}
	}
}
function bottomMove():Void {
	peach_mc.onEnterFrame = function() {
		peach_mc._y += rate;
			if(peach_mc._y >= 310) {
				peach_mc._y = -10;
			}
	}
}
function leftMove():Void {
	peach_mc.onEnterFrame = function() {
		var rate = 10;
		peach_mc._x -= rate;
			if(peach_mc._x <= -10) {
				peach_mc._x = 510;
			}
	}
}

top_btn.onPress = topMove;
bottom_btn.onPress = bottomMove;
bottom_btn.onPress = bottomMove;
left_btn.onPress = leftMove;

function stopMove():Void {
	peach_mc.onEnterFrame = undefined;
}

top_btn.onRelease = stopMove;
right_btn.onRelease = stopMove;
bottom_btn.onRelease = stopMove;
left_btn.onRelease = stopMove;