<?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; autosave</title>
	<atom:link href="http://www.nomeva.com/tag/autosave/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.9.1</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>Tutorial JSFL &#8211; Panel Auto Save</title>
		<link>http://www.nomeva.com/2009/06/28/tutorial-jsfl-panel-auto-save/</link>
		<comments>http://www.nomeva.com/2009/06/28/tutorial-jsfl-panel-auto-save/#comments</comments>
		<pubDate>Mon, 29 Jun 2009 06:38:30 +0000</pubDate>
		<dc:creator>Luis Adrián</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[JSFL]]></category>
		<category><![CDATA[Tutoriales]]></category>
		<category><![CDATA[auto guardado]]></category>
		<category><![CDATA[auto save]]></category>
		<category><![CDATA[autoguardado]]></category>
		<category><![CDATA[autosave]]></category>
		<category><![CDATA[mxp]]></category>
		<category><![CDATA[panel]]></category>
		<category><![CDATA[plugin]]></category>

		<guid isPermaLink="false">http://www.nomeva.com/?p=330</guid>
		<description><![CDATA[
Bienvenido querido lector a la sección de tutoriales en nomeva, en esta ocasión vamos a crear con Flash mediante JSFL y ActionScript un Panel que realice la tarea de guardar automáticamente el documento Fla en edición.
NOTA
Puede ser interesante leer antes o después este otro post de Introducción a Paneles para saber qué son, dónde van [...]]]></description>
			<content:encoded><![CDATA[<div><img class="alignnone size-full wp-image-332" title="Memoria USB Lego" src="http://www.nomeva.com/wp-content/uploads/2009/06/usb_lego.jpg" alt="Memoria USB Lego" width="276" height="109" /></div>
<p>Bienvenido querido lector a la sección de <a title="Tutoriales en nomeva.com" href="http://www.nomeva.com/category/tutoriales/" target="_blank"><strong>tutoriales</strong></a> en <a title="nomeva.com" href="http://www.nomeva.com/" target="_blank"><strong>nomeva</strong></a>, en esta ocasión vamos a crear con <a title="Flash en nomeva.com" href="http://www.nomeva.com/category/flash/" target="_blank"><strong>Flash</strong></a> mediante<a title="JSFL en nomeva.com" href="http://www.nomeva.com/category/jsfl/" target="_blank"> <strong>JSFL</strong></a> y ActionScript un <strong>Panel</strong> que realice la tarea de guardar automáticamente el documento <a title="Documento Fla" href="http://filext.com/file-extension/fla" target="_blank">Fla</a> en edición.</p>
<blockquote><p><strong>NOTA</strong><br />
Puede ser interesante leer antes o después este otro <a title="Tutorial JSFL - Introducción a Paneles" href="http://www.nomeva.com/2009/04/24/tutorial-jsfl-introduccion-a-paneles/" target="_blank"><strong>post</strong></a> de <strong>Introducción a Paneles</strong> para saber qué son, dónde van y cómo funcionan.</p>
</blockquote>
<div></div>
<div style="text-align: center;"><img class="alignnone size-full wp-image-333" title="Panel Autoguardado" src="http://www.nomeva.com/wp-content/uploads/2009/06/imagen-2.png" alt="Panel Autoguardado" width="202" height="169" /></div>
<p><strong>Auto Save</strong> es un <strong>Panel</strong> (plugin) que en un principio(*) tiene una misión muy importante, guardar automáticamente el documento (<a title="Documento Fla" href="http://filext.com/file-extension/fla" target="_blank">fla</a>) con el cual estamos trabajando.</p>
<h5>(*)<strong>Digo en un principio porque al pensarlo bien, tal como funciona el IDE de Flash y sobre todo con la gran cantidad de fallos (bugs) que he encontrado en esta nueva versión de <a title="Adobe Flash CS4 Professional" href="http://www.adobe.com/es/products/flash/" target="_blank">Adobe Flash CS4 Professional</a> no estoy 100 % seguro si nos podrá ayudar o no. <img src='http://www.nomeva.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  Con esto quiero decir que el uso de este Panel es bajo tu propio riesgo.</strong></h5>
<p>Ahora si, dicho todo lo anterior hablemos del Panel.</p>
<h2>CONFIGURACIÓN Y USO</h2>
<p>Es muy fácil de <strong>configurar</strong> el <strong>Panel</strong>, son únicamente tres valores:</p>
<ul>
<li><strong>Frecuencia</strong>: Como su nombre indica sirva para <strong>configurar la frecuencia</strong> el minutos del auto guardado.</li>
<li><strong>Preguntar</strong>: Si está <strong>activado</strong> antes de guardar te <strong>preguntará</strong> <strong>si deseas guardar</strong>, pudiendo responder que no y seguir tranquilamente con tu trabajo.</li>
<li><strong>Activo / Inactivo</strong>: Este es nuestro botón de <strong>encendido</strong>, con el cual indicamos que el <strong>auto guardado</strong> está activo o inactivo.</li>
</ul>
<p>Y ya está, así de fácil es configurar el <strong>Panel </strong>de<strong> Auto guardado</strong> de documentos <a title="Documento Fla" href="http://filext.com/file-extension/fla" target="_blank">Fla</a>. (Hola <strong>Gus</strong>!!!)</p>
<h2>Uso</h2>
<p>Para usar el <strong>Panel</strong> debemos abrirlo, desde el menú <strong>Ventana</strong> &gt; <strong>Otros paneles</strong> &gt; <strong>Auto save </strong>y configurarlo tal como indicamos arriba. Es importante mencionar que para que funcione debe estar visible, es decir, el Panel debe estar abierto. Tal como se muestra en la siguiente imagen.</p>
<h2>Un poco de historia</h2>
<p>Hablando con un amigo (Iván) me comentó una funcionalidad importantísima y es que recuerde la configuración porque sino sería un verdadero incordio tener que estar configurándolo cada vez que lo utilizas, así que <strong>SI</strong>, el <strong>Panel</strong> <strong>recuerda</strong> la <strong>configuración</strong> cada vez que lo cierras y lo abres e incluso si cierras el IDE de Flash.</p>
<h1>Descarga</h1>
<p>Para todo aquel que simplemente necesite el <strong>Panel Auto Save</strong> y no tenga interés en saber como funciona por dentro puede <strong>descargar </strong><a title="Instalador mxp Auto save Panel " href="http://www.nomeva.com/recursos/AutoSave.zip" target="_blank"><strong>aquí</strong></a> el instalador mxp.</p>
<p>A los que les interese saber como funciona sigan leyendo hasta el final que también hay otro enlace al instalador al final. ;D</p>
<h1>Parte friki, tutorial, código y demás</h1>
<p>Hasta ahora hemos hablado del <strong>Panel</strong> y sus beneficios (es verdad, también hemos hablado de las posibles no bondades <img src='http://www.nomeva.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> ), pero todavía no sabemos <strong>cómo</strong> <strong>funciona</strong>, qué <strong>engranes</strong> se mueven por dentro, dónde está la <strong>magia</strong> y demás historias que en realidad es <span style="text-decoration: line-through;">lo que quiero contar</span> de lo que trata este post.</p>
<p>Pues vamos allá, jejeje, es que realmente el <strong>funcionamiento</strong> <strong>interno</strong> de este <strong>Panel</strong> es realmente <strong>sencillo</strong>, únicamente utilizamos dos métodos de <a title="JSFL en nomeva.com" href="http://www.nomeva.com/category/jsfl/" target="_blank"><strong>JSFL</strong></a>, uno para comprobar que exista un documento abierto y otro para guardar el documento, si, así de fácil.</p>
<h3>Explicación</h3>
<p>Para saber si existe un documento <a title="Documento Fla" href="http://filext.com/file-extension/fla" target="_blank">Fla</a> abierto utilizamos el <strong>método</strong> <a title="JSFL fl.getDocumentDOM()" href="http://livedocs.adobe.com/flash/8/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&amp;file=00004635.html" target="_blank">fl.getDocumentDOM()</a> que nos devolverá un <strong>Objeto</strong> de tipo <strong><a title="Objeto Document" href="http://livedocs.adobe.com/flash/8/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&amp;file=00004635.html" target="_blank">Document</a></strong> en caso de existir, en caso contrario nos devolverá <strong>undefined</strong>, con lo cual podemos hacer las comprobaciones necesarias en nuestro código <strong>ActionScript</strong>.</p>
<p>Lo siguiente que tenemos que hacer en caso de que <strong>exista</strong> el <strong>documento</strong> y que las variables de configuración del <strong>Panel</strong> (Frecuencia, Preguntar y Activo) nos los permitan es guardarlo, haciendo uso del <strong>método</strong> <a title="Método save del Objeto Document" href="http://livedocs.adobe.com/flash/8/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&amp;file=00004635.html" target="_blank">fl.getDocumentDOM().save(true)</a> y listo.</p>
<h3>Resultado final</h3>
<p>En esta ocasión es más código <strong>ActionScript</strong> que código <a title="JSFL en nomeva.com" href="http://www.nomeva.com/category/jsfl/" target="_blank"><strong>JSFL</strong></a>, como en los anteriores post aquí también hacemos uso de la función <strong><a title="Función MMExecute" href="http://livedocs.adobe.com/flash/9.0_es/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&amp;file=00001194.html" target="_blank">MMExecute</a></strong> que nos permite ejecutar <a title="JSFL en nomeva.com" href="http://www.nomeva.com/category/jsfl/" target="_blank"><strong>JSFL</strong></a> desde un fichero <strong>swf</strong> con <strong>ActionScript</strong>.</p>
<p>A continuación os pongo el código. Hay un par de cosas feas por ahí, así que tener en cuenta que lo programé el viernes por la mañana mientras iba en el tren hacia el trabajo, así que si alguién lo quiere modificar para dejarlo más bonito o añadir funcionalidad es libre de hacerlo siempre y cuando mencione el origen (<span style="text-decoration: line-through;">y si no lo menciona también</span>, total, lo que quiero es compartir).</p>
<pre class="brush:js">import fl.controls.Button;
import fl.controls.CheckBox;
import fl.controls.Label;
import fl.controls.NumericStepper;
import flash.events.Event;

var nIntervalID:uint;
var nMinutesToAutoSave:uint;
var bCheckBoxAsk:Boolean;
var bActive:Boolean;

var comButtonOnOff:Button;
var comCheckBoxAsk:CheckBox;
var oLabel:Label;
var comNumericStepperFrecuency:NumericStepper;

var oSharedObject:SharedObject;

this.config();
this.init();

function config():void
{

	this.oSharedObject = SharedObject.getLocal("DATA_AUTOSAVE_SO");

	this.nMinutesToAutoSave = (this.oSharedObject.data.nMinutesToAutoSave != undefined) ? this.oSharedObject.data.nMinutesToAutoSave: this.comNumericStepperFrecuency.value;
	this.bCheckBoxAsk = (this.oSharedObject.data.bCheckBoxAsk != undefined) ? this.oSharedObject.data.bCheckBoxAsk: this.comCheckBoxAsk.selected;
	this.bActive = (this.oSharedObject.data.bActive != undefined) ? this.oSharedObject.data.bActive: false;

	this.comNumericStepperFrecuency.value = this.nMinutesToAutoSave;
	this.comCheckBoxAsk.selected = this.bCheckBoxAsk;
	if (this.bActive)
		this.comButtonOnOff.label = "On";
	else
		this.comButtonOnOff.label = "Off";

	this.comButtonOnOff.addEventListener(MouseEvent.CLICK, onClickButtonOnOff);
	this.comCheckBoxAsk.addEventListener(Event.CHANGE, onCheckBoxAskChange);
	this.comNumericStepperFrecuency.addEventListener(Event.CHANGE, onNumericStepperFrecuencyChange);

	this.saveSharedObject();
}

function saveSharedObject():void
{
	this.oSharedObject.data.nMinutesToAutoSave = this.nMinutesToAutoSave;
	this.oSharedObject.data.bCheckBoxAsk = this.bCheckBoxAsk;
	this.oSharedObject.data.bActive = this.bActive;

	this.oSharedObject.flush();
}

function onClickButtonOnOff(_oMouseEvent:MouseEvent):void
{
	if (this.bActive)
	{
		this.bActive = false;
		this.comButtonOnOff.label = "On";
	}
	else
	{
		this.bActive = true;
		this.comButtonOnOff.label = "Off";

		this.init();
	}

	this.saveSharedObject();
}

function onCheckBoxAskChange(_oEvent:Event):void
{
	this.bCheckBoxAsk = this.comCheckBoxAsk.selected;

	this.saveSharedObject();
}

function onNumericStepperFrecuencyChange(_oEvent:Event):void
{
	this.nMinutesToAutoSave = this.comNumericStepperFrecuency.value;

	this.init();

	this.saveSharedObject();
}

function init():void
{
	clearInterval(this.nIntervalID);
	this.nIntervalID = setInterval(autoSave, this.nMinutesToAutoSave * 60 * 1000);
}

function autoSave():void
{
	if (this.bActive &amp;&amp; this.isDocument())
	{
		if (this.comCheckBoxAsk.selected)
		{
			var sCodeJSFL:String = "";
			var sResult:String = "";

			sCodeJSFL = "confirm(\"Quieres guardar\");";
			sResult = MMExecute(sCodeJSFL);

			if (sResult == "true")
			{
				this.saveDocument();
			}
		}
		else
		{
			this.saveDocument();
		}
	}
}

function isDocument():Boolean
{
	var bRet:Boolean;

	var sCodeJSFL:String = "";
	var sResult:String = "";
	sCodeJSFL = "fl.getDocumentDOM();";
	sResult = MMExecute(sCodeJSFL);
	bRet = (sResult != "undefined") ? true: false;

	return bRet;
}

function saveDocument():void
{
	var sCodeJSFL:String = "";
	var sResult:String = "";
	sCodeJSFL = "fl.getDocumentDOM().save(true);";
	sResult = MMExecute(sCodeJSFL);
}</pre>
<p>Aquí tenéis los archivos de descarga.</p>
<ul>
<li><a title="Panel Auto Save mxp" href="http://www.nomeva.com/recursos/AutoSave.zip" target="_blank">Instalador MXP</a></li>
<li><a title="Código fuente tutorial jsfl panel auto save" href="http:///www.nomeva.com/tutoriales/jsfl/auto_save.zip" target="_blank">Código fuente</a> (Fla)</li>
</ul>
<p>Sugerencias, dudas, ideas o comentarios?</p>
<p>Saludos!!!</p>
<p>Entradas relacionadas:</p>
<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>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.nomeva.com/2009/06/28/tutorial-jsfl-panel-auto-save/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>
