エンタープライズ:特集 | 2003/07/01 15:46:00 更新 |
JAVA Developer 2003年8月号より転載
FlashとTomcatで実現する使いたくなるWebアプリ (7/10)
(4)データの管理など(リスト7)
データの保存は、すべてsetResultを使います。テキスト入力とチェックボックス選択では、それぞれ入力チェックを行い、未入力か未選択であれば、setAlertでメッセージを表示しています。
ActionScriptでは、変数は宣言することなく使用することができます。また一度使用した変数は、その関数を抜け出しても有効な状態が継続されます。つまり、変数はデフォルトでムービークリップのpublicなインスタンス変数になります。
関数内のローカル変数を使用したい場合には、宣言子「var」で変数を宣言する必要があります。varで宣言された変数は、その関数を抜けた時点で無効になります。
今回フレームスクリプトで宣言した変数にアクセスするために、getter系関数をいくつか作っています。本来ActionScriptでは、_root.xxxxのような形でアクセスできるので、必ずしも必要ありません。私は、標準で用意されているフィールドと区別するために、getter系関数を定義したという程度の意味です。
リスト7 データの保存とバリデーション(フレームスクリプト内) |
function setAlert (message) { _root.message_text.text = message; } function setResult (value, display) { res = new Object(); res.qid = current_questionnaire["id"]; res.value = value; res.display = display; result[q_index] = res; trace("result (" + res.qid + ") = " + res.value + "(" + res.display + ")"); } function getResult() { return result[q_index]; } function saveTextInput() { var value = text_answer.text; if (value != "") { setResult (value, value); return true; } else { setAlert ("何も入力されていません。"); return false; } } function saveCheckbox() { var i = 0; var selected_id = new Array(); var selected_display = ""; var count = 0; while (true) { var r = this["check" + i]; if (r === undefined) break; if (r.getValue()) { var option_config = _root.extractGroupedElements ( getCurrentConfig(), "option[" + i + "]."); selected_id[count] = option_config["id"]; if (count > 0) selected_display += ", " + option_config["display"]; else selected_display = option_config["display"]; count++; } i++; } if (selected_id.length > 0) { setResult (selected_id, selected_display); return true; } else { setAlert ("何も選択されていません。"); return false; } } |
前のページ | 1 2 3 4 5 6 7 8 9 10 | 次のページ
[佐藤 毅,JAVA Developer]
Copyright © ITmedia, Inc. All Rights Reserved.