views:

24

answers:

2

Hi guys, I am having some consistency problems with my flash application, when I echo out variables for flash to get, it doesn't always pick up what PHP is sending, it seems to vary from PC to PC.

I am getting info from a database, and I need to pass it to flash, say for instance I need to send through 5 variables $uid,$name,$points,$from,$page , how could I go about sending these from PHP to flash using AMFPHP?

I was told that AMFPHP would be the best tool to use for such situations, but I have NO knowledge of how it works and the sample code on the site is not making complete sense to me.

Thanx in advance!

A: 

It seems a hassle to get involved with AMFPHP just to send a couple of variables to a flash file. I suggest you try:

  • Flashvars (though it's kind of limited to short variables)
  • LoadVariables
  • XML (returning the values you need as XML from PHP)

All of the above have worked consistently for me.

Ioannis Karadimas
A: 

You cannot push it from PHP to Flash - the communication has to be initiated by the Flash end. And you don't need AMFPHP for this; just use a URLLoader.

var ldr:URLLoader = new URLLoader();
ldr.addEventListener(Event.COMPLETE, onLoad);
ldr.load(new URLRequest("page.php"));

function onLoad(e:Event):void
{
  var loadedText:String = URLLoader(e.target).data;
  /**
   * Following will throw error if the text 
   * is not in the format `a=something&b=something%20else`
   * */
  var data:URLVariables = new URLVariables(loadedText);
  for(var t:Object in data)
    trace(t + " : " + data[t]);
}

inside the page.php, just do a simple echo:

//don't forget to urlencode your variables.
echo "uid=$uid&name=$name&points=$points";
Amarghosh