En este tip vamos a modificar un lector de RSS para convertirlo en una aplicación de escritorio mediante Flash y MDM Zinc.
Nos hemos basado en un lector RSS en Flash ya creado. Concretamente en este:
Cómo en su web viene muy bien explicado aquí solamente haremos referencia a los retoques o fragmento de código añadidos.
Para empezar creamos una nueva capa donde añadimos un ComboBox de nombre "combositios", un botón para minimizar la aplicación de nombre "bot_min", otro botón para cerrar la aplicación de nombre "bot_cerrar" y un último botón, solamente con zona activa, para poder arrastrar la aplicación por el escritorio.
A continuación creamos un archivo xml de nombre "sitios.xml" con los feeds de nuestros sitios preferidos, la estructura ha de ser así:
Código :
<sitios> <sitio url="http://www.cristalab.com/rss.php">Cristalab</sitio> <sitio url="http://www.joangarnet.com/blog/?feed=rss2">Joan Garnet</sitio> <sitio url="http://www.theninjabunny.com/feed/">The Ninja-Bunny</sitio> <sitio url="http://feeds.feedburner.com/unijimpe">Unijimpe</sitio> </sitios>
Pasemos al actionscript:
Código :
Stage.scaleMode = "noScale"; var rssxml:XML = new XML(); rssxml.ignoreWhite = true; rssxml.onLoad = function() { var nodo:XMLNode = rssxml.firstChild.firstChild; var vtit:String = ""; var vurl:String = ""; var vdes:String = ""; var vcon:String = ""; for (i = 0; i < nodo.childNodes.length; i++) { var snodo:XMLNode = nodo.childNodes[i]; switch (snodo.nodeName) { case "title" : vtit = snodo.firstChild.nodeValue; break; case "link" : vurl = snodo.firstChild.nodeValue; break; case "description" : vdes = snodo.firstChild.nodeValue; break; case "item" : vcon = vcon + getContent(snodo); break; } } txttitle.htmlText = "<a href=\"" + vurl + "\">" + vtit + "</a>"; txtdescription.text = vdes; txtcontent.htmlText = vcon; }; function getContent(vxml) { var stit:String = ""; var surl:String = ""; var sdes:String = ""; for (j = 0; j < vxml.childNodes.length; j++) { var sxml:XMLNode = vxml.childNodes[j]; switch (sxml.nodeName) { case "title" : vtit = sxml.firstChild.nodeValue; break; case "link" : vurl = sxml.firstChild.nodeValue; break; case "description" : vdes = sxml.firstChild.nodeValue; break; } } return "<a href=\"" + vurl + "\"><b><font color=\"#990000\">" + vtit + "</font></b></a><br>" + vdes + "<br><br>"; } var sitiosxml:XML = new XML(); sitiosxml.ignoreWhite = true; sitiosxml.onLoad = function() { lo = new Object(); comboDatos = new Array(); combositios.dataProvider = comboDatos; for (i = 0; i < sitiosxml.firstChild.childNodes.length; i++) { comboDatos.addItem({label:sitiosxml.firstChild.childNodes[i].firstChild.nodeValue, data:sitiosxml.firstChild.childNodes[i].attributes.url}); } rssxml.load(sitiosxml.firstChild.childNodes[0].attributes.url); lo.change = function(evt) { rssxml.load(combositios.value); }; combositios.addEventListener('change', lo); }; sitiosxml.load("sitios.xml"); bot_mover.onPress = function() { startDrag(_root); }; bot_mover.onRelease = function() { stopDrag(); }; bot_min.onRelease = function() { mdm.Application.minimizeToTray(true); mdm.Application.minimize(); }; bot_cerrar.onRelease = function() { mdm.Application.exit("ask", "¿Seguro que quieres cerrar?"); };
Como hemos dicho antes, solamente comentaremos los retoques o fragmentos añadidos porque en la web del autor está muy bien explicado.
Al inicio hemos añadido un:
Código :
Stage.scaleMode = "noScale";
Para que luego, al compilarlo con Zinc no nos lo agrande al ponerle ancho y alto 100%.
Al final del lector hemos añadido este otro trozo:
Código :
var sitiosxml:XML = new XML(); sitiosxml.ignoreWhite = true; sitiosxml.onLoad = function() { lo = new Object(); comboDatos = new Array(); combositios.dataProvider = comboDatos; for (i = 0; i < sitiosxml.firstChild.childNodes.length; i++) { comboDatos.addItem({label:sitiosxml.firstChild.childNodes[i].firstChild.nodeValue, data:sitiosxml.firstChild.childNodes[i].attributes.url}); } rssxml.load(sitiosxml.firstChild.childNodes[0].attributes.url); lo.change = function(evt) { rssxml.load(combositios.value); }; combositios.addEventListener('change', lo); }; sitiosxml.load("sitios.xml");
Primero creamos un objeto XML que es donde vamos a cargar nuestro archivo "sitios.xml". Los datos los metemos en el ComboBox y le decimos que nada más cargarse los datos, cargue el primer feed de la lista. También le creamos un listener al ComboBox para que cuando seleccionemos otro Feed nos cargue su contenido.
A continuación ponemos el siguiente trozo de código:
Código :
bot_mover.onPress = function() { startDrag(_root); }; bot_mover.onRelease = function() { stopDrag(); }; bot_min.onRelease = function() { mdm.Application.minimizeToTray(true); mdm.Application.minimize(); }; bot_cerrar.onRelease = function() { mdm.Application.exit("ask", "¿Seguro que quieres cerrar?"); };
Al botón mover le asignamos un startDrag y stopDrag en los estados Press y Release respectivamente, con esto podremos mover nuestra aplicación por el escritorio.
Luego en el botón "bot_minimizar" le asignamos las funciones de Zinc de minimizar a la barra de tareas y en el botón "bot_cerrar" la función de salir preguntandonos antes si realmente queremos salir.
Bueno, ya tenemos nuestro lector RSS en Flash, y veremos que compilándolo funciona perfectamente. Ahora lo que queremos es compilarlo con Zinc para poder tenerlo en el escritorio como un ejecutable.
Abrimos Zinc y en la pestaña "Input File" le indicamos donde está nuestro archivo .swf en la sección "Input Source", por defecto Zinc no generará el archivo ejecutable con el mismo nombre en la misma ruta.
Luego en la pestaña "Style" en la sección "Window Style" marcamos la opción "Transparent", así solamente se verá lo que hemos diseñado y no tendrá fondo.
En la siguiente pestaña "Size/Position" marcamos la opción "Screen Percentage" y ajustamos los margenes, anchura y altura de nuestra aplicación. Esas serán las zonas donde veremos nuestro programa.
Finalmente llegamos a la pestaña "PC Executable Settings", aquí indicaremos la ruta de nuestro archivo .ico que queremos que tenga nuestro ejecutable, así como la apariencia en la barra de tareas. Nosotros hemos usado este archivo . También deberemos marcar la opción "Show in Tray" que es la que indica si se muestra el programa en la barra de tareas o no.
Ya sólamente nos queda compilarlo, dándole al botón "Build" que está en la esquina inferior derecha de Zinc. Y listo, nuestro propio lector de RSS en el escritorio y simplemente para añadir feeds tocaremos el xml.
¿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 Spacecowboy el 29 de Mayo de 2007
Por mussie el 29 de Mayo de 2007
esto es como apollo tambie, no?
Por eveevans el 30 de Mayo de 2007
excelente ONE
Por nico el 05 de Junio de 2007
Por nejda el 25 de Agosto de 2007
Por Roberto Peña el 05 de Noviembre de 2007
Por Roberto Peña el 05 de Noviembre de 2007
Por Roberto Peña el 05 de Noviembre de 2007
Por jo el 30 de Noviembre de 2007
Por secruza el 02 de Enero de 2008
como hago para abrir los vinculos en una nueva ventana si es para implementarlo en una web?
Por Leonardo el 07 de Febrero de 2008
Por Juanjo el 19 de Septiembre de 2008
Gracias!
Por pepe el 03 de Febrero de 2009
saludos y gracias!
Por chon el 23 de Octubre de 2009
Por Yonatta Rivas (Venez el 28 de Enero de 2010
Por Luis el 24 de Marzo de 2010