Comunidad de diseño web y desarrollo en internet online

navigatetourl cuando un fichero exista

Citar            
MensajeEscrito el 18 Abr 2012 04:21 pm
tengo un servidor para mi web y he creado un formulario en swf donde al apretar un boton me envia los datos a un php, este php decide los datos que son correctos y cuales no y en funcion de eso me crea un html o otro, una de esas variables es un nombre aleatorio que lo crea el propio swf y el cual al pasar esa variable a php me crea un fichero con el string de esa variable aleatoria. os pongo un ejemplo:

fichero swf del formulario interactivo
[1.variables personales de los campos
[2.variable aleatoria(sera el nombre de mi fichero que creara el php

[3.aqui hay un boton por ahora lo unico que hace es enviar los datos y hace un load del fichero php ----------
------
------(aki al apretar el boton los datos pasan al fichero php)
------
------ aqui llegan los datos mediante funcion $_POST el esquema del php mediante funciones condicionales va creando un string u otro dependiendo de esas variables....(if(){}).... esa variable que es un string sera la estructura en html o php.
una vez finalizada el string(codigo de la pagina) el php abre un fichero con el nombre aleatorio que le dio el swf-- y se le pone dentro el codigo que es el string creado por los condicionales

bien hasta aqui todo perfecto -- la variable aleatoria es conocida por el swf y el php --> aki va el meollo
puedo hacer que el swf cuando el fichero sea creado me haga un navigatetourl

algo parecido a when($nombrefile=is_exist){navigatetourl} pero en as3 --> eso implica que deberia existir una funcion en as3 que se pueda leer el directorio donde se encuentra el swf que resulta ser el mismo directorio que el fichero que me crea el php --> ¿es posible?

la otra opcion seria poner un contador una vez apretado el boton y que me hiciera un navigatetourl pasado ese timer (hacia un fichero hipoteticamente ya creado), pero es una solucion limita las opciones, ya que dependiendo de si la conexion sea lenta o no -->NO asegura el proceso ya que esas variables pueden tardar en llegar si se hace desde un mobil mientras el contador ya ha empezado a contar y puede que se haya acabado el timer y aun el fichero(php o html) no ha sido creado por lo que dara error en la conexion.

gracias por leerme

Por aukun

Claber

200 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 18 Abr 2012 04:40 pm
encontre algo voy a probar a ver si me funciona el siguiente codigo

Código :

import flash.filesystem.*;

var temp:File = File.createTempFile();
trace(temp.exists); // true

Por aukun

Claber

200 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 18 Abr 2012 05:35 pm
ya lo solucione mediante AIR

Código :

var prefsFile:File = File.applicationStorageDirectory;
    prefsFile = prefsFile.resolvePath("c:/wamp/www/.../uno.php");
   trace(prefsFile.exists);

solo tendre que poner un timer que me revise cada 3 segundos si prefsFile.exists==true si es asi que me haga un navigatetourl hacia la pagina creada

sino que vuelva a empezar el timer

De todas maneras funciona a medias ya que ahora en air no se me genera el archivo en php, por que sucede eso?
seguire investigando

Por aukun

Claber

200 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 19 Abr 2012 04:42 am
bien he hecho varios experimentos y estos son los resultados
antes de nada decir que mi ip es dinamica tengo una direccion dns que me direcciona hacia mi numero ip y un programa que me controla cada 30 segundos si mi ip a cambiado y cuando cambia envia alservidor dns la nueva ip bien estos son los resultados

1.cuando creo el archivo con air2 y solo pongo esta linea para ver que recoja bien las librerias

Código :

import flash.filesystem.*;

-->(resultado) me crea el archivo perfectamente desde php.por lo que el problema no es si el swf esta hecho desde air on no.
2.cuando pongo esta lineas de codigo

Código :

var prefsFile:File = File.applicationStorageDirectory;
    prefsFile = prefsFile.resolvePath("f:/wamp/www/...../uno.php"); 
//la ruta esta esta bien pongo puntos suspensivos porque es muy larga
   trace(prefsFile.exists);

el boton queda deshabilitado, no parece que haga el load bien con el php

que sucede? de momento sigo investigando

Por aukun

Claber

200 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 19 Abr 2012 09:08 am
he conseguido localizar el error y es que las direcciones cambian totalmente si se hace desde flash 10 a air2 he aki el problema por ejemplo en mi caso tenia una direccion que me enrutaba cuando le ponia la linea:

Código :

var stroot:String=loaderInfo.loaderURL;trace(stroot);
stroot=stroot.replace('file:///F|/wamp/www/','http://localhost/');
trace(stroot.lastIndexOf('/'));stroot=stroot.slice(0,(1+stroot.lastIndexOf('/')));

si haciamos un trace del loaderInfo.loaderURL -->(stroot) me daba -->file:///F|/wamp/www/..../a.swf
esto si lo haciamos desde flash 10 si lo hacemos desde air2 -->app:/a.swf
he aki el problema, esta bien saber que las rutas varian completamente, ahora funciona todo a la perfeccion
gracias por leerme

Por aukun

Claber

200 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 19 Abr 2012 11:25 am
aqui teneis la idea de lo que dije -->

Código :

bot.addEventListener(MouseEvent.CLICK,ffbot2);
function ffbot2(e2:MouseEvent){
   var prefsFile:File = File.applicationStorageDirectory;
   var temporizador:Timer=new Timer(3000,0);
   temporizador.addEventListener(TimerEvent.TIMER, accionRepetida);
   temporizador.start();
   function accionRepetida(e3:TimerEvent){
      prefsFile = prefsFile.resolvePath("app:/"+ar01z+tfd1a.texte());
      if(tfd1a.texte()=='  mínim sis dígits'){trace ("no has posat el nom d'usuari");temporizador.stop();};
      if((tfd1a.texte()!='  mínim sis dígits')&&(prefsFile.exists==true)){
         navigateToURL(new URLRequest("http://www.cristalab.com/"),'_self');
         temporizador.stop();
         }}}

cada tres segundos mira si en la caja de texto es minim sis digits si es asi quiere decir que el usuario no ha puesto nada, si el usuario pone algo( no puede volver a poner minim sis digits) porque el nombre de usuario hay un restrict en la caja de texto por lo que si pone algo sera algo siempre diferente, si pasan tres segundos y prefsFile.exists==false volvera a pasar 3 segundos hasta que prefsFile exista todo depende de lo que tarde prueba.php en crear el fichero ("app:/"+ar01z+tfd1a.texte()) es decir prefsFile para hacerlo mas completo podriamos poner
if((tfd1a.texte()!=' mínim sis dígits')&&(prefsFile.exists==false)){
//creamos un mensaje sprite tipo:--> espere un momento cargando
}
un saludo gracias por leerme

Por aukun

Claber

200 de clabLevel



Genero:Masculino  

firefox

 

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