<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Luis Adrián Rosas Wiedfeldt</title>
	<atom:link href="http://www.nomeva.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.nomeva.com</link>
	<description>Pon un lego en tu vida</description>
	<lastBuildDate>Wed, 20 Jan 2010 08:34:04 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Videotutorial JSFL &#8211; Comando Save and Test</title>
		<link>http://www.nomeva.com/2010/01/20/videotutorial-jsfl-comando-save-and-test/</link>
		<comments>http://www.nomeva.com/2010/01/20/videotutorial-jsfl-comando-save-and-test/#comments</comments>
		<pubDate>Wed, 20 Jan 2010 08:34:04 +0000</pubDate>
		<dc:creator>Luis Adrián</dc:creator>
				<category><![CDATA[Comandos]]></category>
		<category><![CDATA[Tutoriales]]></category>
		<category><![CDATA[autosave]]></category>
		<category><![CDATA[comando]]></category>
		<category><![CDATA[command]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[JSFL]]></category>
		<category><![CDATA[Videotutorial]]></category>

		<guid isPermaLink="false">http://www.nomeva.com/?p=532</guid>
		<description><![CDATA[Bievenidos nuevamente. Desde el año pasado que nos posteo nada, así que aprovecho este momento para desearon un gran año con mucho trabajo, nuevo retos, proyectos interesante y mucho aprendizaje. Vale, vale, también con mucha, muchísima felicidad  
INTRODUCCIÓN
En esta ocasión no habrá mucho texto ya que todo lo he hecho en video, así que [...]]]></description>
			<content:encoded><![CDATA[<p>Bievenidos nuevamente. Desde el año pasado que nos posteo nada, así que aprovecho este momento para desearon un gran año con mucho trabajo, nuevo retos, proyectos interesante y mucho aprendizaje. Vale, vale, también con mucha, muchísima felicidad <img src='http://www.nomeva.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<h1>INTRODUCCIÓN</h1>
<p>En esta ocasión no habrá mucho texto ya que todo lo he hecho en video, así que este también es mi primer <strong>videotutorial</strong>, espero migrar poco a poco algunos de los post a este formato.</p>
<p>Eso si, contaré rápidamente que veremos y para que sirve esto. Es un <a title="Comandos en nomeva.com" href="http://www.nomeva.com/category/tutoriales/jsfl-tutoriales/comandos-jsfl-tutoriales-tutoriales/" target="_self"><strong>comando</strong></a> para <strong>Guardar el documento</strong> y <strong>Probar la película</strong>, es como hacer <strong>CRT+S</strong> y <strong>CTR+ENTER</strong>, pero de una sola vez. Además y creo que esto es de lo más importante, veremos como modificar los atajos de teclado para sustituir el atajo CTR+ENTER para que ejecute nuestro comando.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="400" height="300" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=8859299&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /><embed type="application/x-shockwave-flash" width="400" height="300" src="http://vimeo.com/moogaloop.swf?clip_id=8859299&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<h1>DESCARGAS</h1>
<p>Bueno, las descargas son en este caso son:</p>
<ul>
<li><strong><a title="Extensión MXP de Comando Save and Test" href="http://www.nomeva.com/wp-content/uploads/2010/01/Save-and-Test.mxp">Extensión</a></strong> auto instalable mediante <strong>Adobe Extensión Manager</strong>. Comando <em>Save and Test</em> <strong>MXP</strong>.</li>
<li><strong><a title="Comando Save and Test - Fichero JSFL" href="http://www.nomeva.com/wp-content/uploads/2010/01/Save-and-Test1.jsfl" target="_blank">Comando</a></strong> fichero <strong>JSFL</strong> para el que lo quiera instalar a mano.</li>
</ul>
<h1>AGRADECIMIENTOS</h1>
<p>En esta ocasión quiero agradecer a mi amigo <strong>Iván</strong> que me ayudó a montar el video y sobre todo a <strong><a title="Juan Delgado (Zárate)" href="http://zarate.tv/" target="_blank">Juan</a></strong> quien me permitió utilizar su <a title="Juan Delgado - Sunny xmas" href="http://www.dandolachapa.com/2009/11/26/juan-delgado-sunny-xmas/" target="_blank"><strong>creación musical</strong></a> para ponerla de fondo.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nomeva.com/2010/01/20/videotutorial-jsfl-comando-save-and-test/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>e-Learning (Formación) &#8211; Recurso &#8220;Quitasiestas&#8221;</title>
		<link>http://www.nomeva.com/2009/12/04/e-learning-formacion-recurso-quitasiestas/</link>
		<comments>http://www.nomeva.com/2009/12/04/e-learning-formacion-recurso-quitasiestas/#comments</comments>
		<pubDate>Fri, 04 Dec 2009 13:52:32 +0000</pubDate>
		<dc:creator>Luis Adrián</dc:creator>
				<category><![CDATA[Formación]]></category>
		<category><![CDATA[eLearning]]></category>
		<category><![CDATA[e-learning]]></category>
		<category><![CDATA[elearning]]></category>
		<category><![CDATA[quitasiestas]]></category>
		<category><![CDATA[recursos e-learning]]></category>

		<guid isPermaLink="false">http://www.nomeva.com/?p=518</guid>
		<description><![CDATA[INTRODUCCIÓN
Los quitasiestas son recursos pedagógicos. En ocasiones se emplean para relajar e invitar a la reflexión entre otras cosas, esto con el fin de entrar en materia. Habitualmente los quitasiestas son actividades lúdicas.
Uff eso ni siquiera lo entiendo yo y eso que lo acabo de escribir. Veamos, intentaré explicarlo otra vez, bueno, antes de eso [...]]]></description>
			<content:encoded><![CDATA[<h1>INTRODUCCIÓN</h1>
<p>Los quitasiestas son <strong>recursos pedagógicos</strong>. En ocasiones se emplean para <strong>relajar</strong> e invitar a la <strong>reflexión</strong> entre otras cosas, esto con el fin de entrar en materia. Habitualmente los quitasiestas son <strong>actividades lúdicas</strong>.</p>
<blockquote><p>Uff eso ni siquiera lo entiendo yo y eso que lo acabo de escribir. Veamos, intentaré explicarlo otra vez, bueno, antes de eso debería preguntarme si se lo que quiero decir, uhmmm … si, si se lo que quiero decir.</p></blockquote>
<p>Bueno, pues borrón y cuenta nueva, empecemos otra vez con la definición de quitasiestas. Si lo <a title="Búsqueda de &quot;Quitasiestas&quot; en google" href="http://www.google.es/search?hl=es&amp;source=hp&amp;q=quitasiestas&amp;btnG=Buscar+con+Google&amp;meta=&amp;aq=f&amp;oq=" target="_blank">buscamos</a> en san google no encontraremos gran cosa a las buenas, tenemos que hacer búsquedas avanzadas y en ocasiones los resultados que conseguimos no son los esperados. Esto es debido a que &#8220;<strong>el quitasiestas</strong>&#8221; es más un concepto que engloba actividades y procesos. Quizá nos ayude saber su traducción al inglés ya que en ésta lengua habitualmente se encuentra más información, en inglés se llama &#8220;<strong>brain breaks</strong>&#8220;.</p>
<h1>DEFINICIÓN</h1>
<p>Esta es la <a title="Definición de Quitasiestas de Rosa Doñate" href="http://www.calidadypersonas.com/anecd.htm#sep" target="_blank">primera definición</a> que encontré en google, y por lo que veo Rosa Doñate lo explica mucho mejor que yo, así que os la pongo a continuación:</p>
<blockquote><p>La <strong>siesta</strong> es uno de los grandes descubrimientos españoles, que suele manifestarse tras una copiosa comida, especialmente si es de trabajo, y cuyo menú está basado en la saludable dieta mediterránea. Pero, su carencia o la imposibilidad de llevarla a cabo a veces genera <strong>situaciones incómodas</strong> en las reuniones de trabajo. Te propongo unos <strong>pequeños ejercicios</strong> que ayudarán a tu equipo a que la <strong>circulación sanguínea</strong> no fluya únicamente en el estómago. Si además le unes cierta dosis de <strong>competitividad</strong> entre los asistentes, verás como nuevamente hay <strong>alguien</strong> que te <strong>escucha</strong>.</p></blockquote>
<p>Todos los que hemos jugado a varios videojuegos o que hemos asistido a jornadas de formación presencial y en ocasiones online alguna vez nos abremos topado con estas actividades, así que vamos a darle forma a una de las aplicaciones del quitasiestas.</p>
<h1>EJEMPLO</h1>
<p>Por ejemplo, en la imagen que se muestra a continuación ¿cuántos cuadros ves?</p>
<p style="text-align: center;"><a href="http://www.nomeva.com/wp-content/uploads/2009/12/quitasiestas_cajas.jpg"><img class="aligncenter size-full wp-image-519" title="quitasiestas cajas" src="http://www.nomeva.com/wp-content/uploads/2009/12/quitasiestas_cajas.jpg" alt="quitasiestas cajas" width="300" height="300" /></a></p>
<h1>EXPLICACIÓN</h1>
<p>Este es un quitasiestas que probablemente se ha explotado en el mundo del marketing por su sencillez ya que la <strong>actividad</strong> es a simple vista muy <strong>fácil</strong> y cualquiera es capaz de contar y decirnos cuantos cuadros ve. Además esta actividad propone un <strong>reto</strong>. Estos dos puntos son un f<strong>uerte gancho</strong> para conseguir la <strong>atención</strong> del <strong>usuario</strong>.</p>
<p>Pero hagamos un alto y recordemos de donde estamos. Estamos en el mundo de la formación y sobre todo estamos utilizando un recurso pedagógico, por consiguiente esta actividad tiene que servirle de algo al usuario, además claro de entretenerlo. El aportar valor al usuario es através de otro gran recurso de la formación, me refiero al <strong>FEEDBACK</strong>.</p>
<p>Una vez finalizada la actividad vamos a darle un feedback al usuario sobre lo que nos venga a cuento en el ámbito …</p>
<blockquote><p>contexto, perdonen, jejeje, esto de la programación me hace hablar en modo desarrollador cuando en principio no estoy en ese modo.</p></blockquote>
<p>… en que se desarrolla la formación. Por ejemplo hablando de la agilidad mental, de la capacidad de observación o como dice Rafiqui en &#8220;El rey león 3&#8243; &#8220;debes ir más allá de lo que ves&#8221; o algo que haga reflexionar a los alumnos, porque este es otro recurso y quiza el más importante de la formación, la <strong>REFLEXIÓN</strong>.</p>
<p>Bueno, ahora si voy a cortar el rollo… NOOOOO que todavía quedan cosas por ver o por intentar dejar más claras.</p>
<h1>USOS</h1>
<p>El quitasiestas como su nombre indica, jejeje, se puede (algunos opinan que se debe) utilizar en una jornada presencial después de la comida o de una descanso largo.</p>
<p>Otro uso es para utilizarlo como <strong>PUENTE</strong> para conectar una unidad o un tema muy largo o con mucha información; con el siguiente contenido.</p>
<p>Pero el <strong>uso</strong> que podemos darle en la <strong>formación online</strong> es mucho mayor porque tenemos la <strong>interactividad</strong>, el acceso a <strong>información</strong> del <strong>usuario</strong> y al mismo tiempo información de los usuarios que se están formando en el mismo grupo.</p>
<h1>CONLCUSIÓN</h1>
<p>El <strong><em>quitasiestas</em></strong> se suma a los recursos que ya tenemos como base en la formación online o presencial. Es importante utilizarlos en su momento y siempre con un fin definido para no saturar, aburrir o cansar al usuario.</p>
<h1>DESPEDIDA</h1>
<p>No lo había dicho antes, pero este es el primer post que escribo en la nueva categoría de formación, en ésta pienso escribir sobre elearning y presencial, sobre los recursos, técnicas, trucos y las cosas que vaya viendo, viviendo o que considere importantes.</p>
<p>Saludos y que paséis un excelente fin de semana y puente los que os encontréis en España.</p>
<p>Y ya está, alguien se anima a decirme cuantos cuadros ve.</p>
<h1>UPDATE 2009/12/14</h1>
<p>He creado un SWF donde se explica la solución de éste quitasiestas.</p>
<p style="text-align: center;"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="350" height="350" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.nomeva.com/wp-content/uploads/2009/12/Explicación-quitasiestas-cuadros.swf" /><embed type="application/x-shockwave-flash" width="350" height="350" src="http://www.nomeva.com/wp-content/uploads/2009/12/Explicación-quitasiestas-cuadros.swf"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.nomeva.com/2009/12/04/e-learning-formacion-recurso-quitasiestas/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Mis otros YO &#8211; El deporte</title>
		<link>http://www.nomeva.com/2009/12/02/mis-otros-yo-el-deporte/</link>
		<comments>http://www.nomeva.com/2009/12/02/mis-otros-yo-el-deporte/#comments</comments>
		<pubDate>Tue, 01 Dec 2009 23:03:18 +0000</pubDate>
		<dc:creator>Luis Adrián</dc:creator>
				<category><![CDATA[Familia]]></category>
		<category><![CDATA[bicicleta]]></category>
		<category><![CDATA[deporte]]></category>
		<category><![CDATA[lluvia]]></category>

		<guid isPermaLink="false">http://www.nomeva.com/?p=513</guid>
		<description><![CDATA[
No todo en esta vida es trabajo, también existen momentos de relajación, bueno, hay a quien el trabajo le sierve para relajarse, también hay a quien le gusta el trabajo, yo me encuentro en estos dos últimos grupos, pero aún así hay un momento en el que tienes que desconectar o volver a conectar contigo [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://www.nomeva.com/wp-content/uploads/2009/12/sal-a-mojarte.jpg"><img class="aligncenter size-full wp-image-514" title="sal a mojarte" src="http://www.nomeva.com/wp-content/uploads/2009/12/sal-a-mojarte.jpg" alt="sal a mojarte" width="450" height="200" /></a></p>
<p>No todo en esta vida es trabajo, también existen momentos de relajación, bueno, hay a quien el trabajo le sierve para relajarse, también hay a quien le gusta el trabajo, yo me encuentro en estos dos últimos grupos, pero aún así hay un momento en el que tienes que desconectar o volver a conectar contigo mismo, con tu yo interior o con otra parte de tí mismo.</p>
<p>En mi caso tengo varios YO, por ejemplo está el YO de los videojuegos, el YO del ejercicio, el YO de la música, el YO de la lectura, el YO del cine, el YO de las series, el YO de la familia, el YO del trabajo y así podríamos seguir. Pero bueno, cada quien tienes sus respectivos YO. En esta ocasión voy a hablar escribir, sobre otro YO que habitualmente no aparece por aquí.</p>
<h1>El YO de los deportes</h1>
<p>Desde pequeño gracias a la educación que me dieron mi padre y mi madre, he estado muy ligado a algún deporte. Cuando era un chamaco (como se dice en México) me gustaba jugar beisbol y hacer acrobacias en bicicleta, luego seguí con las patinetas (monopatín aquí en España) y jugar en rampas, tanto con bicicleta como en patineta, luego descubrí el voley bol y esa fué una etapa muy bonita, más tarde conocería y me adentraría en el basket ball (baloncesto como se dice aquí en España) durante esta etapa conocí muchos amigos, pasé tardes, noches y fines de semana jugando hasta que nos quedábamos sin luz o los vecinos salian y teníamos que parar. Bueno, esto también fué muy bueno, luego el fútbol que es un clásico y el cual jugué mucho con mi padre, mis hermanos y amigos del colegio. Y luego gracias a mi hermano mayor Sergio, entró a mi vida algo que hasta hoy llevo muy adentro en el corazón, llegó el Frontón, este bello deporte en el que afortunadamente tuve la oportunidad de compartir con dignos contrincantes y amigos que me enseñaron y me inspiraron a seguir adelante. Este deporte lamentablemente se cortó prácticamente de golpe cuando vine a vivir a España, pues aquí aunque hay Frontón, no he conocido (bueno, está bien, en Tenerife si, pero eso no vale porque ahora vivo en Aranjuez) gente que juegue con la pelota olímpica y eso es un punto muy importante.</p>
<p>Pero bueno, no todo acaba ahí, porque aquí descubrí el Padel, deporte que se parece bastante en cuanto a técnica de golpe al Frontón y que se me ha dado bien y he podido pasar ratos muy agradables con amigos. También descubrí la magia de correr, sí, correr, pero en serio; desde millas urbanas hasta medias maratones, aunque me estuve preparando durante 6 meses nunca llegué a correr un maratón, ese lo tengo pendiente todavía <img src='http://www.nomeva.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p>Otro deporte que me estoy saltando y que disfruté muchísimo con mis hermanos y amigos desde el bachillerato es el ping pong (o tenis de mesa, como le llaman aquí en España), este lo sigo practicando actualmente y estoy inscrito en una liga en Aranjuez, que por cierto, este fin de semana ha sido malo, <img src='http://www.nomeva.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />  he perdido dos partidos. La verdad es que mis contrincantes eran buenos y esta derrota me hace reflexionar sobre ciertos puntos que tengo que mejorar, pero vamos, que por muy bien que me quiera tomar las cosas &#8220;una derrota es una derrota&#8221;, jejeje.</p>
<p>A ver qué más, que más… ah claro, hace poco y gracias a un amigo del trabajo he retomado el beisbol, pues me apunté a la escuela de beisbol de Madrid, sí, hay una y está en el polideportivo de la Elipa. Los martes y jueves de 20:30 a 21:30. La verdad es que ir a una escuela es muy distinto que jugar con los amigos, pues te tomas las cosas más en serio y sobre todo &#8220;aprendes&#8221; un montón.</p>
<p>Un deporte que ya forma parte de mi modo de vida y que lo veo más como medio de transporte, por lo menos entre semana, es la bicicleta, pues la utilizo para ir desde casa hasta la estación de tren por la mañana. Luego, cuando vuelvo por la tarde doy marcha atrás y voy de la estación de tren hasta la casa. En total es poca distancia, unos 5 kilometros diarios. Pero bueno, la parte que es realmente deporte son los paseos de fin de semana que hago  por lo menos 20 kilómetros.</p>
<h1>HISTORIA DEL FIN DE SEMANA</h1>
<p>Justamente este fin de semana, tengo una historia muy divertida que contar, pues con las lluvias que tuvimos parecía que no podría salir, pero eso es sólo para los que no tienen ganas de vivir aventuras, jejeje; así fué que, cuando la lluvía era una pequeña tormenta con mucho viento y gotas casi del tamaño de guisantes, le dije a mi querido Tuti si quería ir a mojarse un rato, su respuesta fué lo mejor: &#8220;<em>claro que sí papi</em>&#8220;. Entonces empezó la aventura.</p>
<p>Nos fuimos a la montaña que está cerca de casa, mojándonos durante el camino y pasando por todos los charcos posibles. Recuerdo que Tuti me decía entre carcajadas: &#8220;<em>ayy Papi me mojan las ruedas, ¡¡¡es divertido!!!</em>&#8221; <img src='http://www.nomeva.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> . Sí, la verdad es que es divertido y por lo menos a mí también me gusta, estoy seguro que habrá a quien no le haga gracia, pero seguro que tampoco saldría a mojarse, jejeje. Bueno, pues ya en la montaña subimos y bajamos por los terrenos más accidentados que encontramos para resbalarnos. Quién alguna vez haya hecho algo parecido sabrá cómo se pone el suelo. Sí, así es, la tierra al entrar en contacto con la lluvia se transforma en barro ; ) y eso hace que se patinen las ruedas y se peguen a éstas y al calzado. Así que terminamos prácticamente envueltos en una capa de barro, a tal grado, que las bicicletas ya no avanzaban y tuvimos que cargarlas hasta que conseguimos volver al suelo asfaltado y ahí quitamos el exceso de barro.</p>
<p>Durante el camino de vuelta a casa Tuti y yo quedamos en que la próxima vez que vuelva a llover así, saldremos a mojarnos otra vez e intentaremos hacer mejor el recorrido, porque justo cuando se estaba poniendo bueno, las bicicletas dejaron de funcionar, jejeje.</p>
<h1>CONCLUSIÓN</h1>
<p>Bueno, si tengo que escribir alguna conclusión sobre ésto que escribo, seguro es recomendar que hagan ejercicio, es muy bueno para la salud y sobre todo para desconectar o para conectar,como a veces me pasa, jejeje. También invitarlos a mojarse cuando la lluvia este fuerte y mejor si tienen algún sitio cerca donde se pueda formar barro, eso no tiene precio,os lo aseguro, es una gran experiencia.</p>
<h1>NOTAS</h1>
<p>Tuti es mi hijo de 7 años, que con esa edad ya me ha acompañado a paseos de 30 kilometros en bicicleta. Guauuu! El primer paseo largo en biciclea que recuerdo, fue un trayecto entre Xalapa y Coatepec con mi padres y mis hermanos, acompañado por un amigo que iba con nosotros en coche. Sólo fueron 9 kilometros, no estoy seguro, pero creo que tendría unos 9 años.</p>
<p>Si alguién de Madrid o alrededores (si es de Aranjuez mejor que mejor, jejeje <img src='http://www.nomeva.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> ) lee este post y está interesado en jugar o aprender a jugar frontón con pelota olímpica que se ponga en contacto directo conmigo porque podríamos empezar una buena relación frontenística, jejeje. <img src='http://www.nomeva.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>Ahora si, aquí lo dejo.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nomeva.com/2009/12/02/mis-otros-yo-el-deporte/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Tutorial JSFL &#8211; Creación de Paneles con Flex 2ª parte</title>
		<link>http://www.nomeva.com/2009/11/27/tutorial-jsfl-creacion-de-paneles-con-flex-2a-parte/</link>
		<comments>http://www.nomeva.com/2009/11/27/tutorial-jsfl-creacion-de-paneles-con-flex-2a-parte/#comments</comments>
		<pubDate>Fri, 27 Nov 2009 07:05:59 +0000</pubDate>
		<dc:creator>Luis Adrián</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[JSFL]]></category>
		<category><![CDATA[Paneles]]></category>
		<category><![CDATA[Tutoriales]]></category>
		<category><![CDATA[MMExecute]]></category>
		<category><![CDATA[panel]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.nomeva.com/?p=494</guid>
		<description><![CDATA[Bienvenidos a este nuevo tutorial de jsfl, en esta ocasión continuaremos viendo los Paneles y como desarrollarlos con Adobe Flex.
INTRODUCCIÓN
Si recordamos el anterior post dónde empezamos a hablar sobre el uso de Flex para desarrollar Paneles y teniendo en cuenta que a mi querido amigo Jorge no le acabó de convencer  .
Bueno para ser [...]]]></description>
			<content:encoded><![CDATA[<p>Bienvenidos a este nuevo <strong><a title="Tutoriales en nomeva.com" href="http://www.nomeva.com/category/tutoriales/" target="_blank">tutorial</a></strong> de <strong><a title="JSFL en nomeva.com" href="http://www.nomeva.com/category/jsfl/" target="_blank">jsfl</a></strong>, en esta ocasión continuaremos viendo los <a title="Paneles en nomeva.com" href="http://www.nomeva.com/category/tutoriales/jsfl-tutoriales/paneles-jsfl-tutoriales-tutoriales/" target="_blank"><strong>Paneles</strong></a> y como desarrollarlos con <strong><a title="Adobe Flex" href="http://www.adobe.com/es/products/flex/" target="_blank">Adobe Flex</a></strong>.</p>
<h1>INTRODUCCIÓN</h1>
<p>Si recordamos el <strong><a title="Tutorial JSFL - MMExecute, creación de Panel con Flex" href="http://www.nomeva.com/2009/11/19/tutorial-jsfl-mmexecute-creacion-panel-con-flex/" target="_blank">anterior post</a></strong> dónde empezamos a hablar sobre el uso de <strong><a title="Adobe Flex" href="http://www.adobe.com/es/products/flex/" target="_blank">Flex</a></strong> para desarrollar <strong><a title="Paneles en nomeva.com" href="http://www.nomeva.com/category/tutoriales/jsfl-tutoriales/paneles-jsfl-tutoriales-tutoriales/" target="_blank">Paneles</a></strong> y teniendo en cuenta que a mi querido amigo <strong><a title="Jorge Solis en Twitter" href="http://twitter.com/solisarg" target="_blank">Jorge</a></strong> no le acabó de convencer <img src='http://www.nomeva.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> .</p>
<p><a href="http://www.nomeva.com/wp-content/uploads/2009/11/Captura-de-pantalla-2009-11-26-a-las-08.19.59.png"><img class="aligncenter size-full wp-image-505" title="Tweet de solisarg" src="http://www.nomeva.com/wp-content/uploads/2009/11/Captura-de-pantalla-2009-11-26-a-las-08.19.59.png" alt="Tweet de solisarg" width="501" height="75" /></a>Bueno para ser sinceros hay que contar la historia completa, no le acabó de convencer al principio, luego al ver de que se trataba ya le gustó:</p>
<p><a style="text-decoration: none;" href="http://www.nomeva.com/wp-content/uploads/2009/11/Captura-de-pantalla-2009-11-27-a-las-08.02.58.png"><img class="aligncenter size-full wp-image-506" title="Ahora si, ya veo de que se trataba ese tweet" src="http://www.nomeva.com/wp-content/uploads/2009/11/Captura-de-pantalla-2009-11-27-a-las-08.02.58.png" alt="Ahora si, ya veo de que se trataba ese tweet" width="522" height="72" /></a></p>
<p>A continuación veremos como hacer mucho más, veremos como utilizar las <strong>bondades</strong> de <strong>Flex</strong> para crear fácilmente <strong>ricas interfaces</strong> y como comunicarlo con <strong>JSFL</strong> para ejecutar las tareas que nos interesen.</p>
<p>En esta ocasión espero que os guste a todos <img src='http://www.nomeva.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<h1>DESARROLLO</h1>
<h2>PARTE FLEX</h2>
<p>En el post anterior vimos como utilizar el método <strong><a title="Método MMExecute" href="http://help.adobe.com/en_US/AS3LCR/Flash_10.0/adobe/utils/package.html#MMExecute()" target="_blank">MMExecute</a></strong> para poder ejecutar código <strong>JSFL</strong> desde nuestras películas <strong>swf</strong>, pero para los que somos un poco especiales a la hora de programar y que nos gusta tener las cosas <strong>organizadas</strong>, separadas, modularizadas para poder <strong>escalarlas</strong> fácilmente y <strong>reutilizarlas</strong> &#8230; <em>uyy ya me fuí por las ramas</em> &#8230; bueno, el tema es que no es la mejor solución <strong>mezclar</strong> la lógica <strong>JSFL</strong> con el <strong>interfaz</strong>, porque hacer cambios y probar puedes ser mortal y generar muchos <strong>errores</strong> así como una enorme <strong>pérdida de tiempo</strong>.</p>
<p>Bueno, lo anterior sirve de introducción para presentarles el método <strong><a title="Método runScript del objeto fl" href="http://help.adobe.com/en_US/Flash/10.0_ExtendingFlash/WS5b3ccc516d4fbf351e63e3d118a9024f3f-7fde.html" target="_blank">runScript</a></strong> del objeto <strong><a title="Objeto fl" href="http://help.adobe.com/en_US/Flash/10.0_ExtendingFlash/WS5b3ccc516d4fbf351e63e3d118a9024f3f-7fa0.html" target="_blank">fl</a></strong>, este método nos permite desde código <strong>JSFL</strong> ejecutar un <strong>script externo</strong> al código. Este método recibe como <strong>parámetro obligatorio</strong> la <strong>ruta del script JSFL</strong> que deseamos ejectuar, como <strong>parámetros opcionales</strong> el <strong>nombre del método</strong> y los <strong>parámetros que enviamos</strong> al método.</p>
<pre class="brush:js">fl.runScript("file:///C|/testScript.jsfl", "testFunct", 10, 1);</pre>
<p>Además vamos a utilizar la propiedad <strong><a title="Propiedad configURI del Objeto fl" href="http://help.adobe.com/en_US/Flash/10.0_ExtendingFlash/WS5b3ccc516d4fbf351e63e3d118a9024f3f-7fe1.html" target="_blank">configURI</a></strong> del objeto <strong><a title="Objeto fl" href="http://help.adobe.com/en_US/Flash/10.0_ExtendingFlash/WS5b3ccc516d4fbf351e63e3d118a9024f3f-7fa0.html" target="_blank">fl</a>, </strong>esta propiedad nos devuelve el <strong>path</strong> del usuario del directorio <strong>Configuration</strong> expresado en formato <em>file:/// </em>, en el cual encontramos los directorios <strong>Commands</strong> y <strong>WindowSWF</strong> por ejemplo. Y esto lo queremos para hacer algo parecido a esto:</p>
<pre class="brush:js">fl.runScript( fl.configURI + "Commands/Test.jsfl" );</pre>
<p>Bueno, esto nos servirá al final para poder ejecutar desde nuestras aplicaciones <strong>Flex</strong> código <strong>JSFL</strong> que tengamos <strong>centralizado</strong> en la carpeta<strong> Commands</strong> por ejemplo, algo parecido a lo siguiente:</p>
<pre class="brush:as3">MMExecute('fl.runScript(fl.configURI + "Commands/Test.jsfl", "testFunct", 10, 1)');</pre>
<p>Vale, hasta ahora vamos bien. Todo lo que hemos visto lo vamos a utilizar para crear una panel que particularmente me resulta muy útil. Crearemos el <strong>Panel Gallery</strong>.</p>
<h2>PARTE JSFL</h2>
<p>Ahora si vamos que se va a poner bueno el tema. Jejeje, es necesario un poco de relax porque sino resulta difícil leer y escribir también, porque aquí somos dos, tu querido lector y yo.</p>
<blockquote><p>Lo que pasa es que está semana ha empezado bien, pero de pronto el lunes por la noche nos dimos cuenta que ya no quedaban más episodios de la 4ª temporada de <strong><a title="Dexter" href="http://es.wikipedia.org/wiki/Dexter" target="_blank">Dexter</a></strong> por ver, así que nos pusimos a buscar algo más y encontramos la 5ª temporada de <strong><a title="Héreos en Wikipedia" href="http://es.wikipedia.org/wiki/Héroes_(serie_de_TV)" target="_blank">Héroes</a></strong>, así que estas noches me han tenido un poco entre la serie y escribir, preparar y desarrollar este tutorial. Bueno ya que nos relajamos y hablamos un poco, creo que podemos continuar.</p>
<p>Ya por último y para terminar con este pequeño lapso de relax, quiero recomendar una serie súper interesante que vi hace poco, me refiero a <strong><a title="Defying Gravity en Microsiervos" href="http://www.microsiervos.com/archivo/peliculas-tv/defying-gravity.html" target="_blank">Defying gravity</a><span style="font-weight: normal;">, este es otro de los tesoros que he descubierto gracias a </span><a title="Luis Adrián en Twitter" href="http://www.twitter.com/supremo_tata" target="_blank">Twitter</a></strong>.</p></blockquote>
<p><strong>Panel Gallery</strong>, este panel sirve para tener un pequeño visor de imágenes del directorio que configuremos en nuestro equipo dentro de Flash, desde ahí podemos ver, seleccionar e importar las imágenes que deseemos al documento que estemos editando.</p>
<p>Para desarrollar este panel necesitaremos obtener la <strong>ruta de la carpeta</strong> que deseamos visualizar, esto lo podemos hacer con el método <strong><a title="Método browseForFolderURL del objeto fl" href="http://help.adobe.com/en_US/Flash/10.0_ExtendingFlash/WS5b3ccc516d4fbf351e63e3d118a9024f3f-7bb0.html" target="_blank">browseForFolderURL</a></strong> del objeto <strong><a title="Objeto fl" href="http://help.adobe.com/en_US/Flash/10.0_ExtendingFlash/WS5b3ccc516d4fbf351e63e3d118a9024f3f-7fa0.html" target="_blank">fl</a></strong>, este método recibe como parámetro una cadena en la que especificamos el mensaje que mostrará al usuario y nos devolverá la ruta que especifique el usuario en formato<em> file:///</em>. Por ejemplo:</p>
<pre class="brush:js">var folderURI = fl.browseForFolderURL("Select a folder.");</pre>
<p>Una vez que tenemos la ruta lo siguiente es <strong>listar las imágenes</strong> que tenemos en ese directorio, esto lo hacemos con el método <strong><a title="Método listFolder del objeto FLfile" href="http://help.adobe.com/en_US/Flash/10.0_ExtendingFlash/WS5b3ccc516d4fbf351e63e3d118a9024f3f-7ae0.html" target="_blank">listFolder</a></strong> del objeto <strong><a title="FLfile" href="http://help.adobe.com/en_US/Flash/10.0_ExtendingFlash/WS5b3ccc516d4fbf351e63e3d118a9024f3f-7fa1.html" target="_blank">FLfile</a></strong>, este método recibe como <strong>parámetro obligatorio la ruta</strong> de la cual queremos listar directorio o imágenes (en nuestro caso es la ruta que obtuvimos en el paso anterior) y como parámetro opcional indicamos el tipo de lista que deseamos, los valores admitidos son: &#8220;<em>files</em>&#8221; o &#8220;<em>directories</em>&#8220;. En nuestro caso utilizaremos &#8220;<strong><em>files</em></strong>&#8220;, pero no sólo eso, el primer parámetro también nos permite añadir una máscara para que la búsqueda filtre por un tipo de fichero, está máscara funciona igual que en un terminal, por ejemplo la máscara que utilizaremos nosotros será: &#8220;<strong>*.jpg</strong>&#8220;. El ejemplo quedaría de la siguiente forma:</p>
<pre class="brush:js">var fileMask = "*.jpg";
var list = FLfile.listFolder(folderURI + "/" + fileMask, "files");</pre>
<p>Ahora si ya estamos muy cerca. Bueno, una vez que obtenemos la lista de imágenes vamos a almacenarlas en un componente <strong><a title="Componente Tree de Adobe Flex 3" href="http://livedocs.adobe.com/flex/3/html/help.html?content=dpcontrols_8.html" target="_blank">Tree</a></strong> para mostrarlas al usuario y para facilitar el uso utilizaremos el evento <strong>change</strong> para cargar la imagen seleccionada y mostrarla en un componente <strong><a title="Componente Image de Adobe Flex 3" href="http://livedocs.adobe.com/flex/3/html/help.html?content=controls_16.html" target="_blank">Image</a><span style="font-weight: normal;">, por último utilizaremos el evento </span>click<span style="font-weight: normal;"> del componente </span><a title="Componente Image de Adobe Flex 3" href="http://livedocs.adobe.com/flex/3/html/help.html?content=controls_16.html" target="_blank">Image</a><span style="font-weight: normal;"> para importar la imagen seleccionada al documento fla</span></strong>. Esto último lo hacemos con el método <strong><a title="Método importFile del Objeto Document" href="http://help.adobe.com/en_US/Flash/10.0_ExtendingFlash/WS5b3ccc516d4fbf351e63e3d118a9024f3f-7dfd.html" target="_blank">importFile</a></strong> del objeto <strong><a title="Objeto Document" href="http://help.adobe.com/en_US/Flash/10.0_ExtendingFlash/WS5b3ccc516d4fbf351e63e3d118a9024f3f-7ffa.html" target="_blank">Document</a></strong>, este método recibe como <strong>parámetro obligatorio la ruta del fichero</strong> que deseamos importar en formato <em>file:///</em>, y como <strong>parámetro opcional</strong> un valor <strong>booleano</strong> que indica si deseamos <strong>importar</strong> el fichero <strong>a la biblioteca</strong> o no, el valor por defecto es <strong>false</strong> y lo que hace es importarla a la biblioteca y además instanciarla en el escenario. Por ejemplo:</p>
<pre class="brush:js">fl.getDocumentDOM.importFile(URI);</pre>
<p>Y con esto lo hemos resuelto. YATA!!!</p>
<h1 style="font-size: 2em;">NOTAS</h1>
<p>Para acompañar este tutorial y como premio por haberte leído todo he creado como es habitual un fichero de ejemplo, pero con unas perlitas extras de funcionalidad.</p>
<p>He dividido el panel en 4 partes:</p>
<ul>
<li><strong>Document</strong>, encontraremos herramientas para modificar <strong>on the fly</strong> el color de fondo del documento y las dimensiones.</li>
<li><strong>Gallery</strong>, el resultado del tutorial que hemos explicado.</li>
<li><strong>Library</strong>, una herramienta para renombrar varios items de la biblioteca al mismo tiempo, pudiendo añadir prefijo, sufijo o modificar completamente el nombre.</li>
<li><strong>Utils</strong>, un botón para recargar las herramientas, muy útil cuando se desarrollan <strong><a title="Tutoria JSFL - Introducción a herramientas (tools)" href="http://www.nomeva.com/2009/07/17/tutorial-jsfl-introduccion-herramientas-tools/" target="_blank">Tools</a></strong> (herramientas) con <strong>JSFL</strong>.</li>
</ul>
<blockquote><p>Disculpad el desorden del post, es lo que tiene escribir a ratos en el tren y por la noche mientras se ven series. En un principio tenía una idea de como quería escribir un post, pero eso fue hace tanto tiempo que al final tenía otra idea diferente, así que las cosas han salido como la pueden ver aquí. Espero que os sea de utilidad.</p></blockquote>
<h1>DESCARGAS</h1>
<p>Bueno, las descargas son en este caso son:</p>
<ul>
<li><strong><a title="Extensión MXP de Panel nomeva con utilerías para documentos, bibliotecas y galery" href="http://www.nomeva.com/wp-content/uploads/2009/11/panel-nomeva.mxp">Extensión</a></strong> auto instalable mediante <strong>Adobe Extensión Manager</strong>. Panel nomeva <strong>MXP</strong>.</li>
<li><strong><a title="Paquete ZIP de Panel nomeva con utilerías para documentos, bibliotecas y galery" href="http://www.nomeva.com/wp-content/uploads/2009/11/panel-nomeva.zip" target="_blank">Paquete ZIP</a></strong> con <strong>Panel swf </strong>y ficheros JSFL necesarios para instalar manualmente el Panel.</li>
<li><strong><a title="Paquete ZIP con el Proyecto Flex de Panel nomeva con utilerías para documentos, bibliotecas y galery" href="http://www.nomeva.com/wp-content/uploads/2009/11/Flex-Project-Panel-nomeva.zip" target="_blank">Proyecto Flex</a></strong> con todo el código necesario para compilar y ver las tripas del Panel.</li>
</ul>
<h1>EJEMPLO</h1>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="400" height="250" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=7846615&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /><embed type="application/x-shockwave-flash" width="400" height="250" src="http://vimeo.com/moogaloop.swf?clip_id=7846615&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p><a href="http://vimeo.com/7846615">Ejemplo Panel nomeva &#8211; Flex + JSFL 2ª parte</a> from <a href="http://vimeo.com/user2702173">Luis Adrián Rosas Wiedfeldt</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
<h1>ALGO MÁS</h1>
<p>Si, lo único que falta son vuestros comentarios, opiniones para tener un feedback y saber que os gusta y que os disgusta, jejeje.</p>
<h3>Entradas relacionadas</h3>
<ul>
<li><a title="Recursos JSFL en nomeva.com" href="../category/2008/08/24/recursos-jsfl/" target="_blank">Recursos JSFL</a></li>
<li><a title="Tutorial JSFL - Introducción a comandos" href="../category/2008/09/26/tutorial-jsfl-introduccion-a-comando/" target="_blank">Tutorial JSFL – Introducción a comandos</a></li>
<li><a title="Tutorial JSFL - Comandos con interfaz gráfica" href="../category/2008/10/12/tutorial-jsfl-comandos-con-interfaz-grafica/" target="_blank">Tutorial JSFL – Comandos con interfaz gráfica</a></li>
<li><a title="Tutorial JSFL - Comandos con interfaz gráfica II" href="../category/2008/11/09/tutorial-jsfl-comandos-con-interfaz-grafica-ii/" target="_blank">Tutorial JSFL – Comandos con interfaz gráfica II</a></li>
<li><a title="Tutorial JSFL - Introducción a Paneles" href="../category/2009/04/24/tutorial-jsfl-introduccion-a-paneles/" target="_blank"><strong>Tutorial JSFL – Introducción a Paneles</strong></a></li>
<li><strong><a title="Tutorial JSFL - Panel Auto Save" href="../category/2009/06/28/tutorial-jsfl-panel-auto-save/" target="_blank">Tutorial JSFL – Panel Auto Save</a></strong></li>
<li><strong><a title="Tutorial JSFL - MMExecute, creación de Panel con Flex" href="http://www.nomeva.com/2009/11/19/tutorial-jsfl-mmexecute-creacion-panel-con-flex/" target="_blank">Tutorial JSFL &#8211; MMExecute, creación de Panel con Flex</a></strong></li>
<li><a title="Tutorial JSFL - Guardar copia FLA 1/2 (comando)" href="../category/2009/07/05/tutorial-jsfl-guardar-copia-fla-12-comando/" target="_blank">Tutorial JSFL – Guardar copia FLA 1/2 (comando)</a></li>
<li><a title="Tutorial JSFL - Introducción a herramientas (tools)" href="../2009/07/17/tutorial-jsfl-introduccion-herramientas-tools/" target="_blank">Tutorial JSFL – Introducción a herramientas (tools)</a></li>
<li><a title="Tutorial JSFL - Localización de contenidos (comando)" href="http://www.nomeva.com/2009/11/11/tutorial-jsfl-localizacion-de-contenidos-comando/" target="_blank">Tutorial JSFL &#8211; Localización de contenidos (comando)</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.nomeva.com/2009/11/27/tutorial-jsfl-creacion-de-paneles-con-flex-2a-parte/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Tutorial JSFL &#8211; MMExecute, creación de Panel con Flex</title>
		<link>http://www.nomeva.com/2009/11/19/tutorial-jsfl-mmexecute-creacion-panel-con-flex/</link>
		<comments>http://www.nomeva.com/2009/11/19/tutorial-jsfl-mmexecute-creacion-panel-con-flex/#comments</comments>
		<pubDate>Thu, 19 Nov 2009 07:09:31 +0000</pubDate>
		<dc:creator>Luis Adrián</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[JSFL]]></category>
		<category><![CDATA[Paneles]]></category>
		<category><![CDATA[extension]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[MMExecute]]></category>
		<category><![CDATA[mxp]]></category>
		<category><![CDATA[panel]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.nomeva.com/?p=478</guid>
		<description><![CDATA[Bienvenidos, en esta ocasión retomaremos el tema de los Paneles pero enfocado a su creación mediante Adobe Flex.
Antes o después de leer este tutorial sería interesante leer el este otro post sobre la introducción a la creación de Paneles.
INTRODUCCIÓN
La idea es crear un panel que nos ayude a modificar el fondo del documento FLA, pero [...]]]></description>
			<content:encoded><![CDATA[<p>Bienvenidos, en esta ocasión retomaremos el tema de los <strong><a title="Tutorial JSFL - Introducción a Paneles" href="http://www.nomeva.com/2009/04/24/tutorial-jsfl-introduccion-a-paneles/" target="_blank">Paneles</a></strong> pero enfocado a su creación mediante <strong><a title="Adobe Flex" href="http://www.adobe.com/es/products/flex/" target="_blank">Adobe Flex</a></strong>.</p>
<blockquote><p>Antes o después de leer este tutorial sería interesante leer el <strong><a title="Tutorial JSFL - Introducción a Paneles" href="http://www.nomeva.com/2009/04/24/tutorial-jsfl-introduccion-a-paneles/" target="_blank">este</a></strong> otro post sobre la introducción a la creación de <strong>Paneles</strong>.</p></blockquote>
<h1>INTRODUCCIÓN</h1>
<p>La idea es crear un panel que nos ayude a modificar el <strong>fondo</strong> del documento <strong>FLA</strong>, pero más rápidamente, si, sé que cambiar el fondo del documento es muy fácil, pero soy un poco maniático y la verdad tener que abrir una ventana, seleccionar un color y luego dar click en aceptar son muchos pasos, me gustaría algo mucho más rápido, algo como hacer <strong>rollOver</strong> sobre un componente <a title="ColorPicker Flex 3" href="http://livedocs.adobe.com/flex/3/langref/mx/controls/ColorPicker.html"><strong>ColorPicker</strong></a> y listo.</p>
<h1>DESARROLLO</h1>
<p>Para ejecutar código <a title="JSFL en nomeva.com" href="http://www.nomeva.com/category/jsfl/" target="_blank"><strong>JSFL</strong></a> en una película <strong>swf</strong> generada con <strong>Flex</strong> utilizaremos el método <a title="Método MMExecute" href="http://help.adobe.com/en_US/AS3LCR/Flash_10.0/adobe/utils/package.html#MMExecute()" target="_blank"><strong>MMExecute</strong></a> que encontramos en el paquete <em>adobe.utils </em>por ejemplo:</p>
<pre>import adobe.utils.MMExecute;
MMExecute("jsfl code");</pre>
<blockquote><p>El método <a title="Método MMExecute" href="http://help.adobe.com/en_US/AS3LCR/Flash_10.0/adobe/utils/package.html#MMExecute()" target="_blank"><strong>MMExecute</strong></a> recibe un parámetro de tipo <strong>String</strong> en el cual indicaremos el código <a title="JSFL en nomeva.com" href="http://www.nomeva.com/category/jsfl/" target="_blank"><strong>JSFL</strong></a> que deseamos ejecutar. Además devuelve un valor también de tipo <strong>String</strong> que es la representación en cadena del resultado de la ejecución del código.</p></blockquote>
<h2>Parte JSFL</h2>
<p>Vale, ahora que sabemos como ejecutar código <a title="JSFL en nomeva.com" href="http://www.nomeva.com/category/jsfl/" target="_blank"><strong>JSFL</strong></a> necesitamos saber que código ejecutar. Lo que queremos modificar es una propiedad del <strong>documento FLA</strong>, así es que antes que otra cosa debemos obtener una referencia al documento, esto lo hacemos con el siguiente código:</p>
<pre class="brush:js">var oDoc = fl.getDocumentDOM();</pre>
<p>Y para acceder y modificar el color de fondo utilizamos la propiedad <strong>backgroundColor</strong> que es de lectura y escritura:</p>
<pre class="brush:js">oDoc.backgroundColor</pre>
<p>Listo, por lo menos la parte de JSFL, ahora tenemos que integrar este código en una aplicación <strong>Flex</strong>.</p>
<h2 style="font-size: 1.5em;">Parte FLEX</h2>
<p>Utilizaremos un componente <strong><a title="ColorPicker Flex 3" href="http://livedocs.adobe.com/flex/3/langref/mx/controls/ColorPicker.html">ColorPicker</a></strong> este componente entre otras cosas emite los eventos:</p>
<ul>
<li>change</li>
<li>close</li>
<li>itemRollOver</li>
<li>itemRollOut</li>
<li>open</li>
</ul>
<p>Los que en nuestro caso nos interesan son los eventos <strong>change</strong> e <strong>itemRollOver</strong> así que como en cualquier otra aplicación utilizamos el siguiente código:</p>
<pre class="brush:xml">&lt;mx:ColorPicker id="cpBackgroundColor" x="89" y="10" change="onChange(event);" itemRollOver="onItemRollOver(event);" /&gt;</pre>
<p>Ahora simplemente en los métodos <strong>onChange</strong> y <strong>onItemRollOver</strong> es donde tendremos que utilizar el método MMExecute de la siguiente manera:</p>
<pre class="brush:as3">import mx.events.ColorPickerEvent;
import adobe.utils.MMExecute;

private function onChange(_oEvent:ColorPickerEvent):void
{
    if (this.isDocumentExists())
        MMExecute("fl.getDocumentDOM().backgroundColor = Number(" + _oEvent.color + ");");
}

private function onItemRollOver(_oEvent:ColorPickerEvent):void
{
    if (this.isDocumentExists())
        MMExecute("fl.getDocumentDOM().backgroundColor = Number(" + _oEvent.color + ");");
}

private function isDocumentExists():Boolean
{
    var ret:Boolean = false;
    if (MMExecute("fl.getDocumentDOM();") != "null")
        ret = true;

    return ret;
}</pre>
<h1>INSTALACIÓN</h1>
<p>Listo, el resultado no lo podremos ver en ejecución a menos que llevemos el <strong>swf</strong> resultante a la carpeta de <strong>Paneles</strong> de Flash, es decir al directorio <strong>WindowSWF</strong> dentro del directorio <strong>Configuration</strong> de la instalación.</p>
<p>Según el sistema operativo:</p>
<p><strong>Windows® VistaTM:</strong></p>
<ul>
<li>unidad de arranque\Users\nombre de usuario\Local Settings\Application Data\Adobe\Flash</li>
</ul>
<p>CS4\idioma\Configuration\</p>
<p><strong>Windows XP:</strong></p>
<ul>
<li>unidad de arranque\Documents and Settings\nombre de usuario\Local Settings\Application Data\Adobe\Flash CS4\idioma\Configuration\</li>
</ul>
<p><strong>Mac OS® X:</strong></p>
<ul>
<li>Macintosh HD/Usuarios/nombre de usuario/Librería/Application Support/Adobe/Flash</li>
</ul>
<p>CS4/idioma/Configuration/</p>
<h1>EJECUCIÓN</h1>
<p>Para ejecutar el <strong>Panel</strong> debemos acceder al menú <em><strong>Ventana -&gt; Otros paneles -&gt; Change Background Color </strong></em>a continuación un ejemplo de como ejecutar y su funcionamiento:</p>
<p><a title="Ejemplo ejecución de Panel Change Background Color." href="http://img194.yfrog.com/i/s9y.mp4/" target="_blank"><strong>Ver ejemplo</strong></a></p>
<h1>DESCARGAS</h1>
<p>Como es habitual a continuación podéis descargar los fuentes y el instalador del Panel:</p>
<ul>
<li>Fichero <strong><a title="Fichero MXML del Panel" href="http://www.nomeva.com/wp-content/uploads/2009/11/PanelChangeColor.mxml" target="_blank">MXML</a></strong> de Flex por si te interesa ver el código.</li>
<li>Fichero <strong><a title="Fichero SWF del Panel" href="http://www.nomeva.com/wp-content/uploads/2009/11/Change-Background-Color.swf" target="_blank">SWF</a><span style="font-weight: normal;"> del Panel para instalar manualmente el Panel</span></strong>.</li>
<li>Instalador <strong><a title="Instalador de la Extensión, fichero MXP" href="http://www.nomeva.com/wp-content/uploads/2009/11/PanelChangeColor.mxp" target="_blank">MXP</a></strong> del Panel para instalar automáticamente la extensión.</li>
</ul>
<p>Saludos, cualquier duda o comentario será bienvenido.</p>
<h3>Entradas relacionadas</h3>
<ul>
<li><a title="Recursos JSFL en nomeva.com" href="../category/2008/08/24/recursos-jsfl/" target="_blank">Recursos JSFL</a></li>
<li><a title="Tutorial JSFL - Introducción a comandos" href="../category/2008/09/26/tutorial-jsfl-introduccion-a-comando/" target="_blank">Tutorial JSFL – Introducción a comandos</a></li>
<li><a title="Tutorial JSFL - Comandos con interfaz gráfica" href="../category/2008/10/12/tutorial-jsfl-comandos-con-interfaz-grafica/" target="_blank">Tutorial JSFL – Comandos con interfaz gráfica</a></li>
<li><a title="Tutorial JSFL - Comandos con interfaz gráfica II" href="../category/2008/11/09/tutorial-jsfl-comandos-con-interfaz-grafica-ii/" target="_blank">Tutorial JSFL – Comandos con interfaz gráfica II</a></li>
<li><a title="Tutorial JSFL - Introducción a Paneles" href="../category/2009/04/24/tutorial-jsfl-introduccion-a-paneles/" target="_blank"><strong>Tutorial JSFL – Introducción a Paneles</strong></a></li>
<li><a title="Tutorial JSFL - Panel Auto Save" href="../category/2009/06/28/tutorial-jsfl-panel-auto-save/" target="_blank"><strong>Tutorial JSFL – Panel Auto Save</strong></a></li>
<li><a title="Tutorial JSFL - Guardar copia FLA 1/2 (comando)" href="../category/2009/07/05/tutorial-jsfl-guardar-copia-fla-12-comando/" target="_blank">Tutorial JSFL – Guardar copia FLA 1/2 (comando)</a></li>
<li><a title="Tutorial JSFL - Introducción a herramientas (tools)" href="../2009/07/17/tutorial-jsfl-introduccion-herramientas-tools/" target="_blank">Tutorial JSFL – Introducción a herramientas (tools)</a></li>
<li><a title="Tutorial JSFL - Localización de contenidos (comando)" href="http://www.nomeva.com/2009/11/11/tutorial-jsfl-localizacion-de-contenidos-comando/" target="_blank">Tutorial JSFL &#8211; Localización de contenidos (comando)</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.nomeva.com/2009/11/19/tutorial-jsfl-mmexecute-creacion-panel-con-flex/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Tutorial JSFL &#8211; Embeber fuentes y panel Historial</title>
		<link>http://www.nomeva.com/2009/11/13/tutorial-jsfl-embeber-fuentes-y-panel-historial/</link>
		<comments>http://www.nomeva.com/2009/11/13/tutorial-jsfl-embeber-fuentes-y-panel-historial/#comments</comments>
		<pubDate>Fri, 13 Nov 2009 08:09:41 +0000</pubDate>
		<dc:creator>Luis Adrián</dc:creator>
				<category><![CDATA[Comandos]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[JSFL]]></category>
		<category><![CDATA[command]]></category>
		<category><![CDATA[embeber fuentes]]></category>
		<category><![CDATA[panel historial]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.nomeva.com/?p=460</guid>
		<description><![CDATA[INTRODUCCIÓN
El objetivo de JSFL es ayudar a agilizar el proceso de edición en Adobe Flash Professional. Pero, ¿qué quiere decir esto? bueno, eso nos lo responde la ayuda de Ampliación de Flash CS4 Professional con ejemplos tales como automatizar tareas repetitivas o la creación de herramientas personalizadas.
La API JavaScript permite escribir scripts para aplicaciones Flash [...]]]></description>
			<content:encoded><![CDATA[<h1>INTRODUCCIÓN</h1>
<p>El objetivo de <strong><a title="JSFL en nomeva.com" href="http://www.nomeva.com/category/jsfl/" target="_blank">JSFL</a></strong> es ayudar a <strong>agilizar el proceso de edición</strong> en <strong><a title="Adobe Flash Professional" href="http://www.nomeva.com/category/jsfl/" target="_blank">Adobe Flash Professional</a></strong>. Pero, ¿qué quiere decir esto? bueno, eso nos lo responde la <strong><a title="Ampliación de Adobe Flash CS4 Professional" href="http://www.nomeva.com/2008/10/05/flash-cs4-extendiendo-con-jsfl/" target="_blank">ayuda de Ampliación de Flash CS4 Professional</a></strong> con ejemplos tales como automatizar tareas repetitivas o la creación de herramientas personalizadas.</p>
<blockquote><p>La API JavaScript permite escribir scripts para aplicaciones Flash que ayudan a agilizar el proceso de edición. Por ejemplo, se pueden escribir scripts para automatizar tareas repetitivas o añadir herramientas personalizadas al panel Herramientas.</p></blockquote>
<h1>TUTORIAL</h1>
<p>En este tutorial vamos a ver como <strong>automatizar</strong> una tarea muy habitual y repetitiva en el día a día de un <strong>desarrollador / diseñador Flash</strong>. Vamos a ver como crear un <strong>comando</strong> para <strong>embeber caracteres</strong> a un campo de texto dinámico y además vamos a ver como utilizar el <strong>Panel Historial</strong>.</p>
<p>Primero abriremos el <strong>Panel Historial</strong>, esto lo hacemos desde el menú <strong>Ventana -&gt; Otros paneles -&gt; Historial</strong> o con los atajos de teclado <strong>Ctr + F10</strong> en Windows y <strong>Cmd + F10</strong> en Mac OS X.</p>
<p style="text-align: center; "><a style="text-decoration: none;" href="http://www.nomeva.com/wp-content/uploads/2009/11/panel_historial_adobe_flash.png"><br style="text-decoration: underline;" /><img class="aligncenter size-full wp-image-461" title="panel historial adobe flash" src="http://www.nomeva.com/wp-content/uploads/2009/11/panel_historial_adobe_flash.png" alt="panel historial adobe flash" width="466" height="259" /></a></p>
<p>Ahora comprobaremos el estado de visualización del Panel, debe estar en <strong>&#8220;JavaScript del panel&#8221;</strong>, si no es así lo modificamos.</p>
<p style="text-align: center; "><a href="http://www.nomeva.com/wp-content/uploads/2009/11/visualizacion_panel_historial_adobe_flash.png"><img class="aligncenter size-medium wp-image-464" title="visualizacion panel historial adobe flash" src="http://www.nomeva.com/wp-content/uploads/2009/11/visualizacion_panel_historial_adobe_flash-300x90.png" alt="visualizacion panel historial adobe flash" width="300" height="90" /></a></p>
<p>Ahora si con el <strong>Panel</strong> abierto haremos esa tarea tan repetitiva que es <strong>embeber fuentes</strong> en un campo de texto dinámico. Para esto hacemos lo siguiente:</p>
<ul>
<li><strong>Creamos</strong> un <strong>campo de texto</strong> con la <strong>herramienta texto</strong>.</li>
<li><strong>Volvemos dinámico</strong> el campo de texto utilizando el <strong>Panel de propiedades</strong>.</li>
<li>Seleccionamos en el desplegable de <strong>Suavizado</strong> la opción &#8220;<strong>Suavizado para animación</strong>&#8220;.</li>
</ul>
<p style="text-align: center; "><a href="http://www.nomeva.com/wp-content/uploads/2009/11/panel_propiedades_texto_adobe_flash.png"><img class="aligncenter size-full wp-image-466" title="panel propiedades texto adobe flash" src="http://www.nomeva.com/wp-content/uploads/2009/11/panel_propiedades_texto_adobe_flash.png" alt="panel propiedades texto adobe flash" width="317" height="441" /></a></p>
<ul>
<li>Hacemos <strong>click</strong> en el <strong>botón</strong> &#8220;<strong>Incorporación de caracteres…</strong>&#8220;.</li>
<li>En la ventana que se abre <strong>seleccionamos</strong> los <strong>juegos de caracteres</strong> a embeber.</li>
<li>En el campo de texto añadimos los <strong>caracteres especiales</strong>, tales como letras con tildes, diéresis, ñ y ç entre otros.</li>
</ul>
<p style="text-align: center; "><a href="http://www.nomeva.com/wp-content/uploads/2009/11/incorporacion_de_caracteres_adobe_flash.png"><img class="aligncenter size-full wp-image-465" title="incorporacion de caracteres adobe flash" src="http://www.nomeva.com/wp-content/uploads/2009/11/incorporacion_de_caracteres_adobe_flash.png" alt="incorporacion de caracteres adobe flash" width="505" height="539" /></a></p>
<p>Aceptamos y listo ya tenemos nuestro <strong>campo de texto dinámico</strong> con las<strong> fuentes embebidas</strong>, ahora nos vamos al <strong>Panel Historial</strong> y veremos todo lo que hemos estado haciendo, pero con el pequeño añadido que ahora veremos el <strong>código JSFL</strong> que tenemos que utilizar en nuestro comando.</p>
<p style="text-align: center; "><a href="http://www.nomeva.com/wp-content/uploads/2009/11/panel_historial_comandos_embedfonts_adobe_flash.png"><img class="aligncenter size-full wp-image-467" title="panel historial comandos embed fonts adobe flash" src="http://www.nomeva.com/wp-content/uploads/2009/11/panel_historial_comandos_embedfonts_adobe_flash.png" alt="panel historial comandos embed fonts adobe flash" width="466" height="259" /></a></p>
<p>En la parte inferior derecha del <strong>Panel Historial</strong> tenemos el <strong>botón Guardar</strong>, éste se activa cuando seleccionamos alguna línea de código, en este caso lo que queremos hacer es guardar las líneas de código en las que indicamos al campo de texto que utilice <strong>Suavizado para animación</strong>, los <strong>juegos de caracteres</strong> y los <strong>caracteres especiales</strong>. Así que una vez seleccionadas hacemos click en el <strong>botón Guardar</strong> y ahora simplemente tenemos que <strong>escribir</strong> el <strong>nombre del comando</strong>.</p>
<p style="text-align: center; "><a href="http://www.nomeva.com/wp-content/uploads/2009/11/ventana_guardar_como_comando_adobe_flash.png"><img class="aligncenter size-full wp-image-468" title="ventana guardar como comando adobe flash" src="http://www.nomeva.com/wp-content/uploads/2009/11/ventana_guardar_como_comando_adobe_flash.png" alt="ventana guardar como comando adobe flash" width="537" height="219" /></a></p>
<p>Listo, con esto <strong>hemos creado</strong> un <strong>comando</strong> sin tener que picar nada de código, es una forma muy simple y eficiente con la que <strong>cualquiera puede crear comandos sin necesidad de saber programar</strong>.</p>
<p>Ahora para ejecutar el comando simplemente vamos al menú <strong>Comandos</strong> y seleccionamos de la lista el comando que hemos creado, <strong>Embeber caracteres</strong>.</p>
<p style="text-align: center;"><a href="http://www.nomeva.com/wp-content/uploads/2009/11/menu_comandos_comando_embeber_caracteres_adobe_flash.png"><img class="size-full wp-image-469 aligncenter" title="menu comandos comando embeber caracteres adobe flash" src="http://www.nomeva.com/wp-content/uploads/2009/11/menu_comandos_comando_embeber_caracteres_adobe_flash.png" alt="menu comandos comando embeber caracteres adobe flash" width="366" height="210" /></a></p>
<h1>DESCARGAS</h1>
<p>Como es habitual dejo descargas del fichero <strong>JSFL </strong>y también del fichero <strong>MXP</strong> para instalar el comando.</p>
<ul>
<li><a title="Comando - Embeber caracteres" href="http://www.nomeva.com/wp-content/uploads/2009/11/embeber_caracteres.jsfl" target="_blank"><strong>Comando</strong></a> Embeber caracteres (versión JSFL).</li>
<li><a title="Instalador MXP - Comando Embeber caracteres" href="http://www.nomeva.com/wp-content/uploads/2009/11/embeber_caracteres.mxp" target="_blank"><strong>Instalador</strong></a> de<strong> Comando</strong> Embeber caracteres.</li>
</ul>
<h1>NOTAS</h1>
<p>Para utilizar el comando debes seleccionar un campo de texto. Para cualquier cosa, dudas, comentarios o sugerencias aquí estaré.</p>
<p>Saludos!!!</p>
<h3>Entradas relacionadas</h3>
<ul>
<li><a title="Recursos JSFL en nomeva.com" href="../category/2008/08/24/recursos-jsfl/" target="_blank">Recursos JSFL</a></li>
<li><a title="Tutorial JSFL - Introducción a comandos" href="../category/2008/09/26/tutorial-jsfl-introduccion-a-comando/" target="_blank">Tutorial JSFL – Introducción a comandos</a></li>
<li><a title="Tutorial JSFL - Comandos con interfaz gráfica" href="../category/2008/10/12/tutorial-jsfl-comandos-con-interfaz-grafica/" target="_blank">Tutorial JSFL – Comandos con interfaz gráfica</a></li>
<li><a title="Tutorial JSFL - Comandos con interfaz gráfica II" href="../category/2008/11/09/tutorial-jsfl-comandos-con-interfaz-grafica-ii/" target="_blank">Tutorial JSFL – Comandos con interfaz gráfica II</a></li>
<li><a title="Tutorial JSFL - Introducción a Paneles" href="../category/2009/04/24/tutorial-jsfl-introduccion-a-paneles/" target="_blank">Tutorial JSFL – Introducción a Paneles</a></li>
<li><a title="Tutorial JSFL - Panel Auto Save" href="../category/2009/06/28/tutorial-jsfl-panel-auto-save/" target="_blank">Tutorial JSFL – Panel Auto Save</a></li>
<li><a title="Tutorial JSFL - Guardar copia FLA 1/2 (comando)" href="../category/2009/07/05/tutorial-jsfl-guardar-copia-fla-12-comando/" target="_blank">Tutorial JSFL – Guardar copia FLA 1/2 (comando)</a></li>
<li><a title="Tutorial JSFL - Introducción a herramientas (tools)" href="../2009/07/17/tutorial-jsfl-introduccion-herramientas-tools/" target="_blank">Tutorial JSFL – Introducción a herramientas (tools)</a></li>
<li><a title="Tutorial JSFL - Localización de contenidos (comando)" href="http://www.nomeva.com/2009/11/11/tutorial-jsfl-localizacion-de-contenidos-comando/" target="_blank">Tutorial JSFL &#8211; Localización de contenidos (comando)</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.nomeva.com/2009/11/13/tutorial-jsfl-embeber-fuentes-y-panel-historial/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Tutorial JSFL &#8211; Localización de contenidos (Comando)</title>
		<link>http://www.nomeva.com/2009/11/11/tutorial-jsfl-localizacion-de-contenidos-comando/</link>
		<comments>http://www.nomeva.com/2009/11/11/tutorial-jsfl-localizacion-de-contenidos-comando/#comments</comments>
		<pubDate>Wed, 11 Nov 2009 08:47:47 +0000</pubDate>
		<dc:creator>Luis Adrián</dc:creator>
				<category><![CDATA[Comandos]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[JSFL]]></category>
		<category><![CDATA[comando]]></category>
		<category><![CDATA[command]]></category>
		<category><![CDATA[element]]></category>
		<category><![CDATA[frame]]></category>
		<category><![CDATA[layer]]></category>
		<category><![CDATA[localización]]></category>
		<category><![CDATA[timeline]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.nomeva.com/?p=447</guid>
		<description><![CDATA[La localización (traducción) de contenidos es un tema muy importante, en ocasiones es el punto clave de los desarrollos, pero en muchas ocasiones no se tiene en cuenta. En mi caso he tenido que pasar por esta situación más de una vez.
Cuando se nos platea la situación siempre pensamos en una configuración inteligente de los [...]]]></description>
			<content:encoded><![CDATA[<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">La localización (traducción) de contenidos es un tema muy importante, en ocasiones es el punto clave de los desarrollos, pero en muchas ocasiones no se tiene en cuenta. En mi caso he tenido que pasar por esta situación más de una vez.</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">Cuando se nos platea la situación siempre pensamos en una configuración inteligente de los contenidos basada en XML, crear un gestor, objetos, eventos, listeners, switch on the fly para cambiar de idioma y muchas ideas súper guays, pero como siempre tenemos al señor tiempo que viene a presionar, por otro lado el cliente ya tiene el curso completo y funcional, lo único que quiere ahora es que su producto esté en X o Y idioma, vamos que eso tiene que estar chupado.</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">Pero que pasa cuando quien ha desarrollado esos contenidos no pensó en que algún día se localizarían y utilizó mogollón de campos de texto estáticos, por no hablar de imágenes o diseños, pero esa es otra historia.</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">Bueno, ahora que más o menos he contado un poco el panorama, jejeje vamos a ver para que sirve todo eso, resumiendo, tenemos, por que si, un fla de su padre y de su madre con un montón de campos de texto estáticos distribuidos por símbolos, gráficos, botones, clips de película y en distintos fotogramas de sus líneas de tiempo respectivas, es decir, un verdadero caos del bueno.</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">Claro, también tenemos un cliente que nos pide para mañana la traducción de ese curso a Chino, Alemán e Italiano.</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">¿Qué hacemos?</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">Le decimos al cliente que estamos hasta arriba de trabajo y que no podremos dar prioridad a su trabajo, vamos que no lo vamos a hacer.</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">Le decimos al cliente que no podemos hacerlo en ese tiempo y que necesitaremos dos semanas por lo menos y que el trabajo será muy costoso.</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">Le decimos que vale.</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">Pero que!!!!, ¿cómo que vale? pero este tío está loco, pero si esa tarea es imposible.</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">Bueno, ahora es donde entra en juego nuestro querido y siempre infravalorado JSFL.</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">IDEA E HISTORIETA</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">Tenemos una línea de tiempo y muchos elementos en una biblioteca, pues simplemente tenemos que recorrer todas las líneas de tiempo y encontrar todos los campos de texto estáticos, convertirlos en campos de texto dinámicos, asignarles una variable, leer su contenido y guardarlo en un fichero XML.</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">Como trabajamos en una súper empresa enorme con múltiples departamentos, contamos con un departamento de traducción y muchos más, nos ponemos en contacto con nuestro amigo Axel del departamento de traducción y le pedimos que nos traduzca el fichero XML a los idiomas que ha pedido el cliente, en unas horas nos lo devuelve. ¡Qué gusto trabajar en esta empresa! todos son tan eficientes que dan ganas de dar el 200% de cada uno.</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">Bueno, ahora ya tenemos los ficheros XML en Chino, Alemán e Italiano. Pero recordemos, como hemos dicho que trabajamos en una súper empresa en la que todos son la hostia de eficientes, nosotros no vamos a ser menos, así que mientras Axel trabajaba en la traducción del XML, nosotros hemos estado creado el súper lector de XML que simplemente creará variables y asignará valores, para que cuando los textos dinámicos las necesiten ya estén ahí. Así que mira que coincidencia, hemos terminado al mismo tiempo que Axel, con todo el desarrollo que hemos hecho, más esos XML&#8217;s ya tenemos el contenido en 3 idiomas y nos ha tomado menos de un día.</div>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">QUE NECESITAMOS</div>
<h1>INTRODUCCIÓN</h1>
<p>La <strong>localización</strong> (traducción) de contenidos es un tema muy importante, en ocasiones es el punto clave de los desarrollos, pero en muchas ocasiones no se tiene en cuenta. En mi caso he tenido que pasar por esta situación más de una vez.</p>
<p>Cuando se nos platea la situación siempre pensamos en una configuración inteligente de los <strong>contenidos</strong> basada en <strong>XML</strong>, crear un <strong>gestor</strong>, objetos, eventos, listeners,<strong> switch on the fly </strong>para cambiar de idioma y muchas ideas súper guays, pero como siempre tenemos al señor <strong>tiempo</strong> que viene a <strong>presionar</strong>, por otro lado el cliente ya tiene el curso completo y funcional, lo único que quiere ahora es que su producto esté en X o Y idioma, vamos que eso tiene que estar chupado.</p>
<p>Pero que pasa cuando quien ha desarrollado esos contenidos <strong>no pensó</strong> en que algún día se <strong>localizarían</strong> y utilizó mogollón de campos de <strong>texto estáticos</strong>, por no hablar de imágenes o diseños, pero esa es otra historia.</p>
<p><strong>Bueno</strong>, ahora que más o menos he contado un poco el panorama, jejeje vamos a ver para que sirve todo eso, resumiendo, <strong>tenemos</strong>, por que si, <strong>un fla</strong> de su padre y de su madre con un montón de <strong>campos de texto estáticos</strong> distribuidos por símbolos, gráficos, botones, clips de película y en distintos fotogramas de sus líneas de tiempo respectivas, es decir, un verdadero caos del bueno.</p>
<p>Claro, también tenemos un <strong>cliente</strong> que nos pide <strong>para mañana</strong> la <strong>traducción</strong> de ese curso a Chino, Alemán e Italiano.</p>
<h2>¿Qué hacemos?</h2>
<ul>
<li>Le decimos al cliente que estamos hasta arriba de trabajo y que no podremos dar prioridad a su trabajo, vamos que no lo vamos a hacer.</li>
<li>Le decimos al cliente que no podemos hacerlo en ese tiempo y que necesitaremos dos semanas por lo menos y que el trabajo será muy costoso.</li>
<li>Le decimos que vale.</li>
</ul>
<blockquote><p>Pero qué!!!!, ¿cómo que vale? pero este tío está loco, pero si esa tarea es imposible.</p></blockquote>
<p>Bueno, ahora es donde entra en juego nuestro querido y siempre infravalorado <strong>JSFL</strong>.</p>
<h1>IDEA E HISTORIETA</h1>
<p>Tenemos una línea de tiempo y muchos elementos en una biblioteca, pues simplemente tenemos que recorrer todas las líneas de tiempo y encontrar todos los campos de texto estáticos, convertirlos en campos de texto dinámicos, asignarles una variable, leer su contenido y guardarlo en un fichero XML.</p>
<p>Como trabajamos en una súper empresa enorme con múltiples departamentos, contamos con un departamento de traducción y muchos más, nos ponemos en contacto con nuestro amigo Axel del departamento de traducción y le pedimos que nos traduzca el fichero XML a los idiomas que ha pedido el cliente, en unas horas nos lo devuelve. ¡Qué gusto trabajar en esta empresa! todos son tan eficientes que dan ganas de dar el 200% de cada uno.</p>
<p>Bueno, ahora ya tenemos los ficheros XML en Chino, Alemán e Italiano. Pero recordemos, como hemos dicho que trabajamos en una súper empresa en la que todos son la ostia de eficientes, nosotros no vamos a ser menos, así que mientras Axel trabajaba en la traducción del XML, nosotros hemos estado creado el súper lector de XML que simplemente creará variables y asignará valores, para que cuando los textos dinámicos las necesiten ya estén ahí. Así que mira que coincidencia, hemos terminado al mismo tiempo que Axel, con todo el desarrollo que hemos hecho, más esos XML&#8217;s ya tenemos el contenido en 3 idiomas y nos ha tomado menos de un día.</p>
<h1>QUE NECESITAMOS</h1>
<p>Primero un repaso rápido al <strong>entorno de Flash</strong>, en la imagen que se muestra  a continuación podemos ver listados los elementos con los que trabajamos a diario y que para este <strong>Comando</strong> vamos a necesitar.</p>
<p><a href="http://www.nomeva.com/wp-content/uploads/2009/11/esquema_objetos_jsfl.jpg"><img class="aligncenter size-medium wp-image-450" title="esquema objetos jsfl" src="http://www.nomeva.com/wp-content/uploads/2009/11/esquema_objetos_jsfl-300x187.jpg" alt="esquema objetos jsfl" width="300" height="187" /></a></p>
<ol>
<li><strong>Documento</strong> <em>fl.getDocumentDOM()</em></li>
<li><strong>Línea de tiempo</strong><em> fl.getTimeline()</em></li>
<li><strong>Capas</strong><em> fl.getTimeline().layers</em></li>
<li><strong>Biblioteca</strong><em> fl.getDocumentDOM().library</em></li>
<li><strong>Panel de Propiedades</strong><em> fl.setProperty(&#8221;property&#8221;, &#8220;value&#8221;);</em></li>
</ol>
<p>Y ahora si, manos a la obra maestro.</p>
<p>Primero que nada vamos a recorrer la línea de tiempo principal para buscar campos de texto, eso ya nos da pistas sobre lo que tenemos que hacer, veamos, hemos dicho que vamos a recorrer la línea de tiempo principal, entonces esto nos indica que necesitaremos una <strong>referencia </strong>al<strong> documento</strong>, esto lo resolvemos fácilmente utilizando el comando:</p>
<pre class="brush:js">var oDoc = fl.getDocumentDOM();</pre>
<p>Una vez que tenemos una referencia al documento ahora si ya podemos obtener una <strong>referencia</strong> a la<strong> línea de tiempo</strong>, esto lo hacemos con el siguiente dódigo:</p>
<pre class="brush:js">var oTimeline = oDoc.getTimeline();</pre>
<p>Una vez que tenemos una referencia a la línea de tiempo ahora tenemos que obtener una <strong>referencia</strong> a las <strong>capas (layers)</strong>, esta nos la proporciona el objeto línea de tiempo, lo que nos <strong>devuelve</strong> es un <strong>Array </strong>(que guay!!!, de verdad que es súper cómodo trabajar con los Arrays), así que aquí empezaremos a ejecutar bucles <strong>for anidados</strong>. Utilizando un código similar a este:</p>
<pre class="brush:js">var aLayers = oTimeline.layers;
var nTotalLayers = aLayers.length;
for(var i = 0; i &lt; nTotalLayers; i++) { ... }</pre>
<p>Ahora que recorremos las capas, &#8230;</p>
<blockquote><p>¿Porqué recorremos las capas?</p>
<p>Muy buena pregunta, un punto para el que hizo esa pregunta. La respuesta es sencilla, recorremos las capas por que para buscar los campos de texto tenemos que buscar en los fotogramas clave y la única forma que tenemos de garantizar una búsqueda completa es recorriendo todos los fotogramas de la línea de tiempo.</p>
<p>Pero qué!!!!</p>
<p>A ver, a ver, lo vas a hacer tú? o tú? o yo, no, lo va a hacer automáticamente Flash por nosotros, así que hay de que preocuparse.</p></blockquote>
<p>&#8230; vamos a utilizar la propiedad <strong>frames</strong> (<strong>fotogramas</strong>) del objeto <strong>Layer</strong> (<strong>capa</strong>) que también nos devuelve un Array (ahora si que ya no quepo de gozo), para buscar los elementos que tiene ese fotograma, tendríamos un código similar a este:</p>
<pre class="brush:js">var oLayer = aLayers[i];
var aFrames = oLayer.frames;
var nTotalFrames = aFrames.length;
for(var j = 0; j &lt; nTotalLayers; j++) { ... }</pre>
<p>Con esto llegamos casi al punto que nos interesa, el campo de texto, pero nos falta un pequeño paso, el objeto <strong>frame</strong> tiene una propiedad muy útil, me refiero a la propiedad <strong>elements</strong>, esta propiedad curiosamente también nos devuelve un Array (he dicho que me gustan mucho los Arrays, es que son la mar de útiles), el código que utilizaríamos sería algo como lo siguiente:</p>
<pre class="brush:js">var oFrame = aFrames[j];
var aElements = oFrame.elements;
var nTotalElements = aElements.length;
for(var k = 0; k &lt; nTotalLayers; k++) { ... }</pre>
<p>Ahora si, hemos llegado, después de tres bucles anidados, ya tenemos acceso a los elementos del fotograma, así que simplemente tenemos que preguntar el tipo de elemento y en caso de ser de tipo texto podemos modificar sus propiedades y leer el texto que tiene, el código sería más o menos parecido al siguiente:</p>
<pre class="brush:js">var oElement = aElements[k];
if (oElement.elementType == "text") { ... }</pre>
<p>Bueno, que en el párrafo de arriba escribí de más, así que ahora tengo que volver a escribir otra vez lo de modificar las propiedades del campo de texto y leer su texto, esto lo haremos con el siguiente código:</p>
<pre class="brush:js">oElement.textType = "type";
oElement.variableName = "variable_name";
oElement.getTextString();</pre>
<p>Y listo, ya lo tenemos.</p>
<blockquote><p>Menos mal, ya me estaba cansando.</p>
<p>Hey!!! que puedo leer vuestras mentes, a ver tú y tú, los puntos que os habéis ganado hace rato ahora los habéis perdido.</p>
<p>No, no estoy de acuerdo. Si, me estoy cansando, ¿y qué? es normal, con estos tutoriales tan grandes como quieres conservar la atención tanto tiempo. Si quieres mi atención deberías hacer algo más interactivo, entretenido, divertido, cómico, algo en lo podamos participar y no quedarnos todo el rato leyendo. Pero &#8230;</p>
<p>Vale, vale, lo siento. Es que estoy aprendiendo. Pero tomo nota de tus comentario, es más, por ser tan honesto te has ganado 150 puntos. Veis chicos, si todos participaseis cuando menos un poco así &#8230;</p></blockquote>
<p>Ahora veamos el código completo:</p>
<pre class="brush:js">//Delcaración de variables
var oDoc;
var oLib;
var SEPARATOR = ";";
var PREFFIX_VAR_NAME = "_root.varCommandTextLocalizable_";
var nCounter;

var sXML;

//Llamada a los métodos de configuración e inicialización del comando
this.config();
this.init();

/**
 * @method		config
 * @description	Método encargado de configurar el comando
 * @return		Void
 */
function config()
{
	//Indicamos que no queremos ver el mensaje sobre un script de ejecución demasiado larga
	fl.showIdleMessage(false);

	//Limpiamos la ventana de salida
	fl.outputPanel.clear();

	if(fl.getDocumentDOM())
	{
		//Obtenemos la referencia al documento y a la biblioteca
		this.oDoc = fl.getDocumentDOM();
		this.oLib = this.oDoc.library;
	}
	else
	{
		//En caso que no haya un documento abierto mostrarmo un mensaje de alerta.
		alert("Debes tener un documento abierto.");
	}
}

/**
 * @method		init
 * @description	Método encargado de inicializar el comando
 * @return		Void
 */
function init()
{
	//Delcaración de variables
	var aItems = this.oLib.items;
	var nTotalItems = aItems.length;
	var oItem;
	this.nCounter = 1;

	//Inicializamos el valor del XML abriendo la etiqueta principal
	this.sXML  = "&lt;DATA&gt;\n";

	//Llamamos al método analizeTimeline para que analice le línea de tiempo principal
	this.analizeTimeline();

	for (var i = 0; i &lt; nTotalItems; i++)
	{
		oItem = aItems[i];
		if ((oItem.itemType == "movie clip") || ( oItem.itemType == "graphic") || (oItem.itemType == "button") )
		{
			this.oLib.editItem(oItem.name);
			this.analizeTimeline();
		}
	}

	//Finalizamos el valor del XML cerrando la etiqueta principal
	this.sXML += "&lt;/DATA&gt;";

	//Llamada al método createXmlFile
	this.createXmlFile();

	//Limpiamos la memoria de Flash eliminando las variable que hemos creado
	delete aItems, nTotalItems, oItem;
}

/**
 * @method		analizeTimeline
 * @description	Método encargado analizar una línea de tiempo para buscar campos de texto
 *				si encuentra campos de texto, los convierte en dinámicos y les añade
 *				una variable.
 *				Toda la información que va encontrando la almacena en la variable sXML
 * @return		Void
 */
function analizeTimeline()
{
	//Delcaración de variables
	var oTimeline = this.oDoc.getTimeline();
	var aLayers = oTimeline.layers;
	var nTotalLayers = aLayers.length;
	var oLayer;

	//Recorremos las capas
	for (var j = 0; j &lt; nTotalLayers; j++)
	{
		oLayer = aLayers[j];
		oLayer.locked = false;
		oLayer.visible = true;
		if ((oLayer.layerType != "guide") || (oLayer.layerType != "folder"))
		{
			//Delcaración de variables
			var aFrames = oLayer.frames;
			var nTotalFrames = aFrames.length;
			var oFrame;
			var aElements;

			//Recorremos los fotogramas de la capa
			for (var k = 0; k &lt; nTotalFrames; k++)
			{
				oFrame = aFrames[k];
				if (oFrame.elements.length &gt; 0)
				{
					aElements = oFrame.elements;

					//Delcaración de variables
					var nTotalElements = aElements.length;
					var oElement;

					//Recorremos los elementos del fotograma
					for (var l = 0; l &lt; nTotalElements; l++)
					{
						oElement = aElements[l];
						if (oElement.elementType == "text" &amp;&amp; oElement.textType != "input")
						{
							//Delcaración de variables
							var sDataItem = "Nombre de la timeline: " + oTimeline.name;
							var sDataLayer = "Nombre de la capa: " + oLayer.name;
							var sDataFrame = "Número de fotograma: " + (k + 1);
							var sDataElement = "Nombre del elemento: " + oElement.name;
							var sElementText = "Texto del elemento: " + oElement.getTextString();
							var sElementFormat = "Formato del elemento: " + "";
							//fl.trace(sDataItem + this.SEPARATOR + sDataLayer + this.SEPARATOR + sDataFrame + this.SEPARATOR + sDataElement + this.SEPARATOR + sElementText);

							oElement.textType = "dynamic";
							oElement.variableName = this.PREFFIX_VAR_NAME + this.nCounter;

							this.sXML += "	&lt;node varName=\"" + this.PREFFIX_VAR_NAME + this.nCounter + "\"&gt;\n";
							this.sXML += "		&lt;![CDATA[" + oElement.getTextString() + "]]&gt;\n";
							this.sXML += "	&lt;/node&gt;\n";

							this.nCounter++;
						}
					}

					//Limpiamos la memoria de Flash eliminando las variable que hemos creado
					delete nTotalElements, oElement;

				}

				//Incrementamos el valor de k con la duración del fotograma, esto es para que en el siguiente
				//ciclo del bucle vayamos director al siguiente fotograma clave
				k += oFrame.duration - 1;
			}

			//Limpiamos la memoria de Flash eliminando las variable que hemos creado
			delete aFrames, nTotalFrames, oFrame, aElements;
		}

		this.oDoc.exitEditMode();
	}

	//Limpiamos la memoria de Flash eliminando las variable que hemos creado
	delete oTimeline, aLayers, nTotalLayers, oLayer;
}

/**
 * @method		createXmlFile
 * @description	Método encargado de crear el fichero XML con la relación entre textos y variables
 * @return		Void
 */
function createXmlFile()
{
	//Declaración de variables
	var sPath = this.oDoc.pathURI.split(this.oDoc.name).shift();
	var sFileURI = sPath + "textos_extraidos_automaticamente.xml";

	//Comprobación, si existe el fichero lo eliminamos
	if (FLfile.exists(sFileURI))
		FLfile.remove(sFileURI);

	//Creamos el fichero XML
	FLfile.write(sFileURI, this.sXML);

	//Limpiamos la memoria de Flash eliminando las variable que hemos creado
	delete sPath, sFileURI;
}</pre>
<p>Bueno, en este código encontramos además de lo explicado en este tutorial para <strong>recorrer las líneas de tiempo</strong>, <strong>modificar propiedades de campos de texto</strong> y <strong>extraer textos</strong>, código para crear ficheros de texto, en el caso del ejemplo crear un fichero XML con la relación entre la variable asignada al campo de texto y el texto.</p>
<p>El código está comentado, pero si hace falta alguna explicación, si tenéis alguna duda, comentario, mejora, sugerencia, pues aquí estaré gustoso de seguir compartiendo.</p>
<h1>DESCARGAS</h1>
<p>Como es habitual dejo descargas del fichero <strong>JSFL</strong>, también el fichero <strong>MXP</strong> instalable y un <strong>zip</strong> con el paquete del JSFL y un FLA de ejemplo para extraer los textos.</p>
<ul>
<li><a title="Comando - Extractor de Textos" href="http://www.nomeva.com/wp-content/uploads/2009/11/extractor_de_textos.jsfl" target="_blank"><strong>Comando</strong></a> Extractor de Textos (versión JSFL).</li>
<li><a title="Instalador MXP - Extractor de Textos" href="http://www.nomeva.com/wp-content/uploads/2009/11/extractor_de_textos.mxp" target="_blank"><strong>Instalador</strong></a> de<strong> Comando</strong> Extractor de Textos.</li>
<li><a title="Paquete - Extractor de Textos" href="http://www.nomeva.com/wp-content/uploads/2009/11/extractor_textos_paquete.zip" target="_blank"><strong>Paquete</strong></a> con <strong>JSFL</strong> y <strong>FLA</strong> de ejemplo.</li>
</ul>
<p>Saludos!!!</p>
<h1>NOTAS</h1>
<p>Se que algunas personas tendrán mucho que decir, así que por favor háganlo, el tema es complicado, la localización de contenidos es algo muy chungo en ocasiones tal como lo plateo en este ejemplo.</p>
<p>También es cierto que con este ejemplo <strong>no salvamos </strong>otros obstáculos tales como <strong>imágenes que tienen textos </strong>y que con la solución de modificar los campos de texto podríamos estropear el funcionamiento de algunos <strong>campos de texto que ya fuesen dinámicos </strong>y que utilizaran variables.</p>
<p>Ahora si, después de estas notas y una última aclaración, <strong>mi objetivo</strong> es <strong>explicar</strong> el funcionamiento de los <strong>objetos </strong>de<strong> JSFL</strong>, el ejemplo se presta para sacarle partido al lenguaje, así que por eso lo he desarrollado.</p>
<h3>Entradas relacionadas</h3>
<ul>
<li><a title="Recursos JSFL en nomeva.com" href="../category/2008/08/24/recursos-jsfl/" target="_blank">Recursos JSFL</a></li>
<li><a title="Tutorial JSFL - Introducción a comandos" href="../category/2008/09/26/tutorial-jsfl-introduccion-a-comando/" target="_blank">Tutorial JSFL – Introducción a comandos</a></li>
<li><a title="Tutorial JSFL - Comandos con interfaz gráfica" href="../category/2008/10/12/tutorial-jsfl-comandos-con-interfaz-grafica/" target="_blank">Tutorial JSFL – Comandos con interfaz gráfica</a></li>
<li><a title="Tutorial JSFL - Comandos con interfaz gráfica II" href="../category/2008/11/09/tutorial-jsfl-comandos-con-interfaz-grafica-ii/" target="_blank">Tutorial JSFL – Comandos con interfaz gráfica II</a></li>
<li><a title="Tutorial JSFL - Introducción a Paneles" href="../category/2009/04/24/tutorial-jsfl-introduccion-a-paneles/" target="_blank">Tutorial JSFL – Introducción a Paneles</a></li>
<li><a title="Tutorial JSFL - Panel Auto Save" href="../category/2009/06/28/tutorial-jsfl-panel-auto-save/" target="_blank">Tutorial JSFL – Panel Auto Save</a></li>
<li><a title="Tutorial JSFL - Guardar copia FLA 1/2 (comando)" href="../category/2009/07/05/tutorial-jsfl-guardar-copia-fla-12-comando/" target="_blank">Tutorial JSFL – Guardar copia FLA 1/2 (comando)</a></li>
<li><a title="Tutorial JSFL - Introducción a herramientas (tools)" href="../2009/07/17/tutorial-jsfl-introduccion-herramientas-tools/" target="_blank">Tutorial JSFL – Introducción a herramientas (tools)</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.nomeva.com/2009/11/11/tutorial-jsfl-localizacion-de-contenidos-comando/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Un nuevo comienzo y diseño</title>
		<link>http://www.nomeva.com/2009/10/31/un-nuevo-comienzo-y-diseno/</link>
		<comments>http://www.nomeva.com/2009/10/31/un-nuevo-comienzo-y-diseno/#comments</comments>
		<pubDate>Sat, 31 Oct 2009 12:42:42 +0000</pubDate>
		<dc:creator>Luis Adrián</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.nomeva.com/?p=441</guid>
		<description><![CDATA[Bueno, bienvenidos nuevamente a nomeva, hace tiempo que no escribo, esto es por varios motivos, me he cambiado de casa, he estado sin internet, he formateado los ordenadores, me he cambiado de hosting, he tenido problemas con la migración del wordpress de un sitio al otro. Y muchas cosas más que me han tenido mareado [...]]]></description>
			<content:encoded><![CDATA[<p>Bueno, bienvenidos nuevamente a <a title="nomeva.com" href="http://www.nomeva.com/" target="_self"><strong>nomeva</strong></a>, hace tiempo que no escribo, esto es por varios motivos, me he cambiado de casa, he estado sin internet, he formateado los ordenadores, me he cambiado de hosting, he tenido problemas con la migración del wordpress de un sitio al otro. Y muchas cosas más que me han tenido mareado de una u otra manera.</p>
<p>También tengo que decir que todo este jaleo que se presentó en el <a title="Flash on the beach" href="http://www.flashonthebeach.com/" target="_blank"><strong>FOTB</strong></a> y que luego siguió creciendo en el <a title="Adobe MAX" href="http://max.adobe.com/" target="_blank"><strong>MAX</strong></a> (Resúmenes <strong><a title="Adobe Max Keynote 1 - Cristalab" href="http://www.cristalab.com/blog/el-primer-keynote-del-adobe-max-2009-c79530l/" target="_blank">keynote 1</a></strong>, <strong><a title="Adobe Max Keynote 2 - Cristalab" href="http://www.cristalab.com/blog/segundo-keynote-del-adobe-max-2009-c79567l/" target="_blank">keynote 2</a></strong> y <strong><a title="Adobe Max Keynote 3 - Cristalab" href="http://www.cristalab.com/blog/tercer-dia-del-adobe-max-2009-c79659l/" target="_blank">keynote 3</a></strong>) y que ahora sigue dando vueltas en otros tantos eventos, han hecho que me mantenga con las antenas bien sincronizadas para saber que pasa y hacia donde vamos. Me refiero a <strong><a title="Adobe Flash CS5" href="http://www.cristalab.com/blog/primeros-datos-oficiales-sobre-adobe-flash-cs5-c79091l/" target="_blank">Flash CS5</a></strong>, <strong><a title="Flash Player 10.1" href="http://www.blocketpc.com/2009/10/07/flash-player-10-1-llegara-a-todas-partes/" target="_blank">Flash Player 10.1</a></strong>, <strong><a title="Adobe AIR" href="http://blogs.adobe.com/air/" target="_blank">AIR 2</a></strong> y todas estas noticias que nos han contado, presentado, expuesto y que ahora somos nosotros los usuarios los que le estamos haciendo eco a las noticias y sobre todo escribiendo nuestros puntos de vista, pues hasta no tener, jugar, probar y desarrollar en serio con estas tecnologías todo lo demás son suposiciones.</p>
<p><strong>Flash</strong> y <strong>iPhone</strong>, hace poco escribí mi sensación con respecto a este tema, ahora se desata una <strong>polémica</strong> muy importante con respecto dicha relación, pues <strong>Adobe</strong> ha desarrollado … a ver seamos francos que os voy a contar que todavía no hayáis leido en tantos sitios que se trata el tema, sobre todo recomiendo estas dos lecturas para tener <strong><a title="Aplicaciones Flash para iPhone - Q-Interactiva" href="http://www.q-interactiva.com/blog/2009/10/aplicaciones-flash-para-iphone/" target="_blank">una visión más allá del marketing</a></strong> y ver el tema como <strong><a title="My thoughts on Flash CS5 and iPhone - Bit 101" href="http://www.bit-101.com/blog/?p=2410" target="_blank">desarrolladores y empresarios</a> </strong>y no quedarnos con el &#8220;&#8221;guauuuuu&#8221;.</p>
<p>He conocido gracias al señor <strong><a title="Armando Sotoca en Twitter" href="http://twitter.com/skeku" target="_blank">@skeku</a></strong> <strong><a title="Twitter, alguien no lo conoce?" href="http://twitter.com/" target="_blank">Twitter</a></strong>, una herramienta de los más potente y de la que sigo aprendiendo día a día, esto del <strong>microbloggin</strong> me tiene enganchado, es como estar conenctado todo el día, ves el progreso de las noticias, los eventos, los desarrollos, en muchísimas ocasiones te enteras antes que en la web (ya no digo los medios tradicionales), te permite estar muy cerca de tus contactos y comunicarte con ellos a una velocidad sorprendente (vale, el teléfono quizá es más rápido y directo, pero eso corta el rollo, jejeje, <img src='http://www.nomeva.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> ).</p>
<p><strong>Twitter</strong> es muy adictivo y cuesta trabajo decidir a quien seguir y a quien no, porque al principio quieres seguir a todos, luego viene lo de utilizar un <strong>cliente</strong> para poder seguir los <strong>tweets</strong> más comodamente, ver/subir imágenes, acortadores de URL&#8217;s y muchísimas cosas más. Es sorprendente todo lo que cabe en <strong>140 caracteres</strong>, pero de verdad que es sorprendente.</p>
<p>Ahora si, ya dejando de lado mi emoción por el tema de <strong>Twitter</strong>, las novedades de <strong>Adobe Flash</strong>, el cotilleo entre la relación <strong>Flash</strong> &#8211; <strong>iPhone</strong> y mi vida personal, entremos en tema.</p>
<p>En un principio empecé a escribir este blog por que un <strong><a title="Joan Garcia Camba" href="http://www.joan-garcia.com/" target="_blank">buen amigo</a></strong> me lo regaló, luego descubrí que me gustaba escribir y me lo pasaba bien contando mis aventuras y compartiendo códigos, y al final he conseguido durante poco más de un año mantener más o menos activo el blog. Ahora llega el momento de una de dos, o me lo tomo en serio y sigo pero haciendo las cosas bien o lo dejo. Entonces, claro, cómo no puede ser de otra forma, jejeje, decido <strong>seguir</strong>, así es que de las primeras cosas que tengo en mente es organizar mejor el contenido, luego seguir con los tutoriales, <span style="text-decoration: line-through;">cambiar el tema, jejeje, que es el primero que encontré, ahora buscaré mejor o sino me lo desarrollaré</span>, jejeje, una de las primeras cosas que me había propuesto en esta nueva etapa, ya está hecha <img src='http://www.nomeva.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> .</p>
<p>Otra noticia importante es que quiero crear nuevas categorías, pero eso lo dejo como sorpresa, <img src='http://www.nomeva.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> .</p>
<p>Pues eso, de momento nada más, así es que seguiré dando lata un rato más.</p>
<p>Saludos!!!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nomeva.com/2009/10/31/un-nuevo-comienzo-y-diseno/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Reflexión sobre Flash, iPhone y Android</title>
		<link>http://www.nomeva.com/2009/09/07/reflexion-sobre-flash-iphone-y-android/</link>
		<comments>http://www.nomeva.com/2009/09/07/reflexion-sobre-flash-iphone-y-android/#comments</comments>
		<pubDate>Mon, 07 Sep 2009 20:17:44 +0000</pubDate>
		<dc:creator>Luis Adrián</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Interactividad]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[reflexion]]></category>

		<guid isPermaLink="false">http://www.nomeva.com/?p=429</guid>
		<description><![CDATA[
Esta reflexión surge por un sentimiento, una sensación, un pinchazo interior y las cosquillas o la curiosidad de las nuevas tecnologías y sobre todo la interactividad. También tiene mucho que ver con el actual movimiento que existe en la red sobre el futuro de Flash y el panorama que se vive y se ve venir. [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://www.nomeva.com/wp-content/uploads/2009/09/reflexion_flash_iphone_android.jpg"><img class="aligncenter size-full wp-image-431" title="reflexion flash iphone android" src="http://www.nomeva.com/wp-content/uploads/2009/09/reflexion_flash_iphone_android.jpg" alt="reflexion flash iphone android" width="500" height="280" /></a></p>
<p>Esta reflexión surge por un sentimiento, una sensación, un pinchazo interior y las cosquillas o la curiosidad de las nuevas tecnologías y sobre todo la <strong>interactividad</strong>. También tiene mucho que ver con el actual movimiento que existe en la red sobre el futuro de <strong><a title="Adobe Flash Professional" href="http://www.adobe.com/es/products/flash/" target="_blank">Flash</a></strong> y el <strong>panorama</strong> que se vive y se ve venir. Algunos post interesantes que tratan más o menos el tema que quiero hablar se pueden leer <a title="¿Cual crees que sea el futuro de Flash y Actionscript?" href="http://www.cristalab.com/blog/cual-crees-que-sea-el-futuro-de-flash-y-actionscript-c77283l/" target="_blank">aquí</a> y <a title="Los 7 mitos contra Flex" href="http://www.cristalab.com/blog/los-7-mitos-contra-flex-c78274l/" target="_blank">aquí</a>.</p>
<p>Pero esta reflexión es mía así que además de tener en cuenta todos los factores que en esos post se habla tendremos en cuenta sobre todo las respuestas que he dado al planteamiento hecho por <a title="Charly García" onclick="javascript:pageTracker._trackPageview('/outbound/article/es.wikipedia.org');" href="http://es.wikipedia.org/wiki/Charly_Garc%C3%ADa" target="_blank"><strong>Charly García</strong></a> en <em><a title="Charly García - Deberías saber por qué" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.youtube.com');" href="http://www.youtube.com/watch?v=jONhyQSAsKM" target="_blank">deberías saber por qué</a> </em><span>(la camiseta que me pongo es la de <strong>Flashero</strong>)</span>.</p>
<h1>HISTORIA</h1>
<p>Haciendo un poco de historia para remontarnos a los orígenes o por lo menos a mis <strong>orígenes</strong> <strong>Flasheros</strong> tengo que hablar sobre el bachillerato y la universidad, ayyy aquellos tiempos donde todo lo que <strong>importaba</strong> era <strong>aprender</strong> y sacar buenas notas (jejeje, creo que no ha cambiado tanto, ahora <strong>sigue siendo aprender </strong>y sacar buenos proyectos XD), bueno, como iba diciendo, en aquellos tiempo lo que conocía era <strong>Pascal</strong>, <strong>C</strong>, <strong>Java</strong>, <strong>HTML</strong> y con el tiempo descubrí <strong>Delphi</strong>, <strong>Visual C++</strong>, <strong>FrontPage</strong> (si, tengo que decirlo porque es la verdad, jejeje), <strong>php</strong> y <strong>Javascript</strong>, hasta aquí no dejaba de ser programación pura y dura, existía una mezcla entre el front-end y el back-end, la lógica y la presentación de nuestra aplicación. Pero un día, gracias a un proyecto y aun gran amigo, se mostró ante mis ojos algo que cambiaría para siempre mi vida, la <strong>interactividad</strong>, las <strong>herramientas de dibujo</strong>, las <strong>líneas de tiempo</strong>, los <strong>símbolos</strong> (gráfico, clip de película y botón) y de la noche a la mañana me olvidé completamente de todo lo demás para hacerle un gran hueco en mi cabeza a esa preciosa aplicación que acababa de conocer, <a title="Adobe Flash Professional" href="http://www.adobe.com/es/products/flash/" target="_blank"><strong>Flash</strong></a>.</p>
<h1>MOTIVOS</h1>
<p>Supongo que cada quien tendrá sus motivos, los míos son los siguientes:</p>
<ul>
<li>la facilidad de desarrollo</li>
<li>un entorno de diseño</li>
<li>el alto nivel de interactividad que se podía conseguir</li>
<li>un lenguaje de programación basado en el modelo de eventos</li>
<li>animaciones chulas por código (easing y demás)</li>
<li>reproducción de sonidos</li>
<li>reproducción de videos (si, era posible en aquella época, aunque muy pesado)</li>
<li>cargar y actualizar contenidos sin tener que actualizar la página</li>
</ul>
<p>Todo esto me enamoró y desde ese momento hasta la fecha seguimos felizmente casados.</p>
<h1>ACTUALIDAD</h1>
<p>Hoy en día han cambiado tanto las tecnologías, se han desarrollado <strong>frameworks</strong> sobre todo con Javascript, existe <strong>AJAX</strong>, entornos de desarrollo de alto nivel con los cuales hay que programar muy poco, por ejemplo <strong>Dreamweaver</strong> facilita enormemente la vida a diseñadores y desarrolladores, <strong>HTML 5</strong> quiere (pero yo la verdad lo veo difícil) utilizar una etiqueta <strong><a title="Tag VIDEO" href="http://www.w3schools.com/tags/html5_video.asp" target="_blank">VIDEO</a></strong> con lo cual una pieza importante de Flash empieza a moverse (no, estoy de acuerdo, aunque lo leo muy a menudo y mucha gente habla así de esto, pero y que pasa con <strong><a title="Red5" href="http://osflash.org/red5" target="_blank">Red5</a></strong> y <strong><a title="Flash Media Server" href="http://www.adobe.com/es/products/flashmediaserver/" target="_blank">Flash Media Server</a></strong>, que hace <strong>HTML</strong> contra eso) y algunas cosas más que de alguna forma y otra han hecho a muchas personas plantearse la <strong>tecnología</strong> a <strong>utilizar</strong> en sus <strong>desarrollos</strong>.</p>
<h1>MI ACTUALIDAD</h1>
<p>Desde que me enamoré hasta ahora hemos pasado por muchas actualizaciones y nuevas versiones, se desarrollo e implementó <strong>ActionScript 2, ActionScript 3, Flex, Flash Lite</strong> y todo esto me encantó, pero volviendo a mis motivos principales, siento que en <strong>esencia</strong> la herramienta <strong>no ha cambiado</strong> mucho.</p>
<h1>FRUSTRACIÓN</h1>
<p>En mi caso, y este caso se puede extrapolar a muchos casos más que he podido comprobar hablando con mucha gente y leyendo por aquí o por allá, sigo desarrollando con <strong>ActionScript 2</strong>, por limitaciones muy importante y es que nuestros cliente (empresas grandes como bancos y farmacéuticas entre otros) no tienen en todos sus puestos de trabajo estandarizado un reproductor de Flash avanzado, así es que actualmente desarrollo para <strong>Flash Player 7</strong>. Otro factor muy importante es la <strong>interactividad</strong> que se puede conseguir a través de la <strong>cámara</strong> o el <strong>micrófono</strong>, pero al final pasa lo mismo que el player, los usuarios finales no lo tienen con lo cual hay que hacer desarrollos que funcionen en el 100% de los puestos de trabajo, o sea que otro <img src='http://www.nomeva.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> .</p>
<h1>ROMANCE FUERA DEL MATRIMONIO</h1>
<p>He conocido a un par de chicas muy atractivas últimamente, me quieren, me invitan a salir, comparten y coquetean conmigo con todas sus funcionalidades apasionantes, han podido mostrar al mundo unas cuantas cositas a tener en cuenta:</p>
<ul>
<li>acelerómetro</li>
<li>gps</li>
<li>brújula</li>
<li>facilidad de uso e interacción con el micrófono</li>
<li>facilidad de uso e interacción con la cámara</li>
</ul>
<p>Esto es lo que me ofrecen <strong><a title="iPhone SDK" href="http://developer.apple.com/iphone/" target="_blank">iPhone SDK</a></strong> y <strong><a title="Android SDK" href="http://developer.android.com/sdk/1.5_r3/index.html" target="_blank">Android SDK</a></strong> sobre lo que ya tengo con <a title="Adobe Flash Professional" href="http://www.adobe.com/es/products/flash/" target="_blank"><strong>Flash</strong></a>, pero un factor <strong>importantísimo</strong> que es indudablemente una curva que te deja viendo estrellitas y pensando en ella todo el día es la perfecta <strong>combinación</strong> entre <strong>hardware</strong> y <strong>software</strong>, ya que no hay que luchar contra extrañas características de equipos o altos y bajos rendimientos, existe un muy alto control de calidad que nos garantiza la perfecta funcionalidad de nuestros desarrollos en los dispositivos finales.</p>
<h1>VISITAS FUERA DE CASA</h1>
<p>He visitado y jugado un poco con estos SDK&#8217;s y la verdad es que la <strong>experiencia</strong> ha sido <strong>muy grata</strong>, pues están muy completos y sobre todo cuentan con una base muy sólida para empezar a desarrollar, cosa que en principio flash no tiene por defecto. Pero sobre todo lo que me tiene más inquieto y <strong>feliz</strong> (pienso en ella todo el día), es la nueva <strong>interactividad</strong> que se consigue con estos dispositivos.</p>
<h1>CONCLUSIÓN</h1>
<p>Cada quién hace las cosas por los motivos que lo han llevado a ello, en mi caso lo he expuesto arriba y creo que como toda relación hay que mantenerse activos y de vez en cuando hacer regalitos, dar sorpresas, sonreir y aprender juntos ante lo que la vida nos pone o tomar al toro por lo cuernos y vivir aventuras, pero creo que mi relación con Flash lleva un tiempo de monotonía por los motivos que he expuesto aquí. Con todo esto no quiero decir que me voy a ir a desarrollar con otro lenguaje (que ya lo estoy haciendo) sino que simplemente quiero <strong>compartir</strong> esta <strong>reflexión</strong> porque creo que algo importante a <strong>tener en cuenta </strong>en el <strong>panorama</strong> que se vive.</p>
<p>Entiendo que no todos pensamos igual y que habrá personas que verán las cosas desde otro punto de vista, así que cualquier comentario será bienvenido.</p>
<p>Saludos!!!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nomeva.com/2009/09/07/reflexion-sobre-flash-iphone-y-android/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Subflash 2009 &#8211; Fotos y más</title>
		<link>http://www.nomeva.com/2009/09/04/subflash-2009-fotos-y-mas/</link>
		<comments>http://www.nomeva.com/2009/09/04/subflash-2009-fotos-y-mas/#comments</comments>
		<pubDate>Fri, 04 Sep 2009 09:41:27 +0000</pubDate>
		<dc:creator>Luis Adrián</dc:creator>
				<category><![CDATA[Eventos]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[fotos]]></category>
		<category><![CDATA[Subflash]]></category>

		<guid isPermaLink="false">http://www.nomeva.com/?p=418</guid>
		<description><![CDATA[Bueno ahora si ya con más calma puedo escribir otro poco sobre el Subflash, cuando le cuento a la gente las cosas que se viven ahí no me lo creen, así que para dar fé de ello a continuación podréis ver algunas fotos que son la evidencia fotográfica de todo cuanto se dice de Subflash.
Poner [...]]]></description>
			<content:encoded><![CDATA[<p>Bueno ahora si ya con más calma puedo escribir otro poco sobre el <strong><a title="Talleres de veranoz Subflash 2009" href="http://www.subflash.com/2009/06/talleres-de-verano-2009/" target="_blank">Subflash</a></strong>, cuando le cuento a la gente las cosas que se viven ahí no me lo creen, así que para dar fé de ello a continuación podréis ver algunas fotos que son la evidencia fotográfica de todo cuanto se dice de Subflash.</p>
<p>Poner atención a esta pequeña selección donde se puede ver un poco de todo, la convivencia, la <strong>felicidad</strong> de los asistentes, los <strong>frikis</strong> que son pues no dejan el ordenador, las <strong>comidas </strong>acompañados de <strong>grandes personajes</strong> del mundo digital, el encuentro de <strong>fútbol</strong>, la llegada de uno que de verdad ama a Subflash, nuestro querido <a title="Flash-db de Jorge Solis" href="http://www.flash-db.com/" target="_blank"><strong>Jorge Solis</strong></a> que vino desde Argentina (jejeje, cuestiones de trabajo decía <img src='http://www.nomeva.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> ) y como decía <strong><a title="Alex" href="http://www.electroduendes.com/" target="_blank">Alex</a></strong>:</p>
<blockquote><p><a title="Talleres de veranoz Subflash 2009" href="http://www.subflash.com/2009/06/talleres-de-verano-2009/" target="_blank">Subflash</a> se lleva <strong>dentro</strong> del <strong>corazón</strong></p></blockquote>
<p><a href="http://www.nomeva.com/wp-content/uploads/2009/09/se_les_nota_lo_bien_que_lo_pasan.jpg"><img class="size-thumbnail wp-image-424  alignnone" title="Se les nota lo bien que lo pasan" src="http://www.nomeva.com/wp-content/uploads/2009/09/se_les_nota_lo_bien_que_lo_pasan-150x150.jpg" alt="Se les nota lo bien que lo pasan" width="150" height="150" /> </a><a href="http://www.nomeva.com/wp-content/uploads/2009/09/los_frikis.jpg"><img class="size-thumbnail wp-image-423  alignnone" title="Los frikis que no pueden dejar los ordenadores" src="http://www.nomeva.com/wp-content/uploads/2009/09/los_frikis-150x150.jpg" alt="Los frikis que no pueden dejar los ordenadores" width="150" height="150" /></a><a href="http://www.nomeva.com/wp-content/uploads/2009/09/siempre_unidos.jpg"><img class="size-thumbnail wp-image-421 alignnone" title="Siempre unidos" src="http://www.nomeva.com/wp-content/uploads/2009/09/siempre_unidos-150x150.jpg" alt="Siempre unidos" width="150" height="150" /> </a><a href="http://www.nomeva.com/wp-content/uploads/2009/09/si_hay_futbol_no_solo_ordenadores.jpg"><img class="size-thumbnail wp-image-427 alignnone" title="Si hay fútbol, no solo ordenadores" src="http://www.nomeva.com/wp-content/uploads/2009/09/si_hay_futbol_no_solo_ordenadores-150x150.jpg" alt="Si hay fútbol, no solo ordenadores" width="150" height="150" /> </a><a href="http://www.nomeva.com/wp-content/uploads/2009/09/si_existen_y_son_personas.jpg"><img class="size-thumbnail wp-image-426 alignnone" title="Si existen y son personas" src="http://www.nomeva.com/wp-content/uploads/2009/09/si_existen_y_son_personas-150x150.jpg" alt="Si existen y son personas" width="150" height="150" /></a><a href="http://www.nomeva.com/wp-content/uploads/2009/09/se_lleva_en_el_corazon.jpg"> <img class="size-thumbnail wp-image-425 alignnone" title="Se lleva en el corazon" src="http://www.nomeva.com/wp-content/uploads/2009/09/se_lleva_en_el_corazon-150x150.jpg" alt="Se lleva en el corazon" width="150" height="150" /></a></p>
<p>He colgado de <strong><a title="Fotos de Subflash 2009" href="http://picasaweb.google.com/supremo.tata/Subflash2009SanVicenteDelRaspeig#" target="_blank"><strong>picasa</strong></a></strong> las fotos que hice este años del Subflash, así que ahí pueden ver el resto de la historia.</p>
<p>Saludos!!!</p>
<ul>
<li><a title="Fotos de Subflash 2009" href="http://picasaweb.google.com/supremo.tata/Subflash2009SanVicenteDelRaspeig#" target="_blank"><strong>Fotos de Subflash 2009</strong></a></li>
<li><strong><a title="Subflash 2009 - Vivencias, cotilleos y más" href="http://www.nomeva.com/2009/09/01/subflash-2009-vivencias-cotilleos-y-mas/" target="_blank">Subflash 2009 &#8211; Vivencias, cotilleos y más</a><br />
</strong></li>
<li><a title="Fotos de Subflash 2008" href="http://picasaweb.google.com/supremo.tata/TalleresSubFlah08#" target="_blank"><strong>Fotos de Subflash 2008</strong></a></li>
<li><strong><a title="Subflash 2008, vivencias, recuerdos, aventuras y mucho más" href="http://www.nomeva.com/2008/09/03/subflash-2008-vivencias/" target="_blank">Subflash 2008, vivencias, recuerdos, aventuras y mucho más</a><br />
</strong></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.nomeva.com/2009/09/04/subflash-2009-fotos-y-mas/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
