jump to navigation

Send/Receive Variables from Actionscript 3 & PHP (an OOP approach) September 21, 2010

Posted by Tournas Dimitrios in Actionscript.

Below is a class that that can be used to send a group of variables to a php script on a server and receive the results. It was created  by Rick Nuthman .

// FlashPHP Class by Rick Nuthman
// 8.28.09
// Constructor receives 2 arguments:
// url:String - The url to the PHP file
// flashVars:Object - An object that contains variables to be sent to the url
// The class dispatches 1 event called "ready" once the php transaction is complete.
// listen for this event. Once it's received you can access returned variabled from receievedVars.

package com.yourDomain{

import flash.net.URLVariables;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.net.URLLoaderDataFormat;
import flash.net.URLRequestMethod;
import flash.events.EventDispatcher;
import flash.events.Event;

public class FlashPHP extends EventDispatcher {

// Public Properties
public var receivedVars:URLVariables;

// Private Properties
private var url:String;
private var flashVars:Object;
private var request:URLRequest;

private var completeEvent:Event = new Event("ready");
private var variables:URLVariables = new URLVariables();
private var loader:URLLoader = new URLLoader();

public function FlashPHP(url:String, flashVars:Object) {

this.flashVars = flashVars;
this.url = url+"?r="+ new Date().getTime();


// Private Methods
private function parseVariables() {

for (var item in flashVars) {

variables[item] = flashVars[item];


private function sendVariables() {

request = new URLRequest(url);
request.method = URLRequestMethod.POST;
request.data  = variables;

loader.dataFormat = URLLoaderDataFormat.VARIABLES;
loader.addEventListener(Event.COMPLETE, variablesAreLoaded);

function variablesAreLoaded(event:Event) {

receivedVars = new URLVariables(loader.data);

Here is an example of how to implement it:

import com.yourDomain.FlashPHP;
var score:String = "100";
var playerName:String = "Bobby";
var phpData:*;

var playerObject:Object = new Object();
playerObject.score = score;
playerObject.playerName = playerName;

var flashPHP:FlashPHP = new FlashPHP("http://www.yoursite.com/yourphp.php", playerObject);
flashPHP.addEventListener("ready", processPHPVars);

function processPHPVars(event:Event){
// put the object that php sends back into a var (in this case phpData)

phpData = event.target.receivedVars;

Of course it will be necessary to know what to do with the data on the PHP side… here is a simple script that receives that variables and sends back a simple response var called ‘success’:

$teamName = $_POST['playerName'];
$score = $_POST['score'];
// Here you would put any processing functions...

$success = "1";
$returnVars = array();
$returnVars['success'] = $success;
$returnString = http_build_query($returnVars);
echo $returnString;

Basically, this script does nothing with the variables that are collected, but as you can see, it just takes what is posted from flash and assigns it to php variables. Lastly, we create a new array to contain any vars that will be sent back to flash. This array is converted into a query string which is translated by FlashPHP into an object containing the variables by key names created in PHP.

I hope this makes sense, it’s actually quite easy to use! Don’t forget to wait for the FlashPHP “ready” event to trigger before attempting to access its receivedvars propert



1. Yvette Dekker - October 28, 2011

Can you upload the source files?

tournasdimitrios1 - October 28, 2011

@Yvette Dekker
Download the zip-file from here >>>>>>
An alternative ( and more robust / efficient ) method could be “amfPHP “ >>> .
AmfPHP use binary format for exchanging data , so it’s more suited for large scale data-formats . However you have to install and configure an AmfPHP library folder on your server . It sounds more complicated than it actually is 🙂 ,

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s