Comunidad de diseño web y desarrollo en internet online

Duda sobre la conexión a internet con flex 3

Citar            
MensajeEscrito el 30 Mar 2009 08:40 am
Hola, he estado mirando diversas formas de hacer un proyecto que tengo ahora mismo entre manos, pero claro siempre he llegado más o menos a la misma duda y aun no he sido capaz de llegar a resolver dicha duda y me gustaría saber si me podíais aconsejar. Ahora mismo mi proyecto tendría que comprobar la conexión a internet cada x tiempo, pero claro eso con la utilización de la librería “air.net.URLMonitor” no hay mucho problema, pero la cuestión es que no puedo usar dicha biblioteca ya que es un archivo flex y no un air y ahora mismo no sé cómo hacer que me la detecte si alguien tiene alguna solución le estaría muy agradecido.

Un Saludo y gracias.

Por Asur

10 de clabLevel



 

msie7
Citar            
MensajeEscrito el 30 Mar 2009 12:00 pm
Intentas cargar un archivo pequeño desde una url con un timeout ... si después de N segundos no se carga, has perdido la conexión

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 31 Mar 2009 10:14 am
Gracias por la respuesta pero continuo teniendo el mismo dilema, no he sido capaz de momento de solucionar, es más no me llega ni a mostrar los "Alert".
Os muestro el código a ver qué os parece

Un saludo y gracias de nuevo.

Código :

<?xml version="1.0"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" initialize="prueva()">
   <mx:Script>
      <![CDATA[
         import mx.rpc.events.FaultEvent;
         import mx.rpc.remoting.RemoteObject;
         import mx.controls.Alert;
         import mx.events.*;         
         public function prueva():void{
            var enviservice:RemoteObject = new RemoteObject("http://www.google.es");
            enviservice.requestTimeout=30;
            enviservice.addEventListener(FaultEvent.FAULT,comprovacion);
            
         }
         public function comprovacion(fault:FaultEvent):void{
            switch(fault.fault.faultCode.toString()){
               case "Client.Error.RequestTimeout":
                  Alert.show("No internet");
                  break;
               default:
                  Alert.show("Online");
                  break;
            }
         }
      ]]>
   </mx:Script>
</mx:Application>

Por Asur

10 de clabLevel



 

msie7
Citar            
MensajeEscrito el 31 Mar 2009 11:43 am
¿RemoteObject? No, eso se usa para llamadas RPC, no para cargar una URL. Usa un SWFLoader y carga un pequeño gif

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 01 Abr 2009 09:20 am
:) Gracias, es que soy novatillo :lol: . Ahora mismo ya e estoy utilizando el SWFLoader como me dijiste, pero claro no puedo llegar a controlar que por ejemplo si el usuario se queda sin conexión que no vea el icono conforme a no ha podido cargar la imagen, no sé si me explico bien. Ahora mismo cuando carga la imagen (con conexión), pero cuando no hay conexión sale el icono de que no ha podido cargar la imagen y eso no sé como hacer que salga otra cosa, y también no sé como hacer para que actualice la imagen al hacer alguna acción.

Un saludo y gracias de nuevo.

Por Asur

10 de clabLevel



 

msie7
Citar            
MensajeEscrito el 01 Abr 2009 10:49 am
En realidad no lo tienes que mostrar en ningún lado, solo saber si ha cargado o no. Pon el SWFLoader con visibilidad a false, lo importante es que se dispare el evento complete ... si después de un cierto tiempo no se dispara, has perdido la conexión. Este chequeo lo tienes que hacer cada X tiempo a través de un timer. Para eso agrega un random al nombre del gif, por ejemplo

miLoader.source = "mi.gif?"+Math.random()

Eso evita que lo cargue del cache. luego el gif muy pequeñito (2-3 kb)

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 02 Abr 2009 10:04 am
Vale pero mi pregunta es ahora mismo como consigo hacer que despues de cargar la direccion (no visible para el usuario) y pasada por evento llegar a hacer que pare el timer porque si no siempre llegaria como timeout.

ahora mismo tengo puesto:

Código :

public function prueva():void{
gif.source="image de internet.gif";
gif.addEventListener(Event.COMPLETE, onEvent);
}
-------------------------------------------------
// y por ejemplo tengo esto puesto ahora así porque estava provando
public function onEvent(e:Event):void{
var almc:String = e.type;     //Si encuentra la imagen siempre funciona
// pero en canvio cuando no la encuentra no sale ningun mensaje
if(almc!="complete"){
Alert.show("No ha entrado");
}else{
Alert.show("Ha entrado");
}


y otra cosa que tambien he estado provando es lo de limpiar cache mediante Math.random(), pero tampoco consigo hacer que funcione, si que carga la imagen, pero no hace mas que saltar el evento y llega a crear un bucle infinito.

Un saludo y gracias.

Por Asur

10 de clabLevel



 

msie7
Citar            
MensajeEscrito el 02 Abr 2009 11:31 am
Seguramente no funciona bien porque prueba va con B alta :)

Pon un Timer cada 10 segundos por ejemplo

Código ActionScript :

var test:Timer = new Timer(10000)
timer.addEventListener(TimerEvent.TIMER, prueba)
test.start()


Ahí arranca el timer, luego cada vez que entra en prueba tiene que comprobar si ha cargado la imágen y mandarla a cargar de nuevo:

Código ActionScript :

function prueba():void{
  if(!cargado) Alert.show("Perdió conexión");
  gif.source = "http://algunsitio.com/algun.gif?"+Math.random()
}


El evento complete decáralo en el tag del image (así no lo redeclaras cada vez que ejecutas prueba), cuando carga la imagen pon cargado a true, sino a false

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 03 Abr 2009 07:57 am
Hola, gracias por tu ayuda, me ha sido de mucha utilidad. Ahora mismo ya casi lo tengo lo que hago es comprobar la conexión pero no acabo de comprobar por ejemplo si me da un timeOut pero bueno.

Un Saludo.

Por Asur

10 de clabLevel



 

msie7
Citar            
MensajeEscrito el 03 Abr 2009 12:41 pm
Me olvidé de un detalle importante, cada vez que vuelves a cargar reseteas el flag:

Código ActionScript :

function prueba():void{ 
  if(!cargado) Alert.show("Perdió conexión"); 
  gif.source = "http://algunsitio.com/algun.gif?"+Math.random() 
  cargado = false
} 


Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox

 

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