2017-07-19 4 views
0

Je travaille avec Flash Air 3.2 (ancien, je sais) et j'essaye de commencer par lire un fichier texte en utilisant FileStream. Le code que j'ai trouvé le fichier, et j'ai mis du texte dans le fichier, mais chaque fois que j'essaie d'exécuter le code, il retourne 'undefined'. Voici mon code:Flash Air 3.2 FileStream résultant 'undefined'

import flash.filesystem.* 
import flash.net.* 
import flash.utils.ByteArray; 
import flash.events.* 

var myFile:File = File.applicationStorageDirectory.resolvePath("test.txt"); 
var myFileStream:FileStream = new FileStream(); 
myFileStream.addEventListener(Event.COMPLETE, completeHandler); 
myFileStream.openAsync(myFile, FileMode.READ); 
var bytes:ByteArray = new ByteArray(); 

function completeHandler(event:Event):void 
{ 
    myFileStream.readBytes(bytes, 0, myFileStream.bytesAvailable); 
    trace(myFileStream.readBytes(bytes, 0, myFileStream.bytesAvailable)); 
} 

Toute aide est grandement appréciée!

Répondre

1

Vous obtenez indéfini car la méthode readBytes d'un FileStream a un type de retour de void. Les octets lus à partir de cette méthode sont placés dans le tableau d'octets que vous lui transmettez plutôt que d'être renvoyés directement à partir de la méthode.

myFileStream.readBytes(bytes, 0, myFileStream.bytesAvailable); //this returns void/undefined by design regardless of the contents of bytes 
trace(bytes); //this will trace the byte array object that was populated with the above line 

Si vous êtes à la recherche de lire un fichier texte, vous devriez être en mesure de faire la méthode de raccourci:

myFileStream.readUTF();