|
Ressources Flash CS4 |
Objets de l'API JavaScriptCette section résume les objets disponibles dans l'API JavaScript de Flash et décrit leur utilisation. Toutes les commandes JavaScript habituelles sont également disponibles avec l'API JavaScript. Le tableau suivant décrit brièvement chacun des objets de l'API JavaScript. Les objets apparaissent par ordre alphabétique.
Modèle d'objet document (DOM) de FlashLe DOM de l'API JavaScript de Flash se compose d’un ensemble de fonctions de haut niveau (voir Fonctions et méthodes de haut niveau) et de deux objets de haut niveau : FLfile et flash (fl). La disponibilité de chaque objet dans les scripts est assurée, puisqu'il existe dès l'ouverture de l'environnement de programmation de Flash. Pour plus d'informations, consultez les sections Objet FLfile et Objet flash (fl). La référence à l'objet flash peut être flash ou fl. Par exemple, pour fermer tous les fichiers FLA ouverts, vous pouvez utiliser l'une des instructions suivantes : flash.closeAll(); fl.closeAll(); L’objet flash contient les objets enfant suivants :
Objet DocumentLa propriété fl.documents est l’une des plus importantes de l’objet de haut niveau flash. Cette propriété contient un tableau d'objets Document, représentant chacun l'un des fichiers FLA actuellement ouverts dans l'environnement de programmation. Les propriétés de chaque objet Document représentent la plupart des éléments que peut contenir un fichier FLA. Une grande partie du DOM est donc composée d'objets et de propriétés enfant de l'objet Document. Pour plus d'informations, consultez la section Objet Document. Ainsi, pour vous référer au premier document ouvert, vous pouvez utiliser l'instruction flash.documents[0] ou fl.documents[0]. Il s'agit du premier document Flash qui a été ouvert dans l'environnement de programmation au cours de la session actuelle. Lors de la fermeture du premier document, les index des autres documents ouverts sont décrémentés. Pour connaître l’index d’un document particulier, utilisez flash.findDocumentIndex(nomDuDocument) ou fl.findDocumentIndex(nomDuDocument). Voir fl.findDocumentIndex(). Pour accéder au document qui a le focus, utilisez l'instruction flash.getDocumentDOM() ou fl.getDocumentDOM(). Voir fl.getDocumentDOM(). Cette dernière est la syntaxe utilisée dans la plupart des exemples de ce guide. Pour trouver un document particulier dans le tableau fl.documents, créez une boucle qui testera la propriété document.name de chaque document. Voir fl.documents et document.name. Vous pouvez accéder à tous les objets du DOM qui ne figurent pas dans la liste ci-dessus (voir Modèle d'objet document (DOM) de Flash) à l’aide de l’objet Document. Par exemple, pour accéder à la bibliothèque d’un document, utilisez la propriété document.library, qui renvoie un objet library : fl.getDocumentDOM().library Pour accéder au tableau des éléments présents dans la bibliothèque, utilisez la propriété library.items ; chaque élément de ce tableau est un objet Item : fl.getDocumentDOM().library.items Pour accéder à un élément spécifique de la bibliothèque, indiquez un membre du tableau library.items : fl.getDocumentDOM().library.items[0] Autrement dit, l’objet Item est un enfant de l’objet library, qui est lui-même un enfant de l’objet Document. Pour plus d'informations, consultez les sections document.library, Objet library, library.itemslibrary.items et Objet Item. Désignation de la cible d’une actionSauf indication contraire, les méthodes affectent la sélection ou l'élément qui a le focus. Par exemple, le script ci-dessous double la taille de la sélection actuelle, car aucun objet précis n'est spécifié : fl.getDocumentDOM().scaleSelection(2, 2); Il peut être nécessaire de définir comme cible d’une action l’élément actuellement sélectionné dans le document Flash. Pour ce faire, utilisez le tableau renvoyé par la propriété document.selection (voir document.selection). Le premier élément de ce tableau représente l'élément actuellement sélectionné, comme le montre l'exemple ci-dessous : var accDescription = fl.getDocumentDOM().selection[0].description; Le script ci-dessous double la taille du premier élément de la scène contenu dans le tableau d’éléments, et non pas l’élément sélectionné : var element = fl.getDocumentDOM().getTimeline().layers[0].frames[0].elements[0];
if (element) {
element.width = element.width*2;
element.height = element.height*2;
}
Il est également possible de parcourir en boucle la liste de tous les éléments de la scène pour augmenter leur largeur et leur hauteur d’un pourcentage spécifique, comme dans l’exemple suivant : var elementArray =
fl.getDocumentDOM().getTimeline().layers[0].frames[0].elements;
for (var i=0; i < elementArray.length; i++) {
var offset = 10;
elementArray[i].width += offset;
elementArray[i].height += offset;
}
Résumé de la structure du DOMLa liste suivante présente la structure arborescente du DOM. Les chiffres qui apparaissent au début de chaque ligne représentent le niveau de chaque objet. Par exemple, un objet précédé de « 03 » est un enfant de l'objet de niveau « 02 » qui le précède immédiatement, et celui-ci est lui-même un enfant de l'objet de niveau « 01 » qui le précède. Dans certains cas, il est possible de référencer un objet en spécifiant une propriété de son objet parent. Par exemple, la propriété document.timelines contient un tableau d'objets Timeline. Ces propriétés sont indiquées dans l'arborescence ci-dessous. Certains objets sont des sous-classes (et non pas des enfants) d'autres objets. Un objet qui est une sous-classe d'un autre possède ses propres méthodes et/ou propriétés, outre les méthodes et propriétés de l'objet parent dont il est dérivé (superclasse). Dans la hiérarchie des objets, les sous-classes sont au même niveau que leur superclasse. Par exemple, l'objet Item est une superclasse de l'objet BitmapItem. Ces relations sont indiquées dans l'arborescence ci-dessous : 01 Top-Level Functions and Methods 01 FLfile object 01 flash object (fl) 02 compilerErrors object 02 componentsPanel object 02 Document object (fl.documents array) 03 Filter object 03 Matrix object 03 Fill object 03 Stroke object 03 library object 04 Item object (library.items array) 04 BitmapItem object(subclass of Item object) 04 folderItem object (subclass of Item object) 04 fontItem object (subclass of Item object) 04 SoundItem object (subclass of Item object) 04 SymbolItem object (subclass of Item object) 04 VideoItem object (subclass of Item object) 03 Timeline object (document.timelines array) 04 Layer object (timeline.layers array) 05 Frame object (layer.frames array) 06 Element object (frame.elements array) 07 Matrix object (element.matrix) 06 Instance object (abstract class, subclass of Element object) 06 BitmapInstance object (subclass of Instance object) 06 CompiledClipInstance object (subclass of Instance object) 06 ComponentInstance object (subclass of SymbolInstance object) 07 Parameter object (componentInstance.parameters array) 06 SymbolInstance object (subclass of Instance object) 06 Text object (subclass of Element object) 07 TextRun object (text.textRuns array) 08 TextAttrs object (textRun.textAttrs array) 06 Shape object (subclass of Element object) 07 Oval object 07 Rectangle object 07 Contour object (shape.contours array) 08 HalfEdge object 09 Vertex object 09 Edge object 07 Edge object (shape.edges array) 08 HalfEdge object 09 Vertex object 09 Edge object 07 Vertex object(shape.vertices array) 08 HalfEdge object 09 Vertex object 09 Edge object 03 ScreenOutline object 04 Screen object (screenOutline.screens array) 05 Parameter object (screen.parameters array) 02 drawingLayer object 03 Path object 04 Contour object 02 Math object 02 outputPanel object 02 presetPanel object 03 presetItem object(presetPanel.items array) 02 swfPanel object 02 Tools object (fl.tools array) 03 ToolObj object (tools.toolObjs array) 02 XMLUI object |