La classe Screen étend la classe Loader (voir Composant Loader), ce qui facilite la gestion et le chargement de fichiers SWF et JPEG externes. La classe Loader contient une propriété contentPath, qui permet de spécifier l'URL d'un fichier SWF ou JPEG externe ou l'identifiant de liaison d'un clip de la bibliothèque.
Cette fonction vous permet de charger une arborescence d'écrans externe (ou tout fichier SWF externe) en tant qu'enfant de n'importe quel nœud d'écran. Ceci vous permet de rendre votre média composé d'écrans modulaire et de le séparer en fichiers SWF.
Prenons l'exemple d'un diaporama réalisé par trois intervenants, qui créent chacun leur propre partie. Vous pouvez demander à chaque intervenant de créer un diaporama distinct (fichier SWF). Il vous reste ensuite à créer un « diaporama maître » contenant trois balises d'emplacement, correspondant aux trois diaporamas créés par ces intervenants. Dans chaque balise d'emplacement, faites pointer la propriété contentPath vers l'un des fichiers SWF. Vous pouvez organiser le diaporama maître comme illustré ci-dessous :
Supposons que les intervenants vous aient fourni trois fichiers SWF : speaker_1.swf, speaker_2.swf et speaker_3.swf. Vous pouvez facilement assembler le diaporama complet en définissant la propriété contentPath de chaque balise d'emplacement de diapositive, en utilisant soit l'inspecteur Propriétés, soit ActionScript, comme indiqué dans le code suivant :
Speaker_1.contentPath = speaker_1.swf; Speaker_2.contentPath = speaker_2.swf; Speaker_3.contentPath = speaker_3.swf;
Par défaut, lorsque vous définissez la propriété contentPath d'une diapositive pendant la création dans l'inspecteur Propriétés ou l'utilisation d'ActionScript (comme indiqué ci-dessus), le fichier SWF spécifié est chargé dès que le fichier SWF du « diaporama maître » est chargé. Pour réduire le temps de chargement initial, vous pouvez définir la propriété contentPath dans un gestionnaire on(reveal) associé à chaque diapositive.
// Associé à la diapositive Speaker_1.
on(reveal) {
this.contentPath="speaker_1.swf";
}
Vous pouvez également définir la propriété autoLoad de la diapositive sur false.
Vous pouvez ensuite appeler la méthode load() sur la diapositive lorsque cette dernière a été révélée. (La propriété autoLoad et la méthode load() sont héritées de la classe Loader.)
// Associé à la diapositive Speaker_1.
on(reveal) {
this.load();
}
La classe Loader crée un clip interne nommé contentNode dans lequel elle charge le fichier SWF ou JPEG spécifié par la propriété contentPath. Cette animation ajoute un nœud d'écran supplémentaire dans le diaporama chargé, entre « la balise d'emplacement » de la diapositive (que vous avez créée dans le diaporama « maître », ci-dessus) et la première diapositive.
Imaginons par exemple que le fichier SWF créé pour la balise d'emplacement de la diapositive Speaker_1 (voir l'illustration ci-dessus) présente la structure suivante, comme indiqué dans le panneau Contour de l'écran :
Lors de l'exécution, une fois le fichier SWF Speaker 1 chargé dans la balise d'emplacement de la diapositive, le diaporama complet présente la structure suivante :
Les propriétés et les méthodes des classes Screen, Slide et Form « ignorent » autant que possible le nœud contentHolder. En d'autres termes, la diapositive MyPresentation (et ses sous-diapositives) fait partie de l'arborescence de diapositives contiguës qui part de la diapositive Présentation. Elle n'est pas traitée comme une sous-arborescence séparée.