Jump to content
Sign in to follow this  
diabolickman

Transferir variável do php para AS3

Recommended Posts

diabolickman

Boas.

Tou a tentar passar uma variável em php para AS3, e está a dar-me um pequeno erro, suspeito que seja na função completeHandler, quando atribuo o "evt.target.data.palavra". Vejamos o código

PHP

(...)
// $palavra = "carro";
$returnVars = array();
$returnVars['palavra'] = $palavra;
$returnString = http_build_query($returnVars);
echo $returnString; //Ao correr o script faz o seguinte output: palavra=carro

AS3

package  {
import flash.events.*;
import flash.net.*;
import flash.display.MovieClip;
import flash.display.*;
import flash.text.TextField;
import flash.text.TextFieldType;
import flash.text.TextFormat;
import flash.events.KeyboardEvent;


public class Pergunta extends MovieClip{

	private var palavra:String; //Palavra da pergunta
	private var contarlength:int;
	private var cusco:Array = new Array();
	private var cusco_num:Array = new Array();
	private var palavra_split:Array = new Array();
	private	var check_total:int = 0;
	private var checkk:MovieClip = new mc_check();
	private var jogador:Jogador;
	private var pontos:int = 0;
	//global variable to the webservices class
	private var webservices:WebServicesMain;		

	public function Pergunta() {

		this.palavra=escolhePalavra();
		//contar chars
		this.contarlength = caracteresPalavra(palavra);
		criarPergunta(this.palavra, this.contarlength);

		//dividir palavra em pedaços individuais
		palavra_split = palavra.split("");
		validarResposta(this.palavra, this.contarlength, this.cusco, this.palavra_split);
	}

	public function escolhePalavra(){
		webservices = new WebServicesMain("http://127.0.0.1/flash/gateway.php");

		var phpFileRequest:URLRequest = new URLRequest("http://127.0.0.1/flash/search_word.php");
		//define request method
		phpFileRequest.method = URLRequestMethod.GET;

		var loader:URLLoader = new URLLoader();
		loader.dataFormat = URLLoaderDataFormat.VARIABLES;
		loader.addEventListener(Event.COMPLETE, completeHandler);
		loader.load(phpFileRequest);

		function completeHandler(evt:Event) {
		  palavra = evt.target.data.palavra;
		  trace (palavra);
		  return palavra;
		}
	}

	//contar caracteres que a palavra tem, para depois adicionar o numero certo de text inputs
	public function caracteresPalavra(palavra:String){
		var contarlength:int = palavra.length;
		return contarlength;
	} (...)

Ao qual obtenho os seguintes outputs:

Chamada Completa

TypeError: Error #1009: Não é possível acessar uma propriedade ou um método de uma referência de objeto nula.

at Pergunta/caracteresPalavra()

at Pergunta()

at Principal/comecarJogo()

at Principal/fCarrega()

at Principal/fSubmitComplete()

at flash.events::EventDispatcher/dispatchEventFunction()

at flash.events::EventDispatcher/dispatchEvent()

at flash.net::URLLoader/onComplete()

null

Acho que o problema está mesmo na variavel palavra dentro da função "completeHandler", não sei se ela está como string.

Alguém me consegue ajudar?

Share this post


Link to post
Share on other sites
clera

hmm, se é a unica variavel que vais receber fazer apenas:

palavra=evt.target.data;

devia funcionar, experimenta só outra coisa, que é em vez do echo colocares

print($returString);

comigo funciona bem..

Share this post


Link to post
Share on other sites
diabolickman

não funcionou.

transformei o código php numa class php, reformulei algum do código em AS3 e funcionou.

Cumps e obrigado :)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.