Este tip lo armé en base a este problema que me encontré, pues hasta Flex 3 Beta 2, había una clase llamada Shell, con la cual uno podía detectar la conexión de la computadora, esto cambia en Flex 3 Beta 3, pues desaparecen la clase Shell y el evento que detecta la conexión lo mandan a NativeApplication, el siguiente ejemplo nos muestra como se detecta la conexión, es muy sencillo y requiere una llamada a cualquier página sobre Internet, pues es lógico que si se quiere saber si hay conexión a Internet, nos debe de poder devolver un resultado.
No voy a entrar a tanto detalle como: "Accedió a la página, pero aun así devolvió error" pues eso sería error de programación.
Código :
<?xml version="1.0" encoding="utf-8"?> <mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()"> <mx:Script> <![CDATA[ import mx.rpc.events.ResultEvent; import mx.rpc.events.FaultEvent; import mx.controls.Alert; import flash.events.Event; import mx.managers.CursorManager; //Variable que nos ayuda a verificar si estamos o no en línea private var enLinea:Boolean = false; private function init():void { //mandamos llamar nuestro HTTPService rss_hs.send(); //Agregamos el Listener que estara al tanto de lo que sucede con la conexión flash.desktop.NativeApplication.nativeApplication.addEventListener(Event.NETWORK_CHANGE, net_change); } private function invoke(e:mx.rpc.events.InvokeEvent):void { CursorManager.setBusyCursor(); } private function fault(e:FaultEvent):void { //Si no pudo alcanzar la página, esta desconectado enLinea = false; CursorManager.removeBusyCursor(); Alert.show("Hubo un error al procesar su solicitud.\nAl parecer estas desconectado de internet"); } private function result_rss(e:ResultEvent):void { //Si hay un resultado, pues si estamos conectados enLinea = true; CursorManager.removeBusyCursor(); } private function net_change(e:Event):void { /* invertimos el valor cada vez que cambia el estado de la red * esto es por que cuando hay exito en la consulta, se pone en true la variable * entonces cuando se hace el cambio de estado pasa de true a false * o bien, de conectado a desconectado y cuando no hay éxito, pues viceversa */ enLinea = !enLinea; if(enLinea) Alert.show("Conectado!"); else Alert.show("Al parecer te has desconectado!"); } ]]> </mx:Script> <mx:HTTPService id="rss_hs" url="http://www.cristalab.com/rss.php" useProxy="false" method="POST" resultFormat="e4x" invoke="invoke(event)" fault="fault(event)" result="result_rss(event)"/> </mx:WindowedApplication>
Tampoco hay un procesamiento del resultado, pues en este momento no es el tema.
Saludos y espero que les sirva!
¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.
Por confundido el 22 de Diciembre de 2007
¿quien pone las etiquetas en cristalab? asi es imposible encontrar lo que uno busca en las categorias
Por Maxerker el 22 de Diciembre de 2007
Por master_of_puppetz el 23 de Diciembre de 2007
Maxerker_blog :
así es , solo que Apollo era un code name y AIR ya es el oficial
Por Edgar el 13 de Enero de 2008
no la entiende por queno existe la libreria flas.desktop en flex 3.0 beta.
Luego no funciona
Por master_of_puppetz el 13 de Enero de 2008
Por Victor Villalobos el 16 de Febrero de 2010
como puedo hacer que funcione como un widget en mi escritorio? no como una ventana de windows si no como un widget de flash.
de antemano muchas gracias por su ayudas