150420 flash005 forループと関数
TRANSCRIPT
© 株式会社エレファンキューブ
2015/04/28 支倉常明
forループと関数FLASH 05
© 株式会社エレファンキューブ
目次1. 前回の補足:変数の型 Boolean2. ループ処理の基本:for3. forと配列Array4. forとオブジェクトObject5. 関数とは6. 引数と戻り値7. 関数をつくってみる8. 例:2ケタのゼロサプライ9. 例:表示非表示きりかえ10.例:配列の中から探す11.関数までわかれば、なんでもできるぞ!12.次回からの予告
2
© 株式会社エレファンキューブ
1.前回の補足:変数の型 Boolean
• 重要な型を1つ忘れてました。真偽値 Boolean型var clickFlg:Boolean = true;
• trueまたはfalse(1または0)
• true判定の場合、if文で省略できるif(clickFlg==true) を if(clickFlg) と略せる
3
© 株式会社エレファンキューブ
2.ループ処理の基本:for
• プログラムの得意なこと:同じ処理を高速に繰り返す• 有限の繰り返しを行うのがforループ、他にwhileなどがあるが今回は略
• 基本構文
for(var cnt:uint=0;cnt<10;cnt++){
//繰り返し内容trace(cnt);
}
4
1 2
3
4①初期化
②評価 trueから③へ falseなら抜ける
③ループ処理実行内容
④処理実行後の処理
© 株式会社エレファンキューブ
3. forと配列Array
• 配列の長さはlengthプロパティvar myArr:Array = new Array();
myArr = [“あ”,”い”,”う”,”え”,”お”]
for(var cnt:uint=0;cnt<myArr.length;cnt++){
//繰り返し内容trace(myArr[cnt]);
}
5
© 株式会社エレファンキューブ
4. forとオブジェクトObject
• オブジェクトのプロパティは、for~inで取り出せるvar myObj:Object = new Object();
myObj.place = “東京”;
myObj.weather = “晴れ”;
for(var str:String in myObj){
//繰り返し内容trace(myObj[str]);
}6
© 株式会社エレファンキューブ
5.関数とは
• 同じ処理を行うブラックボックスのようなもの
3 → → 9 5 → → 25
• 関数をつくることで効率化できる、バグを防げる、改修工数が下がる
7
© 株式会社エレファンキューブ
6.引数と戻り値
• 3 → → 9 5 → → 25
• 引数:関数に渡す値・ムービークリップなどを渡すこともできる・複数の値を渡せる
• 戻り値:結果として返ってくる値• どちらも“無し”もあり。
8
引数 戻り値
© 株式会社エレファンキューブ
7. 関数をつくってみる
• 関数:functionfunction関数名 (引数) :戻り値の型 {
//処理return 戻り値
}• 例:二乗の値を返す
function getSquare(_num:Number):Number{var squareNum = Math.pow(_num,2);return squareNum;
}• 呼び出し var a = getSquare(3);
9
• 関数の中で宣言した変数は、関数の中だけで使える(ローカル変数)
• 関数の外で宣言した変数も使える(グローバル変数)
© 株式会社エレファンキューブ
8. 例:2ケタのゼロサプライ
• 時刻表示 03:05と表示したい• 数値 3を渡したら、03という文字列を返す
function zeroSup(_num:Number):String{var out;if(_num<10){
out = “0” + String(_num);}else{
out = String(_num);}return out;
}
10
© 株式会社エレファンキューブ
9. 例:表示非表示を切り替える
• ボタンを押したら、ムービークリップの表示・非表示を切り替えたいfunction viewStitcher(_mc:MovieClip):void{
if(_mc.visible){_mc.visible = false;
}else{_mc.visible = true;
}}
11
• 引数にムービークリップを渡す。
• 戻り値なしは、void
© 株式会社エレファンキューブ
10. 例:配列の中から探す
• 配列の中から、特定の値があるかを検索する見つかったら、その配列番号を返す、なかったら-1を返す。function findVal(_val:*,_arr:Array):Number{
var retnum = -1;for(var cnt=0;cnt<_arr.length;cnt++){
if(_arr[cnt]==_val){retnum = cnt;break;
}}return retnum;
}12
• break;で、forループを抜ける
© 株式会社エレファンキューブ
11. 関数までわかれば、何でもできるぞ!
• ここで基礎のインプット終わり。
• ここまでで学習したことで、ほとんどの仕事できる
• あとは、・効率的でバグのない設計ができること・ほしい情報をリファレンスなどから探せること・いろいろ作ってみて経験値をあげていくこと
13
© 株式会社エレファンキューブ
12. 次回からの予告
• 「どう設計するか」を実例でみせていきます。
• プログラムの1行1行は自分で調べればよいので、なぜそう設計したのかを学んでください。
• テーマ・ノベルゲーム・クイズアプリ
14
• 性格判断アプリ。ある程度ランダム要素入れると、うまくごまかせそう。
• おこづかい帳一日の予算や、個々の食費などの予算を決めておいていくら使ったかを入力していくと予算を超過した時点で警告が出る、みたいな。
• ○○の数当てゲームモンスターがあらわれるのと数当てゲームを応用です。デフォルメした何かの地図(ここでは東京23区のデフォルメ地図)を背景にして、新宿の都庁にアイコンが入ると「東京都の人口は??」、「面積はいくつ?」、上野動物園に入ると、「動物は全部で何匹?」、「西郷さんは生きてたら何歳?」などその地域ネタにあわせた数字ネタクイズを出していくアプリ。