PHPを介して処理することで、データベースを操作したりすることも可能です。
サンプルでは、ユーザー名とパスワードをPHPに渡し、PHPがデータベースに問い合わせ、その結果のアカウントIDを受け取っています。


ユーザー名:test   パスワード:pass

ただし、Flashでユーザー認証を行う場合、(作り方によりますが)タイムラインを操作され認証をスキップされたりする恐れがありますので、PHPから結果を得る際にそのログイン中にだけ有効なユニークコードを生成するなどの対策をした方が良いと思います。(これについてはまたの機会に)


ステージにユーザー名とパスワードを入力するテキストボックスと、ログインボタンと、メッセージ表示のテキストボックスを用意し、それぞれ名前を、a_name_box、a_pass_box、login_button、msg_box、とします。
ルートタイムラインに以下のActionScriptを記述します。
login_button.onRelease = function() {
  //SJISで受け取れるようにするなら、useCodepage = trueにする。
  //デフォルトはUnicode(useCodepage = false)
  //System.useCodepage = true;
  loginData = new LoadVars();
  //POSTするパラメータをセットしておく
  loginData.a_name = a_name_box.text;
  loginData.a_pass = a_pass_box.text;
  //PHPにパラメータを渡し、結果を受け取る。
  //urlはswfファイルと同じドメイン内にある必要があります。
  loginData.sendAndLoad(php_url,loginData);
  loginData.onLoad = function(){
    //このイベントが呼ばれればロード完了
    if (this.a_id == "NG"){
      msg_box.text = "名前とパスワードが合いません";
    } else {
      //ユーザーidが返ってきている。
      msg_box.text = "IDは、" + this.a_id + "ですね。";
    }
  }
}

PHP側では、
echo "a_id=".$id."&a=123";
といった感じで結果を出力すると、Flash側のLoadVars(サンプルではloginData)のパラメータとして追加されます。

今回は、sendAndLoadの紹介がメインですので、承認の仕組みとしてはかなり手を抜いてしまいました。(例えば、PHPが返す結果の判定が、"NG"以外OKとしているのは良くないですね。)

サンプルはこちらからダウンロードできます。imgzipファイル[221clicks]