Actionscript 2.0, Flash

noviembre 2007

Hacer un sendAndLoad en Actionscript 3.0

sendAndLoad permitía enviar información a un fichero externo (PHP, ASP o similar) y recibir después información de este. En AS3 ya no se puede utilizar esta función, pero en su lugar se puede utilizar el siguiente código (en el ejemplo envio dos numeros a un PHP, que los sumará y devolverá el resultado). El php puede ser como este:

Y el Actionscript:

Daniel says:

Gracias por el ejemplo .. muy util y facil de usar..

oye y como harias el php.. si no es mucha molestia =)

gracias!

esedeerre says:

Buenas, he editado el post para añadir el código php.

Lo tienes al principio

esedeerre says:

@Arrikitawn

El ejemplo hace justo lo que necesitas, envia un par de variables a un fichero externo, en AS3. Cual es tú duda?

Arrikitawn says:

Buenas, estoy un poco perdido con el AS3 pero si solo quisiera recibir una variable de un ASP dentro de mi formulario realizado en flash como lo tendría que hacer? ya no puedo utilizar el objeto LoadVars()por lo que he leido, me podrías hacer cinco céntimos?

Gracias

psycodelic says:

Yo tengo un problema con cargar variables de un PHP, el problema es ke solo puedo carga una.

Este es el codigo:

loader.addEventListener(Event.COMPLETE, mostrar);
function mostrar(e:Event){
try{
var variables = new URLVariables(e.target.data);

trace(variables.mensaje);
//esta es la sgte variable, la ke no puedo cargar
//solo puedo cargar una, en el PHP uso el caracter “&”
//para las demas variables, pero aun asi, no puedo cargarla
trace(variables.val);

}catch(error:Error){
trace(e.target.data);
}
}

psycodelic says:

uups, sorry ke me salio todo junto

chris says:

ya intentenle tambien no sean huevones, ahi ya pusieron todo el codigo, como recivir,enviar varias variables es cosa de pensarle un poco, yo ando igual de perdido pero tambien casi casi quieren que les resuelva su chamba… noma..

Miguel says:

¡Me has salvao la vida!, gracias, después de todo As3 no es un infierno.

Mike says:

Gracias! sos un idolo!

Mike says:

Hola gracias por ayudar, como hago esto si son muchas variables?

//Hago la petición al PHP (esto es As3)

recibir.load(enviar);

//muestro el resultado (esto es PHP)

echo “suma”.$suma; /// es decir resultados de division, resta, etc al mismo tiempo… Como los recibo en as3, gracias o un ejemplo me serviria tambien gracias…

Gabriel says:

Si pongo trace, me muestra el dato en output de flash pero no en el swf… usè esto:

//– importamos las clases necesarias
import flash.net.*;
import flash.events.*;
import flash.text.TextField;
//– creamos una instancia de URLLoader para info externa
var loader:URLLoader=new URLLoader();
//– tipo de info a recibir
loader.dataFormat=URLLoaderDataFormat.VARIABLES;
//– cual es el archivo que cargaremos
loader.load(new URLRequest(“http://www.estelarisradio.net/mostrar.php”));
//– listener para cuando la carga este completa
loader.addEventListener(Event.COMPLETE,carga);
//– funcion a ejecutarse
function carga(event:Event) {
var loader:URLLoader= URLLoader(event.target);
//– creamos el campo de texto donde se mostrara la info del php
var texto:TextField=new TextField();
texto.text=String(loader.data.dato1);

var texto2:TextField=new TextField();
texto.text=String(loader.data.dato2);

texto.autoSize=”left”;
//– mostramos el campo de texto
addChild(texto);

texto2.autoSize=”left”;
//– mostramos el campo de texto
addChild(texto2);
}

Pero a la hora de funcionar solo recupera la primera variable, què estoy haciendo mal?

Gracias.

federico says:

Buenas!
al utilizar la url del ejemplo el script funciona perfectamente pero al cambiar a la de mi localhost
(var url:String = “http://localhost/WEB/FORMULARIO.php”;)
me tira 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.
El php que yo utlizo es calcado al del ejemplo. Tengo instalado en mi ordenador lo siguiente: appserv-win32-2.5.4a.
Alguien tiene idea de que puede pasar.
Muchas Gracias

Federico says:

Muy bueno el tutorial. Super simple y entendible!

A mi me dió el mismo error #2101 de formato de la cadena URL y lo solucioné cambiando

“recibir.dataFormat=URLLoaderDataFormat.VARIABLES;”

por

“recibir.dataFormat=URLLoaderDataFormat.TEXT;”

Federico says:

Por alguna razón recibir.dataFormat = URLLoaderDataFormat.VARIABLES; devuelve un error en ambiente local pero no funciona en MAMP, pero recibir.dataFormat = URLLoaderDataFormat.TEXT; funciona perfecto en ambiente local pero no anda bien en MAMP.

Recomiendo probar los dos si hay problemas de recepción de datos desde el php.

jonathan says:

e disculpa pero intente el codigo en AS 3.0 y no sale, no se si me podrias enviar el el php y el flv

an disculpa me diero una tarea de quitsorty codigo secuencial y binario

*******************************
* —————————-*
* PROYECTO FINAL ALGORITMICA I*
* —————————-*
* *
* ORDENAR: *
* Quick Sort *
* Insercion *
* Burbuja *
* *
* BUSCAR: *
* Secuencial *
* Binario *
* *
* EXAMEN jueves 18/02/10 *
* EXAMEN FINAL *
*******************************

tengo que ordenar 10 letras cualquieras por los tres metodos en un solo trabajo con tres botones para ordenar y un boton para busca por favor aver si me ayudas con mi tarea

kevin says:

ayudame para que el ph funcione en appeserf

dimmu says:

hola manes kisiera k me ayuden en mi tares de diseño m tengo otras pero esas y las ago el php del ejemplo no me funca bn algien podria ayudar plsssssssssssssssssssssssssssssssssssssssssssssssssssss

Ronald says:

Sos grande esedeerre, muxas gracias

wunjo says:

Muchas gracias, perfectamente entendible y aplicable.

fabian says:

Bien? tengo un problema, con el formato en que se devuelve el valor o las variables q necesito del PHP, si lo dejo tal cual está escrito aqui en el php.
echo ?datos=? . $info; al momento de escribirlo.
trace(?El resultado es : ? + recibir.data.datos);
me sale ?undefined?, si lo coloco como se solia colocar con el estandar MIME, en ActionScript 2.0, en el php.
echo ?&datos=? . $info; al momento de escribirlo. me da 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()
Estoy en proceso de trancisión hacia Asc 3, por lo que esto se me hace un poco confuso? Podria despejar mis dudas?? Favor escribir a mi correo: f_varga@hotmail.com Gracias?

Francisco says:

Hola, yo tambien con eso de “undefined”. cuando lo probaba en local mediante “localhost” me salia lo de “undefined” en el resultado. hice un cambio en el codigo php de ejemplo y ya me sale todo bien:

hay que cambiar estas dos lineas

$numero1 = htmlentities($_POST[numero1]);
$numero2 = htmlentities($_POST[numero2]);

por:

$numero1 = $_POST[“numero1”];
$numero2 = $_POST[“numero2”];

quizas esto se deba a la version php que tenga instalado cada servidor

vangercol says:

Bueno vamos a mirar si funciona, si llega a ser asi volvere a escribir y a felicitarte pero por lo que leo deberia funcionar :)

vangercol says:

BUeno pues perfecto, pero me aparece en salida undefined, creo que podria ser error del php. Como me podrian ayudar???

Okami says:

buenisimo viejo me sirvio al 100%

Alex says:

he hecho todo ese ejemplo pero me muestra el codigo php en lugar los valores reales.

alexzander escobar says:

Tengo un problema, estoy realizando envíar mail con flash pero
Cuando hago la peticion al PHP

recibir.load(enviar);

ese enviar lo tengo como boton

este es el código:

import flash.display.Sprite;
import flash.net.URLRequest;//Rescata URL
import flash.net.URLLoader;//Carga de datos
import flash.net.URLVariables;//Maneja variables
import flash.net.sendToURL;//Exporta datos
//URL DONDE SE VA A CARGAR LOS DATOS
var url:String =”../Contactenos.php”;
//VARIABLES PARA ENVIAR Y RECIBIR
var enviodatos:URLRequest = new URLRequest(url);
var recibodatos:URLLoader = new URLLoader();
//DATOS QUE SE VAN A CARGAR
var datos:URLVariables = new URLVariables();
datos.nombre = nombre_txt.text;
datos.email = email_txt.text;
datos.mensaje = mensaje_txt.text;
//DEFINO EL METODO DE ENVÍO
enviodatos.method = URLRequestMethod.POST;
//INDICO LAS VARIABLES A ENVIAR
enviodatos.data = datos;
//FORMATO DE LA INFORMACIÓN A RECIBIR
recibodatos.dataFormat = URLLoaderDataFormat.VARIABLES;
//LISTENER A RECIBIR, PARA MENSAJE DE RESPUESTA
recibodatos.addEventListener(Event.COMPLETE,Respuesta);
recibodatos.addEventListener(IOErrorEvent.IO_ERROR,HayError);
//PETICION PHP DE ENVIO
recibodatos.load(BtnEnviar);
//FUNCION QUE ME EJECUTA LA RESPUESTA RECIBIDA DE PHP
function Respuesta(event:Event)
{
trace(recibodatos.data.estado_txt);
}
//FUNCION DE ERROR EN LA CARGA A PHP
function HayError(event:IOErrorEvent):void
{
trace(“Error en la carga de datos”);
}
stop()

Cuál es mi error:
El sistema me muestra
1067: Implicit coercion of a value of type flash.display:SimpleButton to an urelated type flash.net:URLRequest

Gracias por la ayuda que me puedan brindar…

Daniel Velez says:

hola, mira, tengo esto:
unas fotos en un swf cada una en un fotograma.
la descripcion de las fotos esta debajo del swf en un html.
cuando cambio de foto cambia el html.
debe conservarse el avance en el swf mostrando la foto actual, pero no es asi,
como hago para que al cambiar a una nueva pagina el archivo swf conserve su estado pero cambie el texto en html??

luis arevalo says:

Hola estoy en el paso de as2 a as3, el gran problema que tengo es hacer las consultas a la base de datos. tienes algun ejemplo de eso?

Dechcaudron says:

Sale undefined…

Dechcaudron says:

Sale undefined…

Leon says:

Si hago una prueba y hago un trace(“El resultado es : ” + recibir.data) me imprime el codigo de mi php.

El resultado es : %0A%3C%3Fphp%0A%0A%24numero1%20=%20htmlentities%28%24%5FPOST%5Bnumero1%5D%29%3B%0A%0A%24numero2%20%3D%20htmlentities%28%24%5FPOST%5Bnumero2%5D%29%3B%0A%0A%24suma%20%3D%20%24numero1%20%20%20%24numero2%3B%0A%0Aecho%20%22suma%3D%22%20%2E%20%24suma%3B%0A%0A%3F%3E

leon says:

Claro esta que si le agrego el .suma me asle undefined.

Leon says:

A mi tambien me sale undefined…. no es por huevon ni nada, pero en verdad ando trabado en esto…

Agradeceria cualquier idea de por que creen que nos este saliendo “undefined”.

Saludos!

Dan says:

Me gustaria saber como se realizaria en el caso en el que se hiciera la petición de enviado desde un swf y se recibiera el resultado en otro.
Un saludo y muchas gracias por la info.

bibi says:

hola a todos muy buena la información, ahora necesito sacar na variable tipo texto, Cómo hago? xq no me deja de esta manera…..

muchas gracias