Hola, aquí dejo un listado de código para leer un archivo del disco según el modelo AIR para Flash CS3.
Los ingredientes a tener en el escenario:
- 1 clip cerrar_mc
- 1 clip cargar_mc
- 1 campo de texto texto_txt
Importamos las clases necesarias para el manejo de archivos con AIR:
Código :
import flash.net.FileFilter; import flash.filesystem.*;
Importamos unas clases para detectar eventos y eventos del mouse:
Código :
import flash.events.Event; import flash.events.MouseEvent;
definimos el objeto archivo:
Código :
var archivo:File = new File();
definimos un filtro de archivos, e.g. en el cuadro de diálogo nos va a mostrar sólo archivos de este tipo:
Código :
var tipoArchivo:FileFilter = new FileFilter("Archivos de texto", "*.as;*.css;*.html;*.txt;*.xml");ahora nada interesante, sólo eventos del mouse y que nos ponga la manito cuando pasemos encima de los clips:
Código :
cargar_mc.useHandCursor = cerrar_mc.useHandCursor = true; cargar_mc.addEventListener(MouseEvent.CLICK, cargar); cerrar_mc.addEventListener(MouseEvent.CLICK, cerrar); this.stage.addEventListener(MouseEvent.MOUSE_DOWN, arrastrar);
al hacer click en el escenario, arrastramos la ventana, naturalmente va a arrastrar desde cualquier parte que hagamos click, aún encima del campo de texto. En la documentación se detalla cómo definir este comportamiento, pero a fines de sencillez queda así:
Código :
function arrastrar(e:MouseEvent) {
this.stage.nativeWindow.startMove();
}al hacer click en el clip cerrar, cierra la ventana AIR:
Código :
function cerrar(e:MouseEvent) {
this.stage.nativeWindow.close();
}al hacer click en el clip cargar, pasan varias cosas:
Código :
function cargar(e:MouseEvent) {Con el siguiente método llamamos al cuadro del diálogo Abrir del sistema, le pondremos de título a la ventana "Abrir archivo..." y mostraremos únicamente los tipos de archivos especificados anteriormente con el array FileFilter:
Código :
archivo.browseForOpen("Abrir archivo...", [tipoArchivo]);Cuando seleccionemos y abramos un archivo, se lanzará la función abrirArchivo:
Código :
archivo.addEventListener(Event.SELECT, abrirArchivo);
function abrirArchivo(e:Event):void {ya dentro de abrirArchivo, declaramos un puntero al archivo:
Código :
var puntero:FileStream = new FileStream();
Esta es la parte más curiosa. Abrimos el puntero pasándole como parámetro el archivo seleccionado al momento que se lanzó el evento SELECT. Este objeto está dentro del evento e, en la propiedad target sin embargo, si sólo lo llamamos e.target, lo toma como un objeto y no como un objeto FILE, es por eso es que le pondremos 'e.target as File'. Abrimos el flujo en modo de lectura.
Código :
puntero.open(e.target as File, FileMode.READ);
y lo volcamos a una string en unicode:
Código :
var datosArchivo:String = puntero.readUTFBytes(puntero.bytesAvailable);
Finalmente, lo cargamos en el campo de texto
Código :
texto_txt.text = datosArchivo; } }
A continuación el código completo:
Código :
import flash.filesystem.*;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.net.FileFilter;
var archivo:File = new File();
var tipoArchivo:FileFilter = new FileFilter("Archivos de texto", "*.as;*.css;*.html;*.txt;*.xml");
cargar_mc.useHandCursor = cerrar_mc.useHandCursor = true;
cargar_mc.addEventListener(MouseEvent.CLICK, cargar);
cerrar_mc.addEventListener(MouseEvent.CLICK, cerrar);
this.stage.addEventListener(MouseEvent.MOUSE_DOWN, arrastrar);
function arrastrar(e:MouseEvent) { this.stage.nativeWindow.startMove(); }
function cerrar(e:MouseEvent) { this.stage.nativeWindow.close(); }
function cargar(e:MouseEvent) {
archivo.browseForOpen("Abrir archivo...", [tipoArchivo]);
archivo.addEventListener(Event.SELECT, abrirArchivo);
function abrirArchivo(e:Event):void {
var puntero:FileStream = new FileStream();
puntero.open(e.target as File, FileMode.READ);
var datosArchivo:String = puntero.readUTFBytes(puntero.bytesAvailable);
texto_txt.text = datosArchivo;
}
}Espero que lo disfruten, saludos.

Lo voy a probar, tanks!!
Saludos Cristabelinos/nas!
soy_lo_maximo :
Por Skatos el 20 de Marzo de 2008
Digital Signature: Create AIRI file to sign later
y a la derecha hay un botón Change, si apretás el botón te sale un panel para crear tu propio certificado o importar uno ya existente. Con este certificado configurado ahora podrás publicar tu AIR como instalador.
Gracias Carlos y Zguillez
Por olechka el 19 de Septiembre de 2010