Esta es la primera entrega de un grupo de dos tutoriales sobre una misma tarea, guardar una copia del documento Fla con el que se esta trabajando pero sin perder el documento actual en el IDE de Flash.
Introducción
Me explico mejor, existe la opción de Guardar como, pero esta opción lo que hace es abrir el cuadro de diálogo donde nos permite especificar la ruta y nombre del documento Fla, al hacer clic el guardar el documento que se queda en edición en el IDE de Flash es el nuevo. Pero, ¿que pasa si quiero trabajar sobre el mismo fichero?, porque lo que realmente quería hacer era una copia del documento, pues que tenemos que cerrar el documento nuevo y abrir el original.
Bueno para esto sirve el comando que vamos a hacer en este tutorial. En el siguiente tutorial vamos a hacer lo mismo pero lo haremos con un panel para ver las ventajas de un sistema sobre el otro.
NOTA
Puede ser interesante leer antes o después este otro post de Introducción a Comandos para saber qué son, dónde van y cómo funcionan.
Tutorial
Para hacer la tarea de guardar una copia debemos primeramente guardar el documento en edición, esto lo hacemos mediante el método save del objeto Document,
fl.getDocumentDOM().save(true);
Una vez guardado el documento procedemos a realizar una copia, para esto hacemos uso del método copy del objeto FLfile, éste método recibe dos parámetros:
- Origen: La ruta del fichero que deseamos copia.
- Destino: La ruta del fichero resultante.
NOTA:
Es importante destacar que las rutas deben estar expresadas en file:///
Ya que las rutas las debemos especificar mediante file:/// haremos uso de una de las novedades de Flash CS4, me refiero a la propiedad pathURI del objeto Document ya que esta propiedad nos devuelve precisamente la ruta del documento Fla en edición expresda en file:///.
NOTA:
En caso de que el documento no haya sido guardado todavía el valor de la propiedad pathURI será udefined con lo que podemos controlar esa situación.
El código que utilizaremos para hacer la copia sería el siguiente:
FLfile.copy(fl.getDocumentDOM().pathURI, NUEVO_NOMBRE);
El caso de que la copia se realice con éxito el método copy nos devolverá true, en caso contrario devolverá false, con lo cual también podemos controlar esa situación para informar al usuario.
A continuación en código completo del commando:
var oDoc;
this.config();
function config()
{
fl.showIdleMessage(false);
fl.outputPanel.clear();
if(fl.getDocumentDOM())
{
this.oDoc = fl.getDocumentDOM();
this.init();
}
else
{
alert("Debes tener un documento abierto.");
}
}
function init()
{
if(this.oDoc.pathURI)
{
this.oDoc.save(true);
var bResult = FLfile.copy(this.oDoc.pathURI, this.oDoc.pathURI.split(".fla")[0] + "_back.fla");
if(bResult)
{
alert("La copia se ha guardado correctamente.");
}
else
{
alert("Error al guardar la copia.");
}
}
else
{
alert("El documento no ha sido guradado.\nPara crear una copia debes guardar antes el documento.");
}
}
Descargas
- Extensión para instalar el comando (fichero mxp).
- Fichero JSFL.
Dudas, sugerencias o comentarios, aquí estaré.
Saludos.