2009-11-21 6 views

Répondre

1

Si j'ai bien compris, vous essayez de télécharger des images avec une application AIR et de placer les images dans un dossier dans Flash CS4?

Si tel est le cas, cela dépend un peu de votre système d'exploitation, vous devez donc vous assurer que vos chemins sont corrects. Faites un if/else et recherchez systrayIcon ou dockIcon pour cela.

Vous pouvez vous attaquer à cela de multiples façons.

Vous pouvez simplement utiliser l'API de fichier fournie avec AIR pour enregistrer les fichiers sur le disque au bon emplacement ou dans un emplacement temporaire, puis les copier dans le dossier flash.

Vous pouvez écrire des fichiers téléchargés sur disque en utilisant AIR et écrire un petit script JSFL et l'appeler à la volée. Quelque chose comme:

var jsfl:String = 'var files = ['; 

for(var i:int = 0 ; i < downloadedFiles.length; i++){ 
if(i < downloadedFiles.length-1) jsfl += '"'+downloadedFiles[i]+'",'; 
else   jsfl += '"'+downloadedFiles[i]+'"];\n'; 
} 

jsfl += 'for(var i = 0 ; i < files.length; i++){\n'; 
jsfl += '\tFLfile.copy(files[i],fl.configURI+'StockImages/'+files[i].substr(files[i].lastIndexOf('/')+1));\n}'; 

Je suppose downloadedFiles est le nom du tableau qui stocke les chemins d'accès aux images écrites. Cela devrait se traduire par un script JSFL comme:

var files = ["file:///path/file_01.jpg","file:///path/file_02.jpg","file:///path/file_03.jpg"]; 

for(var i = 0 ; i < files.length; i++){ 
FLfile.copy(files[i],fl.configURI+'StockImages/'+files[i].substr(files[i].lastIndexOf('/')+1)); 
} 

Cela devrait copier les images à quelque chose proche/Users/{nom d'utilisateur}/Bibliothèque/Application Support/Adobe/Flash CS3 ou FlashCS4/{langue}/Configuration/StockImages/on mac os et/Users/{nom d'utilisateur}/Paramètres locaux/Données d'application/Adobe/Flash CS3 ou FlashCS4/{langue}/Configuration/StockImages/on windows Vous pouvez ensuite appeler Flash avec le chemin d'accès au fichier jsfl fichier en tant qu'argument.

Une autre option serait d'écrire un outil de ligne de commande qui reçoit 2 arguments: des données binaires et un chemin de fichier (string)

Vous pouvez alors écrire un Flash Panel (un swf qui effectue des appels JSFL et vit le dossier WindowSWF) et utilisez as3 pour charger les images et appeler l'outil de ligne de commande pour les écrire sur le disque. Pour ce faire, utilisez le FLfile.runCommandLine non annoté.

Les options dépendent de votre niveau de confort avec AIR/JSFL/un autre langage pour écrire un outil en ligne de commande.

Je ne suis pas sûr de savoir quel est le résultat de tout cela ... il pourrait y avoir des moyens plus faciles.