Bienvenido a Klr20mg

Cronicas de un desarrollador

Actualmente soy Jefe de Desarrollo del area Flash en Sapotek de México en la cual trabajo desde hace mas de 4 años. Desarrollando aplicaciones en Flash para Web mas comúnmente llamadas (RIAs)

Estas en : Blog » Algo sobre Flex
  • Decrease font size
  • Default font size
  • Increase font size
  • color default
  • color verde
  • color azul
Algo sobre Flex
AddThis Social Bookmark Button
Post2PDF Print
February 11th, 2006

Hace poco se lanzo el Framework de Flex 2 (Beta 1).

En lo personal siempre he tenido mis dudas acerca de Flex, Al necesitar un servidor especial para ejecutar los archivos mxml, el precio Etc. Etc.

Hasta ahora que tengo un poco de tiempo decidí bajar el nuevo framework y probar que tal. Recuerden que es mi primer contacto con Flex aun no puedo decir que soy un entendido del tema ni mucho menos En fin

Lo primero que se me vino a la mente fue el ya tan común lector de RSS jeje :P que se le va a hacer, repito, aun no exploro todas las posibilidades de Flex y ActionScript 3.

Para mi sorpresa fue mucho mas fácil de lo que imagine. Hacer un parser de RSS en Flash común y corriente es un dolor de muelas por no decir otra cosa. Sin embargo en Flex me encontré con la clase HTTPService la cual hace la petición al recurso de RSS y lo entrega en un fabuloso objeto, lo único que queda hacer es saber la estructura del XML y listo las referencias son tan simples como

rss.channel.item[i].title

eso me agrado bastante, el trabajo disminuyo en lugar de aumentar. Nice.

Me doy cuenta que es casi exactamente lo mismo que una aplicación común de Flash el único cambio se produce al momento de crear la interfaz gráfica (GUI), esta se crea mediante tags de XML fáciles y entendibles desde el primer ejemplo.

Esto dio como resultado que mi interés sobre Flex creciera voy a tener que meterme mas al tema.

El único inconveniente que veo es el tamaño resultante del SWF 220 Kb.. pero al saber que los usuarios que utilizan banda ancha esta creciendo, este inconveniente no creo que se convierta en un problema.

Mi primer intento en Flex resulto en esto. Repito es algo muyy sencillo.

Actualización
El url correcto es http://klr20mg.com/flex/kill.swf y se necesita el Flash Player 8.5 para poder verlo.

Coloquen el URL de un RSS y es todo..

ej. http://klr20mg.com/?feed=rss2

Me olvidaba para los curiosos que les gusta ver código este es el código completo del mxml

Actionscript:
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <mx:Application xmlns:mx="http://www.macromedia.com/2005/mxml" xmlns="*" layout="horizontal">
  3.     <mx:Script>
  4.         <![CDATA[
  5.             import mx.rpc.http.HTTPService;
  6.             import mx.rpc.event.ResultEvent
  7.             import mx.controls.List;
  8.             import mx.controls.ListEvents;
  9.             private var rss:Object;
  10.             private var theUrl:String
  11.             public function changeState(target:String, url:String):void{
  12.                 if(url.length){
  13.                     theUrl = url;
  14.                     currentState = target;
  15.                     useHttpService();
  16.                 }
  17.             }
  18.             public function useHttpService():void {
  19.                 var service:HTTPService = new HTTPService();
  20.                 service.url = theUrl
  21.                 service.addEventListener("result", httpResult);
  22.                 service.send();
  23.                 }
  24.             public function httpResult(obj:Object):void{
  25.                 var source:Array = [];
  26.                 rss = obj.result.rss
  27.                 itemList.addEventListener("change", loadInfo);
  28.                 for(var i:String in rss.channel.item){
  29.                     var tmp:Object = {}
  30.                     tmp.label = rss.channel.item[i].title
  31.                     tmp.link = rss.channel.item[i].link
  32.                     if(rss.channel.item[i].encoded != undefined){
  33.                         tmp.data = rss.channel.item[i].encoded
  34.                     }else{
  35.                         tmp.data = rss.channel.item[i].description;
  36.                     }
  37.                    
  38.                     source.push(tmp)
  39.                 }
  40.                 itemList.dataProvider = source
  41.             }
  42.             public function loadInfo(obj:Object){
  43.                 panel1.title = "Simple RSS Reader :::: "+obj.target.selectedItem.label;
  44.                 info.htmlText = obj.target.selectedItem.data;
  45.                 info.htmlText += "<br><br><b><a href='"+obj.target.selectedItem.link+"' target='_blank'>Ir al Sitio</a></b>";
  46.                
  47.             }
  48.         ]]>
  49.     </mx:Script>
  50.     <mx:transitions>
  51.         <mx:Transition id="effect" fromState="*" toState="*">
  52.             <mx:Parallel targets="{[panel1]}">
  53.                 <mx:Move duration="500"/>
  54.                 <mx:Resize duration="500"/>
  55.             </mx:Parallel>
  56.         </mx:Transition>
  57.     </mx:transitions>
  58.     <mx:states>
  59.         <mx:State name="result">
  60.             <mx:RemoveChild child="{button1}"/>
  61.             <mx:RemoveChild child="{rss2see}"/>
  62.             <mx:RemoveChild child="{label1}"/>
  63.             <mx:SetProperty target="{canvas1}" property="width" value="80%"/>
  64.             <mx:SetProperty target="{canvas1}" property="height" value="80%"/>
  65.             <mx:SetProperty target="{panel1}" property="x"/>
  66.             <mx:SetProperty target="{panel1}" property="y"/>
  67.             <mx:SetProperty target="{panel1}" property="layout" value="horizontal"/>
  68.             <mx:SetProperty target="{panel1}" property="width" value="100%"/>
  69.             <mx:SetProperty target="{panel1}" property="height" value="100%"/>
  70.             <mx:AddChild target="{panel1}" position="lastChild">
  71.                 <mx:List width="25%" height="100%" id="itemList" themeColor="haloSilver"></mx:List>
  72.             </mx:AddChild>
  73.             <mx:AddChild target="{panel1}" position="lastChild">
  74.                 <mx:TextArea width="75%" height="100%" id="info" editable="false" wordWrap="true"/>
  75.             </mx:AddChild>
  76.         </mx:State>
  77.     </mx:states>
  78.     <mx:Canvas id="canvas1">
  79.         <mx:Panel title="Simple RSS Reader" width="350" height="99" layout="absolute" x="0" y="0" id="panel1">
  80.             <mx:Label x="4" y="10" text="RSS" themeColor="haloSilver" id="label1"/>
  81.             <mx:TextInput x="44" y="8" width="280" themeColor="haloSilver" id="rss2see"/>
  82.             <mx:Button x="266" y="38" label="Load" themeColor="haloSilver" id="button1" click="changeState('result',rss2see.text)"/>
  83.         </mx:Panel>
  84.     </mx:Canvas>
  85. </mx:Application>

Saludos

Posibles Posts Relacionados
7 Comentarios

Si deseas poner codigo en tu comentario utiliza la etiqueta < pre > < /pre >

yo no puedo ver el ejemplo, en ningun navegador... por que?

deftones_sv escribio el 23-February-2006 a las 9:28 am

El url correcto es http://klr20mg.com/flex/kill.swf y se necesita el Flash Player 8.5 para poder verlo.

Tmeister escribio el 23-February-2006 a las 11:22 am

Algo que no entiendo yo, es como generar los archivos swf, descargue el trial y no se como hacerlo.

gracias

deftones_sv escribio el 4-October-2006 a las 2:59 pm

Hola,
Has tocado algo los estados en flex?
Hay un libro muy bueno que te puedes descargar de adobe, llamado:Flex™ 2 Developer’s Guide.
En el ponen, entre otras cosas, varios ejemplos de proyectos que usan states.Tengo algún problema con su uso.
Mi email es aintzanecv@hotmail.com
si tienes tiempo para hablar del tema avisame, gracias.

Egwene escribio el 7-June-2007 a las 10:13 am

El codigo esta un poco desactualizado...
Seria bueno que lo actualices.
Cosas como xmlns:mx="http://www.macromedia.com/2005/mxml" ya no corren
Ahora seria xmlns:mx="http://www.adobe.com/2006/mxml" ...
Seria bueno verlo funcionar.

Saludos

Javier escribio el 16-August-2007 a las 12:29 pm

Bueno, Hay que tener en cuenta que el Post es de Febrero del 2006 y que el codigo fue hecho para el Player 8.5 Beta ;)

Saludos!!

Tmeister escribio el 16-August-2007 a las 12:31 pm

sisi.. totalmente de acuerdo, no fue ninguna presión, estaba buscando un ejemplo similar a ese. Por eso digo seria bueno actualizarlo ;)…
Ya lo actualizare y te lo paso.

Saludos

Javier escribio el 16-August-2007 a las 12:58 pm

 Blog editado por:

Enrique Chavez aka Tmeister

 Sigueme en Twitter

  • A punto de iniciar un curso de joomla, A ver que tal 3 hrs ago
  • Que divertido es modificar el blog "En caliente" y que todo deje de funcionar. XD 5 hrs ago
  • More updates...

Posting tweet...

 Suscribete


AddThis Social Bookmark Button

 Archivo

2008
2007
2006
2005
2004