私は Flash の開発に足を踏み入れており、いくつかの変数を URL に投稿する方法を考えていました。ユーザーが、Web ページからではなく、ユーザーのコンピューターに保存された HTML に埋め込まれた EXE または SWF としてパッケージ化された Flash ゲームをプレイし、電子メール アドレスとボタンを押す。
Flash アプリケーションがアクティブな Web ページ上にない場合でも、それを行うことは可能でしょうか?
私は Flash の開発に足を踏み入れており、いくつかの変数を URL に投稿する方法を考えていました。ユーザーが、Web ページからではなく、ユーザーのコンピューターに保存された HTML に埋め込まれた EXE または SWF としてパッケージ化された Flash ゲームをプレイし、電子メール アドレスとボタンを押す。
Flash アプリケーションがアクティブな Web ページ上にない場合でも、それを行うことは可能でしょうか?
Web ページまたはローカル コンピューターの場合は、同じ方法です。次のようなことができます:
(未テストのコード)
var request:URLRequest = new URLRequest("http://yoursite.com/yourpage.php");
request.method = URLRequestMethod.POST;
request.data = "emal=someemail@email.com&score=79597";
var loader:URLLoader = new URLLoader();
loader.dataFormat = URLLoaderDataFormat.VARIABLES;
loader.addEventListener(Event.COMPLETE, callWasMade);
loader.addEventListener(IOErrorEvent.IO_ERROR, callFailedIOError);
loader.load(request);
function callWasMade(evt:Event):void{
//Optionally check server response
}
function callFailedIOError(evt:IOErrorEvent):void {
//Holy crap I can't reach my server!
}
可能ですが、PHP などのサーバー側スクリプトが必要です。すばらしいチュートリアルについては、http://www.gotoandlearn.comをご覧ください。
基本的に、サーバー側スクリプトへの URLRequest を作成し、それを使用してデータを送信します。URLVariables を使用して、スクリプトにデータを渡すことができます。その後、スクリプトはデータを受信してデータベースに保存したり、メールを送信したりできます。
これは Adobe ドキュメントからのものです: http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/URLVariables.html
public function URLVariablesExample() {
var url:String = "http://www.example.com/script.php";
var request:URLRequest = new URLRequest(url);
var variables:URLVariables = new URLVariables();
variables.exampleSessionId = new Date().getTime();
variables.exampleUserLabel = "guest";
request.data = variables;
navigateToURL(request);
}
PHP 側では、次のようなことができます。
$exampleSessionId = $_REQUEST['exampleSessionId'];
$exampleUserLabel = $_REQUEST['exampleUserLabel'];
$message = "Id: " . $exampleSessionId . ", Label: " . $exampleUserLabel;
mail('toaddress@example.com', 'My Subject', $message);