Comunidad de diseño web y desarrollo en internet online

Es necesario especificar el dominio en [ UrlRequest ] ?

Citar            
MensajeEscrito el 03 Ago 2009 12:22 am
Hola que tal, estoy trabajando con FlashPla 10 + PHP5, y llamo variables en As3 con [URLRequest] con método [Get] a un archivo intermediario de variables escrito en PHP:

Código :

var request:URLRequest = new URLRequest("dataLayer.php");


Pero solo me envia la cadena completa del archivo tal y como lo escribi, no lo procesa:en el servidor apache.

Solo logro obtener las variables de forma correcta si escribo el codigo de esta manera:

}

Código :

var request:URLRequest = new URLRequest("http://localhost/root/dataLayer.php");


Hay manera de hacerlo solo usando "/archivoLocal.xxx" ?

Gracias!

Por Mr_Anderson

151 de clabLevel



Genero:Masculino  

Terminaltor

chrome
Citar            
MensajeEscrito el 03 Ago 2009 12:24 am
Lo he resuelto incluyendo "/" al principio:

Código :

"dataLayer.php";

Código :

"/dataLayer.php";


Pero ahora recibo el siguiente error:

Error: Error #2101: La cadena transmitida a URLVariables.decode() debe ser una cadena de consulta con formato URL codificado y pares nombre/valor.
at Error$/throwError()
at flash.net::URLVariables/decode()
at flash.net::URLVariables()
at flash.net::URLLoader/onComplete()

Que esta pasando, como corrijo este desperfecto?

Por Mr_Anderson

151 de clabLevel



Genero:Masculino  

Terminaltor

chrome
Citar            
MensajeEscrito el 03 Ago 2009 12:27 am
(Archivo AS)

Código :

package {
   
   import flash.display.MovieClip;
   import flash.events.*;
   import flash.net.*;
   
   public class Main extends MovieClip {
      
      public function Main()  {
         
         // Prepare request 
         var request:URLRequest = new URLRequest("/dataLayer.php");
         request.method = URLRequestMethod.GET;
         
         var loader:URLLoader = new URLLoader();
         loader.dataFormat = URLLoaderDataFormat.VARIABLES;
         loader.addEventListener(Event.COMPLETE, completeHandler);
         loader.load(request);
         
         function completeHandler(evt:Event) {
            trace(evt.target.data);
            var username = evt.target.data.username;
            var email = evt.target.data.email;
            var usernamo = evt.target.data.usernamo;
            
            //holita.text = evt.target.data.username;
            //holito.text = evt.target.data.username;
            //holitu.text = evt.target.data.username;
            trace ('username is ' + username);
            trace ('usernamo is ' + usernamo);
            trace ('email is ' + email);
            
         }
      }
      
   }
   
}

(dataLayer.php)

Código :

<?php
$returnVars = array();
$returnVars['username'] = "John Does";
$returnVars['usernamo'] = "John Daes";
$returnVars['email'] = "[email protected]";
$returnString = http_build_query($returnVars);

//send variables back to Flash
echo $returnString;

?>

Por Mr_Anderson

151 de clabLevel



Genero:Masculino  

Terminaltor

chrome
Citar            
MensajeEscrito el 03 Ago 2009 03:22 pm

Mr_Anderson escribió:

(Archivo AS)

Código :

package {
   
   import flash.display.MovieClip;
   import flash.events.*;
   import flash.net.*;
   
   public class Main extends MovieClip {
      
      public function Main()  {
         
         // Prepare request 
         var request:URLRequest = new URLRequest("/dataLayer.php");
         request.method = URLRequestMethod.GET;
         
         var loader:URLLoader = new URLLoader();
         loader.dataFormat = URLLoaderDataFormat.VARIABLES;
         loader.addEventListener(Event.COMPLETE, completeHandler);
         loader.load(request);
         
         function completeHandler(evt:Event) {
            trace(evt.target.data);
            var username = evt.target.data.username;
            var email = evt.target.data.email;
            var usernamo = evt.target.data.usernamo;
            
            //holita.text = evt.target.data.username;
            //holito.text = evt.target.data.username;
            //holitu.text = evt.target.data.username;
            trace ('username is ' + username);
            trace ('usernamo is ' + usernamo);
            trace ('email is ' + email);
            
         }
      }
      
   }
   
}


Para que extendes a MovieClip?? no lo veo necesario.

Por phoxer

Claber

827 de clabLevel

4 tutoriales

Genero:Masculino  

Ing en Sistemas

firefox
Citar            
MensajeEscrito el 03 Ago 2009 06:48 pm

phoxe escribió:



Para que extendes a MovieClip?? no lo veo necesario.


Claro! solo fue por poner algo.

Output escribió:


Error: Error #2101: La cadena transmitida a URLVariables.decode() debe ser una cadena de consulta con formato URL codificado y pares nombre/valor.


Les agradezco sus leidas, al parecer el problema era la cadena enviada por el comando .php ;


Código :

returnString = http_build_query($returnVars);


Esto me devolvia un molesto amp%3B al principio de cada nombre de variable;

Código :

amp%3Busernamo=John%20Does


Y estas letras eran argumentos extras desconocidos para flash.

Afortunadamente, esto se corrigio agregando unos argumentos en la clase Php;

Código :

returnString = http_build_query($returnVars, '', '&');


Y gratificantemente me devolvia:

Código :

usernamo=John%20Does



No se si esto fue por tener una configuracion diferente de php, ya que en un hosting me lo hace todo sin problemas.


Sin embargo en la clase [URLRequest] la unica manera en que me ha resultado es poner la ruta completa, dominio+ ruta+extension.php ya que de otro modo no procesa el archivo en el servidor y no envia las variables a flash.

Es forzoso poner el nombre del dominio? Por que resultaria que tendria que modificar ese codigo en particular cada vez que me cambio de servidor.

Gracias!

Por Mr_Anderson

151 de clabLevel



Genero:Masculino  

Terminaltor

chrome
Citar            
MensajeEscrito el 03 Ago 2009 07:19 pm
Creo que si es necesario siempre poner el dominio cuando necesitas obtener informacion de algun php.

Para evitar que tengas volver a compilar tu aplicacion cada vez que cambias de servidor, lo que yo he hecho es que flash jale el nombre de dominio desde una variable en un txt:

server=http://tudominio.com/

y para jalarlo:

Código ActionScript :

var PathLoader:URLLoader= new URLLoader();
PathLoader.dataFormat = URLLoaderDataFormat.VARIABLES;
PathLoader.addEventListener(Event.COMPLETE, init);
PathLoader.load(new URLRequest("Server.txt"));

private function init(event:Event):void{
var Server:String = event.target.data.server;
}


Con eso solo tendras que modificar el txt en caso de que quieras mover tu apliacion

Por Lunaty

Claber

118 de clabLevel



Genero:Femenino  

Flash Developer & RM Email Support for Google

firefox
Citar            
MensajeEscrito el 04 Ago 2009 12:21 am
Buena solucion Lunaty! Gracias por el aporte.

Por Mr_Anderson

151 de clabLevel



Genero:Masculino  

Terminaltor

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.