L'idée est donc simplement de télécharger un fichier sur un site pour le rapatrier en local... La documentation de Zinc étant assez bien faite, voici le petit bout de code que je teste :

import mdm.*;
 
var httpConnection:HTTP;
Application.init(this, function():void 
{
       httpConnection = new HTTP();
       httpConnection.getFile("http://www.astorm.ch/blog/public/Sources/JPA-Demo.zip", "", "", "./jpa.zip");
});

Je compile le tout (à noter au passage qu'il faut ajouer le swc dans les librairies), et crée l'exécutable via Zinc. Le souci survient lorsque je lance l'application : elle se crashe misérablement avec le message d'erreur standard windows.

Après quelques autres essais, le problème vient du fait que mon ordinateur n'était pas connecté à Internet ! Il suffit que la carte soit désactivée, le câble soit débranché ou autre pour que l'appel à la méthode getFile fasse tout planter... J'en ai d'ailleurs ouvert un post sur le forum de support.

La solution consiste donc à vérifier que l'utilisateur est bien connecté à Internet avant de lancer le téléchargement :

import mdm.*;
 
var httpConnection:HTTP;
var urlTest:URLRequest = new URLRequest("http://www.google.com");
var connectionTester:URLLoader = new URLLoader();
connectionTester.addEventListener(Event.COMPLETE, onComplete);
connectionTester.addEventListener(IOErrorEvent.IO_ERROR, onError);
connectionTester.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onError);
 
function onError(evt:Event):void
{
       //...
}
 
function onComplete(evt:Event):void
{
       httpConnection = new HTTP();
       httpConnection.getFile("http://www.astorm.ch/blog/public/Sources/JPA-Demo.zip", "", "", "./jpa.zip");
}
 
Application.init(this, function():void 
{
       connectionTester.load(urlTest);
});

Ce n'est pas très propre, mais ça permet de contourner le problème. A noter également que pour tester, il faut préciser "Network access only" dans les paramètres de publication (Local playback security).

J'ai détecté ce bug dans la version 3.0.13 de Zinc, mais d'après les releases notes de la version 3.0.14, il n'a pas été corrigé. Espérons que cela arrivera vite ! :)