速習Webデザイン ActionScript3.0を読む その3
![速習Webデザイン ActionScript 3.0 速習Webデザイン ActionScript 3.0](https://images-fe.ssl-images-amazon.com/images/I/51siTwBEaxL._SL160_.jpg)
- 作者: 林拓也
- 出版社/メーカー: 技術評論社
- 発売日: 2008/08/13
- メディア: 大型本
- 購入: 7人 クリック: 137回
- この商品を含むブログ (13件) を見る
part4 関数
- 01-01
- 02-01
- このテキストではユーザー定義関数名は「x」から始まっている。
- 関数の定義と実行は異なるフレームに記述されても問題なし。
- 02-03
- 戻り値を返す関数の定義では戻り値のデータ型も指定する。
function 関数名():データ型 {
処理の記述return 戻り値;
}
-
- 戻り値がない場合は「void」型となる。
- Let's TRY!!
- テキストフィールドに入力された数値を用意された関数「xAdd」を使って計算し表示させる、という課題。
- 型の変換がよく分からぬまま以下のようにやってみた。
function xAdd(num1:Number, num2:Number):Number {
return num1 + num2;
}add1_btn.addEventListener(MouseEvent.CLICK,xad01);
function xad01(evt):void{
ans1_txt:text =String(xAdd(in1_txt,in2_txt));←ここでエラーが出てる
}以下のようにコンパイルエラー。
1120: 未定義のプロパティ text へのアクセスです。
1067: 型 flash.text:TextField の値が、関連しない型 Number に暗黙で型変換されています。
-
- まず単純ミスの「ans1_txt:text」を「ans1_txt.text」に直し、「in1_txt」も「in1_txt.text」とそれぞれ直すと動いた。
- 動いたけど、計算結果が「NaN(Not a Number)」に。
- そんなわけで「in1_txt.text」も型変換して「Number(in1_txt.text)」とそれぞれ直すとばっちり☆
- 全体のスクリプトは以下のように記述。
function xAdd(num1:Number, num2:Number):Number {
return num1 + num2;
}add1_btn.addEventListener(MouseEvent.CLICK,xad01);
function xad01(evt):void{
ans1_txt.text =String(xAdd(Number(in1_txt.text),Number(in2_txt.text)));
}add2_btn.addEventListener(MouseEvent.CLICK,xad02);
function xad02(evt):void{
ans2_txt.text =String(xAdd(xAdd(Number(in3_txt.text),Number(in4_txt.text)),Number(in5_txt.text)));
}
-
- 最後の長い行でカッコの閉じミスがあったけど直したらきちんと動いた。
- 模範解答みたら変数に代入して読みやすくまとまっていた。なるほど!!!(´Д⊂
var inputNum1:Number = Number(in1_txt.text);
var inputNum2:Number = Number(in2_txt.text);
var answerNum:Number = xAdd(inputNum1, inputNum2);
-
- とにかく型変換が難しいね。