Comunidad de diseño web y desarrollo en internet online

Ayuda conectando swf a php

Citar            
MensajeEscrito el 30 Jun 2010 07:11 pm
Quiero hacer algo muy simple. Nada complicado, sólo comprobar que esto funciona correctamente y flash puede cargar variables desde php. Estoy trabajando en un entorno local (aunque creo que en principio no debe tener nada que ver)

El código de mi swf es este:

Código ActionScript :

var loader:URLLoader = new URLLoader();
var req:URLRequest = new URLRequest("prueba.php");
var variables:URLVariables = new URLVariables();

loader.dataFormat=URLLoaderDataFormat.VARIABLES;
req.method=URLRequestMethod.POST;
variables.number=5;

req.data=variables;
loader.load(req);

loader.addEventListener(Event.COMPLETE,com)

function com(e:Event)
{
   trace(loader.data.val);
}


y el del php (llamado prueba.php) el siguiente:

Código PHP :

<?php

$number1   = "Hola";

echo "val=$number1";

?>


pero a la hora de hacer el trace de loader.data.val, el panel de salida me devuelve undefined. Podría alguien explicarme detalladamente como hacer esto?

Por Dechcaudron

8 de clabLevel



 

firefox
Citar            
MensajeEscrito el 30 Jun 2010 09:35 pm
Activa los servicios de tu localhost y pasale una ruta abosulta al URLRequest object :

Código ActionScript :

var req:URLRequest = new URLRequest("http://localhost/scripts/prueba.php"); //example


Jonathan

Por maneuver

243 de clabLevel



Genero:Masculino  

Mexico City

firefox
Citar            
MensajeEscrito el 30 Jun 2010 09:42 pm
Lo siento pero no lo entiendo...

Por local me refiero a que tengo tanto el php como el swf en la misma carpeta en mi pc. Cómo activo esos servicios? Qué son esos servicios? Y qué ruta absoluta debería pasarle al swf?

Tengo ambos archivos alojados en mi escritorio

Por Dechcaudron

8 de clabLevel



 

firefox
Citar            
MensajeEscrito el 30 Jun 2010 10:37 pm
Lo he conseguido. Gracias. Tenías razón. El problema está en, no sé por qué motivo, poner la ruta absoluta del archivo.

Por Dechcaudron

8 de clabLevel



 

firefox
Citar            
MensajeEscrito el 30 Jun 2010 11:31 pm
el problema radica que si uno llama a un archivo de manera relativa , flash lo interpreta como un simple archivo con una extencion .php, sin encambio al llamar el archivo de manera abosulta alojado este mismo, en un servidor sea local o remoto , el archivo se ejcuta.

Jonathan

Por maneuver

243 de clabLevel



Genero:Masculino  

Mexico City

firefox
Citar            
MensajeEscrito el 01 Jul 2010 06:29 am
Quizás no este clara la explicación así que lo explicaré un poco más.

Para trabajar con archivos PHP en tu PC asumimos que tienes instalado Apache+PHP+MySQL y que tu ruta local es "http://localhost/" que a veces puede varias si usas puertos quedando "http://localhost:8080/" o similar.

Entonces supongamos que en tu carpeta web de tu servidor local (www, htdocs o donde lo hayas configurado), para el ejemplo digamos que esta en "c:\www\", y supongamos que tienes una carpeta "swf-php", dentro de ella tienes tu archivo prueba.php y movie.swf al mismo nivel. Para invocar a tu PHP sería: http://localhost/swf-php/prueba.php

Bien, con esto ya tenemos todo listo para probar desde Flash pero no desde una ruta web. Para esto necesitaremos un archivo html (o tal vez php) que contenga el archivo SWF, por ejemplo: index.html .

c:\www\swf-php\
L prueba.php
L movie.swf
L index.html

http://localhost/swf-php/ (el nombre del archivo index se puede obviar, se mostrará por defecto).
o http://localhost/swf-php/index.html

Bien con esto ya no necesitarás depender de una ruta absoluta para llegar a tu php.

NOTA:
Ruta Absoluta: http://localhost/swf-php/prueba.php
Ruta Relativa: prueba.php
(en algunos casos /swf-php/prueba.php, hace el llamado desde la raiz del sitio).

Ahora vamos con el código en AS3 que irá en tu movie.fla:

Código ActionScript :

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


var _vars:URLVariables = new URLVariables();
_vars.numero = 5;
_vars.nombre = 'Cristalab';

//var _urlPHP:URLRequest = new URLRequest('http://localhost/swf-php/prueba.php'); // Desde Flash
var _urlPHP:URLRequest = new URLRequest('prueba.php'); // Desde un navegador (IE, Firefox, etc).
_urlPHP.method = URLRequestMethod.POST;
_urlPHP.data = vars;

var _uLoader:URLLoader = new URLLoader();
_uLoader.addEventListener(Event.COMPLETE, urlLoaderCompleteHandler);
_uLoader.load(_urlPHP);

function urlLoaderCompleteHandler(evt:Event):void
{
   trace( _uLoader.data );
   
   //Si tu resultado es: result=ok&message=hola%20cristalab
   // entonces usarás URLVariables para recibirlo
   var dataPHP:URLVariables = new URLVariables(_uLoader.data);
   trace(dataPHP.result); //output: 1
   trace(dataPHP.message); //output: hola cristalab
   
   /*
   //si lo que tienes fue un XML:
   //<?xml version="1.0" encoding="utf-8" ?>
   //<data>
   //   <result>1</result>
   //   <message>hola cristalab</message>
   //</data>
   //entonces usarás la clase XML para recibirlo:
   var dataPHP:XML = XML(_uLoader.data);
   trace(dataPHP.result); //output: 1
   trace(dataPHP.message); //output: hola cristalab
   */
}

Esto lo probarías desde http://localhost/swf-php/

Espero que se haya entendido mejor la idea.

Por Otaku RzO

BOFH

1890 de clabLevel

12 tutoriales
1 articulo

Genero:Masculino   Desarrollador de GAIA Bastard Operators From Hell

Lima - Perú

firefox
Citar            
MensajeEscrito el 01 Jul 2010 08:47 am
Bufff creo que tendré que releérmelo para entenderlo del todo, pero no descansaré hasta hacerlo. Muchas gracias a ambos.

Por Dechcaudron

8 de clabLevel



 

firefox

 

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