2010-06-29 4 views
1

Hey les gars, j'essaie d'obtenir le nom de tous les fichiers d'un dossier spécifique dans un tableau, mais je reçois cette erreur et je ne peux pas trouver pourquoi .. Cela peut être une question stupide, mais peu importe.Retour tableau dans ActionScript 3.0 (Flash et Air)

TypeError: Error #1009: Cannot access a property or method of a null object reference.

Voici mon code:

import flash.filesystem.File; 

function getFileList(directory:String):Array 
{ 
var folder:File = new File(directory); 
var files:Array = folder.getDirectoryListing(); 
var fileList:Array; 

for(var i = 0; i < files.length -1; i++) 
{ 
var path:String = files[i].nativePath; 
var split:Array = path.split(File.separator); 
fileList[i] = (split[split.length -1]); 
} 
return fileList; 
} 

var list:Array = getFileList("E://Whatever//Whatever"); 

Répondre

0

Je serais prêt à parier que ce n'est pas trouver le chemin vous entrez, vous ne pouvez pas obtenir un répertoire liste pour elle. Essayez de mettre quelques traces dedans et voyez si c'est là où il est bloqué.

+0

Merci beaucoup pour votre homme de réponse, mais c'était pas. Je viens de changer cette ligne: var fileList: Array; pour cette ligne: var fileList: Array = new Array(); et ça a marché. Mais de toute façon merci encore, votre réponse m'a fait voir où était le problème. :) – Simon

2

Vous avez oublié d'initialiser le tableau fileList et, par conséquent, il s'agit de null lorsque vous appelez fileList[i] = (split[split.length -1]); dans la boucle.

changement

var fileList:Array; 

à

var fileList:Array = []; 
+0

Remarque valide également en termes d'utilisation de littéraux pour l'initialisation qui sont beaucoup plus rapides que l'utilisation d'un constructeur, voir http://tekkie.flashbit.net/flash/as/actionscript-3-array-constructor-vs-array-literals -benchmark pour un benchmark. –