Guillaume André

Apprentissage, étude et approfondissement des nouvelles technologies

26 Mar, 2009

ActionScript 3 : Embarquer des ressources au sein d’un SWF

Posted by: Guillaume Andre In: ActionScript

En ActionScript 3 il est possible de charger des ressources externes au sein d’une application Flash, Flex, AIR avec les objets flash.display.Loader et flash.net.URLLoader. Néanmoins ces méthodes permettent de charger à distance les ressources ou fichiers en question tel que le ferait une page web sous forme de requête vers un serveur. Une ressource peut-être un fichier SWF, un fichier image (PNG, JPG, GIF, SVG), un fichier de police, un son…

Il est parfois nécessaire d’embarquer (embed) une ressource au sein d’un SWF plutôt que de la charger. Voici comment s’y prendre :

public class Main extends Sprite
{
     [Embed(source = "../assets/monImage.png")]
     private var myPicture:Class;

     public function Main():void
     {
          var pic:Bitmap = new myPicture();
          addChild(pic);
     }
}

Chaque ressource doit avoir sa propre classe. Dans notre cas il s’agit d’une image il ne faut donc pas oublier de caster en Bitmap avant d’ajouter l’image à la liste d’affichage.

Le dossier nommé assets contient l’image que je souhaite embarquer dans le SWF. En terme d’arborescence, il se trouve au même niveau que mon dossier /src et mon dossier /bin :
ActionScript 3 : Ressources embarquées (embed)

En renseignant la ligne suivante : [Embed ...] le compilateur se charge d’embarquer la ressource. C’est avec Flash CS4, que les métadonnées sont apparues. Les métadonnées sont caractérisées par leur syntaxe entre crochets [...]. Elles sont déclarées au même niveau que les propriétés. Attention, il est important que la déclaration de variable soit faite à la suite de la métadonnée.

Bien entendu, lors du déploiement de votre application il est inutile de déployer les ressources tel que /assets/ puisque celle-ci sont embarquées dans le SWF. Par conséquent, le fait d’embarquer une ressource augmente considérablement le poids de votre SWF.

1 Response to "ActionScript 3 : Embarquer des ressources au sein d’un SWF"

Comments are closed.