Buenas, me alegro que vayas avanzando con el tema.
Precisamente yo ahora estoy haciendo un juego muy similar al tuyo, es el juego de los dados e implica intercambio constante de información entre todos los jugadores. He de decir que lo llevo bastante bien así que a ver si te puedo echar una mano.
Soy un poco malo leyendo códigos ajenos, así que a ver si me aclaro.
No sé si tendrás alguna razón para hacerlo, pero me llama la atención que tus variables declaradas en la clase no tengan el atributo "private", puede que al no tenerlo las considere locales de cada función y por eso no circulen correctamente entre unas funciones y otras... Repito, es lo que se me ocurre, a lo mejor es una tontería.
Te cuento cómo lo tengo yo comprobado que funciona por si te puede ser de ayuda:
Código ASP:
Ver originalpackage {
import flash.net.*;
...
public class Main extends Sprite{
private var req:URLRequest=new URLRequest("http://127.0.0.1/loquesea");
private var loader:URLLoader = new URLLoader();
private var variable:URLVariables;
private var info:String; // en esa variable vas a recoger los datos en bruto
public function Main(){
loader.dataFormat=URLLoaderDataFormat.VARIABLES;
loader.load(req);
loader.addEventListener(Event.COMPLETE, loadCompleteHandler);
}
private function loadCompleteHandler(event:Event):void{
variable = new URLVariables(event.target.data);
info = String(variable.datosarecoger);
}
Con ese sencillo código he hecho funcionar todos mis juegos, recogiendo datos de php. evidentemente en php deberías tener un archivo con un campo llamado "datosarecoger" segun el ejemplo.
Tan sólo tener en cuenta que yo uso dos archivos para flash, un fla para el aspecto gráfico y un as para la programación, como documento de clase (Main).