Pouvez-vous exécuter la même application Adobe AIR plus d’une fois ?

Si vous développez avec Adobe AIR et vous vous demandez s’il est possible d’exécuter plusieurs instances de la même application, vous n’êtes pas seul. De nombreux développeurs sont confrontés à ce dilemme, surtout lorsqu’il s’agit de gérer des applications qui affichent ou traitent divers flux de données, comme des vignettes provenant de flux photo. Dans cet article, nous allons explorer ce problème en détail et clarifier si la possibilité d’exécuter deux instances de la même application Adobe AIR existe.

Le Problème En Cours

Imaginez que vous avez créé un widget qui affiche des vignettes de plusieurs flux photo. Votre objectif est de pouvoir visualiser plusieurs flux en même temps. Cependant, vous avez peut-être rencontré la limitation frustrante d’Adobe AIR qui restreint la possibilité d’exécuter la même application plusieurs fois.

La Limitation Expliquée

Selon la documentation d’Adobe :

“Une seule instance d’une application AIR est lancée. Lorsque l’application déjà en cours d’exécution est appelée à nouveau, AIR envoie un nouvel événement d’invocation à l’instance en cours.”

Cela indique clairement qu’Adobe AIR est conçu pour lancer une seule instance de chaque application, ce qui signifie que si vous essayez de démarrer la même application à nouveau, cela déclenchera plutôt un événement pour l’instance existante.

Comprendre l’Événement d’Invocation

Alors, que se passe-t-il lorsque vous essayez de relancer l’application ? Le framework Adobe AIR envoie un “événement d’invocation” à l’instance d’application actuellement en cours d’exécution.

Comment Gérer les Événements d’Invocation

Pour tirer le meilleur parti de cette limitation, vous pouvez programmer votre application AIR pour qu’elle réagisse à ces événements d’invocation en mettant en œuvre une logique qui ouvre une nouvelle fenêtre de document ou une fenêtre similaire pour chaque nouvelle demande. Cela signifie que, bien que plusieurs instances indépendantes ne soient pas possibles, vous pouvez toujours gérer et afficher du contenu supplémentaire à travers l’interface de l’application existante.

Voici comment procéder :

  1. Écouter l’Événement d’Invocation :

    • Configurez un écouteur d’événements dans votre application AIR pour détecter quand un événement d’invocation se produit.
  2. Ouvrir de Nouvelles Fenêtres ou Panneaux :

    • Après avoir reçu un événement d’invocation, programmez l’application pour qu’elle ouvre un nouveau document ou une fenêtre qui peut afficher le flux photo supplémentaire que vous souhaitez mettre en avant.
  3. Gérer l’État de Manière Appropriée :

    • Assurez-vous que votre application peut gérer plusieurs fenêtres de manière appropriée en gérant efficacement les états ou les données requises entre les instances.

Exemple

Supposons que vous souhaitiez ouvrir une nouvelle fenêtre pour afficher un flux photo supplémentaire lorsque le widget est cliqué à nouveau. Vous pouvez intégrer l’approche générique suivante dans le code de votre application :

app.addEventListener(Event.INVOKE, onInvoke);

function onInvoke(event) {
    // Créer une nouvelle fenêtre ou panneau pour le nouveau flux
    var newStreamWindow = new StreamWindow();
    newStreamWindow.show(); // Afficher la nouvelle fenêtre de flux
}

Conclusion

Bien que vous ne puissiez pas exécuter des instances séparées d’une application Adobe AIR, il existe des solutions de contournement qui vous permettent de gérer la situation efficacement. En utilisant la méthode de l’événement d’invocation, vous pouvez créer une expérience utilisateur plus flexible et réactive.

Bien que ces solutions de contournement ne soient pas aussi fluides que l’exécution d’instances indépendantes, elles vous permettent de gérer plusieurs flux dans un contexte d’application unique. Restez attentif à la documentation officielle d’Adobe pour toute mise à jour ou changement concernant cette limitation à l’avenir.

Si vous êtes intéressé par des idées plus détaillées ou des questions spécifiques sur l’implémentation, n’hésitez pas à nous contacter !