この講座は,flashソフトを用いてflashアニメをスクリプトで制作し無料で公開したものです。![]() |
||
FLASH講座 ーアクションスクリプトの実践的事始めー
|
||
| FLASH画面でインプットされた情報を、メールソフトに送って、それを指定されたメールアドレスに送信するタイプの簡易フォームメールを前回学びました。 今回は、記入必須項目の指定と記入漏れチェック機能、および、メールアドレスの書式チェック機能を付加したフォームメールの作成についてです。 また、記入項目の数が増えたときのことを考慮して、項目名や、データインプット用テキストボックスなどを配列処理する方法を採用します。 今回も、送り先メールアドレスはダミーですが、メーラーが立ち上がるまでは確認できるようになっています。 なお、emailのアドレスチェックにはjavascriptを使っており、FlashとjavascriptのやりとりはExternalInterfaceクラスを使いました。(前回はgetURL()を使ってjavascriptにデータを送りましたが、今回はチェック結果をjsから取得する必要がありますので、このクラスを使いました。ExternalInterfaceクラスの使い方を「ExternalInterFaceを使ったFLASHとjavascriptの連携」にまとめました。) このメーラーを使う方法は、ユーザーがメーラーを使っていなかったりすると(webメールを使っていると)機能しないのでやはり、cgi やphpのsendmailを使う方がベターです。 その場合でもFLASHでこれらのチェックをしてcgi に渡す方法がサーバーへの負荷を軽減できると言うメリットがあります。 cgi を使う方法は次回の講座にする予定です。 |
||
| ステージの準備 | ||
| 三つのシーンで構成している。 シーン1:入力画面(必須項目記入漏れチェック、E-mail書式チェック) シーン2:確認画面(シーン1に戻って修正をかけるか、送信するかをボタン選択) シーン3:終了画面 ライブラリーに以下のコンポーネントをドラッグしてドロップする(コンポーネントウインドウが開いていなければウインドウメニューで開いておく) ライブラリーに置くコンポーネント:Button, Label, TextArea 画面サイズ、背景色、枠などを好みで設定する。 <シーン1> ・画面左サイドにライブラリーからLabelをドラッグ&ドロップして画面左に配置する。更に、インプットに必要な数だけ縦に並べる。上から、インスタンス名を、jLabel0,jLabel1のようにし、同時にパラメータタグをクリックしてtextのところに お名前** のように項目名をそれぞれにインプットする。このとき、最後に**を付けると記入必須項目として扱われる。 ・上で配置した項目名のそれぞれの右にインプット用のテキストフィールドを左にあるツールボックスの「A」(テキストツール)を使って配置し、インスタンス名を上から、inBox0, inBox1のように、変数をindat0, indat1のように順に命名する。 ・全項目の下に警告用のダイナミックテキストボックスを配置し、インスタンス名をalertBoxとする。 ・その下にライブラリーからButtonを配置し、インスタンス名をconfirm_btn、パラメーターでlabelを確認とする。 <シーン2> ・画面左サイトにシーン1からコピーして項目名を縦に並べる。 ・それぞれの項目名の右側に、適当な幅のラベルを配置し上からインスタンス名をoutBox0から順に名付け、パラメーターでtextのlabelを削除し、何も表示しないようにする。メッセージのところだけは、TextAreaを配置する。 ・最下部に、修正ボタン(edit_btn)と送信ボタン(submit_btn)を配置する。 <シーン3> ・終了メッセージと戻りボタン(back_btn)を配置する。 |
||
| スクリプト(Script) | ||
| シーン1_rootに (インスタンスを何も選択していない状態でF9キーを押し、出てきたウインドウに記述)
|
項目の数 確認ボタンがクリックされたら alertStrの初期化 項目の数だけ jLabel0 から順にjlabelと定義 inBox0 から順にinboxと定義 jlabel記載されているテキストをjTと置く jTの最後の2文字をmarkとする もしmarkが**でinBoxに記入がなければ alertStrに**を取り除いた項目名を加える もし、alertStrが空だったら alertBoxに空白を入れる 関数eamailCheckを実施 そうでなければ(未記入があれば) alertBoxに未記入の項目を表示 emailチェック ExternalInterfaceクラスの呼び出し javascriptの検定結果を受けて行う もし、OKなら 次シーンへ そうでなければ 送られてきた文を表示(この場合は”E-mailアドレスを確認して下さい”) jsからデータを取得するためのメソッド javascriptにデータを渡すメソッド (javascriptの項参照) |
|
|
シーン2_rootに
|
$bodyの初期化 itemの数だけ indat0から順にinDataと置く outBox0から順にoutDataと置く jLabel0から順にoutLabelと置く もし、inDataにデータがあれば outDataの内容テキストをinDataとする $bodyにそのときの項目名と ": " と outDataの内容と改行を追加 (メーラーに送る主文をひとまとめにしている。即ち、記入のあった項目名+内容+改行記号をセットにして次々に足していく) 修正ボタンがクリックされたら 前のシーンへ メールの件名 主文の前文を追加(%Aは改行) 送信ボタンがクリックされたら 件名と主文が記述されたメーラを立ち上げ 次のシーンへ |
|
シーン3_rootに
|
戻るボタンがクリックされたら シーン1に |
|
| HTMLの<head></head>内に記述するjavascript | ||
|
ユーザーのブラウザに合わせて参照を返す関数 emailcheck関数 FLASHから入力されたアドレスを受け取りチェックし、適否に応じたメッセージを、 toFlash関数に返す FLASHにチェック結果に基ずくメッセージを返す "fFormmail"はFlashファイルのid名 "checkResult"は結果を渡すFlashのメソッド名 |
|
| なお、javascriptとのやりとりについては、「ExternalInterFaceを使ったFLASHとjavascriptの連携」を参照下さい。 | ||
| 本テーマについて、うまく作動しないと言う問い合わせが寄せられています。 実際に作動しているファイルをダウンロードできるようにしますので、こちらを参考にしてください。-->ダウンロード なお、html、swfファイルを必ずサーバーにアップロードして確認してください。 |
||
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - -
|
||
| HOME Flash講座総リスト flash アクションスクリプト 実務編 (7) | ||
![]()