| エンタープライズ:特集 | 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.
