<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0' version='2.0'><channel><atom:id>tag:blogger.com,1999:blog-6372770751939167156</atom:id><lastBuildDate>Tue, 20 Mar 2012 02:40:36 +0000</lastBuildDate><category>facebook</category><category>flash</category><category>DOM</category><category>blackberry</category><category>movilidad</category><category>CSS</category><category>html5</category><category>Embed</category><category>noticias</category><category>as3</category><category>AIR</category><category>video</category><category>JavaScript</category><category>font</category><category>actionScript</category><category>widget</category><category>flex</category><category>Silverlight</category><title>Intelygenz Labs</title><description>Laboratorio de Intelygenz para el desarrollo e innovación de software aplicado</description><link>http://labs.intelygenz.com/</link><managingEditor>noreply@blogger.com (Frédéric Alluin)</managingEditor><generator>Blogger</generator><openSearch:totalResults>9</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-6372770751939167156.post-8548550422485463854</guid><pubDate>Tue, 05 Apr 2011 14:53:00 +0000</pubDate><atom:updated>2011-04-05T17:20:22.203+02:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>video</category><category domain='http://www.blogger.com/atom/ns#'>html5</category><category domain='http://www.blogger.com/atom/ns#'>flash</category><category domain='http://www.blogger.com/atom/ns#'>movilidad</category><title>Jugando con la etiqueta VIDEO de HTML5</title><description>Desde hace un tiempo atrás, se ha hablado mucho sobre el tema de poder incluir vídeos en nuestros sitios web sin necesidad de usar plugins externos, es decir, evitar tener que usar flash a la hora de poder tener vídeos en nuestro sitio web.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Hace poco se abrió una nueva posibilidad con la etiqueta VIDEO de HTML5. Ésto nos abre una posibilidad enorme de poder usar nuestros vídeos sin necesidad de usar programas de terceros.... o no?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Tras varias pruebas realizadas con los diferentes codecs de video y los diferentes navegadores existentes, podemos representar con estos datos la compatibilidad entre ambos:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;- Google Chrome: Acepta formatos &lt;span class="Apple-style-span"&gt;mp4, ogv y webM&lt;/span&gt;&lt;/div&gt;&lt;div&gt;- Safari para windows: Acepta formato &lt;span class="Apple-style-span"&gt;mp4&lt;/span&gt;&lt;/div&gt;&lt;div&gt;- Firefox 3.6 y Firefox 4: Acepta formato &lt;span class="Apple-style-span"&gt;ogv&lt;/span&gt;&lt;/div&gt;&lt;div&gt;- Ópera 11: Acepta formatos &lt;span class="Apple-style-span"&gt;ogv y webM&lt;/span&gt;&lt;/div&gt;&lt;div&gt;- Internet Explorer 9: Acepta formatos &lt;span class="Apple-style-span"&gt;mp4 y webM&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Con esta comparativa se puede llegar a la conclusión de que a día de hoy, no se puede usar un único formato para el vídeo, dado que no todos los navegadores concuerdan en uno, si no más bien lo contrario.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Se añade como agravante que para que Internet Explorer 9 pueda reproducir vídeo en formato webM se necesita de un &lt;span class="Apple-style-span"&gt;plugin adicional&lt;/span&gt; que no viene instalado por defecto.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Podemos ver que para usar la etiqueta VIDEO de HTML5 en nuestros sitios web, debemos usar el vídeo por duplicado para que dependiendo del navegador cargue uno u otro, con el inconveniente que incluye eso para el tema de almacenamiento en el servidor..&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Como conclusión, recomendamos el uso de flash para usar vídeos en web, por lo menos hasta que todos los navegadores acepten al menos un formato común de vídeo.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;No obstante, se recomienda usar este tipo de métodos para webs exclusivas para dispositivos móviles, como sistemas iOS (iPhone, iPad, iPod) o sistemas Android, donde la experiencia es plena para el formato mp4 en ambos casos&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6372770751939167156-8548550422485463854?l=labs.intelygenz.com' alt='' /&gt;&lt;/div&gt;</description><link>http://labs.intelygenz.com/2011/04/jugando-con-la-etiqueta-de-html5.html</link><author>noreply@blogger.com (Intelygenz Labs)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-6372770751939167156.post-1112130260374134113</guid><pubDate>Wed, 19 Aug 2009 15:02:00 +0000</pubDate><atom:updated>2009-08-31T17:09:41.465+02:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>JavaScript</category><category domain='http://www.blogger.com/atom/ns#'>DOM</category><category domain='http://www.blogger.com/atom/ns#'>CSS</category><title>Menús desplegables CSS en Internet Explorer 6</title><description>&lt;p&gt;Las posibilidades de las hojas de estilo CSS son sorprendentes, y en especial la posibilidad de hacer menús desplegables sin una sola línea de JavaScript.&lt;/p&gt;&lt;p&gt;La mejor solución es usar el creador de menús de: &lt;a href="http://purecssmenu.com"&gt;purecssmenu.com&lt;/a&gt;&lt;/p&gt;&lt;p&gt;El editor te permite crear tu propio menú con las distintas secciones e ilimitados niveles de navegación, diferentes plantillas disponibles con estilos que puedes personalizar y una vez terminado te permite descargar un ZIP con un único fichero CSS y los pocos gráficos necesarios. Y lo mejor que todo es que funciona en prácticamente todos los navegadores modernos, incluso IE6.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Pero tanta maravilla se acaba cuando tienes que viajar al pasado porque a alguien se le ha ocurrido que el menú CSS tiene que tener un diseño "particular" aparte de funcionar también en Internet Explorer 6 (sí, en IE6 en el año 2009)&lt;/p&gt;&lt;p&gt;Pero los caminos de Internet son infinitos y con unas líneas de código JavaScript exclusivas para Internet Explorer 6 se soluciona el problema. Añadimos eventos con &lt;span style="color: rgb(0, 153, 0);"&gt;attachEvent&lt;/span&gt; a los elementos conflictivos que seleccionamos mediante &lt;span style="color: rgb(0, 153, 0);"&gt;getElementsByTagName&lt;/span&gt; y sus correspondientes &lt;span style="color: rgb(0, 153, 0);"&gt;childNodes&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Este código es exclusivo para los menús desplegables gratuitos de &lt;a href="http://www.cssmenumaker.com/drop_down_css_menu.php"&gt;cssmenumaker.com&lt;/a&gt; (aunque no está probado en toda la colección), pero debe ser fácil de adaptar y aprovechar para otros menús o para parchear otro tipo de problemas que puedan darse en IE6.&lt;/p&gt;&lt;p&gt;Puedes descargar el código con instrucciones en esta librería &lt;a href="http://sites.google.com/site/intelygenz/labs/ie6_menufix.js"&gt;ie6_menufix.js&lt;/a&gt; [v1.00]&lt;/p&gt;&lt;p&gt;En caso de problemas con la descarga, la tienes también en &lt;a href="http://sites.google.com/site/intelygenz/labs/ie6_menufix.zip"&gt;formato ZIP&lt;/a&gt;&lt;/p&gt;&lt;div id="seolinx-tooltip" style="border: 1px solid rgb(0, 0, 0); margin: 0pt; padding: 0pt; display: none; opacity: 0.9; position: absolute; width: auto; z-index: 99999;"&gt;&lt;table style="border: 0pt none ; margin: 0pt; padding: 0pt; border-collapse: separate; width: auto;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td id="seolinx-table" style="border: 0pt none ; margin: 1px; padding: 0pt; font-family: Tahoma; font-size: 11px; font-weight: bold;"&gt;&lt;div style="margin: 0pt; padding: 0pt; overflow: auto; width: auto;"&gt;&lt;table id="seolinx-paramtable" style="border: 1px solid gray; margin: 0pt; border-collapse: separate;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="border: 1px solid gray; padding: 2px; background: rgb(240, 240, 240) none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous; color: darkgreen; font-family: Tahoma; font-size: 7pt; font-weight: bold; white-space: nowrap;"&gt;&lt;img src="http://toolbarqueries.google.com/favicon.ico" style="vertical-align: middle;" width="12px" height="12px" /&gt; PR: &lt;a style="color: blue; font-family: Tahoma; font-size: 7pt; font-weight: bold; text-decoration: underline;" index="0" type="param" title="Google pagerank" href="javascript:{}"&gt;wait...&lt;/a&gt;&lt;/td&gt;&lt;td style="border: 1px solid gray; padding: 2px; background: rgb(240, 240, 240) none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous; color: darkgreen; font-family: Tahoma; font-size: 7pt; font-weight: bold; white-space: nowrap;"&gt;&lt;img src="http://www.google.com/favicon.ico" style="vertical-align: middle;" width="12px" height="12px" /&gt; I: &lt;a style="color: blue; font-family: Tahoma; font-size: 7pt; font-weight: bold; text-decoration: underline;" index="1" type="param" title="Google index" href="javascript:{}"&gt;wait...&lt;/a&gt;&lt;/td&gt;&lt;td style="border: 1px solid gray; padding: 2px; background: rgb(240, 240, 240) none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous; color: darkgreen; font-family: Tahoma; font-size: 7pt; font-weight: bold; white-space: nowrap;"&gt;&lt;img src="http://www.google.com/favicon.ico" style="vertical-align: middle;" width="12px" height="12px" /&gt; L: &lt;a style="color: blue; font-family: Tahoma; font-size: 7pt; font-weight: bold; text-decoration: underline;" index="2" type="param" title="Google links" href="javascript:{}"&gt;wait...&lt;/a&gt;&lt;/td&gt;&lt;td style="border: 1px solid gray; padding: 2px; background: rgb(240, 240, 240) none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous; color: darkgreen; font-family: Tahoma; font-size: 7pt; font-weight: bold; white-space: nowrap;"&gt;&lt;img src="http://siteexplorer.search.yahoo.com/favicon.ico" style="vertical-align: middle;" width="12px" height="12px" /&gt; LD: &lt;a style="color: blue; font-family: Tahoma; font-size: 7pt; font-weight: bold; text-decoration: underline;" index="12" type="param" title="Yahoo linkdomain" href="javascript:{}"&gt;wait...&lt;/a&gt;&lt;/td&gt;&lt;td style="border: 1px solid gray; padding: 2px; background: rgb(240, 240, 240) none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous; color: darkgreen; font-family: Tahoma; font-size: 7pt; font-weight: bold; white-space: nowrap;"&gt;&lt;img src="http://www.bing.com/favicon.ico" style="vertical-align: middle;" width="12px" height="12px" /&gt; I: &lt;a style="color: blue; font-family: Tahoma; font-size: 7pt; font-weight: bold; text-decoration: underline;" index="20" type="param" title="Bing index" href="javascript:{}"&gt;wait...&lt;/a&gt;&lt;/td&gt;&lt;td style="border: 1px solid gray; padding: 2px; background: rgb(240, 240, 240) none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous; color: darkgreen; font-family: Tahoma; font-size: 7pt; font-weight: bold; white-space: nowrap;"&gt;&lt;a style="color: blue; font-family: Tahoma; font-size: 7pt; font-weight: bold; text-decoration: underline;" index="40" type="param" title="Sitemap.xml" href="javascript:{}"&gt;wait...&lt;/a&gt;&lt;/td&gt;&lt;td style="border: 1px solid gray; padding: 2px; background: rgb(240, 240, 240) none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous; color: darkgreen; font-family: Tahoma; font-size: 7pt; font-weight: bold; white-space: nowrap;"&gt;&lt;img src="http://www.semrush.com/favicon.ico" style="vertical-align: middle;" width="12px" height="12px" /&gt; Rank: &lt;a style="color: blue; font-family: Tahoma; font-size: 7pt; font-weight: bold; text-decoration: underline;" index="41" type="param" title="SEMRush Rank" href="javascript:{}"&gt;wait...&lt;/a&gt;&lt;/td&gt;&lt;td style="border: 1px solid gray; padding: 2px; background: rgb(240, 240, 240) none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous; color: darkgreen; font-family: Tahoma; font-size: 7pt; font-weight: bold; white-space: nowrap;"&gt;&lt;img src="http://www.semrush.com/favicon.ico" style="vertical-align: middle;" width="12px" height="12px" /&gt; Traffic: &lt;a style="color: blue; font-family: Tahoma; font-size: 7pt; font-weight: bold; text-decoration: underline;" index="42" type="param" title="SEMRush SE Traffic" href="javascript:{}"&gt;wait...&lt;/a&gt;&lt;/td&gt;&lt;td style="border: 1px solid gray; padding: 2px; background: rgb(240, 240, 240) none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous; color: darkgreen; font-family: Tahoma; font-size: 7pt; font-weight: bold; white-space: nowrap;"&gt;&lt;img src="http://www.semrush.com/favicon.ico" style="vertical-align: middle;" width="12px" height="12px" /&gt; Price: &lt;a style="color: blue; font-family: Tahoma; font-size: 7pt; font-weight: bold; text-decoration: underline;" index="43" type="param" title="SEMRush SE Traffic price" href="javascript:{}"&gt;wait...&lt;/a&gt;&lt;/td&gt;&lt;td style="border: 1px solid gray; padding: 2px; background: rgb(240, 240, 240) none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous; color: darkgreen; font-family: Tahoma; font-size: 7pt; font-weight: bold; white-space: nowrap;"&gt;&lt;img src="http://siteanalytics.compete.com/favicon.ico" style="vertical-align: middle;" width="12px" height="12px" /&gt; C: &lt;a style="color: blue; font-family: Tahoma; font-size: 7pt; font-weight: bold; text-decoration: underline;" index="108" type="param" title="Compete Rank" href="javascript:{}"&gt;wait...&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="border: 0pt none ; margin: 0pt; padding: 1px; cursor: pointer; vertical-align: middle; width: auto;" id="seolinx-tooltip-close" title="close"&gt;&lt;img src="chrome://seoquake/content/skin/close.gif" /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6372770751939167156-1112130260374134113?l=labs.intelygenz.com' alt='' /&gt;&lt;/div&gt;</description><link>http://labs.intelygenz.com/2009/08/blog-post.html</link><author>noreply@blogger.com (Manuel Martin-Vivaldi)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-6372770751939167156.post-3948176310845631148</guid><pubDate>Thu, 12 Mar 2009 11:57:00 +0000</pubDate><atom:updated>2009-03-12T13:33:37.464+01:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>facebook</category><title>Obteniendo el icono cuadrado de usuario en Facebook</title><description>A la hora de crear nuestras aplicaciones, cuando queramos meter el icono del usuario en facebook, normalmente nos devuelve una imagen que no es proporcional a la vista. Esto es porque cuando añades la imagen de usuario en la ficha, hace una reducción proporcional de la misma. Es decir, si tu imagen no es cuadrada, la miniatura de la misma tampoco lo será.&lt;br /&gt;&lt;br /&gt;Asi cuando intentamos devolver una serie de imágenes de usuarios, cada uno saldrá con un alto diferente (el ancho afortunadamente es igual siempre). ¿Como podemos solucionar esto?... es bien sencillo.&lt;br /&gt;&lt;br /&gt;Normalmente para obtener la imagen del usuario usamos un trozo de código como el siguiente:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;color:#33ccff;"&gt;&amp;#60;fb:profile-pic uid="'.$fkIdUser.'" linked="true" /&amp;#62;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Y vemos que nos sale una cosa así:&lt;br /&gt;&lt;br /&gt;&lt;img id="BLOGGER_PHOTO_ID_5312270014554188226" style="WIDTH: 320px; HEIGHT: 162px" alt="ejemplo" src="http://3.bp.blogspot.com/_GBjqzux2bKQ/Sbj5bsB2KcI/AAAAAAAAAm0/ca6_19KEplQ/s320/1.jpg" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;Bien, esto nos devuelve el tipico IMG src con la imagen guardada en servidor. Pero como ya hemos comentado antes, no todas tienen la misma altura. Si queremos que todas sean iguales, la API de Facebook ya se ha ocupado de nosotros y no hace falta que andemos liados con estilos para poder obtener dicha imagen, solo tendremos que añadir un parámetro más (al igual que el linked="true" del ejemplo anterior).&lt;br /&gt;&lt;br /&gt;El parámetro a añadir se llama size y tendrá que tener el valor &lt;strong&gt;square&lt;/strong&gt;. Quedaría nuestro código por tanto de esta manera:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;color:#33ccff;"&gt;&amp;#60;fb:profile-pic uid="'.$fkIdUser.'" linked="true" size="square" /&amp;#62;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img id="BLOGGER_PHOTO_ID_5312270602625476018" style="WIDTH: 320px; HEIGHT: 162px" alt="ejemplo" src="http://3.bp.blogspot.com/_GBjqzux2bKQ/Sbj596w95bI/AAAAAAAAAm8/HtfZtHVZ39E/s320/2.jpg" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;Luego si queremos añadirle un marco para que quede más chulo, podemos aprovechar las css por defecto que vienen en todas las aplicaciones, enmarcando la imagen en una capa DIV con el siguiente estilo:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;color:#33ccff;"&gt;&amp;#60;DIV class="wallimage photo_borders"&amp;#62;&amp;#60;fb:profile-pic uid="'.$fkIdUser_4.'" linked="true"  size="square" /&amp;#62;&amp;#60;/DIV&amp;#62;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img id="BLOGGER_PHOTO_ID_5312270993944981538" style="WIDTH: 320px; HEIGHT: 162px" alt="ejemplo" src="http://4.bp.blogspot.com/_GBjqzux2bKQ/Sbj6UsizsCI/AAAAAAAAAnE/iV_Bc7SRtNs/s320/3.jpg" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;strong&gt;Otros tamaños para tus imágenes&lt;/strong&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Al igual que hemos visto que size="square" te realiza las fotos en tamaño cuadrado de 50x50, tenemos otros valores para el parámetro size que nos darían otro tipo de tamaño para las imágenes. Son estos:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;thumb (t): nos devuelve una imagen de 50 pixels de ancho y su altura amoldada (wide size) &lt;/li&gt;&lt;li&gt;small (s): nos devuelve una imagen de 100 pixels de ancho y su altura amoldada (wide size) &lt;/li&gt;&lt;li&gt;normal (n): nos devuelve una imagen de 200 pixels de ancho y su altura amoldada (wide size) &lt;/li&gt;&lt;li&gt;square (q): nos devuelve una imagen de 50x50 pixels &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Salu2!&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;?xml:namespace prefix = fb /&gt;&lt;fb:profile-pic linked="true" uid="'.$fkIdUser.'"&gt;&lt;fb:profile-pic linked="true" uid="'.$fkIdUser.'" size="square"&gt;&lt;fb:profile-pic linked="true" uid="'.$fkIdUser_4.'" size="square"&gt;&lt;/fb:profile-pic&gt;&lt;/fb:profile-pic&gt;&lt;/fb:profile-pic&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;fb:profile-pic linked="true" uid="'.$fkIdUser.'"&gt;&lt;fb:profile-pic linked="true" uid="'.$fkIdUser.'" size="square"&gt;&lt;fb:profile-pic linked="true" uid="'.$fkIdUser_4.'" size="square"&gt;&lt;/fb:profile-pic&gt;&lt;/fb:profile-pic&gt;&lt;/fb:profile-pic&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6372770751939167156-3948176310845631148?l=labs.intelygenz.com' alt='' /&gt;&lt;/div&gt;</description><link>http://labs.intelygenz.com/2009/03/obteniendo-el-icono-cuadrado-de-usuario.html</link><author>noreply@blogger.com (humphr3y)</author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_GBjqzux2bKQ/Sbj5bsB2KcI/AAAAAAAAAm0/ca6_19KEplQ/s72-c/1.jpg' height='72' width='72'/><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-6372770751939167156.post-7359859522166234149</guid><pubDate>Thu, 19 Feb 2009 12:22:00 +0000</pubDate><atom:updated>2009-03-06T15:44:03.645+01:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>noticias</category><title>Intelygenz trabaja para el Centro de Innovacion de BBVA.</title><description>&lt;span style="font-family:trebuchet ms;font-size:100%;"&gt;Intelygenz ha desarrollado para BBVA Centro de Innovación, un prototipo de widget para la plataforma Yahoo!Go 3.0 (actualmente disponible para más de 330 móviles en el mundo &lt;a href="http://es.mobile.yahoo.com/go/phones"&gt;http://es.mobile.yahoo.com/go/phones&lt;/a&gt;&lt;br /&gt;El prototipo permite, a cualquier usuario que tenga el widget instalado, encontrar los cajeros más cercanos a su posición, con una descripción detallada de los servicios disponibles. El sistema de geolocalización, sea por GPS o por celdas, está resuelto por la plataforma que elige el tipo de geolocalización para devolvernos directamente las coordenadas evitando al programador este laborioso trabajo. Una vez tengamos las coordenadas en nuestra posesión, basta cargar los mapas de Yahoo! y plasmar en ella la posición de los cajeros. &lt;?xml:namespace prefix = o /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;p class="MsoNormal" style="TEXT-ALIGN: justify;font-family:trebuchet ms;" &gt;&lt;span style="font-size:100%;"&gt;El desarrollo de este prototipo ha sido increíblemente rápido (unos dos días) para llegar a una versión de producción en funcionamiento. Aunque la parte de desarrollo para encontrar la información y la localización de los cajeros ya existía, el tiempo que ahorramos gracias a la utilización de la geolocalización del dispositivo y el uso de los mapas de Yahoo! es muy considerable. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="TEXT-ALIGN: justify;font-family:trebuchet ms;" &gt;&lt;span style="font-size:100%;"&gt;La única pega que le podríamos reprochar es la limitación y la falta de personalización de la interfaz, pero seguro que es algo que con el tiempo se mejorará.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="TEXT-ALIGN: justify;font-family:trebuchet ms;" &gt;&lt;span style="font-size:100%;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="TEXT-ALIGN: justify;font-family:trebuchet ms;" &gt;&lt;span style="font-size:+0;"&gt;&lt;span style="font-family:trebuchet ms;font-size:100%;"&gt;En conclusión, es una línea de trabajo con muchas posibilidades sobre la que seguiremos investigando ;-).&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="TEXT-ALIGN: justify" face="trebuchet ms"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_84p378evg_c/SZ1QIVMCD-I/AAAAAAAAAAY/Xs0IOiGA92Q/s1600-h/moz-screenshot-155.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5304484040169099234" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 400px; CURSOR: pointer; HEIGHT: 233px; TEXT-ALIGN: center" alt="" src="http://3.bp.blogspot.com/_84p378evg_c/SZ1QIVMCD-I/AAAAAAAAAAY/Xs0IOiGA92Q/s400/moz-screenshot-155.jpg" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6372770751939167156-7359859522166234149?l=labs.intelygenz.com' alt='' /&gt;&lt;/div&gt;</description><link>http://labs.intelygenz.com/2009/02/intelygenz-trabaja-para-el-centro-de.html</link><author>noreply@blogger.com (MaRiaN)</author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_84p378evg_c/SZ1QIVMCD-I/AAAAAAAAAAY/Xs0IOiGA92Q/s72-c/moz-screenshot-155.jpg' height='72' width='72'/><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-6372770751939167156.post-701446114690039784</guid><pubDate>Thu, 29 Jan 2009 14:36:00 +0000</pubDate><atom:updated>2009-03-06T15:46:51.622+01:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>actionScript</category><title>Problemas al posicionar DisplayObject (ej. Sprite) en una posición NaN</title><description>Uno de los cambios más sutiles con los que nos hemos encontrado entre las versiones 9 y 10 del player de flash es como se posiciona un DisplayObject cuando se le indica un valor NaN (Not a Number) como x ó y .&lt;br /&gt;&lt;br /&gt;Hasta ahora el player posicionaba el objeto en la posición cero sin embargo con el nuevo player -que ya está presente en aproximadamente el 60 % de los navegadores- lo posiciona en un número negativo muy muy grande.&lt;br /&gt;&lt;br /&gt;Realmente casi sería de agradecer que el player lanzara una excepción ya que parece raro que nadie quiera posicionar algo en la posición NaN sino que se dan cuando multiplica cero infinito (división por cero) o en caso de errores de casting etc.&lt;br /&gt;&lt;br /&gt;Así este código muestra un cuadrado rojo en flash player 9 y nada en el 10 (salvo que hagas un scroll hasta la posición -107374182.4)&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;br /&gt;package {&lt;br /&gt;import flash.display.Sprite;&lt;br /&gt;public class Pruebas extends Sprite&lt;br /&gt;{&lt;br /&gt;public function Pruebas(){&lt;br /&gt;var sprite:Sprite = new Sprite();&lt;br /&gt;sprite.graphics.beginFill(0xFF0000);&lt;br /&gt;sprite.graphics.drawRect(0,0,10,10);&lt;br /&gt;sprite.graphics.endFill();&lt;br /&gt;sprite.x = NaN;&lt;br /&gt;addChild(sprite);&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;}&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Así que si de pronto tu aplicación se ha quedado sin contenidos es una de las cosas que tendrás que verificar&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_RmusLXOOw4c/SYHD90abAqI/AAAAAAAAAAU/Yxk7coqSczw/s1600-h/flashplayer9.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5296730103573316258" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 202px; HEIGHT: 80px" alt="" src="http://2.bp.blogspot.com/_RmusLXOOw4c/SYHD90abAqI/AAAAAAAAAAU/Yxk7coqSczw/s320/flashplayer9.jpg" border="0" /&gt;&lt;/a&gt;&lt;a href="http://4.bp.blogspot.com/_RmusLXOOw4c/SYHD9ukumAI/AAAAAAAAAAM/aJ-ExWlfdiU/s1600-h/fp10.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5296730102005929986" style="FLOAT: right; MARGIN: 0px 10px 10px 0px; WIDTH: 202px; HEIGHT: 80px" alt="" src="http://4.bp.blogspot.com/_RmusLXOOw4c/SYHD9ukumAI/AAAAAAAAAAM/aJ-ExWlfdiU/s320/fp10.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Este hecho en adobe está reportado como bug, así que puede que nos encontremos con más cambios de comportamiento en el futuro&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bugs.adobe.com/jira/browse/FP-612"&gt;http://bugs.adobe.com/jira/browse/FP-612&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6372770751939167156-701446114690039784?l=labs.intelygenz.com' alt='' /&gt;&lt;/div&gt;</description><link>http://labs.intelygenz.com/2009/01/pisicionar-displayobjet-ej-sprite-en.html</link><author>noreply@blogger.com (José Pérez López)</author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_RmusLXOOw4c/SYHD90abAqI/AAAAAAAAAAU/Yxk7coqSczw/s72-c/flashplayer9.jpg' height='72' width='72'/><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-6372770751939167156.post-5593136749638803417</guid><pubDate>Mon, 10 Nov 2008 13:11:00 +0000</pubDate><atom:updated>2008-11-11T10:25:59.663+01:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>Silverlight</category><title>Hola Mundo en Silverlight</title><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_dypTmc5pXDE/SRlPizvT9KI/AAAAAAAAAAk/kTnvX4wyZiw/s1600-h/captura.jpg"&gt;&lt;br /&gt;&lt;/a&gt;&lt;div&gt;Vamos a ver como podemos crear una sencilla página utilizando Microsoft Silverlight.&lt;br /&gt;&lt;br /&gt;Para ello, crearemos el típico "&lt;strong&gt;Hola Mundo&lt;/strong&gt;", utilizando para ello la versión 1.0 de Silverlight. Más adelante publicaremos un ejemplo utilizando la versión 2.0&lt;br /&gt;&lt;br /&gt;Para crear proyectos en Silverlight, normalmente usaremos &lt;strong&gt;Expression Blend&lt;/strong&gt;, el cual va por su versión 2. Tambien podemos utilizar Visual Studio 2008, en conjunto con Blend, y Eclipse, junto con los plugins adecuados, aunque en realidad nos sirve cualquier editor de texto, ya que todo se basa en tags y propiedades similares al XML.&lt;br /&gt;&lt;br /&gt;Sin embargo, necesitaremos cierto codigo de inicializacion que Blend nos genera automáticamente, de ahi que sea la herramienta mas recomendable para iniciarse en esta tecnología.&lt;br /&gt;&lt;br /&gt;Para empezar, crearemos un archivo llamado, por ejemplo, '&lt;strong&gt;HolaMundo.xaml&lt;/strong&gt;'. Este será archivo donde añadiremos los elementos graficos de la aplicación.&lt;br /&gt;&lt;br /&gt;Para empezar, crearemos un elemento del tipo 'Canvas', que es el contenedor principal de Silverlight 1.0, con el siguiente código:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;&amp;lt;Canvas xmlns="http://schemas.microsoft.com/client/2007" &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;x:Name="Page" Background="White" &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;Width="640" Height="480"&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);font-family:courier new;" &gt;&amp;lt;/Canvas&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;En el especificamos el tamaño con los atributos '&lt;strong&gt;Width&lt;/strong&gt;' y '&lt;strong&gt;Height&lt;/strong&gt;', el color de fondo '&lt;strong&gt;Background&lt;/strong&gt;' y el nombre del elemento '&lt;strong&gt;x:Name&lt;/strong&gt;'.&lt;br /&gt;Si hemos utilizado Blend, nos creará automaticamente el código anterior, por lo que será mas sencillo la realización del ejemplo.&lt;br /&gt;&lt;br /&gt;Posteriormente, añadiremos nuestro mensaje 'Hola Mundo'. Para ello, utilizaremos un elemento de tipo '&lt;strong&gt;TextBlock&lt;/strong&gt;', que es el que nos permite poner texto. Este elemento y todos los que queramos incluir en la aplicación, deberán ir dentro del canvas principal.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);font-family:courier new;" &gt;&amp;lt;TextBlock Name="miTexto" Canvas.Left="250" Canvas.Top="200" Foreground="#FFFF0000" Text="Hola Mundo"/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Utilizamos los atributos '&lt;strong&gt;Canvas.Top&lt;/strong&gt;' y '&lt;strong&gt;Canvas.Left&lt;/strong&gt;' para especificar la posición del elemento dentro del canvas contenedor, asi como el color del texto, donde las primeras dos cifras hexadecimales indican la opacidad del elemento (00 = transparente, FF = opaco) y el resto de pares de cifras indican el color RGB. Por último, el elemento atributo '&lt;strong&gt;Text&lt;/strong&gt;' indica el texto que queremos mostrar.&lt;br /&gt;&lt;br /&gt;Una vez hecho esto, este seria el aspecto que tendria nuestro fichero '.xaml'. &lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_dypTmc5pXDE/SRlPizvT9KI/AAAAAAAAAAk/kTnvX4wyZiw/s1600-h/captura.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 107px;" src="http://2.bp.blogspot.com/_dypTmc5pXDE/SRlPizvT9KI/AAAAAAAAAAk/kTnvX4wyZiw/s400/captura.jpg" alt="" id="BLOGGER_PHOTO_ID_5267328698609300642" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Con esto tendremos finalizado nuestro fichero principal, lo que veremos en pantalla.&lt;br /&gt;&lt;br /&gt;Sin embargo, para que todo funcione correctamente, necesitaremos los siguientes ficheros:&lt;br /&gt;- &lt;strong&gt;Default.html&lt;/strong&gt;, es la página contenedora, donde ira incrustado el elemento Silverlight y que incluye las librerias Javascript que vienen a continuación.&lt;br /&gt;- &lt;strong&gt;HolaMundo.xaml.js&lt;/strong&gt;, donde se incluye el código Javascript para controlar nuestra aplicación&lt;br /&gt;- &lt;strong&gt;Silverlight.js&lt;/strong&gt;, que incluye código de inicialización del plugin y del elemento Silverlight.&lt;br /&gt;&lt;br /&gt;Como indicaba anteriormente, estos últimos ficheros son generados automáticamente por Blend, de ahi que sea recomendable su uso cuando uno se esta iniciando en esta tecnologia.&lt;br /&gt;&lt;br /&gt;Para probar nuestra aplicación, podremos hacerlo desde el propio Blend, pulsando &lt;strong&gt;F5&lt;/strong&gt; o a través del menú 'Project/Test site'. O tambien abriendo directamente en el navegador nuestra página '&lt;strong&gt;Default.html&lt;/strong&gt;'&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6372770751939167156-5593136749638803417?l=labs.intelygenz.com' alt='' /&gt;&lt;/div&gt;</description><link>http://labs.intelygenz.com/2008/11/hola-mundo-en-silverlight.html</link><author>noreply@blogger.com (Jose Antonio Gil)</author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_dypTmc5pXDE/SRlPizvT9KI/AAAAAAAAAAk/kTnvX4wyZiw/s72-c/captura.jpg' height='72' width='72'/><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-6372770751939167156.post-8307977669108958846</guid><pubDate>Thu, 06 Nov 2008 18:51:00 +0000</pubDate><atom:updated>2008-11-06T19:54:24.347+01:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>flex</category><category domain='http://www.blogger.com/atom/ns#'>AIR</category><category domain='http://www.blogger.com/atom/ns#'>as3</category><category domain='http://www.blogger.com/atom/ns#'>widget</category><category domain='http://www.blogger.com/atom/ns#'>actionScript</category><title>IconApp.com</title><description>Utilizando tecnología &lt;span style="font-weight: bold;"&gt;Adobe AIR&lt;/span&gt; hemos creando un tipo de aplicación que basa su utilidad en proporcionar pequeñas soluciones, utilidades y comodidades integradas directamente en el escritorio de trabajo.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.iconapp.com/"&gt;http://www.iconapp.com&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6372770751939167156-8307977669108958846?l=labs.intelygenz.com' alt='' /&gt;&lt;/div&gt;</description><link>http://labs.intelygenz.com/2008/11/iconappcom.html</link><author>noreply@blogger.com (Jonas Da Cruz)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-6372770751939167156.post-7347261811571046293</guid><pubDate>Tue, 04 Nov 2008 12:53:00 +0000</pubDate><atom:updated>2009-03-06T15:47:37.142+01:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>blackberry</category><title>Hello World en BlackBerry Storm</title><description>&lt;span style="COLOR: rgb(0,0,0);font-family:georgia;" &gt;En este post describiremos cómo crear un simple aplicación Hello World! para la BlackBerry 9530 Storm (con pantalla táctil).&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0);font-family:georgia;" &gt;Para el desarrollo de este ejemplo se ha usado el entorno de desarrollo BlackBerry JDE en su versión 4.7.0&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0);font-family:georgia;" &gt;Necesitaremos crear:&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0);font-family:georgia;" &gt;- Una clase HelloWorldDemo, que será la base de nuestra aplicación, y que extenderá de UiApplication&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0);font-family:georgia;" &gt;- Una clase HelloWorldScreen, que será la pantalla que se mostrará en la BlackBerry, y que extenderá de MainScreen. La pantalla contendrá u&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0);font-family:georgia;" &gt;n título&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-family:georgia;"&gt;, u&lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0);font-family:georgia;" &gt;n texto&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-family:georgia;"&gt; y &lt;/span&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0);font-family:georgia;" &gt;un mensaje tipo Alert al cerrar la aplicación&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;span style="font-family:georgia;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0);font-family:georgia;" &gt;De esta manera, el archivo HelloWorldDemo.java tendrá el siguiente código:&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(51,51,51)"&gt;&lt;code  style="font-family:courier new;"&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(102,102,102)"&gt;//paquete al que pertenece&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(102,102,102)"&gt;package com.rim.samples.device.helloworlddemo;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(102,102,102)"&gt;//importaciones&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(102,102,102)"&gt;import net.rim.device.api.ui.UiApplication;&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(102,102,102)"&gt;import net.rim.device.api.ui.container.MainScreen;&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(102,102,102)"&gt;import net.rim.device.api.ui.Field;&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(102,102,102)"&gt;import net.rim.device.api.ui.component.Dialog;&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(102,102,102)"&gt;import net.rim.device.api.ui.component.LabelField;&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(102,102,102)"&gt;import net.rim.device.api.ui.component.RichTextField;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(102,102,102)"&gt;//clase de nuestra aplicación&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(102,102,102)"&gt;class HelloWorldDemo extends UiApplication&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(102,102,102)"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(102,102,102)"&gt;/**&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(102,102,102)"&gt;* Entry point for application.&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(102,102,102)"&gt;*/&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(102,102,102)"&gt;public static void main(String[] args)&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(102,102,102)"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(102,102,102)"&gt;// Create a new instance of the application.&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(102,102,102)"&gt;HelloWorldDemo theApp = new HelloWorldDemo();&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(102,102,102)"&gt;// To make the application enter the event thread and start processing messages,&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(102,102,102)"&gt;// we invoke the enterEventDispatcher() method.&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(102,102,102)"&gt;theApp.enterEventDispatcher();&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(102,102,102)"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(102,102,102)"&gt;/**&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(102,102,102)"&gt;* The default constructor. Creates all of the RIM UI components and pushes the&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(102,102,102)"&gt;* application's root screen onto the UI stack.&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(102,102,102)"&gt;*/&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(102,102,102)"&gt;private HelloWorldDemo()&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(102,102,102)"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(102,102,102)"&gt;// Push the main screen instance onto the UI stack for rendering.&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(102,102,102)"&gt;pushScreen(new HelloWorldScreen());&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(102,102,102)"&gt;} &lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(102,102,102)"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(102,102,102)"&gt;//clase de la pantalla&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(102,102,102)"&gt;//al extender de MainScreen, nos ahorramos controlar los eventos habituales en estas aplicaciones,&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(102,102,102)"&gt;//aunque como es natural se pueden sobreescribir (en este ejemplo sobreescribiremos el método close)&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(102,102,102)"&gt;final class HelloWorldScreen extends MainScreen&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(102,102,102)"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(102,102,102)"&gt;//constructor&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(102,102,102)"&gt;HelloWorldScreen()&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(102,102,102)"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(102,102,102)"&gt;// Add a field to the title region of the screen. We use a simple LabelField&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(102,102,102)"&gt;// here. The ELLIPSIS option truncates the label text with "..." if the text&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(102,102,102)"&gt;// is too long for the space available.&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(102,102,102)"&gt;LabelField title = new LabelField("Hello World Demo (Título)" , LabelField.ELLIPSIS  LabelField.USE_ALL_WIDTH);&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(102,102,102)"&gt;setTitle(title);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(102,102,102)"&gt;// Add a read only text field (RichTextField) to the screen. The RichTextField&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(102,102,102)"&gt;// is focusable by default. In this case we provide a style to make the field&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(102,102,102)"&gt;// non-focusable.&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(102,102,102)"&gt;add(new RichTextField("Hello World! (Texto)" ,Field.NON_FOCUSABLE));&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(102,102,102)"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(102,102,102)"&gt;/**&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(102,102,102)"&gt;* Display a dialog box to the user with "¡Aaaadiós!" when the application&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(102,102,102)"&gt;* is closed.&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(102,102,102)"&gt;*&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(102,102,102)"&gt;* @see net.rim.device.api.ui.Screen#close()&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(102,102,102)"&gt;*/&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(102,102,102)"&gt;public void close()&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(102,102,102)"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(102,102,102)"&gt;// Display a farewell message before closing application.&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(102,102,102)"&gt;Dialog.alert("¡Aaaadiós!");&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(102,102,102)"&gt;System.exit(0);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(102,102,102)"&gt;super.close();&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(102,102,102)"&gt;} &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(102,102,102)"&gt;} //fin clase&lt;/span&gt;&lt;br /&gt;&lt;/code&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0);font-family:georgia;" &gt;Para probar nuestro ejemplo:&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0);font-family:georgia;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0);font-family:georgia;" &gt;- Dentro del JDE, haremos click en Debug -&gt; Go, o pulsaremos F5&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0);font-family:georgia;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0);font-family:georgia;" &gt;- Se abrirá el simulador&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0);font-family:georgia;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0);font-family:georgia;" &gt;- En el teléfono, pulsaremos la tecla de menú (logotipo de BlackBerry)&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0);font-family:georgia;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0);font-family:georgia;" &gt;- Pulsaremos Downloads&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0);font-family:georgia;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0);font-family:georgia;" &gt;- Buscaremos nuestra aplicación Hello World&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0);font-family:georgia;" &gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0);font-family:georgia;" &gt;Imagen:&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_keKBsWFgZzQ/SRBbBURe0dI/AAAAAAAAAAM/ihMScNOPV2s/s1600-h/Hello_World.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5264808042576138706" style="WIDTH: 199px; CURSOR: hand; HEIGHT: 320px" alt="" src="http://2.bp.blogspot.com/_keKBsWFgZzQ/SRBbBURe0dI/AAAAAAAAAAM/ihMScNOPV2s/s320/Hello_World.jpg" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6372770751939167156-7347261811571046293?l=labs.intelygenz.com' alt='' /&gt;&lt;/div&gt;</description><link>http://labs.intelygenz.com/2008/11/hello-world-en-blackberry-storm.html</link><author>noreply@blogger.com (Rubén Lafuente)</author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_keKBsWFgZzQ/SRBbBURe0dI/AAAAAAAAAAM/ihMScNOPV2s/s72-c/Hello_World.jpg' height='72' width='72'/><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-6372770751939167156.post-7740659057716250789</guid><pubDate>Tue, 07 Oct 2008 16:57:00 +0000</pubDate><atom:updated>2008-11-18T15:50:11.787+01:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>flex</category><category domain='http://www.blogger.com/atom/ns#'>as3</category><category domain='http://www.blogger.com/atom/ns#'>Embed</category><category domain='http://www.blogger.com/atom/ns#'>font</category><category domain='http://www.blogger.com/atom/ns#'>actionScript</category><title>AS3 Embeber tipografías con negrita en tiempo de compilación</title><description>AS3 es el acrónimo de &lt;a href="http://es.wikipedia.org/wiki/ActionScript"&gt;ActionScript 3&lt;/a&gt; el nuevo lenguaje de programación Flash/Flex, con una redefinición completa del lenguaje, orientación a objeto y sobre todo con la separación de sdk del ide flash y mayor aproximación al &lt;a title="Estándar" href="http://es.wikipedia.org/wiki/Est%C3%A1ndar"&gt;estándar&lt;/a&gt; &lt;a title="ECMAScript" href="http://es.wikipedia.org/wiki/ECMAScript"&gt;ECMAScript&lt;/a&gt; (ECMA 262)&lt;br /&gt;&lt;br /&gt;Lo que vamos a hacer es decirle al compilador flex que incluya ("embed") las fuentes dentro de un compilado swf, podemos utilizar las fuentes desde ese mismo swf o hacer una carga dinámica de las mismas desde otro aplicativo, aunque como diría Conan el cimmerio esa es otra historia.&lt;br /&gt;&lt;br /&gt;Este proceso lo realiza el compilador flex así que no lo intentes desde el IDE de flash.&lt;br /&gt;&lt;br /&gt;Para poder utilizar negrita con fuentes embebidas tenemos que registrar tanto la fuente con los caracteres normales como la fuente con los caracteres en negrita.&lt;br /&gt;&lt;br /&gt;En el caso de la negrita tenemos que indicar el fontWeight= "bold", si lo indicamos en cuanto cargamos un juego de caracteres que no tiene negrita, al compilar obtendremos un error:&lt;br /&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(204,0,0)"&gt;"Error: exception during transcoding: Font for alias 'XXXX' with bold weight was not found at: file"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Las fuentes tienen que ser TrueType y la ruta al fichero .ttf absoluta o relativa al directorio donde esta el fuente (el .as).&lt;br /&gt;&lt;br /&gt;En ambas etiquetas Embed pondremos el mismo FontName, si no embebemos la fuente en modo negrita no tendremos ningún error simplemente se ignorará nuestra etiqueta o nuestra indicación de formato negrita.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;em&gt;package Demos {&lt;br /&gt;&lt;br /&gt;import flash.display.Sprite;&lt;br /&gt;import flash.text.AntiAliasType;&lt;br /&gt;import flash.text.*;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;public class EmbedFontDemo extends Sprite {&lt;br /&gt;&lt;br /&gt;[Embed( source = "./assets/FUTURA.TTF"&lt;br /&gt;, fontWeight = "normal", fontName = "Futura"&lt;br /&gt;, mimeType = "application/x-font-truetype"&lt;br /&gt;)&lt;br /&gt;]&lt;br /&gt;public static const Futura:Class;&lt;br /&gt;&lt;br /&gt;[Embed( source = "./assets/FUTURAB.TTF"&lt;br /&gt;, fontWeight = "bold", fontName = "Futura"&lt;br /&gt;, mimeType = "application/x-font-truetype"&lt;br /&gt;)&lt;br /&gt;]&lt;br /&gt;public static const FuturaB:Class;&lt;br /&gt;&lt;br /&gt;public function EmbedFontDemo():void {&lt;br /&gt;var Lorem:String = "Lorem ipsum dolor sit &amp;lt;b&amp;gt;amet&amp;lt;/b&amp;gt;, consectetur adipisci elit...";&lt;br /&gt;var _Texto:TextField = new TextField();&lt;br /&gt;_Texto.embedFonts = true;&lt;br /&gt;_Texto.antiAliasType = AntiAliasType.ADVANCED;&lt;br /&gt;_Texto.autoSize = TextFieldAutoSize.LEFT;&lt;br /&gt;&lt;br /&gt;this.addChild(_Texto);&lt;br /&gt;_Texto.htmlText = Lorem;&lt;br /&gt;Font.registerFont(Futura);&lt;br /&gt;Font.registerFont(FuturaB);&lt;br /&gt;&lt;br /&gt;var FormatFutura:TextFormat = new TextFormat();&lt;br /&gt;FormatFutura.font = "Futura";&lt;br /&gt;&lt;br /&gt;_Texto.setTextFormat(FormatFutura);&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;}&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;Puedes ver como queda el ejemplo &lt;a href="http://sites.google.com/site/intelygenz/Home/Demos.swf?attredirects=0"&gt;aquí&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Probado en:&lt;br /&gt;&lt;br /&gt;FlashDevelop 3.0.0 Beta9 for Microsoft .NET 2.0 Runtime con sdk flex_sdk_3.0.3.2490_mpl&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6372770751939167156-7740659057716250789?l=labs.intelygenz.com' alt='' /&gt;&lt;/div&gt;</description><link>http://labs.intelygenz.com/2008/10/as3-embeber-tipografas-con-negrita-en.html</link><author>noreply@blogger.com (José Pérez López)</author><thr:total>0</thr:total></item></channel></rss>
