<?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 &#187; herramienta</title>
	<atom:link href="http://www.nomeva.com/tag/herramienta/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>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
		<item>
		<title>Tutorial JSFL &#8211; Introducción a herramientas (tools)</title>
		<link>http://www.nomeva.com/2009/07/17/tutorial-jsfl-introduccion-herramientas-tools/</link>
		<comments>http://www.nomeva.com/2009/07/17/tutorial-jsfl-introduccion-herramientas-tools/#comments</comments>
		<pubDate>Fri, 17 Jul 2009 15:09:38 +0000</pubDate>
		<dc:creator>Luis Adrián</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[JSFL]]></category>
		<category><![CDATA[Tutoriales]]></category>
		<category><![CDATA[extension]]></category>
		<category><![CDATA[herramienta]]></category>
		<category><![CDATA[mxp]]></category>
		<category><![CDATA[tablas]]></category>
		<category><![CDATA[tables]]></category>
		<category><![CDATA[tool]]></category>

		<guid isPermaLink="false">http://www.nomeva.com/?p=389</guid>
		<description><![CDATA[Este es un post que tenía pendiente desde hace tiempo, en esta ocasión voy a hablar sobre las herramientas (tools) de Flash y de como personalizarlas o como es nuestro caso crear una nueva herramienta con JSFL. INTRODUCCIÓN Recuerdo en los tiempos de Flash 4 que fué cuando empecé con Flash que por comodidad y [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-390" title="lego briks" src="http://www.nomeva.com/wp-content/uploads/2009/07/lego_briks.jpg" alt="lego briks" width="290" height="190" /></p>
<p>Este es un post que tenía pendiente desde hace tiempo, en esta ocasión voy a hablar sobre las <strong>herramientas</strong> (tools) de <strong>Flash</strong> y de como personalizarlas o como es nuestro caso crear una nueva herramienta con <strong>JSFL</strong>.</p>
<h1>INTRODUCCIÓN</h1>
<p>Recuerdo en los tiempos de <strong>Flash 4</strong> que fué cuando empecé con <strong>Flash</strong> que por comodidad y sobre todo por desconocimiento de la aplicación, quería hacer <strong>tablas</strong> en <strong>Flash</strong> y por mucho que busqué no encontré una herramienta que me sirviera para esto, así que al final aprendí a utilizar las <strong>herramientas de dibujo</strong> y a través de cuadros y líneas con las herramientas <strong>rectángulo</strong> y <strong>trazo</strong> conseguí hacer las tablas que quería, luego con el tiempo descubrí el panel alineación y distribución y con eso perfeccioné la tarea y me fué más fácil hacer estas tablas.</p>
<p>Bueno, pues la idea es que vamos a crear una herramienta para crear tablas de una manera fácil como si de rectángulos se tratara.</p>
<h1>DESARROLLO</h1>
<p><strong>JSFL</strong> nos permite extender la funcionalidad de la aplicación, como <a title="JSFL en nomeva.com" href="http://www.nomeva.com/category/jsfl/" target="_blank"><strong>hemos hablado</strong></a> ya en otras ocasiones, lo podemos hacer <strong>con </strong><a title="Tutorial JSFL - Introducción a comandos" href="http://www.nomeva.com/2008/09/26/tutorial-jsfl-introduccion-a-comando/" target="_blank"><strong>comandos</strong></a> y <a title="Tutorial JSFL - Introducción a paneles" href="http://www.nomeva.com/2009/04/24/tutorial-jsfl-introduccion-a-paneles/" target="_blank"><strong>paneles</strong></a>, pero también existe otro modo de extender y automatizar procesos, me refiero a la creación de herramientas.</p>
<p>Las herramientas al igual que los comandos y paneles se programan con <strong><a title="JSFL en nomeva.com" href="http://www.nomeva.com/category/jsfl/" target="_blank">JSFL</a> </strong>y se almacenan en las siguiente rutas respectivamente por sistema operativo:</p>
<ul>
<li><strong>Windows Vista</strong></li>
</ul>
<p><em>unidad de arranque</em>\Users\<em>nombre de usuario</em>\Local Settings\Application Data\Adobe\Flash<br />
<strong></strong></p>
<p>CS4\<em>idioma</em>\Configuration\Tools<span> </span></p>
<ul>
<li><strong>Windows XP</strong></li>
</ul>
<p><em>unidad de arranque</em>\Documents and Settings\<em>usuario</em>\Local Settings\Application Data\Adobe\Flash<br />
<strong></strong></p>
<p>CS4\<em>idioma</em>\Configuration\Tools<span> </span></p>
<ul>
<li><strong>Mac OS X</strong></li>
</ul>
<p>Macintosh HD/Usuarios/<em>nombre de usuario</em>/Librería/Application Support/Adobe/Flash</p>
<p><strong></strong></p>
<p>CS4/<em>idioma</em>/Configuration/Tools</p>
<p>A diferencia de los comandos y los paneles en las herramientas tenemos acceso a funciones y métodos de nivel superior que nos ayudan a desarrollar y controlar el estado de nuestra herramienta, las funciones disponibles son las siguiente:</p>
<ul>
<li> activate()</li>
<li> configureTool()</li>
<li> deactivate()</li>
<li> keyDown()</li>
<li> keyUp()</li>
<li> mouseDoubleClick()</li>
<li> mouseDown()</li>
<li> mouseMove()</li>
<li> mouseUp()</li>
<li> notifySettingsChanged()</li>
<li> setCursor()<span> </span></li>
</ul>
<p>Las que utilizaremos para la creación de la herramienta <strong>tablas</strong> serán, <strong><a title="Función activate" href="http://help.adobe.com/es_ES/Flash/10.0_ExtendingFlash/WS5b3ccc516d4fbf351e63e3d118a9024f3f-7765.html" target="_blank">activate</a></strong> que se dispara cuando la herramienta es seleccionada por el usuario, <strong><a title="Función deactivate" href="http://help.adobe.com/es_ES/Flash/10.0_ExtendingFlash/WS5b3ccc516d4fbf351e63e3d118a9024f3f-7760.html" target="_blank">deactivate</a></strong> que se dispara cuando el usuario cambia a otra herramienta, <strong><a title="Función notifySettingsChanged" href="http://help.adobe.com/es_ES/Flash/10.0_ExtendingFlash/WS5b3ccc516d4fbf351e63e3d118a9024f3f-7758.html" target="_blank">notifySettingsChanged</a></strong> que se dispara cuando el usuario modifica las propiedades de nuestra herramienta, <strong><a title="Función mouseDown" href="http://help.adobe.com/es_ES/Flash/10.0_ExtendingFlash/WS5b3ccc516d4fbf351e63e3d118a9024f3f-775b.html" target="_blank">mouseDown</a></strong>, <strong><a title="Función mouseMove" href="http://help.adobe.com/es_ES/Flash/10.0_ExtendingFlash/WS5b3ccc516d4fbf351e63e3d118a9024f3f-775a.html" target="_blank">mouseMove </a></strong>y <strong><a title="Función mouseUp" href="http://help.adobe.com/es_ES/Flash/10.0_ExtendingFlash/WS5b3ccc516d4fbf351e63e3d118a9024f3f-7759.html" target="_blank">mouseUp</a></strong> que se disparan cuando el usuario hace lo que el nombre de la función dice <img src='http://www.nomeva.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> . Esto con respecto a los <strong>eventos</strong> para controlar nuestra herramienta.</p>
<h3>Pero ¿cómo accedemos a la herramienta?</h3>
<p>Pues fácil, como todo en JSFL son objetos necesitamos obtener la referencia a la herramienta activa que será nuestra herramienta, esto lo hacemos con la propiedad <strong><a title="Propiedad activeTool" href="http://help.adobe.com/es_ES/Flash/10.0_ExtendingFlash/WS5b3ccc516d4fbf351e63e3d118a9024f3f-7f18.html" target="_blank">activeTool</a></strong> del objeto <strong><a title="Objeto Tools" href="http://help.adobe.com/es_ES/Flash/10.0_ExtendingFlash/WS5b3ccc516d4fbf351e63e3d118a9024f3f-7fec.html" target="_blank">tools</a></strong>, en el ejemplo siguiente se muestra como obtener una referencia a la herramienta.</p>
<pre lang="javascript">theTool = fl.tools.activeTool;</pre>
<h3>Guay, ¿Y para qué quiero tener una referencia al objeto herramienta?</h3>
<p>Pues para asignar a nuestra herramienta nombre, tooltip, icono, opciones, especificar el tipo para el inspector de propiedades por ejemplo y muchas más cosas. Como se muestra a continuación.</p>
<pre lang="javascript">// Set the standard tool information
theTool = fl.tools.activeTool;
theTool.setToolName("Tablas");
theTool.setIcon("Tablas.png");
theTool.setMenuString("Herramienta Tablas");
theTool.setToolTip("Herramienta Tablas");
theTool.setOptionsFile("Tablas.xml");

// This tool uses the Shape property inspector
theTool.setPI( "shape" );</pre>
<h3>Vale, vale, ya me entero, pero ¿Cómo dibujo?</h3>
<p>Ah, muy cierto, pues para pintar / dibujar debemos hacer una nota importante y es que tenemos dos momento de dibujo:</p>
<ul>
<li>El momento de la previsualización</li>
<li>El momento del dibujo final</li>
</ul>
<p>Para el momento de la pre-visualización utilizaremos el objeto <a title="Objeto drawingLayer" href="http://help.adobe.com/es_ES/Flash/10.0_ExtendingFlash/WS5b3ccc516d4fbf351e63e3d118a9024f3f-7ff6.html" target="_blank"><strong>drawingLayer</strong></a> y sus métodos <strong><a title="Método moveTo del objeto drawingLayer" href="http://help.adobe.com/es_ES/Flash/10.0_ExtendingFlash/WS5b3ccc516d4fbf351e63e3d118a9024f3f-7c61.html" target="_blank">moveTo</a></strong> y <strong><a title="Método lineTo del objeto drawingFrame" href="http://help.adobe.com/es_ES/Flash/10.0_ExtendingFlash/WS5b3ccc516d4fbf351e63e3d118a9024f3f-7c62.html" target="_blank">lineTo</a></strong> que son idénticos a los que utilizamos en la API de dibujo de ActionScript y los método <strong><a title="Método beginFrame del objeto drawingLayer" href="http://help.adobe.com/es_ES/Flash/10.0_ExtendingFlash/WS5b3ccc516d4fbf351e63e3d118a9024f3f-7c62.html" target="_blank">beginFrame</a></strong> y <strong><a title="Método endFrame del objeto drawingLayer" href="http://help.adobe.com/es_ES/Flash/10.0_ExtendingFlash/WS5b3ccc516d4fbf351e63e3d118a9024f3f-7c64.html" target="_blank">endFrame</a> </strong>para indicar el incio y el fin del dibujo de la pre-visualización. Por ejemplo, con el siguiente código dibujaríamos un cuadro de 20&#215;20 en 0, 0:</p>
<pre lang="javascript">fl.drawingLayer.beginFrame();
fl.drawingLayer.moveTo(0, 0);
fl.drawingLayer.lineTo(20, 0);
fl.drawingLayer.lineTo(20, 20);
fl.drawingLayer.lineTo(0, 20);
fl.drawingLayer.lineTo(0, 0);
fl.drawingLayer.endFrame();</pre>
<p>Y para el momento del dibujo final utilizaremos también el objeto <a title="Objeto drawingLayer" href="http://help.adobe.com/es_ES/Flash/10.0_ExtendingFlash/WS5b3ccc516d4fbf351e63e3d118a9024f3f-7ff6.html" target="_blank"><strong>drawingLayer</strong></a> para crear un objeto <strong><a title="Objeto Path" href="http://help.adobe.com/es_ES/Flash/10.0_ExtendingFlash/WS5b3ccc516d4fbf351e63e3d118a9024f3f-7f3e.html" target="_blank">path</a></strong> con el método <strong><a title="Método newPath del objeto drawingLayer" href="http://help.adobe.com/es_ES/Flash/10.0_ExtendingFlash/WS5b3ccc516d4fbf351e63e3d118a9024f3f-7c5d.html" target="_blank">newPath</a>,</strong> luego utilizaremos los métodos <strong><a title="Método addPoint del objeto Path." href="http://help.adobe.com/es_ES/Flash/10.0_ExtendingFlash/WS5b3ccc516d4fbf351e63e3d118a9024f3f-79d9.html" target="_blank">addPoint</a></strong> y <strong><a title="Método makeShape del objeto Path." href="http://help.adobe.com/es_ES/Flash/10.0_ExtendingFlash/WS5b3ccc516d4fbf351e63e3d118a9024f3f-79d6.html" target="_blank">makeShape</a></strong> para crear nuestro dibujo. Por ejemplo:</p>
<pre lang="javascript">var myPath = fl.drawingLayer.newPath();
myPath.addPoint(0, 20);
myPath.addPoint(20, 20);
myPath.addPoint(20, 0);
myPath.addPoint(0, 0);
myPath.makeShape(false, true);</pre>
<h3>Perfecto, y ahora ¿cómo modifico las propiedades de mi herramienta?</h3>
<p>Vale, para esto debemos recordar que en un principio utilizamos el método <a title="Método setOptionsFile del objeto Tool." href="http://help.adobe.com/es_ES/Flash/10.0_ExtendingFlash/WS5b3ccc516d4fbf351e63e3d118a9024f3f-77f2.html" target="_blank"><strong>setOptionsFile</strong></a> del objeto <strong><a title="Objeto Tool." href="http://help.adobe.com/es_ES/Flash/10.0_ExtendingFlash/WS5b3ccc516d4fbf351e63e3d118a9024f3f-7f33.html" target="_blank">tool</a></strong> donde indicamos un fichero xml, este fichero xml contiene la definición de las propiedades que utilizaremos en la herramienta. Por ejemplo para la herramienta tabla, utilizo dos propiedades <strong>nColumns</strong> y <strong>nRows</strong>. Un ejemplo del fichero xml de configuración es el siguiente:</p>
<pre lang="xml">property name="Columnas: " variable="nColumns" min="1" max="100" defaultValue="3" type="Number"
property name="Filas: " variable="nRows" min="1" max="100" defaultValue="3" type="Number"</pre>
<p>Cuando el usuario modifique estos valores en el panel de propiedades se nos notificará en el evento (la función) <strong><a title="Función notifySettingsChanged" href="http://help.adobe.com/es_ES/Flash/10.0_ExtendingFlash/WS5b3ccc516d4fbf351e63e3d118a9024f3f-7758.html" target="_blank">notifySettingsChanged</a><span style="font-weight: normal;">. Un ejemplo de como utilizar los valores modificados es el siguiente:</span></strong></p>
<pre lang="javascript">function notifySettingsChanged()
{
	var theTool = fl.tools.activeTool;

	this.nColumns = theTool.nColumns;
	this.nRows = theTool.nRows;
}</pre>
<p><strong><span style="font-weight: normal;">Y listo, con esto ya tenemos controladas todas las fases del diseño de una herramienta.</span></strong></p>
<h1>EJEMPLOS</h1>
<p>A continuación un par de ejemplos de lo que podemos conseguir de una manera sencilla con esta herramienta.</p>
<p style="text-align: center;"><a href="http://www.nomeva.com/wp-content/uploads/2009/07/imagen-2.png"><img class="aligncenter size-thumbnail wp-image-392" title="Ejemplo 1 Herramienta Tablas" src="http://www.nomeva.com/wp-content/uploads/2009/07/imagen-2-300x187.png" alt="Ejemplo 1 Herramienta Tablas" width="300" height="187" /></a></p>
<p><a href="http://www.nomeva.com/wp-content/uploads/2009/07/imagen-2.png"></a><a href="http://www.nomeva.com/wp-content/uploads/2009/07/imagen-3.png"><img class="aligncenter size-medium wp-image-393" title="Ejemplo 2 Herramienta Tablas" src="http://www.nomeva.com/wp-content/uploads/2009/07/imagen-3-300x187.png" alt="Ejemplo 2 Herramienta Tablas" width="300" height="187" /></a></p>
<p><img class="aligncenter size-full wp-image-395" title="herramienta tablas" src="http://www.nomeva.com/wp-content/uploads/2009/07/herramienta_tablas.png" alt="herramienta tablas" width="313" height="412" /></p>
<h1>DESCARGAS</h1>
<p>Tenemos dos tipos de descargas, para instalar simplemente la <strong>herramienta</strong> <strong>Tablas</strong> y para descargar el JSFL:</p>
<ul>
<li><a title="Extensión Herramienta Tablas" onclick="javascript:pageTracker._trackPageview('/downloads/tutoriales/jsfl/Escribir_palabra_mxp.zip');" href="http://www.nomeva.com/tutoriales/jsfl/herramienta_tablas.mxp" target="_blank">Extensión</a> <strong>Herramienta Tablas</strong> (instalador mxp).</li>
<li><a title="Herramienta Tablas" href="http://www.nomeva.com/tutoriales/jsfl/herramienta_tablas.zip" target="_blank">Paquete zip</a> con la <strong>Herramienta Tablas</strong> (ficheros jsfl, xml y png).</li>
</ul>
<h1>INSTALACIÓN</h1>
<p>Una vez que se haya instalado la extensión debemos asignarla a un grupo de herramienta desde el panel <strong>Personalizar panel de herramientas</strong> y listo ya se puede utilizar.</p>
<p><a href="http://www.nomeva.com/wp-content/uploads/2009/07/imagen-4.png"><img class="aligncenter size-medium wp-image-394" title="Personalizar panel herramientas" src="http://www.nomeva.com/wp-content/uploads/2009/07/imagen-4-300x127.png" alt="Personalizar panel herramientas" width="300" height="127" /></a></p>
<p>Dudas, sugerencias o comentarios, aquí estaré.</p>
<p>Saludos.</p>
<h3>Entradas relacionadas</h3>
<ul>
<li><a title="Recursos JSFL en nomeva.com" href="http://www.nomeva.com/2008/08/24/recursos-jsfl/" target="_blank">Recursos JSFL</a></li>
<li><a title="Tutorial JSFL - Introducción a comandos" href="http://www.nomeva.com/2008/09/26/tutorial-jsfl-introduccion-a-comando/" target="_blank">Tutorial JSFL &#8211; Introducción a comandos</a></li>
<li><a title="Tutorial JSFL - Comandos con interfaz gráfica" href="http://www.nomeva.com/2008/10/12/tutorial-jsfl-comandos-con-interfaz-grafica/" target="_blank">Tutorial JSFL &#8211; Comandos con interfaz gráfica</a></li>
<li><a title="Tutorial JSFL - Comandos con interfaz gráfica II" href="http://www.nomeva.com/2008/11/09/tutorial-jsfl-comandos-con-interfaz-grafica-ii/" target="_blank">Tutorial JSFL &#8211; Comandos con interfaz gráfica II</a></li>
<li><a title="Tutorial JSFL - Introducción a Paneles" href="http://www.nomeva.com/2009/04/24/tutorial-jsfl-introduccion-a-paneles/" target="_blank">Tutorial JSFL &#8211; Introducción a Paneles</a></li>
<li><a title="Tutorial JSFL - Panel Auto Save" href="http://www.nomeva.com/2009/06/28/tutorial-jsfl-panel-auto-save/" target="_blank">Tutorial JSFL &#8211; Panel Auto Save</a></li>
<li><a title="Tutorial JSFL - Guardar copia FLA 1/2 (comando)" href="http://www.nomeva.com/2009/07/05/tutorial-jsfl-guardar-copia-fla-12-comando/" target="_blank">Tutorial JSFL &#8211; Guardar copia FLA 1/2 (comando)</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.nomeva.com/2009/07/17/tutorial-jsfl-introduccion-herramientas-tools/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

