Manuel du propriétaire | MACROMEDIA DIRECTOR MX 2004-RFRENCE DE SCRIPTING DE DIRECTOR Manuel utilisateur

Ajouter à Mes manuels
1194 Des pages
Manuel du propriétaire | MACROMEDIA DIRECTOR MX 2004-RFRENCE DE SCRIPTING DE DIRECTOR Manuel utilisateur | Fixfr
DIRECTOR MX
®
2004
Référence de scripting de Director
Marques
Afterburner, AppletAce, Attain, Attain Enterprise Learning System, Attain Essentials, Attain Objects for Dreamweaver,
Authorware, Authorware Attain, Authorware Interactive Studio, Authorware Star, Authorware Synergy, Backstage, Backstage
Designer, Backstage Desktop Studio, Backstage Enterprise Studio, Backstage Internet Studio, Contribute, Design in Motion,
Director, Director Multimedia Studio, Doc Around the Clock, Dreamweaver, Dreamweaver Attain, Drumbeat, Drumbeat
2000, Extreme 3D, Fireworks, Flash, Fontographer, FreeHand, FreeHand Graphics Studio, Generator, Generator Developer's
Studio, Generator Dynamic Graphics Server, Knowledge Objects, Knowledge Stream, Knowledge Track, LikeMinds, Lingo,
Live Effects, MacRecorder Logo and Design, Macromedia, Macromedia Contribute, Macromedia Coursebuilder for
Dreamweaver, Macromedia M Logo & Design, Macromedia Flash, Macromedia Xres, Macromind, Macromind Action,
MAGIC, Mediamaker, Multimedia is the Message, Object Authoring, Power Applets, Priority Access, Roundtrip HTML,
Scriptlets, SoundEdit, ShockRave, Shockmachine, Shockwave, shockwave.com, Shockwave Remote, Shockwave Internet Studio,
Showcase, Tools to Power Your Ideas, Universal Media, Virtuoso, Web Design 101, Whirlwind et Xtra sont des marques de
Macromedia, Inc. et peuvent être déposées aux Etats-Unis et dans d'autres pays. Les autres noms de produits, logos, graphiques,
mises en page, titres, mots ou phrases mentionnés dans cette publication peuvent être des marques de commerce, des marques de
service ou des noms de marque appartenant à Macromedia, Inc. ou à d'autres entités et peuvent être déposés dans certains pays,
états ou provinces.
Cette publication contient des liens conduisant à des sites web qui ne sont pas sous le contrôle de Macromedia, qui n'est
aucunement responsable de leur contenu. L'accès à ces sites se fait sous votre seule responsabilité. Macromedia mentionne ces
liens pour référence, ce qui ne signifie pas son soutien, accord ou responsabilité quant au contenu des sites en question.
Limite de garantie et de responsabilité Apple
APPLE COMPUTER, INC. N'OFFRE AUCUNE GARANTIE, EXPRES OU IMPLICITE, CONCERNANT CE
LOGICIEL, SA CAPACITE A ETRE COMMERCIALISE OU A REPONDRE A UN BESOIN PARTICULIER.
L'EXCLUSION DES GARANTIES IMPLICITES EST INTERDITE PAR CERTAINS PAYS, ETATS OU PROVINCES.
L'EXCLUSION ENONCEE CI-DESSUS PEUT NE PAS S'APPLIQUER A VOTRE CAS PARTICULIER. CETTE
GARANTIE VOUS ASSURE DES DROITS SPECIFIQUES. D'AUTRES DROITS VARIANT D'UN PAYS A L'AUTRE
PEUVENT EGALEMENT VOUS ETRE ACCORDES.
Copyright © 2004 Macromedia, Inc. Tous droits réservés. La copie, photocopie, reproduction, traduction ou conversion
de ce manuel, en partie ou dans sa totalité, sous quelque forme que ce soit, mécanique ou électronique, est interdite sans
une autorisation préalable obtenue par écrit auprès de Macromedia, Inc. Numéro de pièce ZDR10M300F
Première édition : Janvier 2004
Macromedia, Inc.
600 Townsend St.
San Francisco, CA 94103
États-Unis
TABLE DES MATIERES
CHAPITRE 1 : Introduction
........................................... 5
Public visé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Nouveautés concernant le scripting de Director. . . . . . . . . . . . . . . . . . . . . . . . . . . .
Nouveautés dans cette documentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Recherche d’informations en matière de scripting dans Director . . . . . . . . . . . . . . .
CHAPITRE 2 : Principes de base du scripting dans Director
5
6
7
7
................. 9
Types de scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Terminologie de scripting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Syntaxe de scripting. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Types de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Valeurs littérales. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Opérateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Constructions conditionnnelles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Evénements, messages et gestionnaires. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Listes linéaires et listes de propriétés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Tableaux de la syntaxe JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
CHAPITRE 3 : Rédaction de scripts dans Director .
. . . . . . . . . . . . . . . . . . . . . . . 55
Choisir entre Lingo et la syntaxe JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Format de scripting à syntaxe à points . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Introduction aux objets de Director. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Diagramme de modèles d’objets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Fonctions et propriétés de haut niveau. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Introduction à la programmation orientée objet dans Director . . . . . . . . . . . . . . . 61
Programmation orientée objet avec Lingo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Programmation orientée objet avec la syntaxe JavaScript . . . . . . . . . . . . . . . . . . . . 72
Rédaction de scripts dans la fenêtre Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
3
CHAPITRE 4 : Débogage de scripts dans Director.
. . . . . . . . . . . . . . . . . . . . . . . 93
Bonnes habitudes de rédaction de scripts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Opérations de débogage de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Débogage dans la fenêtre Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
Débogage dans la fenêtre Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
Débogage de l’inspecteur d’objet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
Débogage dans la fenêtre Débogueur. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
Débogage de projections et d’animations Shockwave. . . . . . . . . . . . . . . . . . . . . . 110
Débogage avancé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
CHAPITRE 5 : Objets principaux de Director
CHAPITRE 6 : Types de médias
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
CHAPITRE 7 : Objets de scripting . . . . . . .
CHAPITRE 8 : Objets 3D
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
CHAPITRE 10 : Evénements et messages
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
CHAPITRE 13 : Opérateurs .
CHAPITRE 14 : Propriétés
4
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
CHAPITRE 12 : Méthodes .
INDEX
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
CHAPITRE 9 : Constantes
CHAPITRE 11 : Mots-clés
. . . . . . . . . . . . . . . . . . . . . . . . . . . 113
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 635
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 659
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1165
Table des matières
CHAPITRE 1
Introduction
Ce référentiel propose des informations conceptuelles et pratiques sur le scripting dans Director
MX 2004 de Macromedia ainsi que des descriptions et des exemples concernant les API
(Interfaces de Programmation d’Applications) de scripting que vous utilisez pour rédiger des
scripts.
Les API de scripting vous permettent d’accéder aux fonctionnalités de Director et d’augmenter
le caractère interactif d’une animation. Ces API vous permettent non seulement de créer des
fonctionnalités interactives identiques à celles qui correspondent aux comportements prédéfinis
de Director, mais aussi d’en créer d’autres, à la fois plus puissantes et plus variées.
Les comportements prédéfinis vous permettent d’ajouter un caractère interactif de base à une
animation. Il est ainsi possible de déplacer la tête de lecture sur un numéro d’image ou de repère,
ou d’effectuer un zoom lorsqu’on clique sur une image-objet. Ils vous permettent également
d’utiliser des fonctionnalités non interactives telles que l’animation d’images-objets, le chargement de médias et la navigation au sein des images. Les API de scripting vous permettent de
développer et de personnaliser ces types de fonctionnalités.
Public visé
Ce référentiel vous concerne si vous envisagez d'effectuer une ou plusieurs des opérations
suivantes :
• Développer les fonctionnalités existantes des comportements prédéfinis à l’aide de scripts.
• Ajouter des fonctionnalités à une animation avec des scripts plutôt qu’à l’aide des comportements prédéfinis.
• Ajouter des fonctionnalités plus puissantes, plus variées et plus personnalisées à une animation
que celles offertes par les comportements prédéfinis.
Le but de ce référentiel est de vous fournir toutes les informations dont vous avez besoin pour
ajouter de l’interactivité à vos animations à l’aide de scripts. Il n’est donc pas nécessaire d’être un
programmeur chevronné pour rédiger des scripts efficaces dans Director.
Quel que soit votre niveau de familiarité avec la syntaxe de Director, Lingo ou JavaScript,
consultez le Chapitre 2, Principes de base du scripting dans Director, page 9 et le Chapitre 3,
Rédaction de scripts dans Director, page 55 avant de commencer à rédiger des scripts. Comme tout
autre produit, Director possède ses propres conventions de scripting, types de données, etc. Pour
pouvoir rédiger de bons scripts, il est essentiel que vous vous familiarisiez de façon approfondie
avec ces caractéristiques de Director.
5
Nouveautés concernant le scripting de Director
Si vous avez rédigé des scripts avec les versions précédentes de Director, veuillez prendre note des
innovations et changements importants apportés à cette nouvelle version de scripting.
Format de scripting avec syntaxe à base de points
Dans les versions précédentes de Director, il était possible de rédiger des scripts Lingo en utilisant
deux types de syntaxe : la syntaxe verbose ou celle à points. La syntaxe verbose est très similaire à
l’anglais, et les programmeurs débutants pouvaient l’apprendre facilement. Toutefois, les scripts
avec syntaxe verbose sont vite devenus longs, complexes et difficiles à déboguer.
À présent que le modèle de scripting de Director est compatible avec les syntaxes Lingo et
JavaScript, les scripts doivent en principe être rédigés uniquement avec la syntaxe à points.
Beaucoup de programmeurs connaissent la syntaxe à points puisqu’elle est utilisée dans la plupart
des langages orientés objet tels que Java ou C++, et dans plusieurs langages de scripting web tels
que Microsoft JScript ou JavaScript.
Pour des raisons de compatibilité en amont, les scripts rédigés en utilisant la syntaxe verbose dans
les versions précédentes de Director continueront à être pris en charge. Toutefois, à partir de la
version Director MX 2004, la syntaxe à points est la syntaxe recommandée, et la seule qui sera
prise en charge et documentée à l’avenir.
Pour plus d’informations concernant l'utilisation de la syntaxe à points dans l'écriture de scripts,
consultez Format de scripting à syntaxe à points, page 56.
Compatibilité avec la syntaxe JavaScript
Director est désormais compatible avec la syntaxe JavaScript. Cela signifie que vous pouvez
non seulement créer et déboguer des scripts à l’aide de Lingo (le langage de scripting habituel
de Director) mais aussi choisir de créer et déboguer des scripts en utilisant la syntaxe JavaScript.
La version de JavaScript utilisée dans Director est appelée syntaxe JavaScript dans l'ensemble de
ce référentiel.
La prise en charge de la syntaxe JavaScript dans Director permet de créer un environnement
de scripting familier non seulement aux développeurs en JavaScript mais aussi à ceux habitués
à travailler avec les outils Macromedia Flash ActionScript, Flash Communication Server,
Dreamweaver, Authorware, ainsi qu’un certain nombre d’autres environnements.
La version de syntaxe JavaScript utilisée dans Director est JavaSript 1.5, ce qui signifie qu’elle est
entièrement compatible avec le standard ECMAScript Language Specification ECMA-262, 3ème
Édition. Pratiquement toutes les fonctions et fonctionnalités de JavaScript 1.5 sont désormais
disponibles dans Director.
Pour plus d’informations concernant le choix de la syntaxe Lingo ou JavaScript, reportez-vous à
la section Choisir entre Lingo et la syntaxe JavaScript, page 55.
Remarque : Ce référentiel se contente d’aborder les principales fonctions et fonctionnalités de la
version JavaScript 1.5 nécessaires à la rédaction de scripts utilisant la syntaxe JavaScript dans
Director. Il ne constitue pas un référentiel complet de JavaScript 1.5. Pour une information plus
détaillée sur JavaScript 1.5, consultez l’un des nombreux documents externes consacrés à ce sujet.
6
Chapitre 1 : Introduction
Nouvelles manières d’accéder aux API de scripting
Dans cette version de Director, les API de scripting ont été groupées par objets, et vous pouvez y
accéder par le biais de ces objets. Les objets en question comportent les fonctionnalités requises
pour ajouter de l’interactivité à vos animations et sont accessibles aux syntaxes Lingo et JavaScript
au sein de Director, des projections et de l'outil Macromedia Shockwave Player.
Même si la méthode pour y accéder peut être différente, vous avez accès aux mêmes API que dans
les versions précédentes, sans compter les toutes nouvelles API. La seule différence, c’est que vous
y accédez en utilisant les nouveaux objets.
Pour plus d’informations sur les objets et les API de scripting correspondantes, consultez
Introduction aux objets de Director, page 57.
Nouveautés dans cette documentation
Si vous avez appris à rédiger des scripts dans les versions précédentes de Director, veuillez prendre
note des changements apportés à la documentation de scripting dans cette nouvelle version. La
Référence de scripting de Director remplace le Dictionnaire Lingo accompagnant les versions
précédentes de Director. L’organisation de ce référentiel est différente de celle du Dictionnaire
Lingo.
Dans le Dictionnaire Lingo, les informations concernant le modèle de scripting étaient classées
par fonction. Par exemple, pour apprendre à utiliser les images-objets dans un script, vous
deviez consulter l’une des sections se trouvant sous l’en-tête Images-objets, telles que Glissement
d’images-objets, Dimensions des images-objets, etc. De plus, toutes les API de scripting étaient
répertoriées par ordre alphabétique dans une seule liste, et par conséquent les fonctions,
propriétés, événements, etc. figuraient tous dans la même liste.
Dans la Référence de scripting de Director, les informations concernant le modèle de scripting sont
classées par objet. Cette classification reflète fidèlement l’organisation des objets de scripting que
vous utilisez dans vos scripts. Par exemple, pour apprendre à utiliser les images-objets dans un
script, vous pouvez consulter la section Images-objets du chapitre Objets principaux de Director.
Les API de scripting sont toujours répertoriées par ordre alphabétique, mais sont classées par type
d’API. Par exemple, les méthodes sont toutes répertoriées par ordre alphabétique sous l’en-tête
Méthodes, les propriétés sont toutes classées par ordre alphabétique sous l’en-tête Propriétés, etc.
Recherche d’informations en matière de scripting dans Director
La nouvelle Référence de scripting de Director est organisé comme suit :
fournit des informations sur les concepts et
composants de base que vous utilisez lorsque vous rédigez des scripts dans Director.
Principes de base du scripting dans Director
Rédaction de scripts dans Director fournit des informations sur l’environnement de scripting
de Director, en plus de celles concernant les concepts et techniques de scripting avancés.
Débogage de scripts dans Director
fournit des informations sur la manière de résoudre les
problèmes liés à vos scripts.
Objets principaux de Director fournit une liste des objets et API utilisés pour accéder aux
principales fonctionnalités et fonctions de Director, telles que le moteur du lecteur de Director,
les fenêtres d'animation, les images-objets, les sons, etc.
Recherche d’informations en matière de scripting dans Director
7
Types de médias fournit une liste des types de médias et API que vous utilisez pour accéder
aux fonctionnalités des divers types de médias (RealMedia, DVD, GIF animé, etc.) et qui sont
ajoutés aux animations en tant qu'acteurs.
Objets de scripting fournit une liste d'objets de scripting, aussi appelés Xtras, et d'API utilisées
pour étendre les fonctionnalités de base de Director. Les Xtras permettent certaines actions telles
que l’importation de filtres et la connexion à Internet.
Objets 3D
fournit une liste des objets utilisés pour ajouter des fonctionnalités 3D à une
animation.
Constantes
fournit une liste des constantes disponibles dans Director.
Evénements et messages
Mots-clés
fournit une liste des mots clés disponibles dans Director.
Méthodes
fournit une liste des méthodes disponibles dans Director.
Opérateurs
Propriétés
8
fournit une liste des événements disponibles dans Director.
fournit une liste des opérateurs disponibles dans Director.
fournit une liste des propriétés disponibles dans Director.
Chapitre 1 : Introduction
CHAPITRE 2
Principes de base du scripting dans Director
Si vous êtes novice en matière de programmation avec Macromedia Director MX 2004, prenez le
temps d’apprendre les principaux concepts de scripting qui vous aideront à créer des scripts dans
Director avant de commencer. Certains de ces principes de base comprennent des définitions de
termes importants, les règles de syntaxe, les types de données disponibles et des informations sur
les éléments de base de scripting dans Director, tels que les variables, les tableaux et les opérateurs.
Types de scripts
Une animation Director peut contenir quatre types de scripts : les comportements, les scripts
d’animation, les scripts parents et les scripts associés aux acteurs. Les comportements, les scripts
d’animation et les scripts parents figurent tous dans la fenêtre Distribution sous la forme d’acteurs
indépendants. Un script associé à un acteur figure dans la fenêtre Distribution et n’apparaît pas
indépendamment.
• Les comportements sont des scripts associés à des images-objets ou images dans le scénario et
•
sont appelés comportements d’image-objet ou comportements d’image. La miniature de la
fenêtre Distribution de chaque comportement contient une icône de comportement dans
l’angle inférieur droit.
Lorsqu’il est utilisé dans la Référence de scripting de Director, le terme comportement se rapporte
à un script associé à une image-objet ou une image. Cette définition diffère de celle des comportements figurant dans la Palette des bibliothèques de Director. Pour plus d’informations
sur ces comportements de Director, consultez les rubriques Utilisation de Director du centre
de support de Director.
Tous les comportements ajoutés à une bibliothèque de distribution figurent dans le menu local
Comportements de l’inspecteur de comportement. Les autres types de scripts ne figurent pas
ici.
Vous pouvez placer le même comportement à plusieurs endroits du scénario. Lorsque vous
modifiez un comportement, la nouvelle version de ce comportement est appliquée à tous les
endroits auxquels il est associé dans le scénario.
Les scripts d’animations contiennent des gestionnaires disponibles globalement ou au niveau
d’une animation. Les gestionnaires d’événement d’un script d’animation peuvent être appelés
depuis n’importe quel script de l’animation pendant la lecture.
Une icône de script d’animation apparaît dans l’angle inférieur droit de la miniature correspondante dans la fenêtre Distribution.
9
•
•
Les scripts d’animation sont disponibles pour l’animation entière, quelle que soit l’image où se
trouve la tête de lecture ou l’image-objet que l’utilisateur manipule. Lors de la lecture d’une
animation dans une fenêtre ou comme animation liée, un script d’animation n’est disponible
que pour sa propre animation.
Les scripts parents sont des scripts spéciaux contenant les éléments Lingo utilisés pour créer des
objets enfants. Vous pouvez utiliser des scripts parents pour générer des objets scripts qui ont
une réponse et un comportement similaires tout en se comportant indépendamment les uns
des autres. Une icône de script parent apparaît dans l’angle inférieur droit de la miniature
correspondante dans la fenêtre Distribution.
Pour obtenir des informations sur l’utilisation des scripts parents et des objets enfants,
consultez Programmation orientée objet avec Lingo, page 61.
La syntaxe JavaScript n’utilise pas de scripts parents ou d’objets enfants. Elle utilise des techniques de programmation orientée objet de style JavaScript normales. Pour plus d’informations
sur la programmation orientée objet dans la syntaxe JavaScript, consultez Programmation orientée objet avec la syntaxe JavaScript, page 72.
Les scripts associés aux acteurs sont des scripts directement associés à un acteur, indépendamment du scénario. Lorsque ces acteurs sont affectés à des images-objets, leurs scripts sont mis à
la disposition de ces dernières.
Contrairement aux comportements, aux scripts parents et aux scripts d’animation, les scripts
d’acteurs n’apparaissent pas dans la fenêtre Distribution. Cependant, si l’option Afficher les
icônes de script des acteurs est sélectionnée dans la boîte de dialogue Préférences de la fenêtre
Distribution, les acteurs auxquels sont associés des scripts sont identifiés par une petite icône
de script dans l’angle inférieur gauche de leur miniature dans la fenêtre Distribution.
Terminologie de scripting
La syntaxe Lingo et la syntaxe JavaScript utilisent toutes deux des termes qui sont propres à
chaque langage, en plus de certains termes qui sont partagés par ces langages.
Les termes importants sont présentés ici par ordre alphabétique. Ces termes sont couramment
utilisés dans la Référence de scripting de Director, et il est donc nécesaire de bien les assimiler avant
de continuer.
• Les constantes sont des éléments dont les valeurs ne changent jamais. Par exemple, en
•
10
Lingo, les constantes telles que TAB, EMPTY et RETURN ont toujours les mêmes valeurs et ne
peuvent pas être modifiées. Dans la syntaxe JavaScript, les constantes telles que Math.PI et
Number.MAX_VALUE ont toujours les mêmes valeurs et ne peuvent pas être modifiées. Vous
pouvez également créer vos propres constantes dans la syntaxe JavaScript à l’aide du mot clé
const.
Pour plus d’informations sur les constantes, consultez Constantes, page 21.
Les événements sont des actions qui se produisent pendant la lecture d’une animation. Les
événements se produisent à l’arrêt d’une animation, au démarrage d’une image-objet, à l’entrée
de la tête de lecture dans une image, lors de l’emploi du clavier par l’utilisateur, etc. Les événements de Director sont tous prédéfinis et ont toujours le même sens.
Pour plus d’informations sur les événements, consultez Evénements, page 36.
Chapitre 2 : Principes de base du scripting dans Director
• Les expressions sont des parties d’instruction produisant une valeur. Par exemple, 2
•
•
+ 2 est
une expression.
Les fonctions font référence à des fonctions de haut niveau ou à des types spécifiques de codes
de la syntaxe JavaScript.
Une fonction de haut niveau ordonne à une animation de faire quelque chose pendant la
lecture de l’animation ou renvoie une valeur, mais elle n’est pas appelée à partir d’un objet
spécifique. Par exemple, vous appelez la fonction de haut niveau list() en utilisant la syntaxe
list(). Comme c’est le cas pour une fonction, une méthode ordonne également à une
animation de faire quelque chose pendant la lecture de l’animation ou renvoie une valeur,
mais elle est toujours appelée à partir d’un objet.
En JavaScript, une fonction représente un gestionnaire d’événement, un objet personnalisé,
une méthode personnalisée, etc. L‘utilisation des fonctions JavaScripts dans des cas pareils est
expliquée dans les rubriques appropriées, plus loin dans cette référentiel.
Les gestionnaires ou gestionnaires d’événement sont des ensembles d’instructions placées
dans un script et exécutées en réponse à un événement déterminé et à un message subséquent.
Lorsqu’un événement se produit, Director génère et envoie un message correspondant
aux scripts et un gestionnaire approprié est exécuté en réponse au message. Les noms des
gestionnaires sont toujours les mêmes que les événements et messages auxquels ils répondent.
Remarque : Bien qu’un événement soit géré par une fonction dans la syntaxe JavaScript, le terme
gestionnaire désigne, dans ce référentiel, à la fois les gestionnaires Lingo et les fonctions de la
syntaxe JavaScript qui gèrent les événements.
Pour plus d’informations sur les gestionnaires, consultez Gestionnaires, page 38.
• Les instructions sont des instructions valides que Director peut exécuter. Les scripts sont composés d’ensembles d’instructions. L’instruction Lingo suivante est une instruction complète.
_movie.go("Auteur")
•
•
Pour plus d’informations sur la rédaction d’instructions, consultez Format de scripting à syntaxe
à points, page 56.
Les listes (Lingo) ou tableaux (syntaxe JavaScript) sont des ensembles ordonnés de valeurs
qui permettent le suivi et la mise à jour d’un ensemble de données, comme une série de noms
ou de valeurs affectés à un ensemble de variables. Un exemple simple de liste est une liste de
nombres tels que [1, 4, 2].
Pour plus d’informations sur l’utilisation des listes en Lingo et dans la syntaxe JavaScript,
consultez Listes linéaires et listes de propriétés, page 42.
Pour plus d’informations sur l’utilisation des tableaux de la syntaxe JavaScript, consultez
Tableaux de la syntaxe JavaScript, page 50.
Les messages sont des avertissements envoyés aux scripts par Director lorsque des événements
déterminés se produisent dans une animation. Par exemple, lorsque la tête de lecture entre
dans une image donnée, l’événement enterFrame se produit et Director envoie un message
enterFrame. Si un script contient un gestionnaire enterFrame, les instructions de ce gestionnaire seront exécutées puisque le gestionnaire a reçu le message enterFrame. Si aucun script ne
contient de gestionnaire de message, le message est ignoré dans le script.
Pour plus d’informations sur les messages, consultez Messages, page 37.
Terminologie de scripting
11
• Les méthodes sont des termes entraînant une action pendant la lecture de l’animation ou le
•
•
•
•
•
12
renvoi d’une valeur, et sont appelées à partir d’un objet. Par exemple, vous appelez la méthode
insertFrame() de l’objet Animation en utilisant la syntaxe _movie.insertFrame(). Bien
que leurs fonctionnalités soient similaires aux fonctions de haut niveau, les méthodes sont
toujours appelées à partir d’un objet, contrairement aux fonctions de haut niveau.
Mots-clés : mots réservés ayant un sens particulier. Par exemple, en Lingo, le mot clé end
indique la fin d’un gestionnaire. Dans la syntaxe JavaScript, le mot clé var indique que le
terme suivant est une variable.
Les opérateurs calculent une nouvelle valeur à partir d’une ou de plusieurs valeurs. Par
exemple, l’opérateur d’addition (+) additionne deux valeurs ou plus pour produire une
nouvelle valeur.
Pour plus d’informations sur les opérateurs, consultez Opérateurs, page 27.
Les paramètres sont des repères permettant de transmettre des valeurs aux scripts. Les
paramètres s’appliquent aux méthodes et gestionnaires d’événement, mais pas aux propriétés.
Ils sont exigés par certaines méthodes, mais ne sont pas obligatoires pour d’autres.
Par exemple, la méthode go() de l’objet Animation envoie la tête de lecture à une image
précise, et indique éventuellement le nom de l’animation dans laquelle se trouve l’image.
Pour effectuer cette tâche, la méthode go() nécessite au moins un paramètre et en accepte
un autre. Le premier paramètre requis précise l’image à laquelle doit être envoyée la tête de
lecture, le second paramètre facultatif indiquant l’animation dans laquelle se trouve l’image.
Vu que le premier paramètre est obligatoire, une erreur de script sera renvoyée s’il n’est pas
présent au moment où la méthode go() est invoquée. Étant donné que le second paramètre
est facultatif, la méthode effectuera sa tâche même si ce paramètre n’est pas présent.
Les propriétés sont des attributs définissant un objet. Par exemple, l’image-objet d’une
animation possède des attributs précis tels que sa largeur, sa hauteur, la couleur de son arrièreplan, etc. Pour accéder aux valeurs de ces trois attributs, vous devez utiliser les propriétés
width, height et backColor de l’objet de l’image-objet.
Pour plus d’informations sur l’attribution de propriétés aux variables, consultez Stockage et mise
à jour de valeurs dans des variables, page 22.
Les variables sont des éléments servant à stocker et à mettre à jour des valeurs. Les variables
doivent commencer par une lettre, un trait de soulignement (_) ou le signe dollar ($). Les
caractères suivants du nom d’une variable peuvent être des chiffres (0-9). Pour attribuer des
valeurs aux variables ou changer les valeurs de plusieurs propriétés, utilisez l’opérateur égal à
(=).
Pour plus d’informations sur l’utilisation des variables, consultez Variables, page 22.
Chapitre 2 : Principes de base du scripting dans Director
Syntaxe de scripting
Les règles générales suivantes s’appliquent à la syntaxe Lingo et JavaScript.
• Les repères de commentaires varient de Lingo à la syntaxe JavaScript.
Les commentaires Lingo sont tous précédés de doubles tirets (--). Chaque ligne d’un commentaire constitué de plusieurs lignes doit être précédée de doubles tirets.
-- Ceci est un commentaire Lingo à une seule ligne.
-- Ceci est un
-- commentaire Lingo à plusieurs lignes.
Les commentaires d’une seule ligne utilisant la syntaxe JavaScript sont précédés de deux barres
obliques (//). Les commentaires à plusieurs lignes sont précédés du signe /* suivi du signe */.
// Ceci est un commentaire JavaScript d’une seule ligne.
/* Ceci est un
commentaire JavaScript de plusieurs lignes.*/
•
Vous pouvez placer un commentaire sur une ligne séparée ou après une instruction. Le texte
qui suit les repères de commentaires sur la même ligne sera ignoré.
Les commentaires peuvent être variés : il peut s’agir de notes concernant un script ou d’un gestionnaire particulier ou d’une instruction dont l’objectif n’est pas évident. Ces commentaires
vous permettent de vous familiariser avec une procédure que vous n’avez pas utilisée depuis
longtemps.
L’ajout d’un grand nombre de commentaires n’augmente pas la taille de votre fichier d’animation lorsqu’il est enregistré sous forme d’un fichier compressé DCR ou DXR. Les commentaires seront supprimés du fichier lors du processus de décompression.
Vous pouvez également utiliser les repères de commentaires pour ignorer les sections de code
que vous souhaitez désactiver à des fins de test ou de débogage. En ajoutant des repères de
commentaires à votre code au lieu de le supprimer, vous le transformez provisoirement en
commentaires. Sélectionnez le code à activer ou à désactiver et utilisez les boutons Insérer une
marque de commentaire ou Supprimer la marque de commentaire de la fenêtre Script pour
ajouter ou retirer rapidement les repères de commentaires.
Les parenthèses sont nécessaires après chaque nom de méthode et de fonction. Par exemple,
lorsque vous appelez la méthode beep() de l’objet Son, vous devez insérer des parenthèses
après le mot beep. Autrement, une erreur de script se produira.
// Syntaxe JavaScript
_sound.beep(); // cette instruction fonctionnera correctement
_sound.beep; // cette instruction entraînera une erreur de script
Lorsque vous appelez une méthode, une fonction ou un gestionnaire à partir d’une autre
méthode ou fonction ou d’un autre gestionnaire, vous devez inclure des parenthèses dans
l’instruction d’appel. Dans l’exemple suivant, la méthode modifierImage-objet() contient
un appel de gestionnaire image-objetCliquée. Si l’appel du gestionnaire imageobjetCliquée ne contient pas de parenthèses, vous obtenez une erreur de script.
Syntaxe de scripting
13
// Syntaxe JavaScript
function modifierImage-objet() {
image-objetCliquée(); // cet appel du gestionnaire fonctionnera
correctement
image-objetCliquée; // cet appel du gestionnaire entraînera une erreur de
script
}
function image-objetCliquée() {
// code gestionnaire ici
}
Vous pouvez également utiliser des parenthèses pour ignorer l’ordre de priorité dans les
opérations mathématiques ou pour simplifier la lecture de vos instructions. Par exemple,
la première expression mathématique ci-dessous renverra le résultat 13, tandis que la seconde
expression renverra le résultat 5 :
5 * 3 - 2 -- renvoie 13
5 * (3 - 2) -- renvoie 5
• La syntaxe des gestionnaires d’événements varie de Lingo à JavaScript. En Lingo, les
gestionnaires utilisent la syntaxe on nomDeGestionnaire. En JavaScript, les gestionnaires sont
considérés comme des fonctions et utilisent la syntaxe function nomDeGestionnaire(). Par
exemple, les instructions suivantes contiennent un gestionnaire qui émet un bip lorsque
l’utilisateur clique sur la souris :
--Syntaxe Lingo
on mouseDown
_sound.beep()
end
// Syntaxe JavaScript
function mouseDown() {
_sound.beep();
}
• La syntaxe des paramètres des gestionnaires d’événements peut varier de Lingo à la syntaxe
JavaScript. Lingo et JavaScript supportent tous deux les paramètres passés à un gestionnaire et
mis entre parenthèses. Si plusieurs paramètres sont passés, chaque paramètre est séparé par une
virgule. En Lingo, vous pouvez également passer des paramètres qui ne sont pas mis entre
parenthèses. Par exemple, le gestionnaire additionParam suivant reçoit les deux paramètres a
et b.
--Syntaxe Lingo
on additionParam a, b -- sans parenthèses
c = a + b
end
on additionParam(a, b) -- avec parenthèses
c = a + b
end
// Syntaxe JavaScript
function additionParam(a, b) {
c = a + b;
}
14
Chapitre 2 : Principes de base du scripting dans Director
• Le mot-clé const peut être utilisé dans la syntaxe JavaScript pour préciser une constante dont
la valeur ne change pas. Lingo possède son propre ensemble de constantes prédéfinies (TAB,
EMPTY, etc.) ; le mot-clé const ne s’applique donc pas à Lingo.
Par exemple, l’instruction suivante indique une constante appelée intAuthors et définit sa
valeur comme étant 12. Cette valeur sera toujours 12 et ne pourra pas être modifiée dans le
script.
// Syntaxe JavaScript
const intAuthors = 12;
• Le mot-clé var dans la syntaxe JavaScript peut être placé devant un mot pour préciser que ce
terme est une variable. L’instruction suivante crée une variable appelée valeurDébut.
// Syntaxe JavaScript
var valeurDébut = 0;
Remarque : Bien que l’utilisation de var dans la syntaxe JavaScript soit facultative, il est recommandé de toujours déclarer les variables JavaScript locales ou celles au sein d’une fonction à
l’aide de var. Pour plus d’informations sur l’utilisation des variables, consultez Variables, page 22.
• Le symbole de continuation (\) de Lingo indique qu’une longue ligne d’exemples de codes
s’étale sur deux ou plusieurs lignes. Les lignes Lingo divisées de cette manière ne représentent
pas des lignes de codes séparées. Par exemple, le code suivant sera valide.
--Syntaxe Lingo
tTexture = member("3D").model("Boîte") \
.shader.texture
•
La syntaxe JavaScript ne comporte pas de symbole de continuation de ligne. Pour diviser une
longue chaîne de codes JavaScript en plusieurs lignes, il vous suffit d’ajouter un retour à la ligne
à la fin d’une ligne.
Le point-virgule peut être utilisé pour indiquer la fin d’une instruction en code JavaScript.
Le point-virgule ne s’applique pas à Lingo.
L‘utilisation du point-virgule est facultative. Lorsqu’il est utilisé, il doit être placé à la fin d’une
instruction complète. Par exemple, les deux instructions suivantes créent une variable appelée
valeurDébut.
// Syntaxe JavaScript
var valeurDébut = 0
var valeurDébut = 0;
Un point-virgulevirgule n’indique pas nécessairement la fin d’une ligne de codes JavaScript, et
plusieurs instructions peuvent être placées sur une ligne. Toutefois, et pour des raisons de
clarté, il est conseillé de placer des instructions sur des lignes séparées. Par exemple, les trois
instructions suivantes occupent une seule ligne de codes et sont valides, mais la lecture des
codes n’est pas aisée.
// Syntaxe JavaScript
_movie.go("Auteur"); var valeurDébut = 0; _sound.beep();
• Les espaces entre les caractères au sein des expressions et instructions sont ignorés en Lingo et
en JavaScript. Dans les chaînes de caractères entre guillemets droits, les espaces sont considérés
comme des caractères. Si vous souhaitez insérer des espaces dans une chaîne, vous devez les y
placer explicitement. Par exemple, la première instruction ci-dessous ignore les espaces entre les
éléments de la liste, et la seconde inclut les espaces.
--Syntaxe Lingo
maListe1 = ["1",
maListe2 = [" 1
", "
"2",
"3"] -- renvoie ["1", "2", "3"]
2 ", " 3 "] -- renvoie [" 1 ", " 2
", "
Syntaxe de scripting
3
"]
15
• La sensibilité à la casse varie de Lingo à la syntaxe JavaScript.
Lingo ne fait pas la différence entre les majuscules et les minuscules, ce qui vous permet
d’utiliser les majuscules et les minuscules comme bon vous semble. Par exemple, les quatre
instructions suivantes sont équivalentes :
--Syntaxe Lingo
member("Chat").hilite
member("chat").hiLite
MEMBER("CHAT").HILITE
Member("Chat").Hilite
=
=
=
=
true
True
TRUE
true
Bien que Lingo ne soit pas sensible à la casse, il est recommandé de choisir une casse et de
l’utiliser de manière cohérente dans les scripts. Cette habitude permet d’identifier plus
facilement les noms de gestionnaires, variables, acteurs, etc.
La syntaxe JavaScript est sensible à la casse lorsqu’elle fait référence à des objets, propriétés de
haut niveau ou méthodes liées aux variables définies par l’utilisateur. Par exemple, la méthode
de haut niveau sprite() renvoie un référence à une image-objet précise, et est implementée
dans Director avec des lettres minuscules. La première instruction ci-dessous se rapporte au
nom de la première image-objet d’une animation, tandis que les deux instructions suivantes
entraînent une erreur de script.
// Syntaxe JavaScript
sprite(1).name // Cette instruction fonctionne normalement
Sprite(1).name // Cette instruction entraîne une erreur de script
SPRITE(1).name // Cette instruction entraîne une erreur de script
Les chaînes littérales sont toujours sensibles à la casse en Lingo et en JavaScript.
Pour plus d’informations sur l’utilisation des chaînes, consultez Chaînes, page 19.
Types de données
Un type de données est un ensemble de données dont les valeurs possèdent des caractéristiques
similaires et prédéfinies. Chaque valeur de variable et de propriété dans Directeur est d’un type de
données précis, et les valeurs renvoyées par les méthodes sont d’un type de données précis.
Par exemple, considérons les deux instructions suivantes. Dans la première instruction, il a été
attribué à la variable entX le nombre entier 14. La variable entX est donc du type de données
nombre entier. Dans la seconde instruction, il a été attribué à la variable chaîneX une séquence
de valeurs de caractères, c’est-à-dire une chaîne. La variable chaîneX est donc du type de données
chaîne.
--Syntaxe Lingo
entX = 14
chaîneX = "Nouvelles du jour"
// Syntaxe JavaScript
var entX = 14;
var chaîneX = "Nouvelles du jour";
Les valeurs renvoyées par les méthodes ou fonctions appartiennent également à un type de
données. Par exemple, la méthode windowPresent() de l’objet Lecteur renvoie une valeur
indiquant si une fenêtre est présente. La valeur renvoyée est TRUE (1) ou FALSE (0).
16
Chapitre 2 : Principes de base du scripting dans Director
Certains types de données sont partagés par Lingo et JavaScript, et d’autres se rapportent à l’un ou
l’autre langage. L‘ensemble de types de données pris en charge par Director est fixe et ne peut être
modifié, ce qui signifie qu’il n’est pas possible d’ajouter de nouveaux types de données ou de
supprimer les types de données existants. Director supporte les types de données suivants.
Type de données
Description
# (symbole)
Unité autonome pouvant représenter une condition ou un indicateur.
Par exemple, #list ou #word.
Array
(Syntaxe JavaScript seulement) Bien qu’il ne s’agisse pas exactement
d’un type de données, un objet Array (tableau) peut être utilisé sur des
listes linéaires de valeurs. La fonctionnalité d’un objet Array est identique à
celle du type de données Liste de Lingo.
Boolean
Une valeur TRUE (1) ou FALSE (0). En Lingo, toutes les valeurs TRUE ou FALSE
sont de simples constantes de nombres entiers, 1 pour TRUE, 0 pour FALSE.
Dans la syntaxe JavaScript, toutes les valeurs true ou false sont, par
défaut, les vraies valeurs booléennestrue ou false, mais sont automatiquement converties, le cas échéant, en simples constantes de nombres
entiers dans Director.
En Lingo, TRUE et FALSE peuvent être en majuscules ou minuscules. Dans la
syntaxe JavaScript, true et false doivent toujours être en minuscules.
Color
Représente la couleur d’un objet.
Constant
Une donnée dont la valeur ne change pas.
Date
Bien qu’il ne s’agisse pas exactement d’un type de données, un objet Date
peut être utilisé avec les dates en JavaScript. En Lingo, utilisez la méthode
date() pour travailler avec les dates.
Float
(Lingo seulement) Nombre à virgule flottante. Par exemple, 2,345 ou
45,43.
Function
(Syntaxe JavaScript seulement) Bien qu’il ne s’agisse pas exactement
d’un type de données, un objet Function peut être utilisé pour préciser une
chaîne ou un code à exécuter.
Integer
(Lingo seulement) Nombre entier. Par exemple, 5 ou 298.
List
Une liste linéaire ou de propriétés composée respectivement de noms de
valeurs ou de propriétés, et de valeurs.
Math
(Syntaxe JavaScript seulement) Bien qu’il ne s’agisse pas exactement
d’un type de données, un objet Math peut être utilisé pour effectuer des
opérations mathématiques.
null
(Syntaxe JavaScript seulement) Indique une variable dont la valeur
correspond à 0 dans les contextes numériques et à FALSE dans les
contextes booléens.
Number
(Syntaxe JavaScript seulement) Bien qu’il ne s’agisse pas exactement
d’un type de données, un objet Number peut être utilisé pour représenter
des constantes numériques telles qu’une valeur maximale, une valeur nota-number (NaN) et une infinité.
Types de données
17
Type de données
Description
Object
Bien qu’il ne s’agisse pas exactement d’un type de données, un objet
Object peut être utilisé pour créer un conteneur personnalisé de données
et des méthodes agissant sur les données.
Point
Point sur la scène ayant une coordonnée à la fois horizontale et verticale.
Rect
Rectangle sur la scène.
RegExp
(JavaScript seulement) Modèle d’expression régulier correspondant à des
combinaisons de caractères dans des chaînes.
String
Chaîne de symboles clavier ou de valeurs de caractères. Par exemple,
"Director" ou "$5.00".
undefined
(Syntaxe JavaScript seulement) Indique une variable qui n’a pas de valeur.
Vector
Point dans l’espace 3D.
VOID
(Lingo seulement) Indique une valeur vide.
Remarque : Plusieurs types de données et d’objets de la syntaxe JavaScript possèdent leur propre
ensemble de méthodes et propriétés qui peuvent être utilisées pour manipuler ces types. Bien que la
Référence de scripting de Director donne parfois des informations sur certaines de ces méthodes et
propriétés, ces informations ne sont pas complètes. Pour plus d’informations sur ces types de
données et objets, et leur méthodes et propriétés, consultez l’une des nombreuses ressources sur le
sujet.
Les propriétés intégrées de Director, telles que la propriété name de l’objet Acteur, ne peuvent
recevoir que des valeurs qui sont du même type de données que celui de la propriété. Par exemple,
le type de données de propriété du name de l’objet Auteur est une chaîne, et la valeur doit donc
être une chaîne telle que Nouvelle du jour. Si vous essayez d’attribuer une valeur de type de
données différent à cette propriété, telle que le nombre entier 20, vous obtenez une erreur de
script.
Si vous créez vos propres propriétés, leurs valeurs peuvent être de n’importe quel type de données,
quel que soit le type de données de la valeur initiale.
Les syntaxes Lingo et JavaScript sont toutes deux dynamiques. Cela signifie que vous n’avez pas à
préciser le type de données d’une variable lorsque vous la déclarez et que les types de données sont
automatiquement convertis lors de l’exécution d’un script.
Par exemple, la syntaxe JavaScript suivante définit la variable monAnimation comme étant un
nombre entier, et plus tard, est définie comme étant une chaîne. Lors de l’exécution du script, le
type de données de monAnimation est converti automatiquement.
--Syntaxe Lingo
monAnimation = 15 -- monAnimation est défini, au départ, en tant que nombre
entier
...
monAnimation = "Animations" -- monAnimation est défini, par la suite, en tant
que chaîne
// Syntaxe JavaScript
var monAnimation = 15; // monAnimation est défini, au départ, en tant que
nombre entier
...
monAnimation = "Animations " -- monAnimation est défini, par la suite, en tant
que chaîne
18
Chapitre 2 : Principes de base du scripting dans Director
Valeurs littérales
Une valeur littérale est une partie d’instruction ou d’expression qui doit être traitée telle quelle,
et non comme une variable ou un élément de script. Les valeurs littérales que vous pourrez
rencontrer dans un script sont les chaînes de caractères, les entiers, les nombres décimaux, les
noms et numéros d’acteurs, les noms et numéros d’images et d’animations, les symboles et les
constantes.
Chaque type de valeur littérale est régi par ses propres règles.
Chaînes
Les chaînes sont des mots ou des groupes de caractères que le script traite en tant que mots
standard, et non en tant que variables. Elles doivent être encadrées de guillemets droits. Par
exemple, vous pouvez utiliser des chaînes pour transmettre des messages aux utilisateurs de
votre animation ou pour attribuer des noms aux acteurs. Dans l’instruction suivante, Bonjour
et Salutations sont des chaînes. Bonjour est le texte littéral placé dans l’acteur texte et
Salutations est le nom de ce dernier.
--Syntaxe Lingo
member("Salutations").text = "Bonjour"
De même, lorsque vous testez une chaîne, vous devez l’encadrer de guillemets droits, comme dans
l’exemple suivant :
--Syntaxe Lingo
if "Bonjour M. Dupont" contains "Bonjour" then gestionnaireAudio
Lingo et JavaScript considèrent les espaces figurant au début ou à la fin d’une chaîne comme une
partie littérale de la chaîne. L’expression suivante comprend un espace après le mot à :
// Syntaxe JavaScript
trace("Mes pensées se résument à ");
Bien que Lingo ne distingue pas les majuscules des minuscules lorsqu’il fait référence aux acteurs,
aux variables, etc., les chaînes littérales sont sensibles à la casse. Par exemple, les deux instructions
suivantes placent un texte différent dans l’acteur indiqué, car Bonjour et BONJOUR sont des
chaînes littérales.
--Syntaxe Lingo
member("Salutations").text = "Bonjour"
member("Salutations").text = "BONJOUR"
En Lingo, la fonction string() peut convertir une valeur numérique en une chaîne. Dans la
syntaxe JavaScript, la méthode toString() peut convertir une valeur numérique en une chaîne.
Remarque : Si vous essayez d’utiliser la méthode toString() de la syntaxe JavaScript sur une
valeur null ou undefined, vous obtenez une erreur de script. Ceci n’est pas le cas en Lingo, dont la
fonction string() s’applique à toutes les valeurs, y compris celles qui sont VOID.
Valeurs littérales
19
Nombres
Il existe deux types de nombres en Lingo : entiers et décimaux.
Un nombre entier ne comporte ni fraction ni décimale, dans les plages -2 147 483 648 et
+2 147 483 647. Entrez des nombres entiers sans utiliser de virgule. Utilisez le signe moins (-)
pour les nombres négatifs.
Un nombre décimal, également appelé nombre à virgule flottante, est un nombre qui inclut une
virgule décimale. En Lingo, la propriété floatPrecision détermine le nombre de décimales
utilisées pour l’affichage de ces nombres. Director utilise toujours le nombre tout entier, jusqu’à
15 chiffres utiles , dans ses calculs ; il arrondit tout nombre comportant plus de 15 chiffres utiles.
JavaScript ne fait pas de distinction entre les nombres entiers et les nombres à virgule flottante, et
n’utilise que des nombres. Par exemple, les instructions suivantes montrent que le nombre 1 est
un nombre entier en Lingo et un nombre dans la syntaxe JavaScript, et que le nombre décimal
1.05 est un nombre à virgule flottante en Lingo et un nombre en JavaScript :
--Syntaxe Lingo
put(ilk(1)) -- #integer
put(ilk(1.05)) -- #float
// Syntaxe JavaScript
trace(typeof(1)); // nombre
trace(typeof(1.05)); // nombre
En Lingo, vous pouvez convertir un nombre décimal en nombre entier avec la fonction
integer(). Vous pouvez également convertir un nombre entier en nombre décimal en effectuant
une opération mathématique sur le nombre entier, par exemple en multipliant le nombre entier
par le nombre décimal. En JavaScript, la fonction parseInt() vous permet de convertir une
chaîne ou un nombre décimal en nombre entier. Contrairement à la fonction integer() de
Lingo, parseInt() arrondit au plus petit. Par exemple, l’instruction suivante arrondit le nombre
décimal 3.9 et le convertit au nombre entier 4 (Lingo) et 3 (JavaScript).
--Syntaxe Lingo
leNombre = integer(3.9) – renvoie la valeur 4
// Syntaxe JavaScript
var leNombre = parseInt(3.9); // renvoie la valeur 3
En Lingo, la fonction value() peut convertir une chaîne en une valeur numérique.
Vous pouvez également utiliser une notation exponentielle avec les nombres décimaux : par
exemple, -1.1234e-100 ou 123.4e+9.
En Lingo, vous pouvez convertir un nombre entier ou une chaîne en nombre décimal avec la
fonction float(). En JavaScript, la fonction parseFloat() vous permet de convertir une
chaîne en nombre décimal. Par exemple, l’instruction suivante enregistre la valeur 3.0000 (Lingo)
et 3 (syntaxe JavaScript) dans la variable leNombre.
--Syntaxe Lingo
leNombre = float(3) – renvoie une valeur de 3.0000
// Syntaxe JavaScript
var leNombre = parseFloat(3) // renvoie une valeur de 3
20
Chapitre 2 : Principes de base du scripting dans Director
Constantes
Une constante est une valeur déclarée dont le contenu ne change jamais.
En Lingo, les termes prédéfinis TRUE, FALSE, VOID et EMPTY sont des constantes car leur valeur ne
change jamais. Les termes prédéfinis BACKSPACE, ENTER, QUOTE, RETURN, SPACE et TAB sont des
constantes qui font référence aux touches du clavier. Par exemple, pour tester si la dernière touche
enfoncée par l’utilisateur était la barre Espace, utilisez l’instruction suivante :
--Syntaxe Lingo
if _key.keyPressed() = SPACE then beep()
En JavaScript, vous pouvez accéder à des constantes prédéfinies à l’aide de types de données
propres à la syntaxe JavaScript. Par exemple, objet Number contient des constantes telles que
Number.MAX_VALUE et Number.NaN, l’objet Math renferme des constantes telles que Math.PI et
Math.E, etc.
Remarque : Ce référentiel ne fournit pas d’informations complètes sur les constantes prédéfinies
dans la syntaxe JavaScript. Pour plus d’informations sur ces constantes, consultez les nombreuses
autres ressources consacrées à ce sujet.
Dans la syntaxe JavaScript, vous pouvez également définir vos propres constantes à l’aide du motclé const. Par exemple, l’instruction suivante crée une constante appelée items et lui attribue la
valeur 20. Cette valeur ne peut pas être modifiée après sa création.
// Syntaxe JavaScript
const items = 20;
Pour plus d’informations sur les constantes, consultez le Chapitre 9, Constantes, page 165.
Symboles
En Lingo, un symbole est une chaîne ou toute autre valeur précédée du signe dièse (#).
Les symboles sont des constantes définies par l’utilisateur. Les comparaisons utilisant des
symboles s’effectuent très rapidement, créant ainsi un code plus efficace.
Par exemple, la première instruction ci-dessous s’exécute plus rapidement que la seconde :
--Syntaxe Lingo
niveauUtilisateur = #novice
niveauUtilisateur = "novice"
Les symboles ne peuvent contenir ni espace ni ponctuation.
En Lingo et en JavaScript, convertissez une chaîne en symbole à l’aide de la méthode symbol().
--Syntaxe Lingo
x = symbol("novice") – renvoie le résultat #novice
// Syntaxe JavaScript
var x = symbol("novice"); // renvoie le résultat #novice
Reconvertissez un symbole en chaîne à l’aide de la fonction string() (Lingo) ou la méthode
toString() (syntaxe JavaScript).
--Syntaxe Lingo
x = string(#novice) -- renvoie "novice"
// Syntaxe JavaScript
var x = symbol("novice").toString(); // renvoie le résultat "novice"
Valeurs littérales
21
Dans la syntaxe JavaScript, vous ne pouvez pas comparer des symboles du même nom pour
déterminer s’ils font référence au même symbole. Pour comparer des symboles du même nom,
vous devez d’abord les convertir en chaîne en utilisant la méthode toString().
Variables
Director utilise des variables pour conserver et actualiser les valeurs. Comme son nom l’indique,
une variable contient une valeur qui peut être modifiée ou mise à jour pendant la lecture de
l’animation. En modifiant la valeur d’une variable pendant la lecture de l’animation, vous pouvez
par exemple stocker une URL, mémoriser le nombre de fois qu’un utilisateur prend part à une
session de discussion en ligne, enregistrer si une opération réseau est terminée ou non, etc.
Il est conseillé de toujours attribuer une valeur connue à une variable la première fois que vous la
déclarez. Cette opération est appelée « initialisation d’une variable ». L’initialisation d’une variable
facilite le suivi de cette variable et permet de comparer ses différentes valeurs au fur et à mesure de
la lecture de l’animation.
Les variables peuvent être globales ou locales. Une variable locale n’existe que tant que le
gestionnaire dans lequel elle a été définie est en cours d’exécution. Une variable globale peut
exister et conserver sa valeur tant que l’application Director est en cours d’exécution, notamment
lorsqu’une animation passe à une autre animation. Une variable peut être globale au sein d’un
gestionnaire individuel, un script spécifique ou une animation entière ; la portée dépend de la
manière dont la variable globale est initialisée.
Puisque les variables globales doivent en général être disponibles durant toute l’animation,
il est d’usage de les déclarer dans un gestionnaire on prepareMovie (Lingo) ou function
prepareMovie() (syntaxe JavaScript). Elles sont ainsi disponibles dès le début de l’animation.
Pour plus d’informations sur l’utilisation des variables globales et locales, consultez Utilisation de
variables globales, page 24 et Utilisation de variables locales, page 26.
Stockage et mise à jour de valeurs dans des variables
Les variables peuvent contenir des données pour tous les types de données de Director, qu’il
s’agisse de nombres entiers, de chaînes, de valeurs TRUE ou FALSE, de symboles, de listes ou du
résultat d’un calcul. Pour stocker les valeurs des propriétés et des variables, utilisez l’opérateur égal
à (=).
Comme indiqué dans la section Types de données de ce référentiel, les variables de Lingo et
JavaScript sont dynamiques, ce qui signifie qu’elles contiennent des types de données différents à
des moments différents. (La possibilité de modifier le type d’une variable distingue Lingo d’autres
langages tels que Java et C++, où cette possibilité n’existe pas.)
Par exemple, l’instruction set x = 1 crée la variable x, qui est une variable nombre entier, car
vous lui avez attribué un entier. Si vous utilisez ensuite l’instruction set x = "un", la variable x
devient une variable à chaîne puisqu’elle contient maintenant une chaîne.
Vous pouvez convertir une chaîne en nombre à l’aide de la fonction value() (Lingo) ou de la
méthode parseInt() (syntaxe JavaScript), ou un nombre en chaîne à l’aide de la fonction
string() (Lingo) ou de la méthode toString() (syntaxe JavaScript).
22
Chapitre 2 : Principes de base du scripting dans Director
Les valeurs de certaines propriétés peuvent être définies (la valeur est attribuée) et renvoyées
(la valeur est récupérée), et les valeurs de certaines propriétés ne peuvent être que renvoyées.
Les propriétés dont les valeurs peuvent être à la fois définies et renvoyées sont appelées lecture/
écriture, celles qui peuvent seulement être renvoyées étant appelées lecture seule.
Il s’agit en général de propriétés décrivant une condition échappant au contrôle de Director. Par
exemple, vous ne pouvez pas définir la propriété d’acteur numChannels, qui indique le nombre de
pistes d’une animation possédant un contenu Macromedia Shockwave. Par contre, vous pouvez
récupérer le nombre de pistes en faisant référence à la propriété numChannels d’un acteur.
Pour attribuer une valeur à une variable :
• Utilisez l’opérateur égal à (=).
Par exemple, l’instruction suivante attribue une URL à la variable endroitsAvisiter :
// Syntaxe JavaScript
var endroitsAvisiter = "http://www.macromedia.com";
Les variables peuvent également contenir le résultat d’opérations mathématiques. Par exemple,
l’instruction suivante ajoute le résultat d’une addition à la variable maSomme:
--Syntaxe Lingo
maSomme = 5 + 5 -- ceci définit maSomme comme étant égale à 10
En guise d’exemple supplémentaire, l’instruction suivante renvoie l’acteur affecté à l’image-objet
2 en récupérant la valeur de la propriété member de l’image-objet, et la place dans la variable
ActeurTexte.
--Syntaxe Lingo
ActeurTexte = sprite(2).member
Il est recommandé d’utiliser des noms de variables indiquant le rôle de ces variables. Vos scripts
n’en seront que plus faciles à lire. Par exemple, la variable maSomme indique que cette variable
contient le résultat d’une addition.
Pour tester la valeur de propriétés ou de variables :
• Utilisez la fonction put() ou trace() dans la fenêtre Messages ou cochez les valeurs de la
fenêtre Surveillance ; put() et trace() proposent des fonctionnalités identiques et sont
disponibles en Lingo et la syntaxe JavaScript.
Par exemple, l’instruction suivante affiche la valeur attribuée à la variable monNuméro dans la
fenêtre Messages.
--Syntaxe Lingo
monNuméro = 20 * 7
put(monNuméro) -- affiche 140 dans la fenêtre Messages
// Syntaxe JavaScript
var monNuméro = 20 * 7;
trace(monNuméro); // affiche 140 dans la fenêtre Messages
Variables
23
Utilisation de variables globales
Les variables globales peuvent être partagées par les gestionnaires, les scripts ou les animations.
Une variable globale existe et garde sa valeur tant que Director est en cours d’exécution ou jusqu’à
ce que vous appeliez la méthode clearGlobals.
Dans Macromedia Shockwave Player, les variables globales subsistent dans les animations
affichées par la méthode goToNetMovie(), mais pas dans celles affichées par la méthode
goToNetPage().
Chaque gestionnaire déclarant une variable globale peut utiliser la valeur de cette variable.
S’ils modifient cette valeur, la nouvelle valeur est accessible à tous les autres gestionnaires qui
considèrent cette variable comme globale.
Il est d’usage de démarrer les noms de toutes les variables globales par un g minuscule. Cette
convention permet d’identifier plus facilement les variables globales lors de l’examen du code.
Director propose une manière d’afficher toutes les variables globales actuelles et leurs valeurs
courantes, et d’effacer les valeurs de toutes les variables globales.
Pour afficher toutes les variables globales et leurs valeurs actuelles :
• Utilisez la méthode showGlobals() de l’objet Global dans la fenêtre Messages.
Pour plus d’informations sur la fenêtre Messages, consultez Débogage dans la fenêtre Messages,
page 98.
Pour supprimer toutes les variables globales actuelles :
• Utilisez la méthode clearGlobals() de l’objet Global de la fenêtre Messages pour attribuer à
toutes les variables globales la valeur VOID (Lingo) ou undefined (syntaxe JavaScript).
Le contrôle des valeurs des variables globales, lors de la lecture d’une animation, s’effectue par le
biais de l’inspecteur d’objet. Pour plus d’informations sur l’inspecteur d’objet, consultez Débogage
de l’inspecteur d’objet, page 102.
Variables globales en Lingo
En Lingo, les variables sont, par défaut, considérées comme des variables locales, et vous n’avez
donc pas besoin d’insérer un mot-clé avant le nom d’une variable. Pour déclarer une variable
globale, vous devez insérer le mot-clé global avant la variable.
Si vous déclarez une variable globale en haut de la fenêtre Script et avant un gestionnaire,
cette variable sera disponible pour tous les gestionnaires de ce script. Si vous déclarez une
variable globale au sein d’un gestionnaire, cette variable sera à la disposition de ce gestionnaire
uniquement ; toutefois, si vous déclarez une variable globale du même nom au sein de deux
gestionnaires distincts, et que vous mettez à jour la valeur de la variable dans un gestionnaire,
vous mettez également à jour la valeur de la variable dans l’autre gestionnaire.
24
Chapitre 2 : Principes de base du scripting dans Director
Les exemples suivants illustrent ce qui se passe avec deux variables globales : gScript, qui est à
la disposition de tous les gestionnaires dans le script, et gGestionnaire, qui est disponible au
sein de son propre gestionnaire et de tout autre gestionnaire qui la déclare à sa première ligne.
--Syntaxe Lingo
global gScript -- gScript est à la disposition de tous les gestionnaires
on mouseDown
gGestionnaire global
gScript = 25
gGestionnaire = 30
end
on mouseUp
gGestionnaire global
trace(gGestionnaire) -- affiche 30
end
En Lingo, lorsque vous utilisez le terme global pour définir les variables globales, ces dernières
reçoivent automatiquement la valeur initiale VOID.
Variables globales dans la syntaxe JavaScript
Dans la syntaxe JavaScript, les variables sont considérées comme des variables globales par défaut.
La portée d’une variable globale peut être déterminée par la manière dont elle est déclarée et la
position à laquelle elle est déclarée.
• Si vous déclarez une variable au sein d’une fonction de la syntaxe JavaScript sans la faire
•
•
précéder du mot-clé var, cette variable sera disponible pour toutes les fonctions du script qui
la contient.
SI vous déclarez une variable en dehors d’une fonction de la syntaxe JavaScript, avec ou sans le
mot-clé var, cette variable sera disponible pour toutes les fonctions du script qui la contient.
Si vous déclarez une variable à l’intérieur ou à l’extérieur d’une fonction de la syntaxe
JavaScript en utilisant la syntaxe _global.nomVar, cette variable sera disponible pour tous
les scripts d’une animation.
L’exemple suivant utilise la syntaxe _global.gFilm dans un script pour déclarer la variable gFilm
en tant que variable globale. Cette variable est à la disposition de tous les scripts d’une animation.
// Syntaxe JavaScript
_global.gFilm = 1; // déclare gFilm dans un script
// Crée une fonction dans un script séparé qui agit sur gFilm
function mouseDown() {
_global.gFilm++;
return(_global.gFilm);
}
Variables
25
L’exemple suivant déclare la variable globale gScript dans un script. Cette variable est uniquement à la disposition des fonctions de ce script.
// Syntaxe JavaScript
var gScript = 1; // déclare gScript dans un script
// gScript est uniquement à la disposition des fonctions du script qui le
définit
function mouseDown() {
gScript++;
return(gScript);
}
Dans la syntaxe JavaScript, lorsque vous définissez des variables avant les gestionnaires, elles
reçoivent automatiquement la valeur intiale undefined.
Utilisation de variables locales
Une variable locale n’existe que tant que le gestionnaire dans lequel elle a été définie est en cours
d’exécution. Toutefois, après avoir créé un variable locale, vous pouvez l’utiliser dans d’autres
expressions ou modifier sa valeur tant qu’un script se trouve dans le gestionnaire qui a défini la
variable.
Il est préférable de définir une variable comme locale lorsque vous ne souhaitez l’utiliser que
provisoirement dans un gestionnaire. Vous limitez ainsi les risques de modification accidentelle
de sa valeur dans d’autres gestionnaires utilisant le même nom de variable.
Pour créer une variable locale :
• En Lingo, attribuez une valeur à la variable avec l’opérateur égal à (=).
• Dans la syntaxe JavaScript, et à l’intérieur d’une fonction, insérez le mot-clé var avant le nom
de la variable puis attribuez-lui une valeur à l’aide de l’opérateur égal à.
Remarque : Vu que les variables de la syntaxe JavaScript sont, par défaut, globales, si vous
essayez de déclarer une variable locale à l’intérieur d’une fonction sans utiliser le mot-clé var,
votre script risque de créer un comportement inattendu. Ainsi, et bien que l’utilisation de var soit
facultative, il est fortement recommandé de déclarer toutes les variables JavaScript locales à l’aide
de var pour éviter tout comportement inattendu.
Pour afficher toutes les variables locales d’un gestionnaire :
• En Lingo seulement, utilisez la fonction showLocals().
En Lingo, vous pouvez utiliser cette méthode dans la fenêtre Messages ou dans des gestionnaire
pour faciliter le débogage des scripts. Le résultat apparaît dans la fenêtre Messages. La méthode
showLocals() ne s’applique pas à la syntaxe JavaScript.
Pour contrôler les valeurs des variables locales lors de la lecture d’une animation, utilisez
l’inspecteur d’objet. Pour plus d’informations sur l’inspecteur d’objet, consultez Débogage de
l’inspecteur d’objet, page 102.
26
Chapitre 2 : Principes de base du scripting dans Director
Opérateurs
Les opérateurs sont des éléments indiquant à Lingo et JavaScript comment combiner, comparer
ou modifier les valeurs d’une expression. Plusieurs des opérateurs de Director sont partagés par la
syntaxe Lingo et la syntaxe JavaScript, et certains sont propres à un langage.
Certains types d’opérateurs comprennent :
• Des opérateurs arithmétiques (tels que +, -, / et *)
• Des opérateurs de comparaison (tels que <, > et >=), qui comparent deux arguments
• Des opérateurs logiques (not, and, or) qui combinent des conditions simples en conditions
•
composées
Des opérateurs de chaînes (tels que &, &&, et +) qui relient ou concatènent des chaînes de
caractères.
Remarque : Il existe beaucoup plus de types d’opérateurs dans la syntaxe JavaScript qu’en Lingo, et
ils ne sont pas tous décrits dans ce référentiel. Pour plus d’informations sur les autres opérateurs en
JavaScript 1.5, consultez les nombreuses autres ressources consacrées à ce sujet.
Les éléments sur lesquels les opérateurs agissent sont appelés des opérandes. En Lingo, il n’existe
que des opérateurs binaires. Dans la syntaxe JavaScript, il existe des opérateurs binaires et unaires.
Un opérateur binaire nécessite deux opérandes, l’un placé avant l’opérateur et l’autre après. Un
opérateur unaire nécessite un seul opérande, placé soit avant soit après l’opérateur.
Dans l’exemple suivant, la première instruction illustre un opérateur binaire où les variables x et y
sont des opérandes et le signe plus (+) l’opérateur. La seconde instruction illustre un opérateur
unaire où la variable i est l’opérande et ++ l’opérateur.
// Syntaxe JavaScript
x + y; // opérateur binaire
i++; // opérateur unaire
Pour plus d’informations sur les opérateurs, consultez le Chapitre 13, Opérateurs, page 635.
Ordre de priorité des opérateurs
Lorsqu’un ou plusieurs opérateurs sont utilisés dans la même instruction, certains opérateurs sont
prioritaires par rapport à d’autres selon une hiérarchie précise qui détermine les opérateurs à
exécuter en premier. Cette hiérarchie est appelée « ordre de priorité des opérateurs ». Par exemple,
une multiplication est toujours effectuée avant une addition. Cependant, les éléments entre
parenthèses sont prioritaires par rapport à la multiplication. Dans l’exemple suivant, en l’absence
de parenthèses, la multiplication de cette instruction se produit en premier :
--Syntaxe Lingo
total = 2 + 4 * 3 – renvoie une valeur de 14
Lorsque l’addition apparaît entre parenthèses, l’addition s’effectue en premier :
--Syntaxe Lingo
total = (2 + 4) * 3 – renvoie une valeur de 18
Vous trouverez ci-dessous une description des types d’opérateurs et leur ordre de priorité. Les
opérateurs possédant une priorité élevée sont exécutés en premier. Par exemple, un opérateur
dont l’ordre de priorité est 5 est exécuté avant un opérateur dont l’ordre de priorité est 4. Les
opérations qui ont le même ordre de priorité sont exécutées de gauche à droite.
Opérateurs
27
Opérateurs arithmétiques
Les opérateurs arithmétiques additionnent, soustraient, multiplient, divisent et effectuent d’autres
opérations arithmétiques. Les parenthèses et le signe moins sont aussi des opérateurs
arithmétiques.
Opérateur
Effet
Ordre de priorité
( )
Opérations permettant de contrôler la priorité.
5
-
Lorsque placé devant un chiffre, en inverse la valeur.
5
*
Effectue une multiplication.
4
mod
(Lingo seulement) Effectue des opérations de modulos.
4
/
Effectue une division.
4
%
(Syntaxe JavaScript seulement) Renvoie le reste du nombre
entier résultant d’une division de deux opérandes.
4
++
(Syntaxe JavaScript seulement) Ajoute un à son opérande.
4
Lorsque utilisé comme opérateur préfixe (++x), renvoie la valeur de
son opérande après avoir ajouté un. Lorsque utilisé comme
opérateur postfixe (x++), renvoie la valeur de son opérande avant
d’ajouter un.
--
(Syntaxe JavaScript seulement) Soustrait un de son opérande. La 4
valeur renvoyée est analogue à celle de l’opérateur d’incréments.
+
Lorsque placé entre deux chiffres, effectue une addition.
3
-
Lorsque placé entre deux chiffres, effectue une soustraction.
3
Remarque : En Lingo, lorsque seuls des nombres entiers sont utilisés dans une opération, le résultat
est un nombre entier. Si vous utilisez des entiers et des nombres à virgule flottante dans la même
opération, le résultat est toujours un nombre à virgule flottante. Dans la syntaxe JavaScript, tous les
calculs renvoient comme résultat des nombres à virgule flottante.
Si le résultat de la division d’un entier par un autre entier n’est pas un nombre entier, Lingo
arrondit le résultat au nombre entier inférieur le plus proche. Par exemple, le résultat de 4/3 est 1.
Dans la syntaxe JavaScript, la valeur à virgule flottante, 1.333, est renvoyée.
Pour forcer Lingo à calculer une valeur sans arrondir le résultat, utilisez float() avec une ou
plusieurs des valeurs dans l’expression. Par exemple, le résultat de 4/float(3) est 1.333.
28
Chapitre 2 : Principes de base du scripting dans Director
Opérateurs de comparaison
Les opérateurs de comparaison comparent deux valeurs et déterminent si la comparaison est vraie
(true) ou fausse (false).
Opérateur
Signification
Ordre de priorité
==
(Syntaxe JavaScript seulement) Deux opérandes sont égaux. Si
les opérandes ne sont pas du même type de données, la syntaxe
JavaScript essaie de les convertir en type de données approprié
afin d’effectuer une comparaison.
1
===
(Syntaxe JavaScript seulement) Deux opérandes sont égaux et
du même type.
1
!=
1
(Syntaxe JavaScript seulement) Deux opérandes ne sont pas
égaux. Si les opérandes ne sont pas du même type de données, la
syntaxe JavaScript essaie de les convertir en type de données
approprié afin d’effectuer une comparaison.
!==
(Syntaxe JavaScript seulement) Deux opérandes ne sont pas
égaux et/ou du même type.
1
<>
(Syntaxe Lingo seulement) Deux opérandes ne sont pas égaux.
1
<
L’opérande de gauche est inférieur à l’opérande de droite.
1
<=
L’opérande de gauche est inférieur ou égal à l’opérande de droite. 1
>
L’opérande de gauche est supérieur à l’opérande de droite.
1
>=
L’opérande de gauche est supérieur ou égal à l’opérande de
droite.
1
=
(Lingo seulement) Deux opérandes sont égaux
1
Opérateurs d’affectation
Un opérateur d’affectation attribue une valeur à son opérande de gauche en fonction de la valeur
de son opérande de droite. A l’exception de l’opérateur d’affectation de base égal à (=), tous les
opérateurs d’affectation de raccourcis suivants ne s’appliquent qu’à la syntaxe JavaScript.
Opérateur
Signification
Ordre de priorité
=
Egal à
1
x += y
(Syntaxe JavaScript seulement) x = x + y
1
x -= y
(Syntaxe JavaScript seulement) x = x - y
1
x *= y
(Syntaxe JavaScript seulement) x = x * y
1
x /= y
(Syntaxe JavaScript seulement) x = x / y
1
(Syntaxe JavaScript seulement) x = x % y
1
x %= y
Opérateurs
29
Opérateurs logiques
Les opérateurs logiques testent si deux expressions logiques sont vraies (true) ou fausses (false).
Faites attention lorsque vous utilisez les opérateurs logiques et les opérateurs de chaînes en Lingo
et en JavaScript. Par exemple, dans la syntaxe JavaScript, && est un opérateur logique qui détermine si deux expressions sont vraies, mais en Lingo, && est un opérateur de chaînes qui concatène
deux chaînes et insère un espace entre deux expressions.
Opérateur
Effet
Ordre de priorité
and
(Lingo seulement) Détermine si les deux expressions sont vraies. 4
&&
(Syntaxe JavaScript seulement) Détermine si les deux
expressions sont vraies.
ou
(Lingo seulement) Détermine si une ou les deux expressions sont 4
vraies.
||
(Syntaxe JavaScript seulement) Détermine si une ou les deux
expressions sont vraies.
4
not
(Lingo seulement) Inverse une expression
5
!
(JavaScript seulement) Inverse une expression
5
4
L’opérateur not (Lingo) ou ! (Syntaxe JavaScript) est utile lorsqu’il s’agit de faire passer la valeur
ou FALSE à la valeur opposée. Par exemple, l’instruction suivante active le son s’il est
désactivé, ou le désactive s’il est activé :
TRUE
--Syntaxe Lingo
_sound.soundEnabled = not (_sound.soundEnabled)
// Syntaxe JavaScript
_sound.soundEnabled = !(_sound.soundEnabled);
30
Chapitre 2 : Principes de base du scripting dans Director
Opérateurs de chaînes
Les opérateurs de chaînes combinent et définissent des chaînes.
Faites attention lorsque vous utilisez les opérateurs logiques et les opérateurs de chaînes en Lingo
et en JavaScript. Par exemple, dans la syntaxe JavaScript, && est un opérateur logique qui détermine si deux expressions sont vraies, mais en Lingo, && est un opérateur de chaînes qui concatène
deux chaînes et insère un espace entre deux expressions.
Opérateur
Effet
Ordre de priorité
&
(Lingo seulement) Concatène deux chaînes
2
+
(Syntaxe JavaScript seulement) Concatène deux valeurs de
chaîne et renvoie une troisième chaîne qui unit les deux
opérandes.
2
+=
(Syntaxe JavaScript seulement) Concatène une variable de
chaîne et une valeur de chaîne et attribue la valeur renvoyée à la
variable de chaîne.
2
&&
(Lingo seulement) Concatène deux chaînes et insère un espace
entre elles.
2
"
Indique le début ou la fin d’une chaîne.
1
Constructions conditionnnelles
Par défaut, Director exécute toujours les instructions d’un script en commençant par la première
instruction et en continuant dans l’ordre dans lequel elles apparaissent, jusqu’à ce qu’il rencontre
la dernière instruction, ou une instruction l’envoyant à un autre endroit.
L’ordre d’exécution des instructions est tributaire de l’ordre dans lequel vous les placez. Par
exemple, si vous rédigez une instruction nécessitant une valeur calculée, vous devez d’abord placer
une instruction calculant cette valeur.
Dans l’exemple suivant, la première instruction additionne deux nombres et la seconde affecte
une représentation de la somme sous forme de chaîne à un acteur champ appelé Réponse, affiché
sur la scène. La seconde instruction n’a pu être placée avant la première parce que la variable x n’a
pas encore été définie.
--Syntaxe Lingo
x = 2 + 2
member("Réponse").text = string(x)
// Syntaxe JavaScript
var x = 2 + 2;
member("Réponse").text = x.toString();
Constructions conditionnnelles
31
Lingo et JavaScript proposent tous deux des conventions servant à modifier l’ordre d’exécution
ou les instructions de script par défaut et aussi à effectuer des actions en fonction de conditions
spécifiques. Par exemple, vous pouvez choisir d’effectuer les actions suivantes dans vos scripts :
• Exécuter une série d’instructions si une condition logique est vraie ou exécuter d’autres
•
•
instructions si la condition logique est fausse.
Evaluer une expression et essayer d’adapter sa valeur à une condition spécifique.
Exécuter une série d’instructions plusieurs fois de suite jusqu’à ce qu’une condition spécifique
soit remplie.
Test de conditions logiques
Pour exécuter une instruction ou une série d’instructions lorsqu’une condition donnée est
vraie ou fausse, vous utilisez les structures if...then...else (Lingo) ou if...else (syntaxe
JavaScript). Par exemple, vous pouvez créer une structure if...then...else ou if...then
qui vérifie que le téléchargement du texte à partir d’Internet est terminé et qui, le cas échéant,
le formate. Ces structures utilisent le modèle suivant pour tester les conditions logiques :
• En Lingo et JavaScript, les instructions vérifiant si une condition est vraie ou fausse
commencent par l’élément if.
• En Lingo, si la condition existe, les instructions suivant l’élément then sont exécutées. Dans la
•
•
syntaxe JavaScript, les accolades ({ }) remplacent l’élément Lingo then et doivent encadrer
chaque instruction if, else ou else if.
En Lingo et la syntaxe JavaScript, si la condition n’existe pas, les scripts passent à l’instruction
suivante du gestionnaire en utilisant l’élément else ou else if.
En Lingo, l’élément end if indique la fin du test if. Dans la syntaxe JavaScript, le test if se
termine automatiquement.
Pour optimiser les performances de vos scripts, commencez par tester les conditions les plus
vraisemblables.
Les instructions suivantes testent plusieurs conditions. Le terme else if spécifie l’exécution
d’autres tests si les conditions précédentes se sont avérées fausses :
--Syntaxe Lingo
if _mouse.mouseMember = member(1) then
_movie.go("Caire")
else if _mouse.mouseMember = member(2) then
_movie.go("Nairobi")
else
_player.alert("Vous vous êtes perdu.")
end if
// Syntaxe JavaScript
if (_mouse.mouseMember = member(1)) {
_movie.go("Caire");
}
else if (_mouse.mouseMember = member(2)) {
_movie.go("Nairobi");
}
else {
_player.alert("Vous vous êtes perdu.")
}
32
Chapitre 2 : Principes de base du scripting dans Director
Lorsque vous rédigez des structures if...then en Lingo, vous pouvez placer l’instruction ou les
instructions après then sur la même ligne que celle de then, ou les placer sur leur propre ligne en
insérant un retour de chariot après then. Si vous insérez un retour de chariot, vous devez également placer une instruction end if à la fin de la structure if…then.
Lorsque vous rédigez des structures if dans la syntaxe JavaScript, vous pouvez placer l’instruction
ou les instructions après if sur la même ligne que celle de if, ou les placer sur leur propre ligne en
insérant un retour de chariot après if.
Par exemple, les instructions suivantes sont équivalentes :
--Syntaxe Lingo
if _mouse.mouseMember = member(1) then _movie.go("Caire")
if _mouse.mouseMember = member(1) then
_movie.go("Caire")
end if
// Syntaxe JavaScript
if (_mouse.mouseMember = member(1)) { _movie.go("Caire"); }
if (_mouse.mouseMember = member(1)) {
_movie.go("Caire");
}
Pour obtenir des informations concernant l’utilisation des structures if...then...else et
if...else, consultez if, page 227.
Evaluation et concordance d’expressions
Les structures case (Lingo) et switch...case (syntaxe JavaScript) sont des raccourcis permettant d’éviter l’utilisation des structures if...then...else ou if...then dans les structures à
branchements multiples. Les structures case et switch...case sont souvent plus efficaces et
plus lisibles que beaucoup de structures if...then...else ou if...then.
En Lingo, la condition devant être testée suit le terme case dans la première ligne de la structure
La comparaison commence par la première ligne, puis passe à la suivante, etc. jusqu’à ce
que Lingo rencontre une expression correspondant à la condition testée. Lorsqu’une correspondance est trouvée, Director exécute les instructions Lingo qui suivent l’expression.
case.
Dans la syntaxe JavaScript, la condition devant être testée suit le terme switch dans la première
ligne de la structure. Chaque comparaison du test suit le terme case dans chaque ligne contenant
un test. Vous pouvez mettre fin à une comparaison case en utilisant le terme facultatif break.
Lorsque vous insérez le terme break, vous excluez le programme de la structure switch et
exécutez toute instruction qui suit la structure. Si vous n’insérez pas break, la comparaison case
suivante est exécutée.
Une structure case ou switch...case peut utiliser des comparaisons comme conditions de test.
Par exemple, les structures case et switch...case suivantes testent la dernière touche sur
laquelle l’utilisateur a appuyé, et répond en conséquence.
• Si l’utilisateur a appuyé sur A, l’animation passe à l’image Pomme.
• Si l’utilisateur a appuyé sur B ou C, l’animation exécute la transition demandée et passe à
l’image Oranges.
Constructions conditionnnelles
33
• Si l’utilisateur a appuyé sur n’importe quelle autre touche, l’ordinateur émet un bip sonore.
--Syntaxe Lingo
case (_key.key) of
"a" : _movie.go("Pomme")
"b", "c":
_movie.puppetTransition(99)
_movie.go("Oranges")
otherwise: _sound.beep()
end case
// Syntaxe JavaScript
switch (_key.key) {
case "a" :
_movie.go("Pomme");
break;
case "b":
_movie.puppetTransition(99);
_movie.go("Oranges");
break;
case "c":
_movie.puppetTransition(99);
_movie.go("Oranges");
break;
default: _sound.beep()
}
Remarque : Dans la syntaxe JavaScript, vous ne pouvez effectuer qu’une seule comparaison par
instruction case.
Pour obtenir des informations concernant l’utilisation des structures case, consultez case,
page 222.
Répétition d’actions
En Lingo et dans la syntaxe JavaScript, vous pouvez répéter une action un certain nombre de fois,
ou tant qu’une condition spécifique existe.
Pour répéter une action un certain nombre de fois en Lingo, vous utilisez une structure repeat
Spécifiez le nombre de répétitions sous forme de plage après l’instruction repeat with.
with.
Pour répéter une action un certain nombre de fois dans la syntaxe JavaScript, vous utilisez la
structure for. La structure for nécessite trois paramètres : le premier paramètre initialise généralement une variable de compteur, le second précise une condition à évaluer à chaque fois dans la
boucle et le troisème est généralement utilisé pour mettre à jour ou incrémenter la variable de
compteur.
Les structures repeat with et for servent à effectuer la même opération sur une série d’objets.
Par exemple, la boucle suivante applique l’encre Fond transparent aux images-objets 2 à 10 :
--Syntaxe Lingo
repeat with n = 2 to 10
sprite(n).ink = 36
end repeat
// Syntaxe JavaScript
for (var n=2; n<=10; n++) {
sprite(n).ink = 36;
}
34
Chapitre 2 : Principes de base du scripting dans Director
Cet exemple exécute une action similaire, mais avec des nombres décroissants :
--Syntaxe Lingo
repeat with n = 10 down to 2
sprite(n).ink = 36
end repeat
// Syntaxe JavaScript
for (var n=10; n>=2; n--) {
sprite(n).ink = 36;
}
En Lingo, pour répéter une série d’instructions tant qu’une condition spécifique existe, utilisez la
structure repeat while.
Dans la syntaxe JavaScript, pour répéter une série d’instructions tant qu’une condition spécifique
existe, utilisez la structure while.
Par exemple, les instructions suivantes font émettre un bip sonore continu à l’animation à chaque
fois que l’utilisateur appuie sur le bouton de la souris :
--Syntaxe Lingo
repeat while _mouse.mouseDown
_sound.beep()
end repeat
// Syntaxe JavaScript
while (_mouse.mouseDown) {
_sound.beep();
}
Les scripts Lingo et JavaScript continuent à effectuer une boucle sur les instructions de la boucle
jusqu’à ce que la condition ne soit plus vraie, ou jusqu’à ce que l’une des instructions envoie le
script à l’extérieur de la boucle. Dans l’exemple précédent, le script quitte la boucle lorsque
l’utilisateur relâche le bouton de la souris puisque la condition mouseDown cesse d’exister.
Pour quitter une boucle en Lingo, utilisez l’instruction exit repeat.
Pour quitter une boucle dans la syntaxe JavaScript, vous pouvez utiliser le terme break. Le script
quitte automatiquement la boucle lorsqu’une condition n’est plus vraie.
Par exemple, les instructions suivantes font émettre un bip sonore à l’animation lorsque l’utilisateur maintient le bouton de la souris enfoncé, sauf si le pointeur de la souris se trouve au dessus
de l’image-objet 1. Dans ce cas, le script quitte la boucle et le bip sonore s’arrête. La méthode
rollover() indique si le pointeur se trouve sur l’image-objet spécifiée.
--Syntaxe Lingo
repeat while _mouse.stillDown
_sound.beep()
if _movie.rollOver(1) then exit repeat
end repeat
// Syntaxe JavaScript
while (_mouse.stillDown) {
_sound.beep();
if (_movie.rollOver(1)) {
break;
}
}
Constructions conditionnnelles
35
Pour obtenir des informations sur les structures repeat while et while, consultez repeat while,
page 238.
Evénements, messages et gestionnaires
Pour créer des scripts solides et utiles, il est essentiel de maîtriser les concepts et les fonctionnalités
des événements, messages et gestionnaires. Si vous comprenez l’ordre dans lequel les événements
et les messages sont envoyés et reçus, vous pouvez déterminer exactement le moment auquel des
scripts donnés ou des parties de scripts devraient être exécutés. Ceci vous aidera à déboguer vos
scripts si certaines actions ne se produisent pas au moment prévu.
Les événements suivants se produisent durant la lecture d’une animation :
1 Des événements se produisent en réaction à une action du système ou à une action définie par
l’utilisateur
2 Des messages correspondant à ces événements sont envoyés aux scripts d’une animation
3 Les gestionnaires compris dans les scripts contiennent les instructions qui sont exécutées
lorsqu’un message est reçu
Le nom d’un événement correspond au nom du message qu’il produit, et le gestionnaire de cet
événement correspond à la fois à l’événement et au message. Par exemple, lorsque l’événement
mouseDown se produit, Director crée et envoie aux scripts un message appelé mouseDown qui est
ensuite pris en charge par un gestionnaire appelé mouseDown.
Evénements
Durant la lecture d’une animation, deux catégories d’événements se produisent :
•
•
se produisent sans qu’il n’y ait d’interaction entre un utilisateur et
l’animation, et sont prédéfinis et nommés dans Director. Lorsque la tête de lecture entre dans
une image, par exemple, lorsque vous cliquez sur une image-objet, etc.
Les événements définis par l’utilisateur se produisent en réponse aux actions que vous
définissez. Par exemple, vous pouvez créer un événement qui se produit lorsque la couleur
de fond d’une image-objet passe du rouge au bleu, après qu’un son ait été lu cinq fois, etc.
Les événements système
Plusieurs événements système tels que prepareFrame, beginSprite, etc., se produisent automatiquement et dans un ordre prédéfini durant la lecture d’une animation. D’autres événements
système, en particulier des événements liés à la souris tels que mouseDown, mouseUp et ainsi de
suite, ne se produisent pas nécessairement de manière automatique durant la lecture d’une animation, mais plutôt après qu’ils aient été déclenchés par un utilisateur.
Par exemple, au début d’une animation, l’événement prepareMovie est toujours le premier à
se produire, l’événement prepareFrame toujours le second, etc. Toutefois, les événements
mouseDown et mouseUp peuvent ne jamais se produire dans une animation, à moins qu’un
utilisateur ne les déclenche en cliquant sur l’animation.
La liste suivante répertorie les événements système qui se produisent toujours durant une
animation, et l’ordre dans lequel ils se produisent.
36
Chapitre 2 : Principes de base du scripting dans Director
Les événements se produisent dans l’ordre suivant au démarrage de l’animation :
1 prepareMovie
2 prepareFrame
Immédiatement après l’événement prepareFrame, Director lit les sons,
dessine les images-objets et effectue les transitions ou les effets de palette. Cet événement
se produit avant l’événement enterFrame. L’utilisation d’un gestionnaire on prepareFrame
est conseillée pour exécuter un script avant que l’image ne soit dessinée.
3 beginSprite Cet événement se produit lorsque la tête de lecture pénètre dans la zone d’une
image-objet.
4 startMovie Cet événement se produit dans la première image qui est lue.
Lorsqu’une animation rencontre une image, les événements se produisent dans l’ordre
suivant :
1 beginSprite
Cet événement ne se produit que si de nouvelles images-objets commencent
dans l’image.
2 stepFrame
3 prepareFrame
4 enterFrame Après enterFrame mais avant exitFrame, Director gère les délais exigés par les
réglages de cadence, les événements d’inactivité et les événements clavier et souris.
5 exitFrame
6 endSprite
Cet événement ne se produit que lorsque la tête de lecture sort d’une image-objet
de l’image.
Les événements se produisent dans l’ordre suivant lorsque la lecture de l’animation
s’arrête :
1 endSprite
Cet événement ne se produit que si les images-objets existent actuellement dans
l’animation.
2 stopMovie
Pour plus d’informations sur les événements système prédéfinis de Director, consultez le
Chapitre 10, Evénements et messages, page 173.
Messages
Pour exécuter au bon moment le groupe d’instructions approprié, Director doit déterminer ce qui
se passe dans l’animation et les instructions à exécuter pour répondre à certains événements.
Director utilise des messages pour indiquer que des événements spécifiques se produisent dans
l’animation, tels qu’un clic sur une image-objet, l’enfoncement des touches du clavier, le démarrage de l’animation, l’entrée ou la sortie de la tête de lecture dans une image, ou encore le renvoi
d’une valeur spécifique par un script.
L’ordre dans lequel les messages sont envoyés aux objets de l’animation est le suivant :
1 Les messages sont d’abord envoyés aux comportements associés aux images-objets affectées par
l’événement. Si plusieurs comportements sont associés à une image-objet, ceux-ci répondent au
message dans l’ordre dans lequel ils ont été associés à cette image-objet.
2 Les messages sont ensuite envoyés au script de l’acteur affecté à l’image-objet.
3 Les messages sont ensuite envoyés aux comportements associés à l’image courante.
4 Enfin, les messages sont envoyés aux scripts de l’animation.
Evénements, messages et gestionnaires
37
Bien qu’il vous soit possible de définir le nom de vos messages, la plupart des événements
communs survenant dans une animation possèdent des noms de message prédéfinis.
Pour plus d’informations sur les messages intégrés à Director, consultez le Chapitre 10,
Evénements et messages, page 173.
Définition de messages personnalisés
En plus d’utiliser les noms de messages prédéfinis, vous pouvez définir vos propres messages et les
noms des gestionnaires correspondants. Un message personnalisé peut appeler un autre script, un
autre gestionnaire ou le gestionnaire de l’instruction même. Lorsque le gestionnaire appelé a
terminé son exécution, l’exécution du gestionnaire qui l’a appelé reprend.
Un nom de message et gestionnaire personnalisé doit répondre aux critères suivants :
• Il doit débuter par une lettre.
• Il doit inclure uniquement des caractères alphanumériques (pas de caractères spéciaux ou de
•
•
ponctuation).
Il doit être composé d’un ou de plusieurs mots reliés par un trait de soulignement (_).
Les espaces ne sont pas autorisés.
Il ne peut pas être identique au nom d’un élément Lingo ou JavaScript prédéfini.
L’utilisation de mots-clés Lingo ou JavaScript prédéfinis pour les noms de messages et
gestionnaires peut prêter à confusion. Bien qu’il soit possible de remplacer ou d’augmenter
explicitement la fonctionnalité d’un élément Lingo ou JavaScript en l’utilisant comme nom de
gestionnaire ou de message, cette opération ne devrait être effectuée que dans certaines situations
avancées.
Lorsque vous utilisez plusieurs gestionnaires remplissant des fonctions similaires, donnez-leur des
noms commençant de la même manière afin de les regrouper dans les listes alphabétiques, comme
par exemple la liste qui apparaît lorsque vous sélectionnez l’option Edition > Rechercher >
Gestionnaire.
Gestionnaires
Un gestionnaire est un ensemble d’instructions placées dans un script et exécutées en réponse à un
événement déterminé et à un message subséquent. Bien que Director contienne des événements et
des messages prédéfinis, vous devez créer vos propres gestionnaires pour chaque paire d’événements/images que vous voulez gérer.
Stratégie de positionnement des gestionnaires
Vous pouvez placer des gestionnaires dans n’importe quel type de script, un script pouvant
contenir plusieurs gestionnaires. Toutefois, il est recommandé de regrouper les gestionnaires
apparentés au même endroit afin d’en simplifier la gestion.
Les recommandations suivantes s’appliquent aux situations les plus courantes :
• Pour associer un gestionnaire à une image-objet déterminée ou pour exécuter un gestionnaire
en réponse à une action dans une image-objet précise, placez le gestionnaire dans un comportement affecté à l’image-objet.
38
Chapitre 2 : Principes de base du scripting dans Director
• Pour définir un gestionnaire disponible à tout moment lorsque l’animation se trouve dans une
•
•
image déterminée, placez-le dans un comportement affecté à l’image.
Par exemple, pour qu’un gestionnaire réponde à un clic de la souris lorsque la tête de lecture est
dans une image, quel que soit l’endroit où se produit le clic, placez un gestionnaire mouseDown
ou mouseUp dans le comportement de l’image plutôt que dans un comportement d’imageobjet.
Pour définir un gestionnaire exécuté en réponse à des messages d’événements se produisant
n’importe où dans l’animation, placez-le dans un script d’animation.
Pour définir un gestionnaire exécuté en réponse à un événement affectant un acteur, quelles
que soient les images-objets utilisant cet acteur, placez-le dans un script d’acteur.
Identification du moment auquel les gestionnaires reçoivent un message
Après avoir envoyé un message aux scripts, Director vérifie la présence de gestionnaires dans un
ordre défini.
1 Director vérifie d’abord l’existence de gestionnaires dans l’objet à partir duquel le message a été
envoyé. Si un gestionnaire est trouvé, le message est intercepté et le script du gestionnaire est
exécuté.
2 S’il ne trouve pas de gestionnaire, Director vérifie, dans un ordre croissant, les scripts d’animation associés à un acteur et pouvant contenir un gestionnaire lié au message. Si un gestionnaire
est trouvé, le message est intercepté et le script du gestionnaire est exécuté.
3 Si aucun gestionnaire n’a été trouvé, Director vérifie si un script d’image contient un gestionnaire pour le message. Si un gestionnaire est trouvé, le message est intercepté et le script du gestionnaire est exécuté.
4 S’il ne trouve pas de gestionnaire, Director vérifie, dans un ordre croissant, les scripts associés
aux images-objets et pouvant contenir un gestionnaire lié au message. Si un gestionnaire est
trouvé, le message est intercepté et le script du gestionnaire est exécuté.
Le message n’est pas automatiquement transmis aux emplacements restants après son interception
par le gestionnaire. Toutefois, en Lingo, vous pouvez utiliser la méthode pass() pour ignorer
cette règle par défaut et passer le message à d’autres objets.
Si le gestionnaire recherché n’est pas trouvé après l’envoi du message à tous les emplacements
possibles, Director ignore le message.
L’ordre exact dans lequel Director envoie un message aux objets dépend du message même.
Pour plus d’informations sur l’ordre des objets auxquels Director envoie des messages spécifiques,
consultez l’entrée correspondant à chaque message dans Chapitre 10, Evénements et messages,
page 173.
Utilisation de paramètres pour passer des valeurs à un gestionnaire
L’utilisation de paramètres comme valeurs vous permet de transmettre à un gestionnaire les
valeurs exactes nécessaires au moment voulu, sans tenir compte de l’endroit ni du moment
auxquels vous appelez le gestionnaire dans l’animation. Les paramètres peuvent être facultatifs ou
obligatoires, selon le cas.
Pour créer des paramètres pour un gestionnaire :
• En Lingo, placez les paramètres après le nom du gestionnaire. Dans la syntaxe JavaScript,
mettez les paramètres entre parenthèses puis placez-les après le nom du gestionnaire. Utilisez
des virgules pour séparer les arguments multiples.
Evénements, messages et gestionnaires
39
Lorsque vous appelez un gestionnaire, vous devez fournir des valeurs spécifiques pour les
paramètres qu’il utilise. Vous pouvez utiliser n’importe quel type de valeur, tel qu’un nombre,
une variable à laquelle une valeur est affectée ou une chaîne. Les valeurs de l’instruction appelante
doivent suivre le même ordre que dans les paramètres du gestionnaire et être encadrées de
parenthèses.
Dans l’exemple suivant, la variable maSomme appelle la méthode additionParam qui reçoit les
deux valeurs 2 et 4. Le gestionnaire additionParam remplace les repères d’emplacement de
paramètres a et b par les deux valeurs qu’il a reçues, stocke le résultat dans la variable locale c puis
utilise le mot-clé return pour renvoyer le résultat à la méthode originale qui est ensuite attribuée
à maSomme.
Étant donné que 2 figure le premier dans la liste des paramètres, il remplace a dans le gestionnaire. De même, étant donné que 4 est le second dans la liste des paramètres, il remplace b dans le
gestionnaire.
--Syntaxe Lingo
maSomme = additionParam(2, 4) -- instructions d’appel
on additionParam a, b -- gestionnaire
c = a + b
return c – renvoie le résultat à l’instruction d’appel
end
// Syntaxe JavaScript
var maSomme = additionParam(2, 4); // instructions d’appel
function additionParam(a, b) { // gestionnaire
c = a + b;
return c; // renvoie le résultat à l’instruction d’appel
}
En Lingo, lorsque vous appelez une méthode personnalisée à partir d’un objet, une référence à
l’objet script de la mémoire est transmise en tant que premier paramètre implicite au gestionnaire
de la méthode. Cela signifie que vous devez prendre en charge l’objet script dans votre gestionnaire.
Par exemple, imaginez que vous ayez rédigé une méthode d’image-objet personnalisée appelée
jump() dont le paramètre est un nombre entier simple et que vous l’ayez placée dans un
comportement. Lorsque vous appelez jump() d’une référence d’un objet image-objet, le
gestionnaire doit également inclure un paramètre représentant la référence de l’objet image-objet,
et non pas uniquement le nombre entier. Dans ce cas, le paramètre désigné est représenté par le
mot-clé me, mais tout autre terme serait également acceptable.
--Syntaxe Lingo
maHauteur = sprite(2).jump(5)
on jump(me,a)
return a + 15 – ce gestionnaire fonctionne correctement et renvoie 20
end
on jump(a)
return a + 15 -- ce gestionnaire ne fonctionne pas correctement et renvoie 0
end
40
Chapitre 2 : Principes de base du scripting dans Director
Vous pouvez également utiliser des expressions comme valeurs. Par exemple, l’instruction
suivante utilise 3+6 pour remplacer a et 8>2 (ou 1, représentant TRUE) pour remplacer b et renvoie
10 :
--Syntaxe Lingo
maSomme = additionParam(3+6, 8>2)
En Lingo, tous les gestionnaires commencent par le mot on, suivi du message auquel ils doivent
répondre. La dernière ligne du gestionnaire est le mot end. Vous pouvez répéter le nom du
gestionnaire après end, ce qui n’est pas obligatoire.
Dans la syntaxe JavaScript, tous les gestionnaires commencent par le mot function, suivi du
message auquel ils doivent répondre. Les instructions comprenant le gestionnaire sont mises entre
crochets et sont toutes des fonctions de la syntaxe JavaScript.
Renvoi de résultats des gestionnaires
Il est souvent utile qu’un gestionnaire vous indique la présence d’une condition ou le résultat
d’une action.
Pour renvoyer des résultats avec un gestionnaire :
• Utilisez le mot-clé return pour qu’un gestionnaire retourne la présence d’une condition ou le
résultat d’une action. Par exemple, le gestionnaire findColor suivant retourne la couleur
actuelle de l’image-objet 1 :
--Syntaxe Lingo
on findColor
return sprite(1).foreColor
end
// Syntaxe JavaScript
function findColor() {
return(sprite(1).foreColor);
}
Vous pouvez également utiliser le mot-clé return tout seul pour quitter le gestionnaire actuel
et ne renvoyer aucune valeur. Par exemple, le gestionnaire jump suivant ne renvoie rien si le
paramètre aVal est égal à 5 ; autrement, il renvoie une valeur.
--Syntaxe Lingo
on jump(aVal)
if aVal = 5 then return
aVal = aVal + 10
return aVal
end
// Syntaxe JavaScript
function jump(aVal) {
if(aVal == 5) {
return;
}
else {
aVal = aVal + 10;
return(aVal);
}
}
Evénements, messages et gestionnaires
41
Lorsque vous définissez un gestionnaire renvoyant un résultat, vous devez le faire suivre de
parenthèses quand vous l’appelez à partir d’un autre gestionnaire. Par exemple, l’instruction
put(findColor()) appelle le gestionnaire on findColor, puis affiche le résultat dans la fenêtre
Messages.
Listes linéaires et listes de propriétés
Dans vos scripts, vous pouvez choisir de faire le suivi et la mise à jour de listes de données, telles
qu’une série de noms ou les valeurs affectées à un ensemble de variables. Lingo et la syntaxe
JavaScript ont tous deux accès aux listes linéaires et aux listes de propriétés. Dans une liste
linéaire, chaque élément est une valeur unique. Dans une liste de propriétés, chaque élément
contient deux valeurs ; la première est un nom de propriété, la seconde est la valeur associée à
cette propriété.
Vu que Lingo et la syntaxe JavaScript ont tous deux accès aux listes linéaires et aux listes de
propriétés, il est recommandé d’utiliser les listes linéaires et les listes de propriétés si les valeurs de
votre code sont partagées par les scripts Lingo et JavaScript.
Si certaines valeurs de votre code sont utilisées uniquement dans les scripts de la syntaxe
JavaScript, nous vous recommandons d’utiliser des objets Tableau de JavaScript avec vos listes
de données. Pour plus d’informations sur l’utilisation des tableaux, consultez Tableaux de la
syntaxe JavaScript, page 50.
Création de listes linéaires
Pour créer une liste linéaire, utilisez l’une des méthodes suivantes :
• En Lingo, utilisez soit la fonction de haut niveau list() ou l’opérateur de liste ([ ]), et
•
séparez les éléments de la liste par des virgules.
Dans la syntaxe JavaScript, utilisez la fonction de haut niveau list(), et séparez les éléments
de la liste par des virgules.
L’index d’une liste linéaire commence toujours par 1.
Lorsque vous utilisez la fonction de haut niveau list(), vous spécifiez que les éléments de la liste
sont des paramètres de la fonction. Cette fonction peut s’avérer pratique si vous utilisez un clavier
ne possédant pas de touches de crochets.
Les instruction suivantes créent toutes une liste linéaire de trois noms et l’affectent à une variable.
--Syntaxe Lingo
listeCollaborateurs = ["Raymond", "Françoise", "Paul"] – en utilisant
l’opérateur de liste de Lingo
listeCollaborateurs = list("Raymond", "Françoise", "Paul") – en utilisant
list()
// Syntaxe JavaScript
var listeCollaborateurs = list("Raymond", "Françoise", "Paul"); // en
utilisant list()
42
Chapitre 2 : Principes de base du scripting dans Director
Vous pouvez également créer des listes linéaires vides. Les instructions suivantes créent des listes
linaires vides.
--Syntaxe Lingo
listeCollaborateurs = [] – en utilisant l’opérateur de liste Lingo
listeCollaborateurs = list() – en utilisant list() sans paramètre
// Syntaxe JavaScript
var listeCollaborateurs = list(); // en utilisant list() sans paramètre
Création de listes de propriétés
Pour créer une liste de propriétés, effectuez l’une des opérations suivantes :
• En Lingo, utilisez soit la fonction de haut niveau propList() soit l’opérateur de liste ([:]).
•
Lorsque vous utilisez l’opérateur de liste pour créer une liste de propriétés, vous pouvez utiliser
soit un deux-points pour désigner des éléments de nom/valeur et des virgules pour séparer les
élément de la liste soit des virgules pour désigner des éléments de nom/valeur et séparer les
éléments dans la liste.
Dans la syntaxe JavaScript, utilisez la fonction de haut niveau propList() et insérez des
virgules pour désigner des éléments de nom/valeur et séparer les éléments dans la liste.
Lorsque vous utilisez la fonction de haut niveau propList(), vous spécifiez que les éléments de la
liste de propriétés sont des paramètres de la fonction. Cette fonction peut s’avérer pratique si vous
utilisez un clavier ne possédant pas de touches de crochets.
Les propriétés peuvent apparaître plusieurs fois dans une liste de propriétés donnée.
Les instruction suivantes créent toutes une liste de propriétés de quatre noms—left, top, right
et bottom—et leurs valeurs correspondantes.
--Syntaxe Lingo
locImage-objet1 = [#left:100, #top:150, #right:300, #bottom:350]
locImage-objet1 = ["left",400,"top",550, "righ",500, "bottom",750]
locImage-objet1 = propList("left",400, "top",550, "right",500, "bottom",750)
// Syntaxe JavaScript
var locImage-objet1 = propList("left",400, "top",550, "right",500,
"bottom",750);
Vous pouvez également créer des listes de propriétés vides. Les instructions suivantes créent des
listes de propriétés vides.
--Syntaxe Lingo
locImage-objet1 = [:] -- en utilisant l’opérateur de liste de propriétés Lingo
locImage-objet1 = propList() – en utilisant propList() sans paramètre
// Syntaxe JavaScript
var locImage-objet1 = propList(); // en utilisant propList() sans paramètre
Listes linéaires et listes de propriétés
43
Définition et récupération d’éléments de listes
Vous pouvez définir et récupérer des éléments individuels d’une liste. La syntaxe est différente en
fonction du type de liste.
Pour définir une valeur dans une liste linéaire, effectuez l’une des opérations suivantes :
• Utilisez l’opérateur égal à (=).
• Utilisez la méthode setAt().
Les instructions suivantes montrent comment définir la liste linéaire listeCollaborateurs
contenant une valeur, Françoise, puis ajoute Paul en tant que seconde valeur dans la liste.
--Syntaxe Lingo
listeCollaborateurs = ["Françoise"] – définit une liste linéaire
listeCollaborateurs[2] = "Paul" – définit la seconde valeur à l’aide de
l’opérateur égal à
listeCollaborateurs.setAt(2, "Paul") -- définit la seconde valeur à l’aide de
setAt()
// Syntaxe JavaScript
var listeCollaborateurs = liste("Françoise"); // définit une liste linéaire
listeCollaborateurs[2] = "Paul"; // définit la seconde valeur à l’aide de
l’opérateur égal à.
listeCollaborateurs.setAt(2, "Paul"); // définit la seconde valeur à l’aide de
setAt()
Pour récupérer une valeur d’une liste linéaire :
• Utilisez la variable de la liste suivie du numéro indiquant la position de la valeur dans la liste.
•
Encadrez ce nombre de crochets.
Utilisez la méthode getAt().
L’instruction suivante crée une liste linéaire listeCollaborateurs puis attribue la seconde
valeur de la liste à la variable nom2.
--Syntaxe Lingo
listeCollaborateurs = ["Raymond", "Françoise", "Paul"] – définit une liste
linéaire
nom2 = listeCollaborateurs[2] -- utilisez un accès par crochets pour récupérer
"Françoise"
nom2 = listeCollaborateurs.getAt(2) -- utilisez getAt() pour récupérer
"Françoise"
// Syntaxe JavaScript
var listeCollaborateurs = list("Raymond", "Françoise", "Paul");
var nom2 = listeCollaborateurs[2] // utilisez un accès par crochets pour
récupérer "Françoise"
var nom2 = listeCollaborateurs.getAt(2) // utilisez getAt() pour récupérer
"Françoise"
Pour définir une valeur dans une liste de propriétés, effectuez l’une des opérations
suivantes :
• Utilisez l’opérateur égal à (=).
• En Lingo seulement, utilisez la méthode setaProp().
• Utilisez la syntaxe à points.
44
Chapitre 2 : Principes de base du scripting dans Director
L’instruction Lingo suivante utilise l’opérateur égal à pour faire de soupe la nouvelle valeur
associée à la propriété Raymond.
--Syntaxe Lingo
listeNourriture = [:] -- définit une liste de propriétés vide
listeNourriture[#Raymond] = "soupe" – associe soupe à Raymond
L’instruction Lingo suivante utilise setaprop() pour faire de soupe la nouvelle valeur associée à
la propriété Raymond.
--Syntaxe Lingo
listeNourriture = [:] -- définit une liste de propriétés vide
listeNourriture.setaProp(#Raymond, "soupe") -- utilisez setaProp()
// Syntaxe JavaScript
listeNourriture = propList() – définit une liste de propriétés vide
listeNourriture.setaProp("Raymond", "soupe") -- utilisez setaProp()
L’instruction suivante utilise la syntaxe à points pour définir la valeur associée à Raymond de
soupe à teriyaki.
--Syntaxe Lingo
listeNourriture = [#Raymond:"soupe"] – définit une liste de propriétés
trace(listeNourriture) -- affiche [#Raymond: "soupe"]
listeNourriture.Raymond = "teriyaki" – utilisez la syntaxe à points pour
définir la valeur de Raymond
trace(listeNourriture) -- affiche [#Raymond: "teriyaki"]
// syntaxe JavaScript
var listeNourriture = propList("Raymond", "soupe"); // définit une liste de
propriété
trace(listeNourriture); // affiche ["Raymond": "soupe"]
listeNourriture.Bruno = "teriyaki"; // utilisez la syntaxe à points pour
définir la valeur de Raymond
trace(listeNourriture); // affiche [#Raymond: "teriyaki"]
Pour récupérer une valeur d’une liste de propriétés, effectuez l’une des opérations
suivantes :
• Utilisez la variable de la liste, suivie du nom de la propriété associée à cette valeur. Encadrez
cette propriété de crochets.
• Utilisez la méthode getaProp() ou getPropAt().
• Utilisez la syntaxe à points.
Les instructions suivantes utilisent un accès par crochets pour récupérer les valeurs associées aux
propriétés petitdéjeuner et déjeuner.
--Syntaxe Lingo
-- définir une liste de propriétés
listeNourriture = [#petitdéjeuner:"Gauffres", #petitdéjeuner:"Hamburger"]
trace(listeNourriture[#petitdéjeuner]) -- affiche"Gauffres"
trace(listeNourriture[#petitdéjeuner]) -- affiche "Hamburger"
// Syntaxe JavaScript
// définit une liste de propriétés
var listeNourriture = propList("petitdéjeuner", "Gauffres", "déjeuner",
"Hamburger");
trace(listeNourriture["petitdéjeuner"]); // affiche Gauffres
trace(listeNourriture["déjeuner"]); // affiche Hamburger
Listes linéaires et listes de propriétés
45
Les instructions suivantes utilisent getaProp() pour récupérer la valeur associée à la propriété
petitdéjeuner, et getPropAt() pour récupérer la propriété à la seconde position d’index de la
liste.
--Syntaxe Lingo
-- définir une liste de propriétés
listeNourriture = [#petitdéjeuner:"Gauffres", #déjeuner:"Hamuburger"]
trace(listeNourriture.getaProp(#petitdéjeuner)) -- affiche "Gauffres"
trace(listeNourriture.getPropAt(2)) -- affiche #déjeuner
// Syntaxe JavaScript
// définir une liste de propriétés
var listeNourriture = propList("petitdéjeuner", "Gauffres", "déjeuner",
"Hamburger");
trace(listeNourriture.getaProp("petitdéjeuner")); // affiche Gauffres
trace(listeNourriture.getPropAt(2)); // affiche déjeuner
Les instructions suivantes utilisent la syntaxe à points pour accéder aux valeurs associées aux
propriétés dans la liste de propriétés.
--Syntaxe Lingo
-- définir une liste de propriétés
listeNourriture = [#petitdéjeuner:"Gauffres", #déjeuner:"Hamburger"]
trace(listeNourriture.petitdéjeuner) -- affiche "Gauffres"
// Syntaxe JavaScript
// définir une liste de propriétés
var listeNourriture = propList("petitdéjeuner", "Gauffres", "déjeuner",
"Hamburger");
trace(listeNourriture.déjeuner); // affiche Hamburger
Vérification des éléments de listes
Vous pouvez déterminer les caractéristiques d’une liste et le nombre d’éléments qu’elle contient
en utilisant les méthodes suivantes.
• Pour afficher le contenu d’une liste, utilisez la fonction put() ou trace() en passant la
variable contenant la liste en tant que paramètre.
• Pour déterminer le nombre d’éléments contenus dans une liste, utilisez la méthode count()
•
•
•
•
46
(Lingo seulement) ou la propriété count.
Pour déterminer le type d’une liste, utilisez la méthode ilk().
Pour déterminer la valeur maximale d’une liste, utilisez la méthode max().
Pour déterminer la valeur minimale d’une liste, utilisez la fonction min().
Pour déterminer la position d’une propriété spécifique, utilisez la commande findPos,
findPosNear ou getOne.
Chapitre 2 : Principes de base du scripting dans Director
Les instructions suivantes utilisent count() et count pour afficher le nombre d’éléments d’une
liste.
--Syntaxe Lingo
listeCollaborateurs = ["Raymond", "Françoise", "Paul"] – définit une liste
linéaire
trace(listeCollaborateurs.count()) -- affiche 3
trace(listeCollaborateurs.count) -- affiche 3
// Syntaxe JavaScript
var listeCollaborateurs = list("Raymond", "Françoise", "Paul"); // définit une
liste linéaire
trace(listeCollaborateurs.count); // affiche 3
Les instructions suivantes utilisent ilk() pour déterminer le type d’une liste.
--Syntaxe Lingo
x = ["1", "2", "3"]
trace(x.ilk()) // renvoie #liste
// Syntaxe JavaScript
var x = list("1", "2", "3");
trace(x.ilk()) // renvoie #liste
Les instructions suivantes utilisent max() et min() pour déterminer les valeurs maximales and
minimales d’une liste.
--Syntaxe Lingo
listeCollaborateurs = ["Raymond", "Françoise", "Paul"] – définit une liste
linéaire
trace(listeCollaborateurs.max()) -- affiche "Françoise"
trace(listeCollaborateurs.min()) -- affiche "Raymond"
// Syntaxe JavaScript
var listeCollaborateurs = list("Raymond", "Françoise", "Paul"); // définit une
liste linéaire
trace(listeCollaborateurs.max()); // affiche Françoise
trace(listeCollaborateurs.min()); // affiche Raymond
Les instructions suivantes utilisent findPos pour obtenir la position d’index d’une propriété
spécifiée dans une liste de propriétés.
--Syntaxe Lingo
-- définit une liste de propriétés
listeNourriture = [#petitdéjeuner:"Gauffres", #déjeuner:"Hamburger"]
trace(listeNourriture.findPos(#déjeuner)) -- affiche 2
// Syntaxe JavaScript
// définit une liste de propriétés
var listeNourriture = propList("petitdéjeuner", "Gauffres", "déjeuner",
"Hamburger");
trace(listeNourriture.findPos("petitdéjeuner")); // affiche 1
Listes linéaires et listes de propriétés
47
Ajout et suppression d’éléments de listes
Vous pouvez ajouter des éléments à une liste ou en supprimer à l’aide des méthodes suivantes.
• Pour ajouter un élément à la fin d’une liste, utilisez la méthode append().
• Pour ajouter un élément à l’endroit correct dans une liste triée, utilisez la méthode add() ou
addProp().
• Pour ajouter un élément à un emplacement spécifique d’une liste linéaire, utilisez la méthode
addAt().
• Pour ajouter un élément à un emplacement spécifique d’une liste de propriétés, utilisez la
•
•
méthode addProp().
Pour supprimer un élément d’une liste, utilisez la méthode deleteAt(), deleteOne(), ou
deleteProp().
Pour remplacer un élément d’une liste, utilisez le méthode setAt() ou setaProp().
Les instructions suivante utilisent append() pour ajouter un élément à la fin d’une liste.
--Syntaxe Lingo
listeCollaborateurs = ["Raymond", "Françoise", "Paul"] – définit une liste
linéaire
listeCollaborateurs.append("David")
trace(listeCollaborateurs) -- affiche ["Raymond", "Françoise", "Paul",
"David"]
// Syntaxe JavaScript
var listeCollaborateurs = list("Raymond", "Françoise", "Paul"); // définit une
liste linéaire
listeCollaborateurs.append("David");
trace(listeCollaborateurs); // affiche ["Raymond", "Françoise", "Paul",
"David"]
Les instructions suivantes utilisent addProp() pour ajouter une propriété et une valeur associée à
une liste de propriétés.
--Syntaxe Lingo
-- définit une liste de propriétés
listeNourriture = [#petitdéjeuner:"Gauffres", #déjeuner:"Hamburger"]
listeNourriture.addProp(#dîner, "Spaghetti") -- ajoute [#dîner: "Spaghetti"]
// Syntaxe JavaScript
// définit une liste de propriétés
var listeNourriture = propList("petitdéjeuner", "Gauffres", "déjeuner",
"Hamburger");
listeNourriture.addProp("dîner", "Spaghetti"); // ajoute ["dîner":
"Spaghetti"]
Il n’est pas nécessaire d’éliminer explicitement les listes. Elles sont automatiquement supprimées
lorsque aucune variable n’y fait référence. Les autres types d’objets doivent être retirés de manière
explicite, en donnant aux variables qui y font référence la valeur VOID (Lingo) ou null (syntaxe
JavaScript).
48
Chapitre 2 : Principes de base du scripting dans Director
Copie de listes
L’affectation d’une liste à une variable, puis l’affectation de cette variable à une autre variable
ne crée pas automatiquement une copie de cette liste. Par exemple, la première instruction
ci-dessous crée une liste contenant les noms de deux continents et affecte la liste à la variable
listeTerres. La seconde instruction affecte la même liste à une nouvelle variable
listeContinents. Dans la troisième instruction, l’ajout d’ Australie à listeTerres ajoute
automatiquement l’élément Australie à la liste listeContinents. La raison en est que les
deux noms de variables font référence au même objet en mémoire. Le même comportement
se produit lorsque vous utilisez un tableau dans la syntaxe JavaScript.
--Syntaxe Lingo
listeTerres = ["Asie", "Afrique"]
listeContinents = listeTerres
listeTerres.add("Australie") – ceci ajoute également "Australie" à
listeContinents
Pour créer une copie d’une liste indépendante d’une autre liste :
• Utilisez la méthode duplicate().
Par exemple, les instructions suivantes créent une liste puis font une copie indépendante de la
liste.
--Syntaxe Lingo
ancienneListe = ["a", "b", "c"]
nouvelleListe = ancienneListe.duplicate() – fait une copie indépendante de
ancienneListe
// Syntaxe JavaScript
var ancienneListe = list("a", "b", "c");
var nouvelleListe = ancienneListe.duplicate(); // crée une copie indépendante
de ancienneListe
Une fois nouvelleListe créée, la modification de ancienneListe ou de nouvelleListe n’a
aucun effet sur l’autre liste.
Tri des listes
Les listes sont triées dans l’ordre alphanumérique, les nombres étant triés avant les chaînes. Les
chaînes sont triées en fonction de la première lettre, quel que soit le nombre de caractères qu’elles
contiennent. Les listes triées sont traitées un peu plus rapidement que les listes non triées.
Une liste linéaire est triée en fonction des valeurs de la liste. Une liste de propriétés est triée en
fonction des noms de propriétés de la liste ou du tableau.
Une fois les valeurs d’une liste linéaire ou d’une liste de propriétés triées, elles restent triées même
si des valeurs sont ajoutées ou supprimées des listes.
Listes linéaires et listes de propriétés
49
Pour trier une liste :
• Utilisez la méthode sort().
Par exemple, les instructions suivantes trient une liste alphabétique non triée.
--Syntaxe Lingo
ancienneListe = ["d", "a", "c", "b"]
ancienneListe.sort() -- renvoie ["a", "b", "c", "d"]
// Syntaxe JavaScript
var ancienneListe = list("d", "a", "c", "b");
ancienneListe.sort(); // renvoie ["a", "b", "c", "d"]
Création de listes multidimensionnelles
Vous pouvez également créer des listes multidimensionnelles qui vous permettront d’utiliser les
valeurs de plusieurs listes à la fois.
Dans l’exemple suivant, les deux premières instructions créent les listes linéaires séparées liste1
et liste2. La troisième instructions crée une liste multidimensionnelle et l’affecte à listeMd.
Dans une liste multidimensionnelle, les instructions quatre et cinq utilisent des crochets pour
accéder aux valeurs de la liste ; le premier crochet donne accès à une liste donnée, le second
crochet donnant accès à la valeur se trouvant à la position d’index spécifiée dans la liste.
--Syntaxe Lingo
liste1 = list(5,10)
liste2 = list(15,20)
listeMd = list(liste1, liste2)
trace(listeMd[1][2]) -- affiche 10
trace(listeMd[2][1]) – affiche 15
// Syntaxe JavaScript
var liste1 = list(5,10);
var liste2 = list(15,20);
var listeMd = list(liste1, liste2);
trace(listeMd[1][2]); // affiche 10
trace(listeMd[2][1]); // affiche 15
Tableaux de la syntaxe JavaScript
Les tableaux de la syntaxe JavaScript sont similaires aux listes linéaires de Lingo, chaque élément
d’un tableau étant une valeur unique. L’une des principales différences entre les tableaux de la
syntaxe JavaScript et les listes linéaires de Lingo est que l’index d’un tableau commence toujours
par 0.
Vous pouvez créer un tableau de la syntaxe JavaScript en utilisant l’objet Tableau. Vous pouvez
utiliser soit des crochets ([ ]) soit le constructeur Tableau pour créer un tableau. Les deux
instructions suivantes créent un tableau de deux valeurs.
// Syntaxe JavaScript
var monTableau = [10, 15]; // en utilisant des crochets
var monTableau = new Array(10, 15); // en utilisant le constructeur Tableau
Vous pouvez créer des tableaux vides. Les deux instructions suivantes créent un tableau vide.
// Syntaxe JavaScript
var monTableau = [];
var monTableau = new Array();
50
Chapitre 2 : Principes de base du scripting dans Director
Remarque : La Référence de scripting de Director ne constitue pas une référence complète pour les
objets Tableau de la syntaxe JavaScript. Pour plus d’informations concernant les objets Tableau,
consultez les nombreuses autres ressources consacrées à ce sujet.
Vérification d’éléments dans les tableaux
Vous pouvez déterminer les caractéristiques d’un tableau et le nombre d’éléments qui y sont
contenus en utilisant les méthodes suivantes.
• Pour afficher le contenu d’une liste, utilisez la fonction put() ou trace(), en passant la
variable contenant la liste en tant que paramètre.
• Pour déterminer le nombre d’éléments contenus dans un tableau, utilisez la propriété length
de l’objet Tableau.
• Pour déterminer le type d’un tableau, utilisez la propriété
constructor.
L’exemple suivant montre comment déterminer le nombre d’éléments contenus dans un
tableau en utilisant la propriété length puis en renvoyant le type d’objet à l’aide de la propriété
constructor.
// Syntaxe JavaScript
var x = ["1", "2", "3"];
trace(x.length); // affiche 3
trace(x.contructor == Array); // affiche true
Ajout et suppression d’éléments dans des tableaux
Vous pouvez ajouter des éléments à un tableau ou en supprimer à l’aide des méthodes suivantes.
• Pour ajouter un élément à la fin d’un tableau, utilisez la méthode push() de l’objet Tableau.
• Pour placer un élément à sa position correcte dans un tableau trié, utilisez la méthode
de l’objet Tableau.
Pour placer un élément à un endroit précis d’un tableau, utilisez la méthode splice() de
l’objet Tableau.
Pour supprimer un élément d’un tableau, utilisez la méthode splice() de l’objet Tableau.
Pour remplacer un élément d’un tableau, utilisez la méthode splice() de l’objet Tableau.
splice()
•
•
•
L’exemple suivant montre comment utiliser la méthode splice() de l’objet Tableau pour ajouter
des éléments à un tableau, les supprimer du tableau ou les remplacer.
// Syntaxe JavaScript
var monTableau = new Array("1", "2");
trace(monTableau); affiche 1,2
myArray.push("5"); // ajoute la valeur "5" à la fin de monTableau
trace(monTableau); // affiche 1,2,5
myArray.splice(3, 0, "4"); // ajoute la valeur "4" après la valeur "5"
trace(monTableau); // affiche 1,2,5,4
myArray.sort(); // trie monTableau
trace(monTableau); // affiche 1,2,4,5
myArray.splice(2, 0, "3");
trace(monTableau); // affiche 1,2,3,4,5
Tableaux de la syntaxe JavaScript
51
myArray.splice(3, 2); // supprime deux valeurs aux positions d’index 3 et 4
trace(monTableau); // affiche 1,2,3
myArray.splice(2, 1, "7"); // remplace une valeur à la position d’index 2 par
"7"
trace(monTableau); affiche 1,2,7
Copie de tableaux
L’affectation d’un tableau à une variable, puis l’affectation de cette variable à une autre variable ne
crée pas une copie séparée de ce tableau.
Par exemple, la première instruction ci-dessous crée un tableau contenant les noms de deux
continents puis affecte le tableau à la variable listeTerres. La seconde instruction affecte la
même liste à une nouvelle variable listeContinents. Dans la troisième instruction, l’ajout
d’Australie à listeTerres ajoute automatiquement l’élément Australie au tableau
listeContinents. En effet, les deux noms de variables font référence au même objet Tableau
en mémoire.
// Syntaxe JavaScript
var listeTerres = new Array("Asie", "Afrique");
var listeContinents = listeTerres;
listeTerres.push("Australie"); // ceci ajoute également "Australie" à
listeContinents
Pour créer la copie d’un tableau indépendant d’un autre tableau :
• Utilisez la méthode slice() de l’objet Tableau.
Par exemple, les instructions suivantes créent un tableau puis utilisent slice() pour créer une
copie indépendante du tableau.
// Syntaxe JavaScript
var ancienTableau = ["a", "b", "c"];
var nouveauTableau = ancienTableau.slice(); // crée une copie indépendante de
ancienTableau
Une fois nouveauTableau créé, la modification de ancienTableau ou de nouveauTableau n’a
aucun effet sur l’autre tableau.
Tri des tableaux
Les tableaux sont triés dans l’ordre alphanumérique, les nombres étant triés avant les chaînes. Les
chaînes sont triées en fonction de la première lettre, quel que soit le nombre de caractères qu’elles
contiennent.
Pour trier un tableau :
• Utilisez la méthode sort() de l’objet Tableau.
Les instructions suivantes trient un Tableau alphabétique non trié.
// Syntaxe JavaScript
var ancienTableau = ["d", "a", "c", "b"];
ancienTableau.sort(); // renvoie a, b, c, d
52
Chapitre 2 : Principes de base du scripting dans Director
Les instructions suivantes trient un tableau alphanumérique non trié
// Syntaxe JavaScript
var ancienTableau = [6, "f", 3, "b"];
ancienTableau.sort(); // renvoie 3, 6, b, f
Le tri d’un tableau renvoie un nouveau tableau trié.
Création de tableaux multidimensionnels
Vous pouvez également créer des tableaux multidimensionnels qui vous permettront d’utiliser les
valeurs de plusieurs tableaux à la fois.
Dans l’exemple suivant, les deux premières instructions créent les tableaux distincts tableau1 et
tableau2. La troisième instruction crée un tableau multidimensionnel et l’affecte à tableauMd.
Pour accéder aux valeurs d’un tableau multidimensionnel, les instructions quatre et cinq utilisent
des crochets ; le premier crochet donne accès à un tableau précis, le second donnant accès à une
valeur située à une position d’index spécifiée dans le tableau.
// Syntaxe JavaScript
var tableau1 = nouveau Tableau(5,10);
var tableau2 = [15,20];
var tableauMd = nouveau Tableau(tableau1, tableau2);
trace(tableauMd[0][1]); // affiche 10
trace(tableauMd[1][0]); // affiche 15
Tableaux de la syntaxe JavaScript
53
54
Chapitre 2 : Principes de base du scripting dans Director
CHAPITRE 3
Rédaction de scripts dans Director
Les scripts de Macromedia Director MX 2004 prennent en charge toutes sortes de fonctionnalités
pour des animations qui seraient impossibles à réaliser sans eux. Au fur et à mesure de la rédaction
des scripts, vous vous rendrez probablement compte que des scripts de plus en plus compliqués
sont nécessaires pour prendre en charge l’interactivité complexe de vos animations Director. Nous
vous présentons ici les concepts et techniques de scripting intermédiaires et avancés, notamment
des informations concernant le scripting orienté objet dans Director.
Si vous êtes un novice en matière de scripting dans Director, assurez-vous de lire le Chapitre 2,
Principes de base du scripting dans Director, page 9 en plus des rubriques suivantes.
Choisir entre Lingo et la syntaxe JavaScript
Lingo et JavaScript donnent tous deux accès aux mêmes objets, événements et API de scripting.
Le langage dans lequel vous choisissez de rédiger vos scripts importe donc peu. Il vous suffit de
décider du langage qui vous convient le mieux.
Voici quelques idées générales concernant le fonctionnement des langages de scripting avec un
objet et modèle d’événement donnés dans Director :
• En général, un langage de scripting tel que Lingo ou JavaScript entoure un modèle d’objet et
d’événement donné et donne accès à ces objets et événements.
• JavaScript est une implémentation de ECMAScript qui entoure le modèle d’objet et
•
•
•
d’événement d’un navigateur web et donne accès aux objets et événements du navigateur.
ActionScript est une implémentation de ECMAScript qui entoure le modèle d’objet et
d’événement de Macromedia Flash et donne accès aux objets et événements de Flash.
L’implémentation Director de JavaScript est une implémentation de ECMAScript qui entoure
le modèle d’objet et d’événement de Director et donne accès aux objets et événements de
Director.
Lingo est une syntaxe personnalisée qui entoure le modèle d’objet et d’événement de Director
et donne accès aux objets et événements de Director.
Lingo et JavaScript sont tout simplement les deux langages que vous pouvez utiliser pour accéder
au même modèle d’objet etévénement dans Director. Les scripts rédigés dans l’un des langages
ont les mêmes capacités que ceux rédigés dans l’autre.
55
Une fois que vous avez donc décidé de la manière d’accéder aux API de scripting dans un langage,
vous saurez comment y accéder dans l’autre. Par exemple, le code de la syntaxe JavaScript peut
accéder à des types de données Lingo tels que les symboles, les listes linéaires, les listes de
propriétés et ainsi de suite, créer et invoquer des scripts et comportements parents de Lingo,
créer et invoquer des Xtras et utiliser des expressions de sous-chaînes Lingo. De plus, les scripts
de la syntaxe JavaScript et Lingo peuvent être utilisés au sein d’une animation ; toutefois, un
acteur script ne peut contenir qu’un type de syntaxe.
Il existe deux différences principales entre Lingo et la syntaxe JavaScript :
• Chaque langage comprend des conventions de syntaxe et de terminologie qui leur sont
propres. Par exemple, la syntaxe d’un gestionnaire d’événement dans Lingo est différente
de celle de JavaScript.
-- Syntaxe Lingo
on mouseDown
...
end
// Syntaxe JavaScript
function mouseDown() {
...
}
•
Pour plus d’informations concernant les conventions de syntaxe et de terminologie utilisées
pour chaque langage, veuillez consulter Terminologie de scripting, page 10 et Syntaxe de
scripting, page 13.
L’accès à certains API de scripting varie légèrement d’un langage à l’autre. Par exemple,
vous utiliseriez des constructions différentes pour accéder au deuxième mot du premier
paragraphe d’un acteur texte :
-- Syntaxe Lingo
member("Nouvelles du jour").paragraph[1].word[2]
// Syntaxe JavaScript
member("Nouvelles du jour").getPropRef("paragraph", 1).getProp("word", 2);
Format de scripting à syntaxe à points
Que vous rédigiez des scripts avec Lingo ou en utilisant la syntaxe JavaScript, vous le faites à
l’aide du format de scripting à syntaxe à points. Vous utilisez la syntaxe à points pour accéder aux
propriétés ou méthodes liées à un objet. Une instruction utilisant la syntaxe à points commence
par le nom de l’objet, suivi d’un point, puis du nom de la propriété, de la méthode ou de la souschaîne de texte que vous souhaitez spécifier. Chaque point d’une instruction représente un
mouvement allant d’un niveau plus élevé et plus général de la hiérarchie des objets à un niveau
inférieur et plus précis.
Par exemple, l’instruction suivante crée d’abord une référence à la bibliothèque de distribution
appelée « Nouvelles du jour » puis utilise la syntaxe à points pour accéder au nombre d’acteurs
compris dans cette bibliothèque.
-- Syntaxe Lingo
castLib("Nouvelles du jour").member.count
// Syntaxe JavaScript
castLib("Nouvelles du jour").member.count;
56
Chapitre 3 : Rédaction de scripts dans Director
Pour identifier les sous-chaînes, les termes suivant le point servent à indiquer des éléments
spécifiques du texte. Par exemple, la première instruction ci-dessous concerne le premier
paragraphe de l’acteur texte appelé « Nouveaux Eléments ». La seconde instruction concerne
le deuxième mot du premier paragraphe.
-- Syntaxe Lingo
member("Nouveaux Eléments").paragraph[1]
member("Nouveaux Eléments").paragraph[1].word[2]
// Syntaxe JavaScript
member("Nouveaux Eléments").getPropRef("paragraph", 1);
member("Nouveaux Eléments").getPropRef("paragraph", 1).getProp("word", 2);
Pour certains objets prenant en charge l’accès des propriétés en cascade à des données ou à un type
d’acteur précis, comme indiqué dans les deux instructions précédentes, la syntaxe JavaScript
normale ne supporte pas ce genre d’accès. Vous devez donc utiliser les méthodes getPropRef()
et getProp() pour accéder aux propriétés de cascade dans la syntaxe JavaScript.
Voici quelques remarques concernant cette exception dans la syntaxe JavaScript :
• Vous devez appliquer cette technique aux objets 3D, aux acteurs texte, aux acteurs champ et
•
•
•
aux Xtras XML Parser auxquels vous avez accédé à l’aide de la syntaxe JavaScript.
Vous devez utiliser la méthode getPropRef() pour stocker une référence à l’un des objets
précédemment mentionnés ou à ses propriétés à l’aide de la syntaxe JavaScript.
Vous devez utiliser la méthode getProp() pour récupérer une valeur de propriété de l’un des
objets précédemment mentionnés ou de ses propriétés à l’aide la syntaxe JavaScript.
Vous devez accéder aux objets 3D et propriétés en utilisant leurs noms complets dans la
syntaxe JavaScript. Dans Lingo par exemple, la propriété shader peut être utilisée comme un
raccourci de la propriété shaderList[1]. Toutefois, dans la syntaxe JavaScript, la propriété
shaderList[1] doit être utilisée tout le temps.
Introduction aux objets de Director
Les objets sont généralement des groupes logiques de données nommées pouvant également
contenir des méthodes agissant sur ces données. Dans cette version de Director, les API de
scripting ont été groupés en objets et sont accessibles à travers ces objets. Chaque objet donne
accès à un ensemble précis de données nommées et de types de fonctionnalités. Par exemple,
l’objet Image-objet donne accès aux données et fonctionnalités d’une image-objet, l’objet
Animation donne accès aux données et fonctionnalités d’une animation, et ainsi de suite.
Les objets utilisés dans Director appartiennent aux quatre catégories suivantes. Selon la fonctionnalité que vous voulez ajouter et la partie d’une animation à laquelle vous l’ajoutez, vous utiliserez
les objets d’une ou plusieurs de ces catégories :
•
•
•
•
Objets principaux
Types de médias
Objets de scripting
Objets 3D
Introduction aux objets de Director
57
Objets principaux
Cette catégorie d’objets donne accès aux principales fonctionnalités et fonctions de Director,
telles que le moteur du lecteur de Director, les fenêtres des animations, les images-objets, les sons,
etc. Ces objets représentent la couche de base à travers laquelle on accède à tous les API et autres
catégories d’objets.
Il existe également un groupe de méthodes et propriétés de haut niveau qui vous permettent
d’accéder directement à tous les objets principaux au lieu d’avoir à passer par la hiérarchie des
objets.
Pour plus d’informations sur les objets principaux et leurs API, consultez le Chapitre 5, Objets
principaux de Director, page 113.
Types de médias
Cette catégorie d’objets donne accès aux fonctionnalités des divers types de médias (RealMedia,
DVD, GIF animé, etc.) ajoutés aux animations en tant qu’acteurs.
Les médias ne sont pas strictement des objets mais plutôt des acteurs qui se rapportent à un type
de média précis. Lorsqu’un type de média est ajouté à une animation en tant qu’acteur, il hérite
de la fonctionnalité de l’objet Acteur principal et étend l’objet Acteur en fournissant des fonctionnalités supplémentaires qui ne sont disponibles que pour le type de média spécifié. Par exemple,
un acteur RealMedia a accès aux méthodes et propriétés de l’objet Acteur, et possède également
d’autres méthodes et propriétés propres à RealMedia. Les autres types de médias affichent tous ce
comportement.
Pour plus d’informations sur les types de médias disponibles et leurs API, consultez le Chapitre 6,
Types de médias, page 131.
Objets de scripting
Cette catégorie d’objets, également connus sous le nom de Xtras, donne accès aux fonctionnalités
des composants logiciels tels que XML Parser, Fileio et SpeechXtra qui sont installés dans
Director et étendent les fonctionnalités principales de Director. Les Xtras existants fournissent
certaines fonctions telles que l’importation de filtres et la connexion à Internet. Vous pouvez créer
vos propres Xtras si vous savez programmer en langage C.
Pour plus d’informations sur les objets de scripting et leurs API, consultez le Chapitre 7, Objets de
scripting, page 149.
Objets 3D
Cette catégorie d’objets donne accès aux fonctionnalités d’acteurs et de texte utilisées pour créer
des animations 3D.
Pour plus d’informations sur les animations 3D, veuillez voir la rubrique Utilisation de Director
dans le panneau d’aide de Director.
Pour plus d’informations sur les objets 3D et leurs API, consultez le Chapitre 8, Objets 3D,
page 153.
58
Chapitre 3 : Rédaction de scripts dans Director
Diagramme de modèles d’objets
Les diagrammes suivants illustrent les principales relations de haut niveau entre les groupes
d’objets et leurs hiérarchies dans Director. Pour toute information sur la création d’objets, les
propriétés et méthodes et les autres API, veuillez consulter les rubriques consacrées à chaque API.
Diagramme de modèles d’objets
59
Fonctions et propriétés de haut niveau
Il existe également un groupe de méthodes et propriétés de haut niveau qui vous permettent
d’accéder directement à tous les objets principaux et fonctionnalités au sein de Director. Ces
fonctions et propriétés sont très utiles pour créer des références aux objets principaux, aux
nouvelles images, aux listes et ainsi de suite. Par exemple, la propriété _movie de haut niveau fait
directement référence à l’objet principal Animation et la fonction list() de haut niveau crée une
liste linéaire.
Les tableaux suivants dressent la liste des fonctions et propriétés de haut niveau.
Propriétés de haut niveau
_global
_player
_key
_sound
_mouse
_system
_movie
Fonctions de haut niveau
60
castLib()
rect()
channel() (niveau supérieur)
script()
color()
showLocals()
date() (formats), date() (Système)
sound()
image()
isBusy()
list()
sprite()
member()
symbol()
point()
timeout()
propList()
trace()
put()
vector()
random()
window()
randomVector()
xtra()
Chapitre 3 : Rédaction de scripts dans Director
Introduction à la programmation orientée objet dans Director
Vous pouvez appliquer les principes de la programmation orientée objet à vos scripts avec Lingo
ou JavaScript. Cette opération facilite en général la programmation puisqu’elle vous permet de
rédiger moins de codes et d’utiliser la logique pour effectuer des tâches, tout en améliorant la
réutilisation et la modularité de vos codes.
En fonction du langage utilisé, vous appliquez ces principes à l’aide de deux types de paradigmes :
• Dans Lingo, vous utilisez les scripts parents, les scripts ancêtres et les objets enfants pour
simuler la programmation orientée objet.
• Dans la syntaxe JavaScript, vous utilisez les techniques de programmation orientée objet de
style JavaScript standard pour créer des classes et des sous-classes.
Chaque paradigme vous permet d’appliquer les avantages apportés par la programmation orientée
objet à vos scripts. Ainsi, le langage de scripting que vous utilisez importe peu. Il vous suffit tout
simplement d’appliquer les principes différemment.
Vu que chaque langage de scripting utilise un paradigme différent pour appliquer les principes
orientés objet, les techniques valables pour un langage ne seront pas valables pour l’autre. Il vous
suffit donc de consulter le contenu qui s’applique au langage de scripting que vous utilisez :
• Pour plus d’informations sur la simulation de la programmation orientée objet dans Lingo,
consultez Programmation orientée objet avec Lingo sur cette page.
• Pour plus d’informations sur la simulation de la programmation orientée objet dans JavaScript,
consultez Programmation orientée objet avec la syntaxe JavaScript, page 72.
Programmation orientée objet avec Lingo
Dans Lingo, les scripts parents offrent les avantages de la programmation orientée objet. Vous
pouvez utiliser des scripts parents pour générer des objets scripts qui ont une réponse et un
comportement similaires tout en fonctionnant indépendamment les uns des autres.
Lingo peut créer plusieurs copies (ou instances) d’un script parent. Chaque instance d’un script
parent est un objet enfant. Vous pouvez créer des objets enfants sur demande au fur et à mesure
de la lecture de l’animation. Director ne limite pas le nombre d’objets enfants que vous pouvez
créer depuis un même script parent. Vous pouvez créer autant d’objets enfants que la mémoire de
l’ordinateur peut en supporter.
Director peut créer plusieurs objets enfants depuis un même script parent de la même façon qu’il
peut créer plusieurs instances d’un comportement pour différentes images-objets. Un script
parent pourrait être assimilé à un modèle et un objet enfant à une implémentation du modèle
parent.
Cette section présente les concepts de base concernant la rédaction des scripts parents, ainsi que la
création et l’utilisation des objets enfants, et propose des exemples de script. Vous n’y trouverez
pas les concepts de la programmation orientée objet, mais devrez cependant en comprendre les
principes afin d’utiliser efficacement les scripts parents et les objets enfants. Vous trouverez dans
le commerce de nombreux ouvrages présentant les notions de base de la programmation orientée
objet.
Programmation orientée objet avec Lingo
61
Similarité avec les autres langages orientés objet
Si vous connaissez déjà un langage de programmation orienté objet tel que Java ou C++, vous
comprenez probablement ces concepts, même s’il se peut que vous les connaissiez en d’autres
termes.
Les termes par lesquels Director décrit les scripts parents et les objets enfants correspondent aux
termes couramment utilisés dans la programmation orientée objet :
Les scripts parents de
Les objets enfants
Director correspondent aux classes dans la programmation orientée objet.
de Director correspondent aux instances dans la programmation orientée
objet.
Les variables de propriétés de Director correspondent aux variables d’instances ou d’acteurs
dans la programmation orientée objet.
Les gestionnaires
de Director correspondent aux méthodes dans la programmation orientée
objet.
de Director correspondent à la Super classe ou classe de base dans la
programmation orientée objet.
Les scripts ancêtres
Scripts parents et objets enfants : notions de base
Dans Lingo, un script parent contient un ensemble de gestionnaires et de propriétés définissant
un objet enfant ; il ne constitue pas un objet enfant en lui-même. Un objet enfant est une
instance autonome et indépendante d’un script parent. Les objets enfants du même parent
possèdent des gestionnaires et des propriétés identiques, les objets enfants d’un même groupe
pouvant donc avoir des réponses similaires aux événements et aux messages.
Les scripts parents sont généralement utilisés pour construire des objets enfants facilitant l’organisation de l’animation. Ces objets enfants sont particulièrement utiles lorsqu’une animation nécessite plusieurs exécutions simultanées d’une même logique avec des paramètres différents. Vous
pouvez aussi ajouter un objet enfant à la propriété scriptInstanceList d’un objet Image-objet
ou la propriété actorList de l’objet Animation pour contrôler les animations.
Tous les objets enfants d’un même script parent possédant des gestionnaires identiques, ces objets
enfants répondent de façon semblable aux événements. Par contre, chaque objet enfant conserve
ses propres valeurs pour les propriétés définies dans le script parent. Il s’en suit que chaque objet
enfant peut avoir un comportement différent de celui des objets enfants apparentés tout en
provenant du même script parent.
Par exemple, vous pouvez créer un script parent définissant des objets enfants de champs texte
modifiables, possédant chacun leurs propres paramètres de propriété, texte et couleur, quels que
soient les réglages des autres champs texte. En modifiant les valeurs des propriétés d’objets enfants
précis, vous pouvez modifier ces caractéristiques pendant la lecture de l’animation, sans influer sur
les autres objets enfants basés sur le même script parent.
De même, un objet enfant peut également contenir une propriété réglée sur TRUE ou FALSE, quel
qu’en soit le réglage pour les objets enfants apparentés.
Un script parent se rapporte au nom d’un acteur script contenant les variables de propriétés et
les gestionnaires. Un objet enfant créé à partir d’un script parent est essentiellement une nouvelle
instance de l’acteur script.
62
Chapitre 3 : Rédaction de scripts dans Director
Différences entre les objets enfants et les comportements
Bien que les objets enfants et les comportements soient similaires en ce sens qu’ils peuvent tous
deux posséder plusieurs instances, ils présentent également plusieurs différences importantes. La
principale différence entre les objets enfants et les comportements est que les comportements sont
associés à des emplacements du scénario puisqu’ils sont affectés à des images-objets. Les objets
comportement sont automatiquement créés à partir d’initialisateurs dans le scénario lorsque
la tête de lecture passe d’une image à une autre et rencontre des images-objets possédant des
comportements. Les objets enfants de scripts parents, eux, doivent être explicitement créés par
un gestionnaire.
Les comportements et les objets enfants diffèrent dans la façon dont ils deviennent associés aux
images-objets. Director associe automatiquement un comportement à l’image-objet à laquelle il
est associé, alors que vous devez explicitement associer un objet enfant à une image-objet. Les
objets enfants ne requièrent pas de références d’images-objets et n’existent que dans la mémoire.
Ancêtres : principes de base
Les scripts parents peuvent déclarer des ancêtres, des scripts supplémentaires dont un script enfant
peut appeler et utiliser les gestionnaires et les propriétés.
La création de scripts ancêtres vous permet de créer un ensemble de gestionnaires et propriétés
que vous pouvez utiliser et réutiliser pour plusieurs scripts parents.
Un script parent fait d’un autre script parent son ancêtre en affectant le script à sa propriété
Par exemple, l’instruction suivante transforme le script Ce_que_chacun_fait en
ancêtre du script parent dans lequel l’instruction survient :
ancestor.
-- Syntaxe Lingo
ancestor = new(script "Ce_que_chacun_fait")
Lorsque les gestionnaires et les propriétés ne sont pas définis dans un objet enfant, Director
recherche la propriété ou le gestionnaire requis dans les ancêtres de l’enfant, en commençant par
son script parent. Si un gestionnaire est appelé ou qu’une propriété est testée et que le script
parent ne contient aucune définition correspondante, Director recherche une définition dans le
script ancêtre. Si ce script ancêtre contient une définition, celle-ci est utilisée.
Un objet enfant ne peut avoir qu’un ancêtre à la fois, mais ce script ancêtre peut posséder à son
tour un ancêtre, qui peut également en avoir un, et ainsi de suite. Cela vous permet de créer des
générations de scripts parents dont les gestionnaires sont accessibles à un objet enfant.
Rédaction d’un script parent
Un script parent contient le code nécessaire à la création d’objets enfants et en définit les actions
et propriétés possibles. Vous devez d’abord décider du comportement envisagé des objets enfants.
Rédigez ensuite un script parent qui effectue les opérations suivantes :
• Déclare les éventuelles variables de propriétés requises ; ces variables représentant des propriétés
•
•
pour lesquelles chaque objet enfant peut contenir une valeur indépendamment des autres
objets enfants.
Définit les valeurs initiales des propriétés et des variables de l’objet enfant dans le gestionnaire
on new.
Contient des gestionnaires supplémentaires contrôlant les actions de l’objet enfant.
Programmation orientée objet avec Lingo
63
Déclaration de variables de propriétés
Chaque objet enfant créé à partir du même script parent contient, dans un premier temps, les
mêmes valeurs pour ses variables de propriété. La valeur d’une variable de propriété n’appartient
qu’à l’objet enfant auquel elle est associée. Chaque variable de propriété et sa valeur persistent tant
que l’objet enfant existe. La valeur initiale d’une variable de propriété est généralement définie
dans le gestionnaire on new. Si la propriété n’est pas initialement définie, sa valeur initiale est
VOID.
Pour déclarer une variable de propriété :
• Utilisez le mot-clé property au début du script parent.
Pour définir et tester des variables de propriétés en dehors de l’objet enfant :
• Définissez et testez les variables de propriétés de la même façon que toute autre propriété dans
vos scripts à l’aide de la syntaxe réfDObjet.nomDePropriété.
Par exemple, l’instruction suivante définit la propriété vitesse d’un objet voiture1 :
voiture1.vitesse = 55
Création du nouveau gestionnaire
Chaque script parent utilise généralement un gestionnaire on new. Ce gestionnaire crée le nouvel
objet enfant lorsqu’un autre script émet une commande new(script nomDuScriptParent) qui
ordonne au script parent défini de créer un objet enfant basé sur lui-même. Si nécessaire, le
gestionnaire on new du script parent peut aussi définir les valeurs initiales des propriétés de l’objet
enfant.
Le gestionnaire on new commence toujours par l’expression on new,, suivie de la variable me et
de tout paramètre communiqué au nouvel objet enfant.
Le gestionnaire on new suivant crée un nouvel objet enfant à partir du script parent et initialise
la propriété spriteNum de l’enfant à l’aide de la valeur qui lui est associée dans le paramètre
aSpriteNum. L’instruction return me renvoie l’objet enfant vers le gestionnaire qui a appelé
initialement le gestionnaire on new.
-- Syntaxe Lingo
property spriteNum
on new me, aSpriteNum
spriteNum = aSpriteNum
return me
end
Pour plus d’informations sur l’appel des gestionnaires on new, veuillez consulter Création d’un
objet enfant, page 66.
64
Chapitre 3 : Rédaction de scripts dans Director
Ajout de gestionnaires supplémentaires
Le comportement de l’objet enfant est déterminé par l’inclusion des gestionnaires produisant le
comportement escompté dans le script parent. Par exemple, vous pouvez ajouter un gestionnaire
pour changer la couleur de l’image-objet.
Le script parent suivant définit une valeur pour la propriété spriteNum et contient un second
gestionnaire qui modifie la propriété foreColor de l’image-objet.
-- Syntaxe Lingo
property spriteNum
on new me, aSpriteNum
spriteNum = aSpriteNum
return me
end
on changeColor me
spriteNum.foreColor = random(255)
end
Référence à l’objet actuel
D’une manière générale, les objets enfants multiples sont créés à partir du même script parent
et chacun d’eux utilise plus d’un gestionnaire. La variable de paramètre spéciale me indique aux
gestionnaires de l’objet enfant qu’ils doivent agir sur les propriétés de cet objet, et non sur celles
d’autres objets enfants. De cette façon, lorsqu’un gestionnaire dans un objet enfant se rapporte à
des propriétés, il emploie les valeurs de son propre objet enfant pour ces propriétés.
Le terme me doit toujours être la première variable de paramètre indiquée dans chaque définition
de gestionnaire d’un script parent. Il est toujours important de définir me comme premier paramètre pour les scripts parents et de passer le même paramètre si vous devez appeler d’autres
gestionnaires dans le même script parent. Ceux-ci seront en effet les gestionnaires de chacun des
objets enfants du script.
Lorsque vous faites référence à des propriétés définies dans des scripts ancêtres, vous devez utiliser
le paramètre me comme source de la référence. En effet, la propriété, bien qu’elle soit définie dans
le script ancêtre, n’en reste pas moins une propriété de l’objet enfant. Par exemple, l’instruction
suivante utilise me pour désigner un objet et accéder aux propriétés définies dans un de ses
ancêtres :
-- Syntaxe Lingo
x = me.y – accéder à la propriété y de l’ancêtre
La variable me étant présente dans chaque gestionnaire de l’objet enfant, elle indique que tous les
gestionnaires contrôlent ce même objet enfant.
Programmation orientée objet avec Lingo
65
Création d’un objet enfant
Toute l’existence des objets enfants se déroule dans la mémoire ; ils ne sont pas enregistrés avec
une animation. Seuls les scripts parents et ancêtres sont enregistrés sur disque.
Pour créer un nouvel objet enfant, utilisez la méthode new() et affectez à cet objet enfant un nom
de variable ou une position dans une liste afin de pouvoir l’identifier et l’utiliser plus tard.
Pour créer un objet enfant et l’affecter à une variable, utilisez la syntaxe suivante :
-- Syntaxe Lingo
NomDeVariable = new(script "NomDeScript", paramètre1, paramètre2, ...)
Le paramètre NomDeScript est le nom du script parent, et paramètre1, paramètre2, ...
représentent tout paramètre que vous passez au gestionnaire on new de l’objet enfant. La
méthode new() crée un objet enfant dont l’ancêtre est NomDeScript. Elle appelle ensuite le
gestionnaire on new de l’objet enfant, avec les paramètres indiqués.
L’instruction new() peut provenir de n’importe quel endroit de l’animation. Vous pouvez
personnaliser les paramètres initiaux de l’objet enfant en modifiant les valeurs des paramètres
transmis avec l’instruction new().
Chaque objet enfant n’utilise que la mémoire nécessaire à l’enregistrement des valeurs courantes
de ses propriétés et variables ainsi qu’une référence au script parent. Par conséquent, vous pouvez
généralement créer et gérer autant d’objets enfants que vous le souhaitez.
Des instructions new() supplémentaires permettent de produire d’autres objets enfants à partir
du même script parent.
Pour créer des objets enfants sans initialiser immédiatement leurs variables de propriété, utilisez
la méthode rawNew(). La méthode rawNew() effectue cette opération en créant l’objet enfant
sans appeler le gestionnaire on new du script parent. Au cas où de grandes quantités d’objets
enfants seraient requises, rawNew() permet de créer les objets à l’avance et de reporter l’affectation
des valeurs de propriété jusqu’à ce que chaque objet soit requis.
L’instruction suivante crée un objet enfant à partir du script parent Véhicule sans initialiser ses
variables de propriétés et l’attribue à la variable voiture1 :
-- Syntaxe Lingo
voiture1 = script("Voiture").rawNew()
Pour initialiser les propriétés de l’un de ces objets enfants, appelez son gestionnaire voiture1 :
voiture1.new
66
Chapitre 3 : Rédaction de scripts dans Director
Vérification des propriétés d’un objet enfant
Vous pouvez vérifier les valeurs de variables de propriétés spécifiques dans des objets enfants à
l’aide de la syntaxe NomObjet.NomDePropriété syntax. Par exemple, l’instruction suivante affecte
à la variable x la valeur de la propriété vitesseVoiture de l’objet enfant dans la variable
voiture1 :
-- Syntaxe Lingo
x = voiture1.vitesseVoiture
La consultation des propriétés d’un objet depuis l’extérieur de cet objet peut s’avérer utile pour
obtenir des informations sur des groupes d’objets, comme la vitesse moyenne de tous les véhicules
d’un jeu de course automobile. Vous pouvez également utiliser les propriétés d’un objet afin de
déterminer le comportement d’autres objets qui en dépendent.
En plus de vérifier les propriétés que vous affectez, vous pouvez déterminer si un objet enfant
contient un gestionnaire spécifique ou rechercher le script parent d’où provient un objet. Cette
fonction est très pratique si des objets proviennent de scripts parents similaires mais présentant
des différences très subtiles.
Par exemple, vous pouvez créer un scénario dans lequel un script parent parmi d’autres pourrait
servir à créer un objet enfant. Vous pouvez ensuite déterminer de quel script parent un objet
enfant déterminé provient à l’aide de la fonction script(), qui renvoie le nom du script parent
d’un objet.
Les instructions suivantes vérifient si l’objet voiture1 a été créé depuis le script parent appelé
Voiture :
-- Syntaxe Lingo
if voiture1.script = script("Voiture") then
_sound.beep()
end if
Vous pouvez également obtenir une liste de gestionnaires d’un objet enfant en utilisant la
méthode handlers() ou vérifier si un gestionnaire particulier existe dans un objet enfant en
utilisant la méthode handler().
L’instruction suivante place une liste des gestionnaires de l’objet enfant voiture1 dans la variable
:
maListeDeGestionnaire
-- Syntaxe Lingo
maListeDeGestionnaire = voiture1.handlers()
Cette liste pourrait se présenter comme suit :
[#démarrer, #accélérer, #arrêter]
Les instructions suivantes utilisent la méthode handler() pour vérifier si le gestionnaire
on accélérer existe dans l’objet enfant voiture1 :
-- Syntaxe Lingo
if voiture1.handler(#accélérer) then
put("L’objet enfant voiture1 contient le gestionnaire indiqué sur
accélérer.")
end if
Programmation orientée objet avec Lingo
67
Suppression d’un objet enfant
Vous pouvez supprimer un objet enfant d’une animation en modifiant la valeur de toutes les
variables qui contiennent une référence à cet objet enfant. Si l’objet enfant a été affecté à une liste,
comme actorList, vous devez également supprimer l’objet en question de la liste.
Pour supprimer un objet enfant et les variables qui y font référence :
• Affectez VOID à chaque variable.
Director supprime l’objet enfant lorsque plus rien ne lui fait référence. Dans l’exemple suivant,
contient la seule référence à un objet enfant particulier, et la définit comme étant VOID
pour supprimer l’objet de la mémoire.
balle1
-- Syntaxe Lingo
balle1 = VOID
Pour supprimer un objet de actorList :
• Utilisez la méthode delete() pour supprimer l’élément de la liste.
Utilisation de scriptInstanceList
Vous pouvez utiliser la propriété scriptInstanceList pour ajouter dynamiquement de
nouveaux comportements à une image-objet. Normalement, scriptInstanceList est la liste
des instances de comportements créées à partir des initialisateurs de comportements définis dans
le scénario. Si vous ajoutez des objets enfants créés à partir de scripts parents à la liste, les objets
enfants reçoivent les messages envoyés à d’autres comportements.
Par exemple, l’instruction suivante ajoute un objet enfant à la propriété scriptInstanceList
de l’image-objet 10 :
-- Syntaxe Lingo
add(sprite(10).scriptInstanceList, new(script "rotation", 10))
Le script suivant est le script parent éventuel auquel l’instruction précédente fait référence :
-- Syntax Lingo pour script parent "rotation"
property spriteNum
on new me, aSpriteNum
spriteNum = aSpriteNum
return me
end
on prepareFrame me
sprite(spriteNum).rotation = sprite(spriteNum).rotation + 1
end
Lorsqu’un objet enfant est ajouté à scriptInstanceList, vous devez initialiser la propriété
spriteNum de l'objet enfant. Cette opération est généralement effectuée à partir d’un paramètre
passé au gestionnaire on new.
Remarque : Le message beginSprite n’est pas envoyé aux objets enfants ajoutés dynamiquement.
Pour obtenir des informations concernant scriptInstanceList, consultez scriptInstanceList,
page 1030.
68
Chapitre 3 : Rédaction de scripts dans Director
Utilisation de actorList
Vous pouvez établir une liste spéciale d’objets enfants (ou de tout autre objet) qui reçoivent un
message personnel à chaque fois que la tête de lecture entre dans une image ou que la méthode
updateStage() met la scène à jour.
La liste spéciale est actorList, qui ne contient que les objets ayant été explicitement ajoutés à
la liste.
Le message est le message stepFrame qui n’est émis que lorsque la tête de lecture entre dans une
image ou que la commande updateStage() est utilisée.
Les objets de actorList reçoivent un message stepFrame au lieu d’un message enterFrame à
chaque image. Si les objets disposent d’un gestionnaire on stepFrame, le script du gestionnaire
est exécuté à chaque fois que la tête de lecture entre dans une nouvelle image ou que la méthode
updateStage() met la scène à jour.
Parmi les applications possibles de actorList et stepFrame figurent l’animation d’objets enfants
utilisés en tant qu’images-objets ou la mise à jour d’un compteur qui suit le nombre de fois que
la tête de lecture entre dans une image.
Un gestionnaire on enterFrame pourrait produire les mêmes résultats, mais la propriété
et le gestionnaire stepFrame sont conçus pour des performances optimales dans
Director. Les objets de actorList répondent mieux aux messages stepFrame qu’aux messages
enterFrame ou aux messages personnalisés émis après une méthode updateStage().
actorList
Pour ajouter un objet dans actorList :
• Utilisez la propriété actorList comme suit, objetEnfant faisant référence à l’objet enfant à
ajouter :
-- Syntaxe Lingo
_movie.actorList.add(objetEnfant)
Le gestionnaire stepFrame de l’objet, défini dans son script parent ou ancêtre est alors exécuté
automatiquement à chaque fois que la tête de lecture avance. L’objet est transmis en tant que
premier paramètre me au gestionnaire on stepFrame.
Director n’efface pas le contenu de actorList lorsqu’il passe à une autre animation, ce qui peut
provoquer un comportement imprévisible dans cette dernière. Pour éviter le transfert des objets
enfants de l’animation actuelle dans la nouvelle animation, insérez une instruction qui efface
actorList dans le gestionnaire on prepareMovie de la nouvelle animation.
Pour effacer les objets enfants de actorList :
• Donnez à
actorList
la valeur [ ], qui représente une liste vide.
Pour obtenir des informations concernant actorList, veuillez consulter actorList, page 667.
Programmation orientée objet avec Lingo
69
Création d’objets de temporisation
Un objet de temporisation est un objet script qui agit comme un minuteur et qui envoie un
message à la fin du délai. Ce type d’objet est utile pour les scénarios qui nécessitent l’exécution
de certains événements à intervalles réguliers ou après un certain délai.
Les objets de temporisation peuvent envoyer des messages appelant des gestionnaires dans des
objets enfants ou des scripts d’animation. Vous pouvez créer un objet de temporisation en
utilisant le mot de passe new(). Vous devez spécifier le nom de l’objet, le gestionnaire à appeler
et la fréquence avec laquelle le gestionnaire doit être appelé. Lorsqu’un objet de temporisation
est créé, Director maintient une liste des objets de temporisation actuellement actifs, nommée
timeOutList.
Pour créer des objets de temporisation :
• Utilisez l’une des deux syntaxes ci-dessous :
--Syntaxe Lingo
NomDeVariable = timeOut(NomObjTemp).new(intMillisecondes, #NomGestionnaire \
{, ObjetCible})
NomDeVariable = new timeOut(NomObjTemp, intMillisecondes, #NomGestionnaire \
{, ObjetCible})
Cette instruction utilise les éléments suivants :
•
•
•
•
•
•
•
est la variable dans laquelle vous placez l’objet de temporisation.
timeOut indique le type d’objet Lingo que vous créez.
NomObjTemp est le nom que vous donnez à l’objet de temporisation. Ce nom figurera dans la
liste timeOutList. C’est la propriété #name de l’objet.
new crée un nouvel objet.
intMillisecondes indique la fréquence avec laquelle l’objet de temporisation doit appeler le
gestionnaire indiqué. C’est la propriété #period de l’objet. Une valeur de 2000, par exemple,
appelle le gestionnaire indiqué toutes les 2 secondes.
#NomGestionnaire est le nom du gestionnaire que l’objet doit appeler. C’est la propriété
#GestionnaireTemporisation de l’objet. Vous la représentez sous la forme d’un symbole en
précédant le nom du signe #. Par exemple, un gestionnaire nommé on accélérer serait noté
#accélérer.
ObjetCible indique le gestionnaire de l’objet enfant à appeler. C’est la propriété #cible de
l’objet. Ce paramètre permet d’être spécifique si plusieurs objets enfants contiennent les
mêmes gestionnaires. Si vous omettez ce paramètre, Director recherche le gestionnaire indiqué
dans le script d’animation.
NomDeVariable
L’instruction suivante crée un objet de temporisation appelé minuteur1 qui appellera un
gestionnaire on accélérer dans l’objet enfant voiture1 toutes les 2 secondes :
-- Syntaxe Lingo
monMinuteur = timeOut("minuteur1").new(2000, #accélérer, voiture1)
70
Chapitre 3 : Rédaction de scripts dans Director
Pour déterminer le moment auquel le message de temporisation suivant est envoyé par un objet
de temporisation déterminé, consultez sa propriété #time. La valeur renvoyée est le moment, en
millièmes de secondes, auquel le message de temporisation suivant sera envoyé. Par exemple,
l’instruction suivante détermine le moment auquel le prochain message de temporisation sera
envoyé de l’objet de temporisation minuteur1 et l’affiche dans la fenêtre Message :
-- Syntaxe Lingo
put timeout("minuteur1").time)
Utilisation de timeOutList
Lorsque vous commencez à créer des objets de temporisation, vous pouvez utiliser timeOutList
pour déterminer le nombre d’objets de temporisation actifs à un moment particulier.
L’instruction suivante attribue la variable x au nombre d’objets se trouvant dans timeOutList en
utilisant la propriété count.
-- Syntaxe Lingo
x = _movie.timeoutList.count
Vous pouvez également faire référence à un objet de temporisation en employant son numéro
dans la liste.
L’instruction suivante supprime le second objet de temporisation dans timeOutList en utilisant
la méthode forget().
-- Syntaxe Lingo
timeout(2).forget()
Relais d’événements système au moyen d’objets de temporisation
Lorsque vous créez des objets de temporisation qui font référence à des objets enfants précis, vous
permettez à ces derniers de recevoir des événements système. Les objets de temporisation relayent
ces événements vers leurs objets enfants cibles. Les événements système qui peuvent être reçus par
des objets enfants sont, par exemple, prepareMovie, startMovie, stopMovie, prepareFrame et
exitFrame. En incluant des gestionnaires pour ces événements dans les objets enfants, vous
pouvez ordonner aux objets enfants de leur répondre en fonction de vos besoins. Les événements
système reçus par les objets enfants sont également reçus par les scripts d’animation, les scripts
d’image et les autres scripts définis comme devant leur répondre.
Le script parent suivant contient un gestionnaire pour l’événement système exitFrame ainsi
qu’un gestionnaire personnalisé slowDown.
-- Syntaxe Lingo
propriété vitesse
on new me
vitesse = random(55)
end
on exitFrame
vitesse = vitesse + 5
end
on slowDown mph
vitesse = vitesse - mph
end
Programmation orientée objet avec Lingo
71
Association de propriétés personnalisées avec des objets de temporisation
Si vous souhaitez associer des propriétés personnalisées avec un objet de temporisation, vous devez
créer un objet de temporisation dont la cible n’est pas une référence à un objet instance de script.
Lorsque vous utilisez cette technique, les données cibles deviennent des données associées à l’objet
de temporisation pouvant être utilisées dans votre gestionnaire de temporisation.
L’exemple suivant vous montre comment utiliser cette technique.
-- Syntaxe Lingo
-- initialisation d’un objet de temporisation et transmission dans une liste de
propriété de données (tDonnées)
-- au lieu de faire référence à un objet d’instance de script.
tDonnées = [#beta: 0]
tTO = timeout("betaData").new(50,#gestionnaireCible,tDonnées)
-- au sein d’un script d’animation, créer le gestionnaire gestionnaireCible
on gestionnaireCible (aData)
-- incrémentation et affichage de la propriété bêta
tDonnées.beta = tDonnées.beta + 1
put(tDonnées.beta)
end gestionnaireCible
Dans l’exemple précédent, la propriété beta continue d’être incrémentée. Cela signifie que vous
pouvez initialiser plusieurs objets de temporisation qui appellent le même gestionnaire de script
d’animation. Chaque objet de temporisation peut posséder sa propre liste de données.
En général, sachez que :
• Lors de l’utilisation d’instances de script en tant que cible, le gestionnaire cible de cette
•
instance de script en particulier est appelé. Vous ne pouvez pas utiliser des propriétés
personnalisées avec cette technique.
Lors de l'utilisation d'une référence autre qu'une instance de script (une liste de propriété par
exemple) en tant que cible, le gestionnaire cible dans un script d’animation est appelé. Vous
pouvez utiliser des propriétés personnalisées avec cette technique.
Programmation orientée objet avec la syntaxe JavaScript
La programmation orientée objet dans la syntaxe JavaScript est quelque peu différente de celle
d’autres langages orientés objet tels que Java et C++. Alors que certains langages orientés objet
sont basés sur les classes, la syntaxe JavaScript est basée sur les prototypes.
Les deux sections qui suivent comparent à un niveau élevé les langages basés sur les classes aux
langages basés sur les prototypes tels que la syntaxe JavaScript.
• Dans les langages basés sur les scripts, vous créez des définitions de classes se rapportant aux
propriétés et méthodes initiales qui caractérisent toutes les instances créées dans ces classes.
Une définition de classe contient des méthodes spéciales appelées méthodes de construction et
utilisées pour créer des instances de cette classe. Une instance créée à l’aide de l’opérateur new
en association avec une méthode de construction particulière hérite de toutes les propriétés de
sa classe parent. Cette instance peut également effectuer toute autre tâche de traitement qui lui
est propre en fonction du constructeur qui a été appelé.
Dans une définition de classe, vous procédez à l’opération d’héritage en créant une sous-classe
qui hérite de toutes les propriétés de sa classe parent, en plus de définir les nouvelles propriétés
et de modifier les propriétés héritées. La classe parent à partir de laquelle une sous-classe a été
créée est aussi appelée super classe.
72
Chapitre 3 : Rédaction de scripts dans Director
• Dans les langages basés sur les prototypes tels que la syntaxe JavaScript, il n’existe pas de
distinction entre les classes, les instances, les sous-classes, etc. Tous ces éléments sont considérés
comme des objets. Dans la syntaxe JavaScript, au lieu d’utiliser des définitions de classes, vous
utilisez des « objets prototype » en tant que modèle à partir duquel de nouveaux objets sont
créés. Tout comme dans les langages basés sur les classes, dans la syntaxe JavaScript, vous créez
un nouvel objet en utilisant l’opérateur new en association avec une fonction de construction.
Au lieu d’utiliser les super classes et les sous-classes, vous associez les objets prototype à des
fonctions de construction pour effectuer l’héritage dans la syntaxe JavaScript. Ce procédé est
très similaire à celui qui consiste à utiliser les super classes et les sous-classes, à l’exception de la
terminologie qui est différente.
Contrairement aux langages basés sur les classes, la syntaxe JavaScript vous permet aussi
d’ajouter et de supprimer des propriétés à un objet ou une série d’objets à l’exécution. Par
exemple, si vous ajoutez une propriété à un objet prototype à l’exécution, les objets apparentés
héritent également de cette propriété.
Terminologie orientée objet
Dans la syntaxe JavaScript, étant donné que tous les types correspondent à des objets, les termes
basés sur les classes tels que superclass (super-classe), subclass (sous-classe), class (classe), instance, etc.
n’ont aucune signification technique littérale. Cependant, ces termes correspondent
essentiellement à des objets dans la syntaxe JavaScript et peuvent être utilisés pour illustrer les
différents concepts d’objets de syntaxe JavaScript. Ainsi, ces termes basés sur les classes sont
synonymes d’object en ce qui concerne la programmation orientée objet dans la syntaxe JavaScript
et signifient ceci :
• superclass (super-classe) ; Toute classe à partir de laquelle les sous-classes (objets) sont créées ;
une classe parent.
• subclass (sous-classe) ; Toute classe ayant été créée à partir d’une super classe (objet) ; une classe
enfant.
• class (classe) ; Terme générique signifiant super classe ou sous-classe ; une classe parent ou
•
enfant.
instance ou object instance (object d’instance) ; Objet unique ayant été créé à partir d’une super
classe.
Programmation orientée objet avec la syntaxe JavaScript
73
Classes personnalisées
L’un des principaux avantages de la programmation orientée objet est la possibilité de créer des
classes personnalisées donnant accès à des fonctionnalités personnalisées à vos scripts. Les classes
prédéfinies, telles que Objet, String et Math, de la syntaxe JavaScript sont utiles, mais les fonctionnalités qu’elles offrent peuvent ne pas s’appliquer à la tâche que vous souhaitez accomplir.
Supposons, par exemple, que vous souhaitez que certains objets de votre animation représentent
des types de transports, tels que des voitures, des bateaux, des avions, et que vous souhaitez que
chaque catégorie affiche des caractéristiques et fonctionnalités uniques. Ni les classes de syntaxe
JavaScript prédéfinies, ni les objets Director prédéfinis ne pourront directement vous fournir la
fonctionnalité dont vous avez besoin. C’est pourquoi vous devez créer une nouvelle classe pour
chaque type de transport afin de pouvoir définir des caractéristiques uniques pour chaque type.
Retenez que lorsque vous créez des classes personnalisées de la syntaxe JavaScript, vous avez
toujours accès à toutes les fonctions et fonctionnalités des objets Director prédéfinis. Cela signifie
que même si les objets Director prédéfinis ne vous fournissent pas directement les fonctionnalités
dont vous avez besoin, vous pouvez toujours les utiliser dans vos classes personnalisées pour
accéder à leurs valeurs et à leurs fonctionnalités prédéfinies.
Fonctions de construction
Dans la syntaxe JavaScript, une fonction de construction représente la classe qui contient le
modèle à partir duquel les nouvelles instances d’objets sont créées. Les fonctions de construction
créent et initialisent (définissent l'état par défaut) les propriétés des nouveaux objets.
Le format des fonctions de construction est fondamentalement identique à celui des fonctions de
méthode standard de syntaxe JavaScript. Cependant, la fonction de construction utilise un mot
de passe spécial this pour représenter une référence à un nouvel objet initialisé. En règle générale,
une fonction de méthode effectue des actions sur un ensemble de données d’un objet.
L’exemple suivant vous montre une manière de créer une fonction de construction Rectangle qui
pourrait être utilisée pour initialiser la hauteur et la largeur de nouveaux objets Rectangle.
function Rectangle(l, h) {
this.width = l;
this.height = h;
}
Vous pouvez également créer une fonction de construction en utilisant la syntaxe « fonction
littérale ». La syntaxe fonction littérale fournit les mêmes fonctionnalités que la syntaxe précédente et correspond à une autre manière de rédiger une construction. L'exemple suivant vous
montre comment utiliser la syntaxe fonction littérale pour créer une fonction de construction
Rectangle identique à la précédente.
Rectangle = function(l, h) {
this.width = l;
this.height = h;
}
Remarque : Lorsque vous définissez des fonctions de construction à appliquer à une animation,
assurez-vous de les placer dans un script d’animation afin qu’elles soient disponibles tout le temps.
Il est recommandé de donner des noms qui correspondent aux fonctionnalités des fonctions de
construction et d’utiliser leur initiale dans le nom, tel que Rectangle ou Cercle.
74
Chapitre 3 : Rédaction de scripts dans Director
En général, les fonctions de construction sont utilisées pour initialiser de nouveaux objets, mais
peuvent également renvoyer le nom de l’objet le cas échéant. Si vous retournez l’objet initialisé,
l’objet retourné devient la valeur de l’expression new.
Instances d’objet
La manière la plus commune de créer une nouvelle instance d’objet est d’utiliser l'opérateur new
suivi du nom de la fonction de construction. Les exemples suivants créent de nouvelles instances
d’objet.
var objAléatoire = new Object(); // affecte une référence à un objet Objet
var objChaîne = new String(); // affecte une référence à un objet Chaîne
Une fonction de construction peut parfois définir des paramètres qu’une nouvelle instance d’objet
passe afin d’initialiser l’état de l’instance d’objet. Si une fonction de construction définit les
paramètres utilisés lors de l’initialisation de nouvelles instances d’objet, les valeurs de propriétés
sont initialisées ainsi :
• Si vous passez les valeurs à la fonction de construction lors de l’initialisation, les propriétés qui
ont reçu les valeurs sont définies selon ces valeurs.
• Si vous ne passez pas ces valeurs à la fonction de construction lors de l’initialisation, les
propriétés qui n’ont pas reçu les valeurs sont définies sur undefined.
Lorsque vous créez de nouvelles instances d’objet, le mot de passe this est utilisé dans le corps de
la fonction de construction associée afin de faire référence à une nouvelle instance d’objet. Par
conséquent, la nouvelle instance d’objet est initialisée avec toutes les propriétés définies à l’aide de
la syntaxe this.NomDePropriété.
Dans l’exemple suivant, une fonction de construction Cercle utilise le mot de passe this pour
spécifier les noms des trois propriétés qui seront associées aux nouvelles instances d’objet.
L’instruction suivant la construction initialise une nouvelle instance d'objet en passant les valeurs
à la construction. Ces valeurs sont utilisées en tant que valeurs initiales des propriétés spécifiées
par le mot de passe this.
// Fonction de construction Cercle
function Cercle(x, y, r) {
this.xCoord = x;
this.yCoord = y;
this.radius = r;
}
// xCoord = 10, yCoord = 15, radius = 5
var objCercle = new Cercle(10, 15, 5);
Une fois objCercle initialisé, vous pouvez accéder à ses propriétés. A l’aide de l’instance
objCercle créée précédemment, vous pouvez définir certaines variables sur les valeurs de ses
propriétés.
var laCoordX = objCercle.xCoord; // affecte la valeur 10 à laCoordX
var laCoordY = objCercle.yCoord; // affecte la valeur 15 à laCoordY
var leRayon = objCercle.radius; // affecte la valeur 5 à leRayon
Remarque : Pour plus d’informations concernant l’utilisation de la syntaxe à points pour accéder aux
propriétés et méthodes d’un objet, veuillez consulter Format de scripting à syntaxe à points, page 56.
Il est recommandé de donner aux nouveaux objets des noms qui correspondent à leur fonctionnalité et d’utiliser des minuscules, tel que objRectangle ou objCercle.
Programmation orientée objet avec la syntaxe JavaScript
75
Vous pouvez également créer une instance d’objet en utilisant la syntaxe « objet littéral ». Ainsi,
vous n’avez pas besoin d’utiliser l’opérateur new et de fonction de construction. Utilisez cette
technique uniquement lorsque vous n’avez besoin que d’une instance d’un objet n'ayant pas été
défini dans une fonction de construction. Dans l’exemple suivant, une instance d’objet est créée
avec x = 1, y = 2 et radius = 2.
var ObjPetitCercle = { x:1, y:2, radius:2 };
Héritage d’objets
Non seulement la programmation orientée objet est capable de créer vos propres classes personnalisées, mais grâce à elle, les sous-classes peuvent également hériter des propriétés et méthodes des
super classes à partir desquelles elles ont été créées. L’héritage vous facilite la création d’objets aux
propriétés et fonctionnalités intégrées.
Dans la syntaxe JavaScript, une super classe correspond à la classe de base à partir de laquelle
toutes les autres sous-classes sont créées : la super classe Objet. La super classe Objet comprend
quelques propriétés et méthodes de base. Les sous-classes qui sont créées à l’aide du modèle Objet
héritent toujours de ces propriétés et méthodes de base et définissent leurs propres propriétés et
méthodes. Les sous-classes provenant de ces classes héritent de l’objet Objet, de leurs super classes
et ainsi de suite. Tous les autres objets que vous créez prolongent cette chaîne d’héritage.
Par exemple, l’objet Objet contient la propriété constructor et la méthode toString(). Si vous
créez une nouvelle classe nommée SousObj1, elle correspond à une sous-classe de l’objet Objet et
hérite ainsi de la propriété constructor et de la méthode toString() de l’objet Objet. Ensuite,
si vous créez une autre classe nommée SousObj2 en utilisant SousObj1 en tant que super classe,
SousObj2 héritera également de la propriété constructor et de la méthode toString() de
l’objet Objet, en plus de toutes les autres propriétés et méthodes personnalisées que vous avez
définies dans SousObj1.
Deux des propriétés importantes dont vos fonctions de constructions personnalisées héritent de
la super classe Objet sont prototype et constructor. La propriété prototype représente l’objet
prototype de la classe, qui vous permet d’ajouter des variables (propriétés) et des méthodes aux
instances d’objet. C’est le moyen par lequel l'héritage est en général implémenté dans la syntaxe
JavaScript. La propriété constructor représente la fonction de construction en elle-même. Dans
les sections suivantes, on vous explique l’utilisation de ces propriétés.
Objets prototype
Lorsque vous créez une sous-classe, cette dernière hérite automatiquement des propriétés et
méthodes de la super classe à laquelle elle se rapporte. Dans la syntaxe JavaScript, l’héritage est
en général implémenté par les objets prototype. En réalité, une sous-classe hérite des propriétés
et méthodes de l’objet prototype de sa super classe et non de la super classe en elle-même. Ce
point important apporte une avantage sérieux : Toutes les propriétés et méthodes ne doivent pas
être obligatoirement copiées d’une classe à une instance d’objet de cette classe, ce qui peut considérablement réduire la quantité de mémoire nécessaire à la création de nouvelles instances d’objet.
Dans la syntaxe JavaScript, chaque classe, y compris la classe prédéfinie Objet, contient uniquement un objet prototype. Chaque instance d’objet créée à partir d’une classe a accès aux
propriétés et méthodes dans l’objet prototype de cette classe. Par conséquent, l’objet prototype
d’une classe est en général le seul objet qui stocke les propriétés et méthodes pour cette classe ; une
instance d’objet contient uniquement les propriétés nécessaires à l'initialisation de cette instance.
76
Chapitre 3 : Rédaction de scripts dans Director
Dans votre code, il semble que chaque instance d’objet comprend réellement ces propriétés et
méthodes parce que vous y avez accès directement à partir de l’instance d’objet. Mais en réalité,
l’instance utilise l’objet prototype pour y accéder. L’objet prototype d’une classe est automatiquement créé lorsque vous créez la classe. Vous pouvez accéder à l'objet prototype à l'aide de la
propriété prototype de la classe.
Etant donné que l’objet prototype d’une classe stocke les propriétés partagées par toutes les
instances d’objet, il peut définir correctement les propriétés et méthodes donc les valeurs seront
partagées parmi toutes les instances d’objet. Le fait de partager les propriétés et les méthodes
parmi les instances d’objet vous facilite la création d’instances qui affichent un comportement
défini par défaut et la personnalisation de toutes les instances associées au comportement par
défaut.
En revanche, les objets prototype ne pourront pas définir correctement les propriétés et méthodes
dont les valeurs peuvent varier selon les instances d’objet. Dans ces cas-là, vous pouvez définir ces
propriétés et méthodes au sein de la classe elle-même.
Pour spécifier l’étendue d’une propriété ou méthode personnalisée, vous pouvez la définir selon
l’un des quatre types suivants :
•
•
•
•
Variables d’instances
Méthodes d’instances
Variables de classes
Méthodes de classe
Variables d’instances
Les variables d’instances correspondent à toutes les variables (propriétés) définies dans une
fonction de construction et copiées dans chaque instance d’objet de cette construction. Toutes
les instances d’objet possèdent leurs propres copies de variables d’instances. Cela signifie que s’il
existe cinq instances d’objet pour une classe Cercle, cinq copies de chaque variable d'instance
sont définies dans la classe. Etant donné que chaque instance d’objet possède sa propre copie de
variable d’instance, chaque instance d’objet peut affecter une valeur unique à une variable
d’instance sans pour autant modifier les valeurs des autres copies de la variable d’instance. Vous
pouvez accéder aux variables d’instance directement à partir des instances d’objet qui leur sont
propres.
Dans l’exemple suivant, quatre variables d’instance –marque, modèle, couleur et vitesse– sont
définies dans une fonction de construction. Ces quatre variables d’instances sont directement
disponibles à partir de toutes les instances d’objet de la construction Voiture.
function Voiture(marque, modèle, couleur) { // définit une classe Voiture
this.marque = marque;
this.modèle = modèle;
this.couleur = couleur;
this.vitesse = 0;
}
Programmation orientée objet avec la syntaxe JavaScript
77
L’instance d’objet suivante objVoiture contient les quatre variables d’instances. Bien que
la valeur de la variable d’instance vitesse ne soit pas passée à la construction Voiture,
objVoiture possède toujours une propriété vitesse dont la valeur initiale est 0 parce que
la variable vitesse est définie dans la construction Voiture.
// objVoiture.marque="Subaru", objVoiture.modèle="Forester",
// objVoiture.couleur="gris", objVoiture.vitesse = 0
var objVoiture = new Voiture("Subaru", "Forester", "gris");
Méthodes d’instances
Les méthodes d’instances correspondent à toute méthode accessible via une instance d’objet. Les
instances d’objet ne possèdent pas leurs propres copies de méthodes d'instances. En revanche, les
méthodes d’instances sont les premières définies en tant que fonctions, et ensuite les propriétés de
l’objet prototype de la fonction de construction sont définies sur les valeurs de la fonction. Les
méthodes d’instances utilisent le mot de passe this dans le corps de la fonction de construction
définie afin de faire référence à l'instance d'objet sur laquelle elles opèrent. Bien qu’une instance
d’objet donné ne possède pas une copie d’une méthode d’instance, vous pouvez toujours accéder
aux méthodes d’instances directement à partir des instances d’objet qui y sont associées.
Dans l’exemple suivant, une fonction nommée Voiture_augmenterVitesse() est définie. Le
nom de la fonction est ensuite affecté à la propriété augmenterVitesse de l’objet prototype de la
classe Voiture.
// augmente la vitesse de la voiture
function Voiture_augmenterVitesse(x) {
this.vitesse += x;
return this.vitesse;
}
Voiture.prototype.augmenterVitesse = Voiture_augmenterVitesse;
Une instance d'objet de Voiture peut ensuite accéder à la méthode augmenterVitesse() et
affecter sa valeur à la variable à l’aide de la syntaxe suivante.
var objVoiture = new Voiture("Subaru", "Forester", "gris");
var nouvelleVitesse = objVoiture.augmenterVitesse(30);
Vous pouvez également créer une méthode d’instance à l’aide de la syntaxe de fonction littérale.
En utilisant la syntaxe de fonction littérale, il n’est plus nécessaire ni de définir une fonction, ni
d’affecter un nom de propriété au nom de fonction.
Dans l’exemple suivant, la syntaxe de fonction littérale est utilisée pour définir une
méthode augmenterVitesse() qui contient les mêmes fonctionnalités que la fonction
augmenterVitesse() définie précédemment.
// augmente la vitesse d'une voiture
Voiture.prototype.augmenterVitesse = function(x) {
this.vitesse += x;
return this.vitesse;
}
78
Chapitre 3 : Rédaction de scripts dans Director
Variables de classes
Egalement appelées variables static, elles correspondent à toutes les variables (propriétés) associées
à une classe et non à une instance d’objet. Il n’existe qu’une copie de variable de classe, quel que
soit le nombre d’instances d’objet créées dans cette classe. Les variables de classe n’utilisent pas
l’objet prototype pour implémenter l’héritage. Vous pouvez accéder à une variable de classe
directement via la classe et non via une instance d’objet ; vous devez définir une classe dans une
fonction de construction avant de pouvoir définir les variables de classe.
Dans l’exemple suivant, deux variables de classe sont définies–VITESSE_MAX et VITESSE_MIN.
function Voiture() { // définit une classe de voiture
...
}
Voiture.VITESSE_ = 165;
Voiture.VITESSE_MIN = 45;
Vous avez accès aux variables de classe MAX_SPEED et MIN_SPEED directement à partir de la classe
Voiture.
var VitesseMaxVoiture = Voiture.VITESSE_MAX; // VitesseMaxVoiture = 165
var VitesseMinVoiture = Voiture.VITESSE_MIN; // VitesseMinVoiture = 45
Méthodes de classe
Egalement appelées méthodes static, elles correspondent à toutes les méthodes associées à une
classe et non à une instance d’objet. Certaines des méthodes ou propriétés suivantes s’appliquent
uniquement aux images-objets ayant été créées à partir d’un acteur RealMedia. Les méthodes
de classe n'utilisent pas l'objet prototype pour implémenter l'héritage. Vous avez accès à une
méthode directement via la classe et non via une instance d’objet ; vous devez définir une classe
dans une fonction de construction avant de pouvoir définir les méthodes de classe.
Dans l’exemple suivant, on définit une fonction nommée définirVitesseInitiale() qui peut
modifier la vitesse par défaut des nouvelles instances de voiture. Le nom de la fonction est affecté
à la propriété définirVitesseInitiale de la classe Voiture.
function Voiture(marque, modèle, couleur) { // définit une classe de voiture
this.marque = marque;
this.modèle = modèle;
this.couleur = coleur;
this.vitesse = Voiture.vitesseParDéfaut;
}
Voiture.vitesseParDéfaut = 10; // vitesse initiale des nouvelles instances de
voiture
// augmente la vitesse d'une voiture
function Voiture_définirVitesseInitiale(x) {
Voiture.VitesseParDéfaut = x;
}
Voiture.définirVitesseInitiale = Voiture_définirVitesseInitiale;
Vous pouvez accéder à la méthode de classe définirVitesseInitiale() directement à partir de
la classe Voiture.
var nouvelleVitesse = Voiture.définirVitesseInitiale(30);
Programmation orientée objet avec la syntaxe JavaScript
79
Vous pouvez également créer une méthode de classe à l'aide de la syntaxe de fonction littérale.
Dans l’exemple suivant, la syntaxe de fonction littérale est utilisée pour définir une méthode
définirVitesseInitiale() contenant les mêmes fonctionnalités que la fonction
définirVitesseInitiale() définie précédemment.
// augmente la vitesse d’une voiture
Voiture.définirVitesseInitiale = function(x) {
Voiture.VitesseParDéfaut = x;
}
Etapes recommandées de définition d’une classe
La liste suivante décrit les étapes que nous vous recommandons de suivre lorsque vous définissez
une classe.
1 Définissez une fonction de construction utilisée en tant que modèle à partir duquel les instances
d’objets sont initialisées. Vous pouvez également définir toute variable d'instance de la fonction
de construction en utilisant le mot de passe this pour faire référence à une instance d’objet.
2 Définissez toute méthode d’instance, ainsi que toute variable d’instance, stockées dans l’objet
prototype d’une classe. Ces méthodes et variables d’instances sont disponibles pour toutes les
instances d’objet et vous pouvez y accéder via l’objet prototype de la classe.
3 Définissez toute méthode de classe, variable de classe et constante stockées dans la classe ellemême. Vous pouvez accéder à ces méthodes et variables de classe via la classe elle-même.
Dans votre code, lorsque vous accédez à une propriété d’une instance d'objet, la syntaxe
JavaScript recherche l’instance d’objet pour cette propriété. Si l’instance ne contient pas de
propriété, la syntaxe JavaScript recherche alors l’objet prototype de la super classe à partir de
laquelle l’instance a été créée. Etant donné qu’une instance d’objet est recherchée avant l’objet
prototype de la classe à partir de laquelle il a été créé, l’instance d’objet masque les propriétés à
l’objet prototype de leurs super classes. Cela signifie qu'une instance d’objet et sa super classe
peuvent réellement définir une propriété si elles portent le même nom mais avec des valeurs
différentes.
Suppression de variables
Vous pouvez supprimer une variable de classe ou une variable d’instance à l’aide de l’opérateur
L’exemple suivant illustre ce processus.
delete.
function Voiture() { // définit la fonction de construction d'une voiture
...
}
Voiture.couleur = "bleu"; // définit la propriété couleur de la classe de
voiture
Voiture.prototype.moteur = "V8"; // définit une propriété de moteur du
prototype
var objVoiture = new Voiture();
trace(Voiture.couleur); // affiche « bleu »
trace(objVoiture.moteur); // affiche « V8 »
delete Voiture.couleur;
delete Voiture.prototype.moteur;
trace(Voiture.couleur); // affichage non défini
trace(objVoiture.moteur); // affichage non défini
80
Chapitre 3 : Rédaction de scripts dans Director
Pour accéder à la propriété de construction d’un objet prototype
Lorsque vous définissez une classe en créant une fonction de construction, la syntaxe JavaScript
crée un objet prototype pour cette classe. Lorsque l’objet prototype est créé, il comprend au
départ une propriété constructor qui se rapporte à la fonction de construction elle-même. Vous
pouvez utiliser la propriété constructor d’un objet prototype pour déterminer le type de tout
objet.
Dans l’exemple suivant, la propriété constructor contient une référence à la fonction de
construction utilisée pour créer l’instance d’objet. La valeur de la propriété constructor est en
réalité une référence à la construction elle-même et n'est pas une chaîne qui contient le nom de
la construction.
function Voiture() { // définit la classe d’une voiture
// code d’initialisation ici
}
var maVoiture = new Voiture(); // maVoiture.constructor == function Voiture()
{}
Création dynamique de propriétés
Un des autres avantages dont vous pouvez bénéficier en utilisant un objet prototype pour
implémenter l’héritage est que les propriétés et méthodes ajoutées à un objet prototype sont
automatiquement disponibles pour les instances d’objets. Cela est vrai même si une instance
d’objet a été créée avant que les propriétés ou les méthodes ne soient ajoutées.
Dans l’exemple suivant, la propriété couleur est ajoutée à l’objet prototype d’une classe Voiture
après qu’une instance d’objet de Voiture ait déjà été créée.
function Voiture(marque, modèle) { // définit la classe d’une voiture
this.marque = marque;
this.modèle = modèle;
}
var maVoiture = new Voiture("Subaru", "Forester"); // crée une instance d’objet
trace(maVoiture.couleur); // renvoie undefined
// ajoute la propriété de couleur de la classe voiture après que maVoiture ait
été initialisé
Voiture.prototype.couleur = "blue";
trace(maVoiture.couleur); // renvoie « bleu »
Vous pouvez également ajouter des propriétés aux instances d’objet après que les instances ont
été créées. Lorsque vous ajoutez une propriété à une instance d’objet spécifique, cette propriété
est disponible uniquement pour cette instance d’objet spécifique. A l’aide de l’instance d’objet
maVoiture précédemment créée, les instructions suivantes ajoutent la propriété couleur à
maVoiture après sa création.
trace(maVoiture.couleur); // renvoie undefined
maVoiture.couleur = "bleu"; // ajoute la propriété de couleur à l’instance
maVoiture
trace(maVoiture.couleur); // renvoie « bleu »
Programmation orientée objet avec la syntaxe JavaScript
81
var deuxièmeVoiture = new Voiture("Honda", "Accord"); // crée une deuxième
instance d’objet
trace(deuxièmeVoiture.couleur); // renvoie undefined
Rédaction de scripts dans la fenêtre Script
Lorsque vous rédigez des scripts pour une animation, ces scripts peuvent considérablement
augmenter en quantité et en complexité. La décision des méthodes et propriétés à utiliser, de
la structuration efficace des scripts et de leur position judicieuse exige un plan d’action rigoureux
et de nombreux tests au fur et à mesure que la complexité de l’animation augmente.
Avant de commencer à rédiger des scripts, précisez l’objectif que vous voulez atteindre. Ceci est en
fait aussi important et en général aussi laborieux que la création des storyboards de l’animation.
Une fois le plan d’ensemble de votre animation conçu, vous pouvez commencer à rédiger puis à
tester les scripts. Attendez-vous à y passer du temps. Il est très rare qu’un script produise le résultat
attendu dès la première rédaction, les premiers tests ou les premières opérations de débogage.
Il est donc conseillé de commencer de manière progressive et de tester vos scripts fréquemment.
Dès qu’une partie d’un script produit l’effet escompté, rédigez la partie suivante, et ainsi de suite.
Cette méthode vous permet d’identifier rapidement les bogues et garantit la précision de vos
scripts au fur et à mesure que leur complexité augmente.
Lorsque vous rédigez vos scripts, vous le faites dans la fenêtre Script de l’interface utilisateur de
Director. La fenêtre Script propose un certain nombre de fonctionnalités qui vous permettent de
créer et modifier vos scripts.
Pour ouvrir la fenêtre Script, effectuez l’une des opérations suivantes :
• Choisissez Fenêtre > Script.
• Double-cliquez sur l’acteur script dans la fenêtre Distribution.
Vous trouverez d’autres façons de créer et d’ouvrir des scripts dans la section Exécution
d’opérations élémentaires, page 88.
82
Chapitre 3 : Rédaction de scripts dans Director
Définition des préférences de la fenêtre Script
Vous pouvez modifier la police du texte de la fenêtre Script et les couleurs des différents éléments
du code. Pour modifier la police par défaut du texte de la fenêtre Script et les couleurs des
différents éléments du code, vous utilisez les préférences de la fenêtre Script. Director affecte
automatiquement une couleur distincte aux différents éléments du code, sauf si vous désactivez
Mise en couleur automatique.
Pour définir des préférences dans la fenêtre Script :
1 Choisissez Edition > Préférences > Script.
2 Pour choisir la police par défaut, cliquez sur le bouton Police et sélectionnez les attributs de la
police dans la boîte de dialogue Police.
3 Pour choisir la couleur par défaut du texte affiché dans la fenêtre Script, choisissez une couleur
dans la puce Couleur.
4 Pour choisir la couleur d’arrière-plan de la fenêtre Script, choisissez une couleur dans la puce
Arrière-plan.
5 Pour que la fenêtre Script colorie automatiquement certains éléments du code, sélectionnez
Mise en couleur automatique. Cette option est activée par défaut. Lorsque l’option Mise en
couleur automatique est désactivée, le texte a la couleur par défaut.
6 Pour que la nouvelle fenêtre Script formate automatiquement vos scripts avec la mise en retrait,
sélectionnez l’option Format automatique. Cette option est activée par défaut.
Remarque : Les fonctions de coloration automatique et de formatage automatique ne s’appliquent pas aux codes JavaScript. Par conséquent, si vous créez des scripts à l’aide de la syntaxe
JavaScript, les boutons Mise en couleur automatique et Formatage automatique sont désactivés
dans la fenêtre Script et les termes tels que function, var et this ont la couleur par défaut.
7 Pour que la nouvelle fenêtre Script affiche les numéros de ligne associés à vos scripts, sélec-
tionnez l’option Numérotation des lignes. Cette option est activée par défaut.
8 Si l’option Mise en couleur automatique est activée, choisissez les couleurs des éléments de code
suivants dans les menus couleurs correspondants :
■ Mots-clés
■ Commentaires
■ Constantes
■ Personnalisé (termes que vous définissez dans votre propre code)
9 Pour changer la couleur de fond de la colonne des numéros de ligne, cliquez sur Numérotation
des lignes et choisissez une nouvelle couleur.
10 Pour changer l’emplacement des volets Pile d’appels, Variables et Surveillance dans la fenêtre
Débogueur, sélectionnez Gauche, Droit, Haut ou Bas dans le menu Panneaux de débogage.
Rédaction de scripts dans la fenêtre Script
83
Insertion de termes de scripting communs
La fenêtre Script offre des menus locaux contenant les termes de scripting communs que vous
pouvez utiliser pour insérer des instructions dans un script. Les mêmes menus sont également
disponibles dans la fenêtre Messages.
Dans les fenêtres Script et Messages, vous pouvez sélectionner la syntaxe de scripting à utiliser
pour un script donné.
Pour sélectionner la syntaxe de scripting :
• Dans le menu local Syntaxe de script, sélectionnez Lingo ou JavaScript.
Après avoir sélectionné une syntaxe de scripting, entrez le code dans la syntaxe que vous avez
choisie. Si vous essayez de compiler un script dans une syntaxe autre que celle que vous avez
choisie, vous obtenez une erreur de script.
Lorsque vous entrez des scripts dans la fenêtre Script, vous pouvez insérer ou supprimer des
marques de commentaire sur une seule ou plusieurs lignes de code à l’aide des boutons Insérer
une marque de commentaire et Supprimer la marque de commentaire. Selon la syntaxe choisie,
les boutons Insérer une marque de commentaires et Supprimer la marque de commentaire
affichent les bons repères de commentaire pour cette syntaxe ; Lingo utilisant des tirets doubles
(--), et la syntaxe JavaScript deux barres obliques (//).
Pour insérer un commentaire dans le code :
• Mettez en surbrillance la ou les lignes auxquelles vous voulez ajouter un commentaire et
cliquez sur Insérer une marque de commentaire.
Remarque : Lorsque vous utilisez le bouton Insérer une marque de commentaire pour ajouter des
commentaires sur plusieurs lignes de code en JavaScript, Director place deux barres obliques avant
chaque ligne. Vous pouvez également insérer des commentaires sur plusieurs lignes de code en
tapant le signe /* avant la première ligne de code et le signe */ après la dernière ligne ; mais vous
devez le faire manuellement.
Pour supprimer le commentaire d’un code :
• Mettez en surbrillance la ou les lignes dont vous voulez supprimer les commentaires et cliquez
sur Supprimer la marque de commentaire.
Les fenêtres Script et Messages contiennent toutes deux les menus suivants :
• Le menu alphabétique Lingo est une liste alphabétique de tous les éléments, à l’exception du
Lingo 3D.
84
Chapitre 3 : Rédaction de scripts dans Director
• Le menu par catégorie est une liste des éléments Lingo répertoriés selon leurs fonctions. Il
n’inclut pas les éléments Lingo 3D.
• Le menu alphabétique 3D de Lingo est une liste alphabétique de tous les éléments Lingo 3D.
• Le menu par catégorie 3D de Lingo est une liste de tous les éléments Lingo 3D répertoriés
selon leurs fonctions.
• Le menu local des Xtras de programmation incluent les méthodes et propriétés de tous les
Xtras de programmation trouvés, qu’il s’agisse d’Xtras Macromedia ou autres.
Remarque : Les Xtras de programmation figurant dans le menu local sont limités à ceux qui
supportent la méthode interface() et dont les noms apparaissent dans le menu local. Bien que
certains types de médias d’acteurs tels 3D et DVD supportent également la méthode interface(),
ils ne figurent pas dans le menu local Xtras de programmation parce qu’ils ne sont pas implémentés
en tant que Xtras de programmation dans Director.
L’élément sélectionné dans les menus locaux est inséré par Director à l’emplacement du curseur
dans la fenêtre Script.
Si un élément nécessite des paramètres supplémentaires, des repères de noms indiquant les
informations supplémentaires requises sont insérés. Lorsque plusieurs arguments ou paramètres
sont nécessaires, le premier est mis en surbrillance pour vous inviter à le saisir et le remplacer.
Vous devez sélectionner et remplacer les autres paramètres vous-même.
Certains types d’acteurs et d’Xtras de programmation offrent des termes qui ne figurent pas dans
les menus locaux. Ces types d’acteurs et d’Xtras possèdent généralement leur propre
documentation ; vous pouvez également trouver des informations à partir de Director.
Pour afficher la liste des Xtras disponibles :
• Emettez soit put(_player.xtraList) soit trace(_player.xtraList) dans la fenêtre
Message.
Pour afficher la liste des Xtras de programmation disponibles :
• Emettez soit put(_player.scriptingXtraList) soit
trace(_player.scriptingXtraList)
dans la fenêtre Message.
Pour afficher la liste des méthodes et propriétés d’un Xtra :
• Dans le menu local Xtras de programmation, placez-vous sur un Xtra et, dans le menu
secondaire, cliquez sur put interface. Les méthodes et propriétés de cet Xtra apparaissent dans
la fenêtre Messages.
Saisie et modification de texte
La saisie et la modification de texte dans une fenêtre Script se font de la même manière que dans
n’importe quel champ.
Les opérations d’édition les plus communes effectuées dans une fenêtre Script sont les suivantes :
• Pour sélectionner un mot, double-cliquez dessus.
• Pour sélectionner un script entier, choisissez Edition > Tout sélectionner.
• Pour commencer une nouvelle ligne, entrez un retour chariot.
Rédaction de scripts dans la fenêtre Script
85
• Dans Lingo, pour renvoyer une longue ligne de code à la ligne en insérant un symbole de
•
•
•
•
•
•
•
•
continuation, appuyez sur Alt+Entrée (Windows) ou sur Option+Retour (Macintosh) à
l’endroit où vous voulez insérer un retour à la ligne. Le symbole de continuation (\) qui
apparaît indique que l’instruction continue sur la ligne suivante.
Pour renvoyer une longue ligne de code à la ligne dans la syntaxe JavaScript, insérez un saut de
ligne en appuyant sur Entrée (Windows) ou Retour (Macintosh). Le symbole de continuation
Lingo cause une erreur de script dans les scripts de la syntaxe JavaScript.
Pour trouver une gestionnaire dans le script actuel, choisissez son nom dans le menu local
Passer au gestionnaire de la fenêtre Script.
Pour compiler les scripts que vous venez de rédiger, cliquez sur le bouton Recompiler tous les
scripts modifiés de la fenêtre Script ou fermez cette dernière. Lorsque vous éditez un script, un
astérisque apparaît dans la barre de titre de la fenêtre Script, indiquant que le script doit être
recompilé.
Pour compiler tous les scripts d’une animation, sélectionnez Recompiler tous les scripts dans le
menu Contrôle.
Pour reformater un script avec la bonne mise en retrait, appuyez sur Tab dans la fenêtre Script.
Director place automatiquement les instructions en retrait lorsque leur syntaxe est correcte. Si
une ligne n’est pas correctement mise en retrait, la syntaxe de cette ligne est incorrecte.
Pour ouvrir une seconde fenêtre Script, appuyez sur la touche Alt (Windows) ou Option
(Macintosh), tout en cliquant sur le bouton Nouvel acteur dans la fenêtre Script. Cette
opération peut s’avérer utile, par exemple lorsque vous éditez simultanément deux sections
différentes d’un long script.
Pour activer ou désactiver la numérotation des lignes, cliquez sur le bouton Numérotation des
lignes.
Pour activer ou désactiver la mise en couleur automatique, cliquez sur le bouton Mise en
couleur automatique. La mise en couleur automatique affiche chaque type d’élément Lingo
(propriétés, commandes, etc.) dans une couleur différente.
Pour activer ou désactiver le formatage automatique, cliquez sur le bouton Format automatique. L’option Format automatique applique une mise en retrait correcte à vos scripts chaque
fois que vous ajoutez un retour chariot ou que vous appuyez sur la touche Tab.
Remarque : Les fonctions de coloration automatique et de formatage automatique ne s’appliquent pas aux codes JavaScript. Par conséquent, si vous créez des scripts à l’aide de la syntaxe
JavaScript, les boutons Mise en couleur automatique et Formatage automatique sont désactivés
dans la fenêtre Script et les termes tels que function, var et this ont la couleur par défaut.
Recherche de gestionnaires et de texte dans les scripts
La commande Rechercher du menu Edition permet de rechercher des gestionnaires ainsi que de
rechercher et modifier du texte ou des gestionnaires.
Pour rechercher des gestionnaires dans les scripts :
1 Choisissez Edition > Rechercher > Gestionnaire.
La boîte de dialogue Rechercher un gestionnaire apparaît.
La colonne la plus à gauche de la boîte de dialogue Rechercher un gestionnaire affiche les noms
de tous les gestionnaires de l’animation. La colonne du milieu affiche le numéro de l’acteur
associé au script du gestionnaire, ainsi que son nom. La colonne la plus à droite affiche la
distribution dans laquelle se trouve l’acteur.
86
Chapitre 3 : Rédaction de scripts dans Director
2 Sélectionnez le gestionnaire à rechercher.
3 Cliquez sur Rechercher.
Le gestionnaire apparaît dans la fenêtre Script.
La barre de titre en haut de la fenêtre Script indique le type du script.
Pour rechercher du texte dans les scripts :
1 Activez la fenêtre Script.
2 Choisissez Edition > Rechercher > Texte.
La boîte de dialogue Rechercher du texte apparaît.
3 Saisissez le texte à rechercher dans le champ Rechercher, puis cliquez sur Rechercher.
La recherche ne fait pas de distinction entre les majuscules et les minuscules : ThisHandler,
thisHandler et THISHANDLER ne sont pas différenciés lors de la recherche. Cliquez sur la case
Respecter la casse pour que la recherche prenne en compte les majuscules et les minuscules.
Pour spécifier les acteurs dans lesquels effectuer la recherche :
• Sélectionnez l’option voulue sous Rechercher.
Pour reprendre la recherche au début une fois qu’elle atteint la fin :
• Sélectionnez l’option En boucle.
Pour ne rechercher que des mots entiers et non des fragments de mots correspondant
au mot recherché :
• Sélectionnez l’option Mots entiers seulement.
Pour rechercher l’occurrence suivante du texte spécifié dans le champ Rechercher :
• Choisissez Edition > Poursuivre la recherche.
Pour trouver toutes les occurrences du texte sélectionné :
1 Sélectionnez le texte.
2 Choisissez Edition > Rechercher > Sélection.
Rédaction de scripts dans la fenêtre Script
87
Exécution d’opérations élémentaires
Vous trouverez ci-dessous les opérations élémentaires permettant de créer, associer et ouvrir des
scripts.
Pour créer un comportement d’image (script associé à une image) :
• Double-cliquez sur la piste des comportements dans l’image à laquelle vous souhaitez affecter
le comportement.
Piste des comportements
Lorsque vous créez un nouveau comportement, celui-ci reçoit le premier numéro de distribution
disponible dans la fenêtre Distribution active.
Lorsque vous créez un nouveau comportement d’image, la fenêtre Script apparaît et contient
automatiquement le gestionnaire Lingo on exitFrame. La première ligne contient l’expression
on exitFrame, suivie d’une ligne dans laquelle le curseur clignote puis d’une autre comprenant
le mot end. Cela vous permet de facilement et rapidement associer un comportement Lingo
commun à l’image. Pour que ce gestionnaire puisse fonctionner avec la syntaxe JavaScript,
remplacez on exitFrame par function exitFrame() { puis end par }.
Un des comportements d’image les plus fréquents est celui qui maintient la tête de lecture en
boucle dans une même image. Il peut s’avérer utile lorsque vous souhaitez que votre animation
maintienne la lecture sur une même image en attendant que l’utilisateur clique sur un bouton ou
que la lecture d’une vidéo numérique ou d’un fichier audio s’achève.
88
Chapitre 3 : Rédaction de scripts dans Director
Pour maintenir la tête de lecture sur une seule image :
• Dans un comportement d’image, tapez l’instruction suivante sur la ligne qui suit directement
l’instruction on exitFrame (Lingo) ou function exitFrame()(syntaxe JavaScript
seulement) :
-- Syntaxe Lingo
_movie.go(_movie.frame)
// Syntaxe JavaScript
_movie.go(_movie.frame);
La propriété frame de l’objet Animation se rapporte à l’image actuellement occupée par la tête de
lecture. Cette instruction demande essentiellement à la tête de lecture de « revenir au niveau de
l’image active ».
Pour créer un comportement d’image-objet (script associé à une image-objet) :
• Dans le scénario ou sur la scène, sélectionnez l’image-objet à laquelle vous souhaitez associer
le comportement. Choisissez ensuite Fenêtre > Inspecteur de comportement et choisissez
Nouveau comportement dans le menu local Comportements.
Lorsque vous créez un nouveau comportement d’image-objet, la fenêtre Script apparaît et
contient automatiquement le gestionnaire Lingo on mouseUp. La première ligne contient
l’expression on mouseUp, suivie d’une ligne dans laquelle le curseur clignote puis d’une autre
comprenant le mot end. Cela vous permet de facilement et rapidement associer un comportement
commun à l’image-objet. Pour que ce gestionnaire puisse fonctionner avec la syntaxe JavaScript,
remplacez on mouseUp par function mouseUp() { puis end par }.
Pour ouvrir un comportement afin de le modifier :
1 Double-cliquez sur le comportement dans la fenêtre Distribution.
L’inspecteur de comportement apparaît.
2 Cliquez sur l’icône Script de l’acteur dans l’inspecteur de comportement.
La fenêtre Script de l’acteur affiche le comportement.
Vous pouvez également ouvrir la fenêtre Script et faire défiler les scripts jusqu’à ce que le
comportement recherché apparaisse.
Pour supprimer un comportement d’un emplacement dans le scénario :
• Sélectionnez l’emplacement, puis supprimez le script de la liste affichée dans l’inspecteur des
propriétés (volet Comportement).
Pour associer des comportements existants à des images-objets ou à des images, effectuez
l’une des opérations suivantes :
• Faites glisser un comportement d’une distribution vers une image-objet ou une image du
scénario ou (pour les images-objets) vers une image-objet de la scène.
• Dans le scénario, sélectionnez les images-objets ou les images auxquelles vous souhaitez associer
le comportement. Choisissez ensuite Fenêtre > Inspecteur de comportement et choisissez le
comportement existant dans le menu local Comportements.
Rédaction de scripts dans la fenêtre Script
89
Pour créer un script d’animation (un script associé à une animation), effectuez l’une des
opérations suivantes :
• Si le script actuel de la fenêtre Script est un script d’animation, cliquez sur le bouton Nouveau
•
•
script de cette fenêtre. (Le bouton Nouveau script crée toujours un script du même type que le
script actuel.)
Si le script actuel de la fenêtre Script n’est pas un script d’animation, cliquez sur le bouton
Nouveau script puis remplacez le type du nouveau script à l’aide du menu local Type du volet
Script de l’inspecteur des propriétés.
Si aucune image-objet ni aucun script n’est sélectionné dans la distribution, dans le scénario ou
sur la scène, ouvrez alors une nouvelle fenêtre Script. Par défaut, un nouveau script
d’animation sera créé.
Pour ouvrir un script d’animation ou un script parent afin de le modifier :
• Double-cliquez sur le script dans la fenêtre Distribution.
Pour modifier le type d’un script :
1 Sélectionnez le script dans la fenêtre Distribution ou ouvrez-le dans la fenêtre Script.
2 Cliquez sur l’onglet Script de l’inspecteur des propriétés et choisissez un type de script dans le
menu local Type.
Pour faire défiler les scripts dans la fenêtre Script :
• Utilisez les flèches Acteur précédent et Acteur suivant situées en haut de la fenêtre Script pour
vous déplacer vers l’avant ou l’arrière dans les scripts.
Pour dupliquer un script :
• Sélectionnez le script dans la fenêtre Distribution, puis choisissez Dupliquer dans le menu
Edition.
Pour créer un script automatiquement associé à chaque image-objet créée à partir d’un acteur
spécifique, associez le script à l’acteur proprement dit.
Pour créer un script associé à un acteur ou pour en ouvrir un, effectuez l’une des opérations
suivantes :
• Cliquez sur le bouton droit de la souris (Windows) ou cliquez en maintenant la touche Ctrl
•
90
enfoncée (Macintosh) sur un acteur dans la fenêtre Distribution, puis choisissez Script dans le
menu contextuel.
Sélectionnez un acteur dans la fenêtre Distribution et cliquez ensuite sur le bouton Script de
l’acteur dans la fenêtre Distribution.
Chapitre 3 : Rédaction de scripts dans Director
Utilisation de scripts liés
En plus des scripts stockés sous la forme d’acteurs internes, vous pouvez placer des scripts dans des
fichiers texte externes et les lier à votre animation Director. Ces scripts liés sont similaires aux
fichiers d’images ou de vidéo numérique que vous pouvez importer dans une animation Director.
Parmi les avantages de l’emploi de scripts liés, citons les suivants :
• Une personne peut travailler sur le fichier Director alors qu’une autre travaille sur le script.
• Il est facile d’échanger des scripts avec d’autres personnes.
• Vous pouvez contrôler les scripts séparément du fichier Director, dans une application de
contrôle de code source telle que Microsoft Visual SourceSafe ou Perforce de Perforce
Software. Ce type d’application évite que les différents programmeurs qui travaillent ensemble
sur un projet Director écrasent le travail des autres.
Les scripts liés ne sont utilisés par Director qu’en cours de création. A l’exécution, les projections
Director et le lecteur Macromedia Shockwave utilisent une copie interne spéciale des données du
script stockée dans l’animation. De cette façon, il n’est pas nécessaire de distribuer vos scripts liés
avec vos animations, et il est impossible à l’utilisateur final de les copier.
Pour importer un script sous la forme d’un fichier texte lié :
1 Choisissez Fichier > Importer.
2 Choisissez Script comme type de fichier à importer.
3 Sélectionnez le ou les fichiers de script que vous souhaitez importer.
Vous pouvez importer des fichiers possédant les extensions .txt, .ls ou .js. L’extension .ls est
l’extension désignant les scripts liés de Director.
Pour créer une liste des fichiers à importer, vous pouvez utiliser les boutons Ajouter et Tout
ajouter. Une telle liste est notamment utile si vous souhaitez importer des scripts de plusieurs
endroits différents.
4 Choisissez Lier au fichier externe dans le menu local Médias.
5 Cliquez sur Importer.
Vous pouvez modifier les scripts liés de manière normale dans la fenêtre Script de Director. Les
modifications que vous apportez sont écrites dans les fichiers externes à chaque fois que vous
enregistrez l’animation Director. (Si vous avez importé le script lié depuis un serveur UNIX, les
fins de ligne UNIX sont préservées.) Si vous importez un script dont le fichier texte est verrouillé,
il vous sera impossible de le modifier dans Director.
Il est impossible d’appliquer des couleurs de texte personnalisées aux scripts liés dans la fenêtre
Script. Par contre, la fonction de coloration automatique des scripts est activée pour les scripts
liés.
Pour transformer un acteur script interne en acteur script lié externe :
1 Sélectionnez l’acteur interne et cliquez sur l’onglet Script de l’inspecteur des propriétés.
2 Cliquez sur Lier le script sous.
3 Entrez le nom du fichier dans la boîte de dialogue Enregistrer le script sous.
4 Cliquez sur Enregistrer.
Rédaction de scripts dans la fenêtre Script
91
Pour recharger un script lié après sa modification :
• Utilisez la propriété unload() de l'objet Image-objet.
Si un script lié est modifié en dehors de Director, vous pouvez le recharger avec la méthode
unload() dans la fenêtre Messages. L’instruction suivante déchargera puis rechargera l’acteur
script monScript :
-- Syntaxe Lingo
member("monScript").unload()
// Syntaxe JavaScript
member("monScript").unload();
92
Chapitre 3 : Rédaction de scripts dans Director
CHAPITRE 4
Débogage de scripts dans Director
Les scripts ne répondent pas toujours immédiatement aux instructions. Le script présente souvent
une erreur de syntaxe : il s’agit généralement d’un mot mal écrit ou d’une partie du script absente.
Il arrive aussi que le script fonctionne mais ne produise pas le résultat escompté. Des erreurs ou
des bogues survenant presque toujours lors de la rédaction de scripts, il est recommandé de
prévoir le temps nécessaire au débogage lors du développement des projets multimédia.
Au fur et à mesure de votre apprentissage, vous rencontrerez probablement d’autres types de
problèmes, car lorsque vous maîtriserez un sujet, vous commencerez seulement à découvrir les
autres. Toutefois, les principales techniques de dépannage présentées dans cette section sont
destinées à la fois aux utilisateurs débutants et expérimentés.
Le meilleur moyen de corriger une erreur dans vos scripts varie d’une situation à l’autre. Il n’existe
pas de procédure standard permettant de résoudre un problème. Vous devrez utiliser plusieurs des
outils et techniques présentés plus bas :
• Présentation générale et détaillée de l’interaction des scripts dans une animation
• Expérimentation et pratique des principales méthodes de débogage
Les outils suivants sont destinés à vous aider à identifier les problèmes dans les scripts :
• Lorsque la fonction de suivi est activée, la fenêtre Messages affiche un enregistrement des
images lues et des gestionnaires en cours d’exécution dans l’animation.
• La fenêtre Débogueur affiche les valeurs des variables globales, les propriétés du script actuelle•
•
ment en cours d’exécution, la séquence de gestionnaires exécutée pour parvenir au niveau
actuel, ainsi que la valeur des variables et des expressions que vous avez sélectionnées.
La fenêtre Script vous permet de saisir des commentaires, d’insérer des points d’arrêt dans le
script et de sélectionner des variables dont la valeur apparaît dans l’inspecteur d’objet.
L’inspecteur d’objet vous permet d’afficher et de définir les valeurs des objets et des propriétés
que vous avez sélectionnés.
93
Bonnes habitudes de rédaction de scripts
De bonnes habitudes vous permettront d’éviter, dès le départ, bon nombre de problèmes dans la
rédaction de scripts.
• Veillez à rédiger les scripts par petits lots et testez directement chacun de vos scripts, au fur et à
•
mesure que vous les créez. Cette procédure permettra d’isoler les éventuels problèmes afin de
les identifier plus facilement.
Insérez des commentaires expliquant l’objectif des instructions et des valeurs du script.
Le script sera alors plus facile à comprendre, lorsque vous y reviendrez ultérieurement ou
lorsqu’un autre utilisateur devra l’utiliser. Par exemple, les commentaires des instructions
suivantes indiquent l’objectif de la structure if…then et clarifient la répétition de la boucle :
-- Syntaxe Lingo
-- Boucle jusqu’à ce que la touche "s" soit enfoncée
repeat while not(_key.keyPressed("s"))
_sound.beep()
end repeat
// Syntaxe JavaScript
// Boucle jusqu’à ce que la touche "s" soit enfoncée
while(!_key.keyPressed("s")) {
_sound.beep()
}
• Vérifiez si la syntaxe du script est correcte. Utilisez les menus locaux de la fenêtre Script pour
•
insérer des versions préformatées des éléments de scripting. Consultez les rubriques des API de
ce référentiel pour vérifier si les instructions sont rédigées correctement.
Utilisez des noms de variable qui indiquent l’objectif d’une variable. Par exemple, une variable
contenant un nombre devrait porter un nom tel que nouveauNombre plutôt que ABC.
Opérations de débogage de base
Le processus de débogage implique des étapes de stratégie et d’analyse, et non une procédure
standard rigoureuse. Cette section décrit les opérations de débogage fondamentales servant à
déboguer tous les types de code, et pas uniquement le code Lingo ou JavaScript.
Avant d’apporter une modification majeure à une animation, veillez à toujours en faire une
copie de sauvegarde. Il est recommandé de nommer les copies par incréments (par exemple
nomFichier_01.dir, nomFichier_02.dir, nomFichier_03.dir, et ainsi de suite) afin de pouvoir
suivre les diverses étapes d’une animation.
94
Chapitre 4 : Débogage de scripts dans Director
Identification du problème
Cela peut paraître évident, mais rappelons que la première chose à faire, lors d’une procédure de
débogage, est d’identifier le problème. La fonction d’un bouton est-elle faussée ? L’animation
accède-t-elle à une autre image que celle prévue ? L’édition d’un champ s’avère-t-elle impossible ?
Essayez aussi de comparer la fonction escomptée d’un script donné à sa fonction réelle. Cette
opération vous aidera à déterminer clairement votre objectif et les parties de cet objectif qui n’ont
pas été réalisées.
Si vous avez copié un script ou une partie de ce script à partir d’une autre animation ou d’un
exemple écrit, vérifiez si ce script a été conçu pour des conditions bien spécifiques. Il était peutêtre nécessaire de programmer une piste d’image-objet. Il se peut également que les noms d’acteur
doivent suivre une convention stylistique spécifique.
Localisation du problème
Pour localiser un problème, procédez comme suit :
• Remontez la chaîne et essayez de localiser l’emplacement auquel le problème semble
•
•
•
•
avoir commencé.
Utilisez la fenêtre Messages pour suivre les images parcourues par l’animation et identifier les
gestionnaires exécutés par vos scripts.
Déterminez le comportement présumé des scripts et ce qui, dans ces instructions, est associé
au problème. Par exemple, si un acteur texte ne peut pas être édité alors qu’il devrait l’être,
localisez l’emplacement de la propriété editable de l’acteur dans votre script.
Si vous ne parvenez pas à modifier comme vous le souhaitiez une image-objet sur la scène,
vérifiez si la méthode updateStage n’est pas requise à un emplacement précis.
Vérifiez si le problème survient sur tous les ordinateurs ou sur un seul. Tâchez de définir si le
problème survient uniquement lorsque l’affichage est réglé sur millions de couleurs. Il se peut
qu’un élément de l’ordinateur interfère avec l’application.
Concentrez-vous sur des lignes de script précises en insérant un point d’arrêt, c’est-à-dire un point
où le script interrompt son exécution et appelle la fenêtre Débogueur, dans une ligne. Ceci vous
permettra d’analyser les conditions à ce point précis, avant de poursuivre l’opération du script.
Pour plus d’informations sur l’insertion de points d’arrêt dans un script, consultez Débogage dans
la fenêtre Débogueur, page 105.
Résolutions de problèmes simples
Lorsque vous découvrez un bogue, consultez tout d’abord les résolutions de problèmes simples.
Le premier test de débogage s’effectue lorsque vous compilez votre script. Pour compiler votre
script, utilisez l’un des méthodes suivantes :
•
•
•
•
Dans la fenêtre Script, cliquez sur Recompiler tous les scripts modifiés.
Cliquez sur le bouton Recompiler tous les scripts dans le menu Contrôle.
Appuyez sur Maj+F8.
Fermez la fenêtre Script.
Il est généralement recommandé de compiler des scripts en utilisant l’une des trois premières
méthodes. Pour pouvoir utiliser la quatrième option, vous devez fermer la fenêtre Script à chaque
fois que vous voulez compiler un script.
Opérations de débogage de base
95
Lorsque vous compilez votre script, Macromedia Director MX 2004 présente un message d’erreur
si le script contient une syntaxe incorrecte. Le message affiche généralement la ligne dans laquelle
le problème a été détecté initialement. Un point d’interrogation apparaît au point précis où
Director a initialement détecté le problème.
Par exemple, la première ligne du message précédent vous indique que l’erreur en question est une
erreur de syntaxe et vous donne une explication. La deuxième ligne du message d’erreur affiche la
ligne de code contenant l’erreur de syntaxe.
Recherche d’erreurs de syntaxe
Les erreurs de syntaxe sont certainement à l’origine des bogues les plus courants dans le scripting.
Lorsqu’un script échoue, il est recommandé de vérifier immédiatement les points suivants :
• Les termes sont écrits correctement, les espaces sont placés aux endroits appropriés et la
•
•
ponctuation correcte est utilisée. Director ne peut pas interpréter une syntaxe incorrecte.
Des guillemets sont placés de part et d’autre des noms d’acteurs, des libellés et des chaînes
dans l’instruction.
Tous les paramètres requis sont présents. A chaque élément doivent être associés des paramètres spécifiques. Consultez les informations sur les API de ce référentiel pour savoir si
un élément nécessite d’autres paramètres.
Recherche de bogues simples
Si votre script se compile sans afficher de message d’erreur, il risque de contenir un bogue.
Si votre script ne produit pas les résultats escomptés, vérifiez les points suivants :
• Les valeurs des paramètres sont-elles correctes ? Par exemple, l’utilisation d’une valeur incor•
•
•
96
recte pour le nombre de bips sonores que doit générer la méthode beep produit un autre
nombre de bips.
Les valeurs sujettes à modifications, telles que les variables et le contenu d’acteurs texte, ontelles les valeurs escomptées ? Vous pouvez afficher leurs valeurs dans l’inspecteur d’objet en
sélectionnant le nom de l’objet et en cliquant sur Inspecteur d’objet dans la fenêtre Script, ou
dans la fenêtre Messages en utilisant les fonctions put() ou trace().
Les éléments de scripting se comportent-ils normalement ? Vous pouvez vérifier leur
comportement dans les rubriques consacrées aux API, dans ce référentiel.
Si le script est rédigé dans la syntaxe JavaScript, il risque de contenir une erreur de casse. La
syntaxe JavaScript est sensible à la casse, ce qui signifie que les méthodes, fonctions, propriétés
et variables doivent être saisies en respectant l’emploi des majuscules et minuscules.
Si vous appelez une méthode ou fonction en ne respectant pas la casse, vous obtenez une erreur
de script.
Chapitre 4 : Débogage de scripts dans Director
Si vous essayez d’accéder à une variable ou une propriété en utilisant une casse incorrecte, il est
possible que vous ne receviez pas d’erreur, mais votre script risque de ne pas avoir le comportement voulu. Par exemple, le gestionnaire mouseUp suivant contient une instruction qui essaie
d’accéder à la propriété étiquetteElement en utilisant une casse incorrecte. Ce script ne renverra pas d’erreur, mais créera automatiquement une nouvelle variable contenant une casse
incorrecte. La valeur de la nouvelle variable est undefined.
// Syntaxe JavaScript
fonction beginSprite() {
this.étiquetteElement = "Plans";
}
function mouseUp() {
trace(this.étiquetteElement); // crée la propriété étiquetteElement
}
Débogage dans la fenêtre Script
La fenêtre Script propose un certain nombre de fonctionnalités qui vous permettent de déboguer
vos scripts.
Pour ouvrir la fenêtre Messages :
• Choisissez Fenêtre > Script.
Pour rédiger un commentaire associé à la ligne de code courante :
• Cliquez sur Insérer une marque de commentaire.
Pour supprimer le commentaire de la ligne de code courante :
• Cliquez sur Supprimer la marque de commentaire.
Pour activer ou désactiver les points d’arrêt dans la ligne de code courante :
• Cliquez sur Activer/désactiver le point d’arrêt.
Pour désactiver tous les points d’arrêt :
• Cliquez sur Ignorer les points d’arrêt.
Pour ajouter l’expression ou la variable sélectionnée à l’inspecteur d’objet :
• Cliquez sur Inspecteur d’objet.
Débogage dans la fenêtre Script
97
Débogage dans la fenêtre Messages
La fenêtre Messages vous permet de tester les commandes de scripting et d’en contrôler le
processus lors de la lecture d’une animation.
Pour ouvrir la fenêtre Messages :
• Choisissez Fenêtre > Messages.
Gestion de la fenêtre Messages
La fenêtre Messages contient un volet de saisie et un volet de résultat. Le contenu du volet de
saisie est modifiable. Le contenu du volet de résultat est en lecture seule. Le seul moyen d’afficher
le texte dans le volet de résultat est d’appeler la fonction put() ou trace().
Vous pouvez ajuster la taille des volets de saisie et de résultat en faisant glisser le séparateur
horizontal situé entre les deux volets.
Pour redimensionner le volet de résultat :
• Faites glisser le séparateur horizontal vers un nouvel emplacement.
Pour masquer complètement le volet de résultat :
• Cliquez sur le bouton Réduire/Agrandir, au centre du séparateur horizontal.
Lorsque le volet de résultat est masqué, les sorties des scripts en cours d’exécution sont affichées
dans le volet de saisie.
Pour afficher le volet de résultat lorsqu’il est masqué :
• Cliquez de nouveau sur le bouton Réduire/Agrandir.
Pour effacer le contenu de la fenêtre Messages :
• Cliquez sur le bouton Effacer.
Si le volet de résultat est visible, son contenu est effacé.
Si le volet de résultat n’est pas visible, le contenu du volet de saisie est effacé.
Pour effacer une partie du contenu du volet de résultat :
1 Sélectionnez le texte à effacer.
2 Appuyez sur la touche Retour arrière ou Suppr.
Pour copier du texte dans le volet de saisie ou de résultat :
1 Sélectionnez le texte.
2 Choisissez Edition > Copier.
98
Chapitre 4 : Débogage de scripts dans Director
Test de scripts dans la fenêtre Messages
Vous pouvez tester les instructions Lingo et JavaScript pour vérifier leur fonctionnement en
les saisissant dans la fenêtre Messages et en observant les résultats. Lorsque vous saisissez une
commande dans la fenêtre Messages, Director l’exécute immédiatement, qu’une animation soit
ou non en cours d’exécution.
Avant de saisir les instructions que vous voulez tester, vous devez d’abord sélectionner la syntaxe
de scripting (Lingo ou JavaScript) à tester.
Pour sélectionner la syntaxe de scripting :
1 Dans le menu déroulant Syntaxe de script, sélectionnez Lingo ou JavaScript.
Pour tester une instruction d’une ligne :
1 Saisissez directement l’instruction dans la fenêtre Messages.
2 Appuyez sur Entrée (Windows) ou sur Retour (Macintosh). Director exécute l’instruction.
Si l’instruction est valide, la fenêtre Messages affiche le résultat de l’instruction dans le volet de
résultat, en bas de l’écran. Si le script n’est pas valide, un message d’erreur apparaît.
Par exemple, si vous saisissez l’instruction suivante dans la fenêtre Messages :
-- Syntaxe Lingo
put 50+50
// Syntaxe JavaScript
put 50+50
puis que vous appuyez sur la touche Entrée (Windows) ou Retour (Macintosh), le résultat
apparaît dans le volet de résultat :
-- Syntaxe Lingo
-- 100
// Syntaxe JavaScript
// 100
Si vous saisissez l’instruction suivante dans la fenêtre Messages :
-- Syntaxe Lingo
_movie.stage.bgColor = 255
// Syntaxe JavaScript
_movie.stage.bgColor = 255;
puis que vous appuyez sur la touche Entrée (Windows) ou Retour (Macintosh), la scène apparaît
en noir.
Vous pouvez tester plusieurs lignes de code en une seule opération en copiant et collant des
instructions dans la fenêtre Messages ou en appuyant simultanément sur les touches Maj et
Retour (Entrée) après chaque ligne de code.
Pour exécuter plusieurs lignes de code par copier/coller :
1 Copiez les lignes de code dans le Presse-papiers.
2 Entrez une ligne vierge dans la fenêtre Messages.
3 Collez le code dans le volet de saisie de la fenêtre Messages.
4 Placez le point d’insertion à la fin de la dernière ligne de code.
Débogage dans la fenêtre Messages
99
5 Appuyez sur Ctrl+Entrée (Windows) ou Ctrl+Retour (Macintosh). Director trouve la première
ligne vierge au-dessus du point d’insertion et exécute successivement chaque ligne de code après
la ligne vierge.
Pour saisir plusieurs lignes de code manuellement :
1 Entrez une ligne vierge dans la fenêtre Messages.
2 Entrez la première ligne de code.
3 Appuyez sur Maj+Retour (Entrée) à la fin de la ligne.
4 Répétez les étapes 2 et 3 jusqu’à la dernière ligne de code.
5 Appuyez sur Ctrl+Entrée (Windows) ou Ctrl+Retour (Macintosh). Director trouve la première
ligne vierge au-dessus du point d’insertion et exécute successivement chaque ligne de code après
la ligne vierge.
Vous pouvez tester un gestionnaire sans exécuter l’animation, en écrivant le gestionnaire dans une
fenêtre de script d’animation ou de script de comportement, puis en l’appelant depuis la fenêtre
Messages.
Pour tester un gestionnaire :
1 Copier et collez ou saisissez manuellement un gestionnaire à plusieurs lignes dans la fenêtre
Messages, comme indiqué dans les deux procédures précédentes.
2 Placez le point d’insertion à la fin de la dernière ligne de code.
3 Appuyez sur Entrée (Windows) ou sur Retour (Macintosh). Le gestionnaire est exécuté.
Toutes les sorties provenant de l’instruction put() ou trace()dans le gestionnaire sont
affichées dans la fenêtre Messages.
Tout comme la fenêtre Script, la fenêtre Messages contient des menus locaux des commandes de
scripting. Lorsque vous sélectionnez une commande dans l’un de ces menus locaux, la commande
apparaît automatiquement dans la fenêtre Messages, en présentant le premier argument fourni.
Plusieurs menus sont disponibles et permettent un accès rapide au catalogue complet des termes
de scripting.
Les menus locaux comprennent les options suivantes :
• Lingo par ordre alphabétique : toutes les commandes, à l’exception de Lingo 3D, présentées
•
•
•
•
par ordre alphabétique.
Lingo par catégorie : toutes les commandes, à l’exception de Lingo 3D, présentées par
catégorie.
Lingo 3D par ordre alphabétique : tous les termes Lingo 3D, présentés par ordre alphabétique.
Lingo 3D par catégorie : tous les termes Lingo 3D, présentés par catégorie.
Les Xtras de programmation incluent les méthodes et propriétés de tous les Xtras de programmation trouvés, qu’il s’agisse d’Xtras Macromedia ou autres.
Remarque : Les Xtras de programmation figurant dans le menu local sont limités à ceux qui supportent la méthode interface() et dont les noms apparaissent effectivement dans le menu local. Bien
que certains types de médias d’acteurs tels 3D et DVD prennent également en charge la méthode
interface(), ils ne figurent pas dans le menu local Xtras de programmation parce qu’ils ne sont pas
implémentés en tant que Xtras de programmation dans Director.
100
Chapitre 4 : Débogage de scripts dans Director
Gestion de scripts dans la fenêtre Messages
Vous pouvez régler le volet de résultat de la fenêtre Messages de manière à afficher un enregistrement des instructions qu’une animation exécute lors de sa lecture. Ceci s’avère utile pour faire
le suivi du flux de votre code et examiner le résultat d’instructions spécifiques. Il existe deux
manières d’effectuer cette opération.
Pour afficher des instructions dans le volet de résultat, procédez comme suit :
• Dans la fenêtre Messages, cliquez sur Trace.
• Donnez à la propriété traceScript de l’objet Animation la valeur TRUE.
Les entrées placées après un double signe égal (==) indiquent ce qui s’est produit dans l’animation, par exemple la dernière image ouverte, le script en cours d’exécution ou le résultat d’une
méthode ou de la définition d’une valeur.
Par exemple, la ligne suivante contient plusieurs renseignements :
== Frame: 39 Script: 1 Handler: mouseUp
• L’animation a accédé à l’image 39.
• L’animation a exécuté le script 1, le premier script associé à l’image.
• L’animation a exécuté le gestionnaire mouseUp dans le script 1 après que l’animation a accédé à
l’image.
Les entrées situées après une flèche constituée d’un double tiret et d’un signe supérieur à (-->)
indiquent les lignes de votre code qui ont été exécutées. Par exemple, les lignes Lingo suivantes :
---> if leftSide < 10 then
--> if leftSide < 200 then
--> _movie.go("Début du jeu")
indiquent que ces instructions Lingo ont été exécutées. Supposons que vous souhaitiez déterminer
la raison pour laquelle la tête de lecture n’a pas accédé à l’image appelée « Début du jeu ». Si la
ligne --> _movie.go("Début du jeu") ne s’est pas affichée dans la fenêtre Messages, il se peut
que la condition de l’instruction précédente ne soit pas celle escomptée.
Le volet de résultat de la fenêtre Messages peut contenir une grande quantité de texte lorsque la
fonction de suivie est activée. Pour supprimer le contenu du volet de résultat, cliquez sur le
bouton Effacer. Si le volet de résultat n’est pas visible, le contenu du volet de saisie est effacé.
Débogage dans la fenêtre Messages
101
Vous pouvez retracer le suivi des valeurs de variables et d’autres objets en sélectionnant le nom de
l’objet dans la fenêtre Messages et en cliquant sur le bouton Inspecteur d’objet. L’objet est ajouté
à l’inspecteur d’objet, où sa valeur sera affichée et actualisée lors de la lecture de l’animation. Pour
plus d’informations sur l’inspecteur d’objet, veuillez consulter Débogage de l’inspecteur d’objet,
page 102.
Lorsque vous êtes en mode de débogage, vous pouvez retracer le suivi des modifications d’une
variable en la sélectionnant dans la fenêtre Messages et en cliquant sur le bouton Surveiller
l’expression. Director ajoute ensuite la variable au volet Surveillance dans la fenêtre Débogueur,
dans laquelle sa valeur est affichée et actualisée pendant que vous travaillez dans la fenêtre
Débogueur. Pour plus d’informations sur le volet Surveillance, veuillez consulter Débogage dans la
fenêtre Débogueur, page 105.
Débogage de l’inspecteur d’objet
L’inspecteur d’objet permet d’afficher et de définir les propriétés d’un grand nombre d’objets ne
s’affichant pas dans l’inspecteur des propriétés. Il s’agit notamment des objets de scripting tels
que les variables globales, les listes, les objets enfants de scripts parents, toutes les propriétés
d’acteur 3D, les propriétés d’images-objets, les expressions de script, etc. En outre, l’inspecteur
d’objet affiche les modifications apportées aux propriétés d’objet lors de la lecture de l’animation,
par exemple les modifications dues aux scripts ou apportées aux propriétés de scénario de l’imageobjet. Ces types de modifications ne sont pas affichés dans l’inspecteur des propriétés lors de la
lecture de l’animation.
Pour ouvrir l’Inspecteur d’objet :
• Choisissez Fenêtre > Inspecteur d’objet.
102
Chapitre 4 : Débogage de scripts dans Director
Présentation détaillée des structures d’objets
L’inspecteur d’objet est très utile pour comprendre la structure d’objets complexes. Par exemple,
les acteurs 3D contiennent un grand nombre de couches de propriétés. L’inspecteur d’objet
affichant une représentation visuelle de la structure imbriquée de ces propriétés, il vous aide à
comprendre l’organisation de ces propriétés, ainsi que leurs interactions. Il est important de
comprendre la structure des propriétés des objets dans Director lors de la rédaction des scripts.
La possibilité d’examiner le changement de valeur des propriétés lors de la lecture d’une
animation est pratique pour comprendre le fonctionnement de l’animation. Cela s’avère
particulièrement utile lors des procédures de test et de débogage des scripts, car vous pouvez
constater les changements de valeurs en fonction des scripts que vous avez rédigés.
La fenêtre Débogueur de Director affiche également ces informations, mais uniquement en mode
de débogage. Pour plus d’informations sur le débogage, veuillez consulter Débogage avancé,
page 111.
Objets visibles
Voici quelques exemples d’objets que vous pouvez entrer dans l’inspecteur d’objet :
•
•
•
•
•
•
Images-objets, telles que sprite(3)
Acteurs, tels que member("3d")
Variables globales, telles que gMaListe
Objets enfants, tels que gMonEnfant
Objets Macromedia Flash, tels que gMonObjetFlash ; pour plus d’informations sur l’utilisation d’objets Flash dans Director, veuillez consulter la rubrique Utilisation de Director dans
le panneau d’aide de Director.
Expressions de script, telles que sprite(7).blend
Affichage d’objets
Vous pouvez afficher un objet dans l’inspecteur d’objet de trois manières. Vous pouvez faire
glisser les éléments directement dans l’inspecteur d’objet, saisir manuellement le nom d’un de
ses éléments ou utiliser le bouton Inspecteur d’objet dans les fenêtres Messages et Script.
Pour faire glisser un élément dans l’inspecteur d’objet, effectuez l’une des opérations
suivantes :
• Sélectionnez une image-objet dans la fenêtre Scénario et faites-la glisser dans l’inspecteur
•
•
d’objet.
Sélectionnez un acteur dans la fenêtre Acteur et faites-le glisser dans l’inspecteur d’objet.
Sélectionnez le nom d’un objet dans les fenêtres Script, Messages ou Texte et faites-le glisser
dans l’inspecteur d’objet.
Pour entrer manuellement un objet dans l’inspecteur d’objet :
1 Double-cliquez dans la première cellule vide de la colonne Objet de l’inspecteur d’objet.
2 Tapez le nom de l’objet dans la cellule. Utilisez le même nom que celui utilisé pour cet objet
dans vos scripts.
3 Appuyez sur Entrée (Windows) ou sur Retour (Macintosh). Si l’objet possède des souspropriétés, un signe plus (+) est affiché sur sa gauche.
Débogage de l’inspecteur d’objet
103
4 Cliquez sur le signe plus. Les propriétés de l’objet s’affichent en dessous de celui-ci. Les
propriétés contenant des sous-propriétés sont affichées avec un signe plus sur leur gauche.
Cliquez sur chaque signe plus pour afficher les sous-propriétés.
Pour voir un objet à l’aide du bouton Inspecteur d’objet :
1 Dans la fenêtre Script, mettez en surbrillance la partie d’une instruction se rapportant à un objet.
2 Dans la fenêtre Script, cliquez sur Inspecteur d’objet. Si l’objet possède des sous-propriétés, un
signe plus (+) est affiché sur sa gauche.
3 Cliquez sur le signe plus. Les propriétés de l’objet s’affichent en dessous de celui-ci. Les
propriétés contenant des sous-propriétés sont affichées avec un signe plus sur leur gauche.
Cliquez sur chaque signe plus pour afficher les sous-propriétés.
Remarque : Si vous examinez beaucoup d’objets ou de gros objets individuels dans l’Inspecteur
d’objet, vous risquez de causer des problèmes de performances durant la programmation, particulièrement lorsque l’option Interrogation automatique est activée. Par exemple, lorsque vous examinez
une liste contenant 10 000 entrées, l’affichage de Director peut sembler lent.
Parcourir des objets
Vous pouvez également accéder au contenu de l’inspecteur d’objet à l’aide des touches fléchées de
votre clavier.
Pour monter ou descendre dans la liste des éléments :
• Utilisez les touches fléchées Haut et Bas.
Pour visualiser les sous-propriétés d’un élément :
• Sélectionnez l’élément et appuyez sur la touche fléchée Droite.
Pour masquer les sous-propriétés d’un élément :
• Sélectionnez l’élément et appuyez sur la touche fléchée Gauche.
Utilisation de Interrogation automatique
Les propriétés système, telles que milliseconds et colorDepth ne sont actualisées dans l’inspecteur d’objet que lorsque l’option Interrogation automatique est activée. L’utilisation de l’interrogation automatique augmente la charge de travail du processeur, ce qui risque de ralentir les
performances de votre animation lorsque vous ajoutez un certain nombre de propriétés système à
l’inspecteur d’objet.
Pour activer l’option Interrogation automatique :
1 Cliquez du bouton droit de la souris (Windows) ou cliquez en maintenant la touche Ctrl
enfoncée (Macintosh) dans l’inspecteur d’objet. Le menu contextuel de l’inspecteur d’objet
apparaît.
2 Sélectionnez Interrogation automatique dans le menu contextuel. Lorsque l’option
Interrogation automatique est activée, une coche apparaît à côté de l’option correspondante
dans le menu.
Pour désactiver l’option Interrogation automatique :
• Sélectionnez à nouveau Interrogation automatique dans le menu contextuel.
104
Chapitre 4 : Débogage de scripts dans Director
Modification des valeurs d’un objet ou d’une propriété :
Vous pouvez définir la valeur d’un objet ou d’une propriété dans l’inspecteur d’objet en saisissant
une nouvelle valeur dans le champ situé à droite du nom de l’objet ou de la propriété.
Pour définir la valeur d’un objet ou d’une propriété :
1 Double-cliquez sur la valeur, à droite du nom de l’élément.
2 Saisissez la nouvelle valeur de l’élément.
3 Appuyez sur Entrée (Windows) ou sur Retour (Macintosh). La nouvelle valeur est définie et est
immédiatement reflétée dans l’animation.
Vous pouvez saisir une expression de script comme valeur pour un élément. Par exemple, vous
pouvez définir la valeur de sprite(3).locH sur l’expression sprite(8).locH + 20.
Suppression d’objets
Vous pouvez également retirer des éléments de l’inspecteur d’objet.
Pour retirer un élément de l’inspecteur d’objet :
• Sélectionnez l’élément et appuyez sur la touche Retour arrière (Windows) ou Suppr
(Macintosh).
Pour effacer tout le contenu de l’inspecteur d’objet :
• Cliquez du bouton droit de la souris (Windows) ou cliquez en maintenant la touche Ctrl
enfoncée (Macintosh) dans l’inspecteur d’objet et choisissez Effacer tout dans le menu local.
Lorsque vous ouvrez une animation différente de celle sur laquelle vous travaillez actuellement, les
objets précédemment entrés dans l’inspecteur d’objet y sont conservés. Ceci facilite la comparaison de différentes versions d’une même animation. Lorsque vous quittez Director, les éléments de
l’inspecteur d’objet ne sont pas conservés.
Débogage dans la fenêtre Débogueur
La fenêtre Débogueur constitue un mode spécial de la fenêtre Script. Elle fournit plusieurs outils
permettant de localiser la cause de vos problèmes dans les scripts. Le Débogueur vous permet
de localiser rapidement les éléments de votre code qui sont à l’origine du problème. La fenêtre
Débogueur permet de rédiger des scripts ligne par ligne, d’ignorer les gestionnaires imbriqués, de
modifier le texte des scripts et de visualiser les valeurs des variables et d’autres objets au fur et à
mesure de leur modification. L’apprentissage des outils de la fenêtre Débogueur permet
d’accroître l’efficacité de votre programmation.
La fenêtre Débogueur permet également de localiser et de corriger les erreurs dans vos scripts.
Elle comprend plusieurs outils qui vous permettront d’effectuer les opérations suivantes :
•
•
•
•
•
Afficher la partie du script contenant la ligne de code courante.
Retracer la séquence des gestionnaires appelés avant le gestionnaire courant.
Exécuter certaines parties du gestionnaire courant.
Exécuter certaines parties des gestionnaires appelés depuis le gestionnaire courant.
Afficher la valeur d’une variable locale, d’une variable globale ou d’une propriété associée au
code qui fait l’objet de la recherche.
Débogage dans la fenêtre Débogueur
105
Saisie du mode de débogage
La fenêtre Débogueur ne s’affiche que lorsqu’un script est interrompu. Cette interruption
survient lorsque Director détecte une erreur ou un point d’arrêt dans un script.
La boîte de dialogue Erreur de script apparaît lorsqu’une erreur de script survient. Cette boîte de
dialogue affiche les informations associées à l’erreur détectée, vous demande si vous souhaitez
corriger le bogue dans le script, modifier le script dans la fenêtre Script ou annuler.
Pour passer en mode de débogage, effectuez l’une des opérations suivantes :
• Cliquez sur Déboguer dans la boîte de dialogue Erreur de script.
• Placez un point d’arrêt dans un script.
Lorsque Director détecte un point d’arrêt en cours d’exécution, l’exécution du script est interrompue et la fenêtre Script passe en mode de débogage. La lecture de l’animation se poursuit,
mais l’exécution de vos scripts est interrompue jusqu’à ce que vous utilisiez la fenêtre Débogueur
pour indiquer la procédure que Director doit suivre. Si plusieurs fenêtres Script sont ouvertes,
Director recherche celle contenant le script dans lequel le point d’arrêt a été détecté et fait passer
cette fenêtre en mode de débogage.
Pour ajouter un point d’arrêt afin de provoquer l’ouverture de la fenêtre Débogueur :
1 Dans la fenêtre Script, ouvrez le script qui devrait contenir le point d’arrêt.
2 Cliquez sur la marge gauche de la fenêtre Script, à côté de la ligne de code dans laquelle le point
d’arrêt doit apparaître ou placez un point d’insertion sur la ligne de code et cliquez sur Activer/
désactiver le point d’arrêt. L’exécution du code sera interrompue au début de cette ligne et la
fenêtre Script passera en mode de débogage. Si la fenêtre Script est ouverte lorsque Director
détecte une erreur de script ou un point d’arrêt, la fenêtre Débogueur remplacera automatiquement la fenêtre Script.
106
Chapitre 4 : Débogage de scripts dans Director
Pour mettre fin au débogage, effectuez l’une des opérations suivantes :
• Cliquez sur le bouton Relancer le script dans la fenêtre Débogueur. Cette opération rétablit
•
l’exécution normale du script.
Cliquez sur le bouton Arrêter le débogage dans la fenêtre Débogueur. Cette opération met fin
à la session de débogage et à l’animation.
La fenêtre Script apparaît à nouveau, à la place de la fenêtre Débogueur.
Lorsque la fenêtre Débogueur apparaît, elle présente la ligne de code courante et vous propose
plusieurs choix pour la suite de l’exécution.
Pour connaître la ligne de code courante :
• Dans le volet Script, recherchez la flèche verte affichée près d’une ligne de code.
La flèche verte pointe vers la ligne courante. Vous ne pouvez pas sélectionner une autre ligne de
code en cliquant dessus dans le volet Script.
Affichage de la pile d’appels dans la fenêtre Débogueur
Le volet Pile d’appels présente la séquence des gestionnaires imbriqués exécutés avant la ligne de
code courante. Cette séquence est appelée « pile d’appels ». Utilisez la pile d’appels pour retracer
la structure de votre code lors de la procédure de débogage. Vous pouvez visualiser les variables
associées à un gestionnaire spécifique en cliquant sur le nom du gestionnaire dans le volet Pile
d’appels. Les variables sont affichées dans le volet des variables.
Affichage des variables dans la fenêtre Débogueur
Le volet des variables de la fenêtre Débogueur affiche les variables associées au gestionnaire
courant. Le gestionnaire courant est celui qui est affiché dans le volet Script et le dernier gestionnaire affiché dans le volet Pile d’appels. Vous pouvez également afficher les variables associées aux
gestionnaires précédents dans la pile d’appels. Les modifications apportées aux valeurs des variables d’un script sont affichées en rouge. Pour plus d’informations sur la progression dans les
scripts, veuillez consulter Progression dans les scripts dans la fenêtre Débogueur, page 109.
Pour afficher les variables associées à un gestionnaire dans la pile d’appels :
• Cliquez sur le nom du gestionnaire dans le volet Pile d’appels. Les variables sont affichées dans
le volet des variables.
Le volet des variables contient quatre onglets vous permettant de visualiser les variables :
Le volet Toutes affiche
les variables globales et locales associées au gestionnaire courant.
Le volet Locales affiche
Le volet Propriétés
uniquement les variables locales associées au gestionnaire courant.
affiche les propriétés déclarées dans le script courant.
Le volet Globales affiche
uniquement les variables globales associées au gestionnaire courant.
Vous pouvez trier les variables dans le volet des variables :
• Pour trier les variables par nom, cliquez sur le mot Nom qui apparaît au-dessus des noms de
variable.
• Pour trier les variables en ordre alphabétique inversé, cliquez une seconde fois sur le mot Nom.
Débogage dans la fenêtre Débogueur
107
Vous pouvez modifier les valeurs des variables locales du gestionnaire courant et des variables
globales dans le volet des variables. Vous ne pouvez pas modifier les valeurs des variables locales
qui ne sont pas situées dans le gestionnaire courant.
Pour changer la valeur d’une variable dans le volet des variables :
1 Double-cliquez sur la valeur de la variable dans la colonne Valeur.
2 Saisissez la nouvelle valeur de la variable.
3 Appuyez sur Entrée (Windows) ou sur Retour (Macintosh).
Affichage des objets dans la fenêtre Débogueur
Le volet Surveillance de la fenêtre Débogueur permet de visualiser les variables et autres objets
associés au gestionnaire courant, ainsi que les objets associés aux autres gestionnaires. L’ajout
d’objets dans le volet Surveillance vous permet de suivre leurs valeurs au fur et à mesure de leur
modification grâce aux scripts. Lorsque la valeur d’un objet change en raison de l’exécution d’une
ligne de code, Director affiche la couleur du nom de l’objet en rouge dans le volet Surveillance.
Le volet Surveillance affiche uniquement les objets que vous avez ajoutés. Vous pouvez utiliser
chacun des quatre onglets du volet Surveillance pour organiser les objets en groupes.
Pour ajouter au volet Surveillance un objet dont le nom est affiché dans le volet Script :
1 Cliquez sur le nom de l’objet dans le volet Script.
2 Cliquez sur le bouton Surveiller l’expression.
Pour ajouter au volet Surveillance un objet dont le nom n’est pas affiché dans le volet
Script :
1 Double-cliquez sur la première cellule vide de la colonne Nom du volet Surveillance.
2 Saisissez le nom de l’objet dans la cellule et appuyez sur Entrée (Windows) ou sur Retour
(Macintosh).
Si l’objet possède des propriétés, un signe plus (+) est affiché en regard du nom de l’objet.
Pour afficher les propriétés d’un objet :
• Cliquez sur le signe plus (+) à côté du nom de l’objet.
Le volet Surveillance permet d’organiser les objets de plusieurs façons.
Pour organiser les objets dans le volet Surveillance, effectuez l’une des opérations
suivantes :
• Pour trier les objets dans le volet Surveillance, cliquez sur l’en-tête de colonne Nom affiché
•
•
•
108
en haut de la colonne de gauche. Les noms d’objets de la colonne sont présentés par ordre
alphabétique.
Pour trier les objets en ordre alphabétique inversé, cliquez une seconde fois sur l’en-tête de
colonne Nom.
Pour organiser les objets en groupes, utilisez les onglets du volet Surveillance. Pour ajouter un
objet à un volet spécifique, cliquez sur l’onglet de votre choix avant d’ajouter l’objet.
Pour effacer le contenu d’un onglet dans le volet Surveillance, sélectionnez le volet, puis cliquez
du bouton droit (Windows) ou en maintenant la touche Ctrl enfoncée (Macintosh) dans le
volet Surveillance et sélectionnez Effacer tout.
Chapitre 4 : Débogage de scripts dans Director
Progression dans les scripts dans la fenêtre Débogueur
La fenêtre Débogueur fournit un ensemble d’outils permettant une exécution lente des scripts, ce
qui vous permet de visualiser l’effet de chaque ligne de code dans votre animation. Vous pouvez
exécuter une ligne de code à la fois et décider si vous souhaitez exécuter les gestionnaires ligne par
ligne ou pour l’ensemble des lignes.
Pour exécuter uniquement la ligne de code courante indiquée par la flèche verte :
• Cliquez sur le bouton Exécuter le script pas à pas.
La plupart des gestionnaires comprennent des instructions d’appel des autres gestionnaires. Vous
pouvez centrer votre attention sur ces gestionnaires imbriqués, ou les ignorer et vous limiter au
code du gestionnaire courant.
Lorsque vous savez que les gestionnaires sont exécutés comme prévu et que vous souhaitez vous
concentrer sur le code dans le gestionnaire courant, la fenêtre Débogueur peut ignorer les gestionnaires imbriqués et accéder directement à la prochaine ligne de code dans le gestionnaire courant.
Lorsque le débogueur ignore un gestionnaire imbriqué, il exécute le gestionnaire, mais n’affiche
pas le code du gestionnaire et ne marque pas de pause dans le gestionnaire imbriqué.
Pour ignorer les gestionnaires imbriqués :
• Cliquez sur le bouton Exécuter le script pas à pas dans la fenêtre Débogueur.
Ce bouton exécute la ligne de code courante, ainsi que les gestionnaires imbriqués appelés par
la ligne, puis s’arrête sur la ligne suivante du gestionnaire.
Si vous suspectez un dysfonctionnement des gestionnaires imbriqués et souhaitez examiner leur
comportement, la fenêtre Débogueur vous permet également d’exécuter les gestionnaires imbriqués ligne par ligne.
Pour exécuter les gestionnaires imbriqués ligne par ligne :
• Cliquez sur le bouton Exécuter le script en détail dans la fenêtre Débogueur.
Un clic sur le bouton Exécuter le script en détail lance l’exécution de la ligne de code courante
et poursuit le flux normal dans les gestionnaires imbriqués appelés par l’intermédiaire de cette
ligne. Une fois le traitement d’un gestionnaire imbriqué terminé, la fenêtre Débogueur s’arrête
sur la prochaine ligne de code dans le gestionnaire de niveau supérieur.
Lorsque la procédure de débogage est terminée, vous pouvez quitter le Débogueur à tout
moment :
Pour reprendre l’exécution normale de code et quitter la fenêtre Débogueur :
• Cliquez sur le bouton Relancer le script.
Pour quitter le Débogueur et arrêter la lecture de l’animation :
• Cliquez sur le bouton Arrêter le débogage.
Débogage dans la fenêtre Débogueur
109
Edition de scripts en mode de débogage
Lorsque vous êtes en mode de débogage, vous pouvez éditer vos scripts directement dans la
fenêtre Débogueur. Ceci vous permet de corriger les erreurs dès que vous les rencontrez, puis
de poursuivre la procédure de débogage.
Pour éditer un script dans la fenêtre Débogueur :
1 Cliquez dans le volet Script et placez le point d’insertion à l’endroit où vous souhaitez
commencer à taper.
2 Apportez les modifications au script.
Vous pouvez passer directement à un gestionnaire spécifique en sélectionnant son nom et en
cliquant sur le bouton Passer au gestionnaire.
3 Lorsque la procédure de débogage et d’édition des scripts est terminée, cliquez sur le bouton
Arrêter le débogage. La fenêtre Script repasse en mode Script.
4 Cliquez sur le bouton Recompiler tous les scripts modifiés.
Débogage de projections et d’animations Shockwave
Cette section traite du débogage durant l’exécution dans les projections et les animations Director
qui comprennent un contenu Macromedia Shockwave. Vous pouvez utiliser la fenêtre Messages
ou activer les dialogues d’erreurs de script pour déboguer les projections et les animations
Shockwave.
Pour déboguer à l’aide de la fenêtre Messages :
• Donnez à la propriété debugPlaybackEnabled de l'objet Lecteur la valeur TRUE.
Lorsque cette propriété possède la valeur TRUE, la lecture d’une projection ou d’une animation
Shockwave ouvre une fenêtre Messages (Microsoft Windows) ou un fichier texte Messages
(Macintosh), et les résultats des appels de fonction put() ou trace() sont insérés dans ces
formats.
Si, à tout moment durant l’animation, vous donnez à la propriété debugPlaybackEnabled la
valeur FALSE, la fenêtre ou le fichier texte Messages se ferme et ne peut être rouverte durant
cette session de lecture, même si vous redonnez à la propriété debugPlaybackEnabled la
valeur TRUE plus tard.
Pour déboguer en activant les dialogues d’erreurs de script :
• Dans le fichier .ini d’une projection ou d’une animation Shockwave, donnez à la propriété
la valeur 1.
Vous créez ainsi, dans la boite de dialogue, un texte d’erreurs plus descriptif que le texte
d’erreurs générique. Par exemple, un message d’erreur générique peut avoir l’aspect suivant :
DisplayFullLingoErrorText
Erreur de script : Continuer ?
L’attribution de la valeur 1 à la propriété the DisplayFullLingoErrorText pourrait générer
le message d’erreur suivant :
Erreur de script : liste attendue
Pour obtenir des informations sur la création et la modification d’un fichier .ini pour une
projection ou une animation Shockwave, consultez le fichier modèle .ini de Director se
trouvant dans le dossier d’installation racine de Director.
110
Chapitre 4 : Débogage de scripts dans Director
Débogage avancé
Si le problème n’est pas facile à identifier, tentez les approches suivantes :
• Déterminez la section dans laquelle se situe le problème. Par exemple, si un clic sur un bouton
•
•
•
•
•
•
ne produit pas le résultat escompté, vérifiez le script affecté à ce bouton.
Si une image-objet exécute une action erronée, vérifiez les valeurs de propriété attachées à
l’image-objet. Sont-elles définies sur les valeurs souhaitées ?
Recherchez la séquence d’exécution du script. Lorsqu’une section de l’animation ne réagit pas
comme vous l’espériez, tâchez tout d’abord de retracer la séquence des événements de l’animation. Consultez les autres scripts dans la hiérarchie des messages pour vous assurer que Director
exécute le bon gestionnaire.
Consultez les informations de suivi dans la fenêtre Messages, qui présentent les images parcourues par l’animation, ainsi que les gestionnaires appelés au cours de la lecture de l’animation.
Essayez d’utiliser les fonctions Exécuter le script pas à pas et Exécuter le script en détail dans la
fenêtre Débogueur et voyez si les résultats diffèrent de ce que vous attendiez.
Vérifiez les variables et les expressions. Analysez le changement des valeurs lors de la lecture
de l’animation. Observez si elles changent au mauvais moment ou si elles ne changent pas du
tout. Si la même variable est utilisée dans plusieurs gestionnaires, assurez-vous que chaque
gestionnaire qui utilise la variable a défini cette variable comme globale.
Vous pouvez suivre les variables et les expressions en affichant leurs valeurs dans le volet
Surveillance de la fenêtre Débogueur ou dans l’inspecteur d’objet.
N’apportez qu’une modification à la fois. N’hésitez pas à apporter des modifications dans un
gestionnaire pour vérifier si les changements peuvent résoudre le problème ou produire des
résultats qui aident à le localiser.
Veillez toutefois à ne pas résoudre un problème en en créant un autre. Apportez une modification à la fois et annulez-la si le problème n’est pas résolu. Si vous apportez trop de modifications avant de résoudre un problème, vous risquez de ne plus pouvoir déterminer quel était le
problème initial, voire même d’en créer de nouveaux.
Recréez la section. Si vous ne trouvez pas de solution, tâchez de recréer la section depuis le
début. Par exemple, si une image-objet ne réagit pas correctement lorsque le pointeur la survole, créez une simple animation contenant uniquement cette image-objet et le gestionnaire,
avec la méthode rollOver().
Si vous copiez/collez simplement les scripts, cela risque de copier le problème. En revanche, si
vous recréez la section, vous serez amené à reconstruire la logique depuis son premier niveau, et
vous pourrez alors vérifier si Director réagit comme vous le souhaitez. Si la section que vous
avez recréée ne fonctionne toujours pas comme prévu, il se peut que l’erreur provienne de la
logique de la section.
Si la section que vous avez recréée fonctionne correctement, comparez-la avec l’animation
d’origine pour noter leurs différences. Vous pouvez également copier la section dans l’originale
et vérifier si le problème est résolu.
Débogage avancé
111
112
Chapitre 4 : Débogage de scripts dans Director
CHAPITRE 5
Objets principaux de Director
Les objets principaux de Macromedia Director MX 2004 donnent accès aux fonctionnalités et
options disponibles dans Director, les projections et Macromedia Shockwave Player. Les objets
principaux incluent le moteur du lecteur de Director, les fenêtres des animations, les imagesobjets, les sons, etc. Ils représentent la couche de base à travers laquelle on accède à tous les API et
autres catégories d’objets, à l’exception des objets de scripting qui étendent les fonctionnalités de
base de Director.
Pour voir comment les objets principaux sont liés entre eux et à d’autres objets de Director,
consultez Diagramme de modèles d’objets, page 59.
Acteur
Représente un acteur au sein d’une bibliothèque de distribution. Les acteurs sont les médias et les
éléments de script d’une animation. Les acteurs média peuvent être du texte, des bitmaps, des
formes, etc. Les acteurs script incluent les comportements, les scripts d’animation, etc.
Un acteur peut être référencé soit par numéro soit par nom.
• Lorsque vous faites référence à un acteur en utilisant son numéro, Director le recherche dans
•
une bibliothèque précise et en extrait les données. Cette méthode est plus rapide que celle qui
consiste à faire référence à l’acteur par son nom. Toutefois, vu que Director ne met pas à jour
automatiquement les références aux numéros d’acteurs dans le script, toute référence par
numéro à un acteur qui a changé de position dans sa bibliothèque de distribution sera rompue.
Lorsque vous faites référence à un acteur en utilisant son nom, Director effectue des recherches
dans toutes les bibiliothèques de distribution d’une animation, de la première à la dernière, et
extrait les données de l’acteur lorsqu’il trouve son nom. Cete méthode est plus lente que celle
qui consiste à faire référence au numéro de l’acteur, surtout lorsqu’il s’agit d’animations
contenant plusieurs bibliothèques de distribution et acteurs. Toutefois, une référence à un
nom d’acteur permet à cette dernière de rester intacte, même si l’acteur change de position
dans sa bibliothèque de distribution.
Vous pouvez créer une référence à une bibliothèque de distribution en utilisant la fonction de
haut niveau member() ou la propriété member de l’objet Distribution, Animation ou Image-objet.
113
Les exemples suivants illustrent la création d’une référence à un acteur.
• Utilisez la fonction de haut niveau member().
-- Syntaxe Lingo
objTree = member("arbreBmp")
// Syntaxe JavaScript
var objTree = member("arbreBmp");
• Utilisez la propriété member de l’objet Image-objet.
-- Syntaxe Lingo
objTree = sprite(1).member;
// Syntaxe JavaScript
var objTree = sprite(1).member;
Résumé des méthodes pour l’objet Acteur
Méthode
copyToClipBoard()
duplicate() (acteur)
erase()
importFileInto()
move()
pasteClipBoardInto()
preLoad() (acteur)
unLoad() (acteur)
Résumé des propriétés pour l’objet Acteur
Propriété
castLibNum
modifiedDate
comments
name
creationDate
number (acteur)
fileName (acteur)
purgePriority
height
rect (acteur)
hilite
regPoint
linked
scriptText
loaded
size
media
thumbNail
mediaReady
type (acteur)
modified
width
modifiedBy
114
Chapitre 5 : Objets principaux de Director
Voir aussi
Types de médias, member(), member (distribution), member (animation), member
(image-objet), Animation, Lecteur, Objets de scripting, Image-objet, Fenêtre
Animation
Représente une animation en cours d’exécution dans le lecteur de Director.
Le lecteur de Director peut contenir une ou plusieurs animations. Une animation peut contenir
une ou plusieurs bibliothèques. Une bibliothèque de distribution peut consister en un ou
plusieurs acteurs qui représentent des médias et des scripts dans une animation. Les acteurs média
peuvent être du texte, des bitmaps, des formes, etc. Les acteurs script incluent les comportements,
les scripts d’animation, etc. Les images-objets sont créées à partir d’acteurs et utilisées sur la scène
d’une animation.
Vous pouvez désigner l’animation en cours d’exécution en utilisant la propriété de haut niveau
une animation quelconque du lecteur en utilisant la propriété
_movie. Vous pouvez désigner
movie de l’objet Fenêtre.
• Désignez l’animation en cours d’exécution.
-- Syntaxe Lingo
objAnimation = _movie
// Syntaxe JavaScript
var objAnimation = _movie;
• Utilisez la propriété movie de l’objet Fenêtre pour accéder à l’animation d’une fenêtre donnée.
-- Syntaxe Lingo
objAnimation = _player.window[2].movie
// Syntaxe JavaScript
var objAnimation = _player.window[2].movie;
Dans Director MX 2004, vous pouvez non seulement utiliser une référence à une animation pour
accéder aux méthodes et propriétés de l’animation même, mais aussi appeler des gestionnaires
Lingo et JavaScript et accéder aux acteurs et images-objets de l’animation, y compris leurs
méthodes et propriétés. Cette procédure est différente des versions précédentes de Director dans
lesquelles vous deviez utiliser la commande tell pour accéder aux animations. L’objet Animation
constitue une manière simple de travailler sur les animations.
Remarque : La commande tell est obsolète dans Director MX 2004.
Résumé des méthodes pour l’objet Animation
Méthode
beginRecording()
newMember()
cancelIdleLoad()
preLoad() (animation)
clearFrame()
preLoadMember()
constrainH()
preLoadMovie()
constrainV()
printFrom()
delay()
puppetPalette()
deleteFrame()
puppetSprite()
115
Méthode (suite)
duplicateFrame()
puppetTempo()
endRecording()
puppetTransition()
finishIdleLoad()
ramNeeded()
frameReady() (animation)
rollOver()
go()
saveMovie()
goLoop()
sendAllSprites()
goNext()
sendSprite()
goPrevious()
stopEvent()
idleLoadDone()
unLoad() (animation)
insertFrame()
unLoadMember()
label()
unLoadMovie()
marker()
updateFrame()
mergeDisplayTemplate()
updateStage()
beginRecording()
newMember()
Résumé des propriétés pour l’objet Animation
Propriété
116
aboutInfo
frameTransition
active3dRenderer
idleHandlerPeriod
actorList
idleLoadMode
allowCustomCaching
idleLoadPeriod
allowGraphicMenu
idleLoadTag
allowSaveLocal
idleReadChunkSize
allowTransportControl
imageCompression
allowVolumeControl
imageQuality
allowZooming
keyboardFocusSprite
beepOn
lastChannel
buttonStyle
lastFrame
castLib
markerList
centerStage
member (animation)
copyrightInfo (animation)
name
displayTemplate
paletteMapping
dockingEnabled
path (animation)
editShortCutsEnabled
preferred3dRenderer
enableFlashLingo
preLoadEventAbort
Chapitre 5 : Objets principaux de Director
Propriété (suite)
exitLock
score
fileFreeSize
scoreSelection
fileSize
script
fileVersion
sprite (animation)
fixStageSize
stage
frame
timeoutList
frameLabel
traceLoad
framePalette
traceLogFile
frameScript
traceScript
frameSound1
updateLock
frameSound2
useFastQuads
frameTempo
xtraList (animation)
Voir aussi
_movie, Bibliothèque de distribution, Acteur, movie, Lecteur, Image-objet,
Fenêtre
Bibliothèque de distribution
Représente une seule bibliothèque de distribution dans une animation.
Une animation peut contenir une ou plusieurs bibliothèques. Une bibliothèque de distribution
peut consister en un ou plusieurs acteurs qui représentent des médias dans une animation, tels
que les sons, textes, graphiques et autres.
Vous pouvez créer une référence à une bibliothèque de distribution en utilisant la fonction de
haut niveau castLib() ou la propriété castLib de l’objet Animation. Par exemple, si une
animation contient une bibliothèque de distribution appelée scripts, vous pouvez créer une
référence à cette bibliothèque en procédant comme suit :
• Utilisez la méthode de haut niveau castLib().
-- Syntaxe Lingo
scriptBibli = castLib("scripts")
// Syntaxe JavaScript
var scriptBibli = castLib("scripts");
• Utilisez la propriété castLib de l’objet Animation.
-- Syntaxe Lingo
scriptBibli = _movie.castLib["scripts"]
// Syntaxe JavaScript
var scriptBibli = _movie.castLib["scripts"];
117
Résumé des méthodes pour l’objet Bibliothèque de distribution
Méthode
findEmpty()
Résumé des propriétés pour l’objet Bibliothèque de distribution
Propriété
fileName (distribution)
member (distribution)
name
number (distribution)
preLoadMode
selection
Voir aussi
castLib, castLib(), Acteur, Animation, Lecteur, Image-objet, Fenêtre
Fenêtre
Représente une fenêtre dans laquelle une animation est en cours d’exécution, dont la fenêtre
Scène et toute autre animation dans une fenêtre (MIAW) couramment utilisée.
Vous pouvez créer une référence à un objet Fenêtre en utilisant la fonction de haut niveau
window(), la propriété window de l’objet Lecteur ou la propriété windowList de l’objet Lecteur.
• Utilisez la méthode de haut niveau window().
-- Syntaxe Lingo
objFenêtre = window("Soleil")
// Syntaxe JavaScript
var objFenêtre = window("Soleil");
• Utilisez la propriété window de l’objet Lecteur.
-- Syntaxe Lingo
objFenêtre = _player.window["Soleil"]
// Syntaxe JavaScript
var objFenêtre = _player.window["Soleil"];
• Utilisez la propriété windowList de l’objet Lecteur.
-- Syntaxe Lingo
objFenêtre = _player.windowList[1]
// Syntaxe JavaScript
var objFenêtre = _player.windowList[1];
Remarque : Lorsque vous créez une référence au nom d’une fenêtre en utilisant soit la fonction de
haut niveau window() soit la propriété window de l’objet Lecteur, cette référence n’est créée que si une
fenêtre portant ce nom existe. Si une fenêtre de ce nom n’existe pas, la référence contient VOID
(Lingo) ou null (syntaxe JavaScript).
118
Chapitre 5 : Objets principaux de Director
Résumé des méthodes pour l’objet Fenêtre
Méthode
close()
moveToBack()
forget() (fenêtre)
moveToFront()
maximize()
open() (fenêtre)
mergeProps()
restore()
minimize()
Résumé des propriétés pour l’objet Fenêtre
Propriété
appearanceOptions
resizable
bgColor (fenêtre)
sizeState
dockingEnabled
sourceRect
drawRect
title (fenêtre)
fileName (fenêtre)
titlebarOptions
image (fenêtre)
type (fenêtre)
movie
visible
name
windowBehind
picture (fenêtre)
windowInFront
rect (fenêtre)
Voir aussi
Bibliothèque de distribution, Acteur, Animation, Lecteur, Image-objet,
window(), window, windowList
Global
Fournit un emplacement de stockage de variables globales. Ces variables sont disponibles dans
Lingo et la syntaxe JavaScript.
Vous pouvez accéder à l’objet Global en utilisant la propriété de haut niveau _global. Vous
pouvez soit affecter _global à une variable soit utiliser directement la propriété _global pour
accéder aux méthodes de l’objet Global et à toute variable globale définie.
• Affectez
_global
à une variable.
-- Syntaxe Lingo
objGlobal = _global
// Syntaxe JavaScript
var objGlobal = _global;
119
• Utilisez la propriété _global directement.
-- Syntaxe Lingo
_global.showGlobals()
// Syntaxe JavaScript
_global.showGlobals();
• Accédez à une variable globale.
-- Syntaxe Lingo
global gSuccess
...
on mouseDown
gSuccess = "Félicitations !"
put(_global.gSuccess) -- affiche
end"
"Félicitations!"
// Syntaxe JavaScript
_global.gSuccess = "Félicitations !";
...
function mouseDown() {
trace(_global.gSuccess); // affiche
}
"Félicitations !"
Résumé des méthodes pour l’objet Global
Méthode
clearGlobals()
showGlobals()
Voir aussi
_global
Image-objet
Représente une occurrence d’un acteur dans une piste d’image-objet du scénario.
Un objet Image-objet couvre une plage d’images-objets, c’est-à-dire la gamme d’images d’une
piste d’image-objet donnée. Un objet Piste d’image-objet représente une piste d’image-objet toute
entière, quel que soit le nombre d’images-objets qu’elle contient.
Une image-objet peut être référencée soit par numéro soit par nom.
• Lorsque vous faites référence à une image-objet par numéro, Director effectue une recherche
dans toutes les images-objets qui existent dans l’image courante du scénario, en commençant
par la piste dont le numéro est le plus bas, et extrait les données de l’image-objet lorsqu’il la
trouve. Cette méthode est plus rapide que celle qui consiste à faire référence à une image-objet
par son nom. Toutefois, vu que Director ne met pas à jour automatiquement les références aux
numéros d’images-objets dans le script, toute référence par numéro à une image-objet qui a
changé de position dans la scène sera rompue.
120
Chapitre 5 : Objets principaux de Director
• Lorsque vous désignez une image-objet par son nom, Director fait une recherche dans toutes
les images-objets qui existent dans l’image courante du scénario, en commençant par la piste
portant le numéro le plus bas, et extrait les données de l’image-objet lorsqu’il la trouve. Cete
méthode est plus lente que celle qui consiste à faire référence au numéro de l’image-objet,
surtout lorsqu’il s’agit d’animations contenant plusieurs bibliothèques de distribution, acteurs
et images-objets. Toutefois, une référence à un nom d’image-objet permet à cette référence de
rester intacte, même si l’image-objet change de position sur la scène.
Vous pouvez créer une référence à un objet Image-objet en utilisant la fonction de haut niveau
la propriété sprite de l’objet Animation ou la propriété sprite de l’objet Piste
d’image-objet.
sprite(),
• Utilisez la fonction de haut niveau sprite().
-- Syntaxe Lingo
objImageObjet = sprite(1)
// Syntaxe JavaScript
var objImageObjet = sprite(1);
• Utilisez la propriété sprite de l’objet Animation.
-- Syntaxe Lingo
objImageObjet = _movie.sprite["saule"]
// Syntaxe JavaScript
var objImageObjet = _movie.sprite["saule"];
• Utilisez la propriété sprite de l’objet Piste d’image-objet.
-- Syntaxe Lingo
objImageObjet = channel(3).sprite
// Syntaxe JavaScript
var objImageObjet = channel(3).sprite;
Vous pouvez utiliser une référence à un objet Image-objet pour accéder à l’acteur à partir duquel
l’image-objet a été créée. Toute modification effectuée sur l’acteur à partir duquel une imageobjet a été créée est également reflétée dans l’image-objet. L’exemple suivant illustre la
modification du texte d’un acteur texte à partir duquel l’image-objet 5 a été créée. Ce changement
apporté à l’acteur sera également reflété dans l’image-objet 5.
-- Syntaxe Lingo
labelText = sprite(5)
labelText.member.text = "Saule pleureur"
// Syntaxe JavaScript
var labelText = sprite(5);
labelText.member.text = "Saule pleureur";
121
Résumé des propriétés pour l’objet Image-objet
Propriété
backColor
locV
blend (image-objet)
locZ
bottom
member (image-objet)
constraint
name (image-objet)
cursor
quad
editable
rect (image-objet)
endFrame
right
flipH
rotation
flipV
skew
foreColor
spriteNum
height
startFrame
ink
top
left
width
locH
Voir aussi
Bibliothèque de distribution, Acteur, Animation, Lecteur, sprite (animation),
sprite (piste d’image-objet), sprite(), Piste d’image-objet, Fenêtre
Lecteur
Représente le moteur de lecture principal utilisé pour gérer et exécuter l’environnement auteur,
les animations dans une fenêtre (MIAW), les projections et Shockwave Player.
L’objet Lecteur donne accès à toutes les animations et fenêtres qu’il gère, en plus des Xtras
disponibles.
Vous pouvez créer une référence à l’objet Lecteur en utilisant la propriété de haut niveau
_player.
• Affectez_player à une variable.
-- Syntaxe Lingo
objLecteur = _player
// Syntaxe JavaScript
var objLecteur = _player;
• Utilisez la propriété _player directement.
-- Syntaxe Lingo
_player.alert("L’animation est terminée.")
// Syntaxe JavaScript
_player.alert("L’animation est terminée.");
122
Chapitre 5 : Objets principaux de Director
Résumé des méthodes pour l’objet Lecteur
Méthode
alert()
getPref()
appMinimize()
halt()
cursor()
open() (lecteur)
externalParamName()
quit()
externalParamValue()
setPref()
flushInputEvents()
windowPresent()
Résumé des propriétés pour l’objet Lecteur
Propriété
activeCastLib
netThrottleTicks
activeWindow
organizationName
alertHook
productName
applicationName
productVersion
applicationPath
safePlayer
currentSpriteNum
scriptingXtraList
debugPlaybackEnabled
searchCurrentFolder
digitalVideoTimeScale
searchPathList
disableImagingTransformation
serialNumber
emulateMultibuttonMouse
sound (lecteur)
externalParamCount
switchColorDepth
frontWindow
toolXtraList
inlineImeEnabled
transitionXtraList
lastClick
userName
lastEvent
window
lastKey
window
lastRoll
xtra
mediaXtraList
xtraList (lecteur)
netPresent
Voir aussi
_player, Bibliothèque de distribution, Acteur, Animation, Image-objet, Fenêtre
123
Piste audio
Représente une piste audio individuelle au sein de l’objet Son.
Les pistes audio disponibles sont au nombre de huit. Vous pouvez utiliser un objet Piste audio
dans un script pour accéder à l’une des huit pistes audio et la modifier.
Remarque : Vous ne pouvez modifier que les deux premières pistes audio dans le scénario de
l’interface utilisateur de Director.
Vous pouvez créer une référence à un objet Piste audio en utilisant la méthode de haut niveau
sound(), la propriété sound de l’objet Lecteur ou la méthode channel() de l’objet Son. Par
exemple, vous pouvez faire référence à la piste audio 2 comme suit :
• Utilisez la méthode de haut niveau sound().
-- Syntaxe Lingo
objPisteAudio = sound(2)
// Syntaxe JavaScript
var objPisteAudio = sound(2);
• Utilisez la propriété sound de l’objet Lecteur.
-- Syntaxe Lingo
objPisteAudio = _player.sound[2]
// Syntaxe JavaScript
var objPisteAudio = _player.sound[2];
• Utilisez la méthode channel() de l’objet Son.
-- Syntaxe Lingo
objPisteAudio = _sound.channel(2)
// Syntaxe JavaScript
var objPisteAudio = _sound.channel(2);
Résumé des méthodes pour l’objet Piste audio
Méthode
breakLoop()
playFile()
fadeIn()
playNext() (piste audio)
fadeOut()
queue()
fadeTo()
rewind() (piste audio)
getPlayList()
setPlayList()
pause() (piste audio)
stop() (piste audio)
play() (piste audio)
Résumé des propriétés pour l’objet Piste audio
Propriété
124
channelCount
member (piste audio)
elapsedTime
pan
Chapitre 5 : Objets principaux de Director
Propriété (suite)
endTime
sampleCount
loopCount
sampleRate
loopEndTime
startTime
loopsRemaining
status
loopStartTime
volume (piste audio)
Voir aussi
channel() (audio), sound (lecteur), sound(), Son
Piste d’image-objet
Représente une piste d’image-objet individuelle dans le scénario.
Un objet Image-objet couvre une plage d’images-objets, c’est-à-dire la gamme d’images d’une
piste d’image-objet donnée. Un objet Piste d’image-objet représente une piste d’images-objets
toute entière, quel que soit le nombre d’images-objets qu’elle contient.
Les pistes d’images-objets sont contrôlées par le scénario par défaut. Utilisez l’objet Piste d’imageobjet pour faire passer le contrôle d’une piste d’image-objet au script lors d’une séance d’enregistrement de scénario.
Une piste d’image-objet peut être référencée soit par numéro soit par nom.
• Lorsque vous désignez une piste d’image-objet par son numéro, vous accédez directement à la
•
piste. Cette méthode est plus rapide que celle qui consiste à faire référence à une piste d’imageobjet par son nom. Toutefois, vu que Director ne met pas à jour automatiquement les références aux numéros des piste d’images-objets dans le script, toute référence par numéro à une piste
d’image-objet qui a changé de position dans la scène sera rompue.
Lorsque vous désignez une piste d’image-objet par son nom, Director fait une recherche dans
toutes les pistes, en commençant par la piste portant le numéro le plus bas, et extrait les données de la piste d’image-objet lorsqu’il la trouve. Cete méthode est plus lente que celle qui consiste à faire référence au numéro de la piste d’image-objet, surtout lorsqu’il s’agit d’animations
contenant plusieurs bibliothèques de distribution, acteurs et images-objets. Toutefois, une
référence à une piste d’image-objet permet à cette référence de rester intacte, même si la piste
d’image-objet change de position dans le scénario.
Vous pouvez créer une référence à une piste d’image-objet en utilisant la méthode de haut niveau
channel().
• Utilisez la méthode de haut niveau channel().
-- Syntaxe Lingo
objPisteImageObjet = channel(2)
// Syntaxe JavaScript
var objPisteImageObjet = channel(2);
125
Vous pouvez utiliser une référence à un objet Piste d’image-objet pour accéder à l’image-objet
couramment utilisée dans une piste d’image-objet particulière. L’exemple suivant illustre l’accès à
la couleur de fond de l’image-objet couramment utilisée dans la piste d’image-objet 2.
-- Syntaxe Lingo
libelléImageObjet = channel(2).sprite.backColor
// Syntaxe JavaScript
var libelléImageObjet = channel(2).sprite.backColor;
Résumé des méthodes pour l’objet Piste d’image-objet
Méthode
makeScriptedSprite()
removeScriptedSprite()
Résumé des propriétés pour l’objet Piste d’image-objet
Propriété
name (piste d’image-objet)
number (piste d'image-objet)
scripted
sprite (piste d’image-objet)
Voir aussi
Bibliothèque de distribution, channel() (niveau supérieur), Acteur, Animation,
Lecteur, Image-objet, Fenêtre
Son
Contrôle la lecture audio dans les huit pistes audio disponibles.
L’objet Son consiste en huit objets Piste audio représentant des pistes audio individuelles.
Vous pouvez créer une référence à l’objet Son en utilisant la propriété de haut niveau _sound.
• Affectez_sound à une variable.
-- Syntaxe Lingo
objSon = _sound
// Syntaxe JavaScript
var objSon = _sound;
• Utilisez la propriété _sound pour accéder à la propriété soundDevice de l’objet Son.
-- Syntaxe Lingo
objPériph = _sound.soundDevice
// Syntaxe JavaScript
var objPériph = _sound.soundDevice;
126
Chapitre 5 : Objets principaux de Director
Résumé des méthodes pour l’objet Son
Méthode
beep()
channel() (audio)
Résumé des propriétés pour l’objet Son
Propriété
soundDevice
soundDeviceList
soundEnabled
soundKeepDevice
soundLevel
soundMixMedia
Voir aussi
_sound, Piste audio
Souris
Permet d’accéder à l’activité d’un utilisateur liée à la souris, y compris les mouvements et les clics
de souris.
Vous pouvez accéder à l’objet Souris en utilisant la propriété de haut niveau _mouse. Vous pouvez
soit affecter _mouse à une variable soit utiliser directement la propriété _mouse pour accéder aux
propriétés de l’objet Souris.
• Affectez
_mouse
à une variable.
-- Syntaxe Lingo
objSouris = _mouse
// Syntaxe JavaScript
var objSouris = _mouse;
• Utilisez la propriété _mouse directement.
-- Syntaxe Lingo
doubleClic = _mouse.doubleClick
// Syntaxe JavaScript
var doubleClic = _mouse.doubleClick;
Résumé des propriétés pour l’objet Souris
Propriété
clickLoc
mouseLoc
clickOn
mouseMember
doubleClick
mouseUp
127
Propriété (suite)
mouseChar
mouseV
mouseDown
mouseWord
mouseH
rightMouseDown
mouseItem
rightMouseUp
mouseLine
stillDown
Voir aussi
_mouse
Système
Donne accès aux informations sur le système et l’environnement, à commencer par les méthodes
de niveau du système.
Vous pouvez créer une référence à l’objet Système en utilisant la propriété de haut niveau
_system.
• Affectez _system à une variable.
-- Syntaxe Lingo
objSystème = _system
// Syntaxe JavaScript
var objSystème = _system;
• Utilisez la propriété _system directement.
-- Syntaxe Lingo
dateSystème = _system.date()
// Syntaxe JavaScript
var dateSystème = _system.date();
Résumé des méthodes pour l’objet Système
Méthode
date() (Système)
restart()
shutDown()
time() (Système)
128
Chapitre 5 : Objets principaux de Director
Résumé des propriétés pour l’objet Système
Propriété
colorDepth
deskTopRectList
environmentPropList
milliseconds
Voir aussi
_system
Touche
Utilisé pour contrôler l’activité d’un utilisateur au clavier.
Vous pouvez accéder à l’objet Touche en utilisant la propriété de haut niveau _key. Vous pouvez
soit affecter _key à une variable soit utiliser directement la propriété _key pour accéder aux
méthodes et propriétés de l’objet Touche.
• Affectez
_key
à une variable.
-- Syntaxe Lingo
objTouche = _key
// Syntaxe JavaScript
var objTouche = _key;
• Utilisez directement la propriété _key.
-- Syntaxe Lingo
ctrlEnfoncée = _key.controlDown
// Syntaxe JavaScript
var ctrlEnfoncée = _key.controlDown;
Résumé des méthodes pour l’objet Touche
Méthode
keyPressed()
129
Résumé des propriétés pour l’objet Touche
Propriété
commandDown
controlDown
key
keyCode
optionDown
shiftDown
Voir aussi
_key
130
Chapitre 5 : Objets principaux de Director
CHAPITRE 6
Types de médias
Les types de médias de Director MX 2004 de Macromedia donnent accès aux fonctionnalités des
divers types de médias (RealMedia, DVD, GIF animé, etc.), qui sont ajoutés aux animations en
tant qu’acteurs.
Les médias ne sont pas réellement des objets mais plutôt des acteurs qui se rapportent à un type de
média précis. Lorsqu’un type de média est ajouté à une animation en tant qu’acteur, il hérite de la
fonctionnalité de l’objet Acteur principal et étend l’objet Acteur en fournissant des fonctionnalités
supplémentaires qui ne sont disponibles que pour le type de média spécifié. Par exemple, un
acteur RealMedia a accès aux méthodes et propriétés de l’objet Acteur, et possède également
d’autres méthodes et propriétés propres à RealMedia. Les autres types de médias affichent tous ce
comportement.
Pour voir comment les types de médias d’acteurs sont liés entre eux et à d’autres objets de
Director, consultez Diagramme de modèles d’objets, page 59.
Animation Flash
Représente un acteur ou une image-objet renfermant un contenu Flash.
Vous pouvez ajouter un acteur d’animation Flash à une animation en utilisant la méthode
newMember() de l’objet Animation.
-- Syntaxe Lingo
_movie.newMember(#flash)
// Syntaxe JavaScript
_movie.newMember("flash");
Un acteur ou une image-objet Flash peut également contenir des composants Flash. Les
composants Flash fournissent des fonctionnalités qui étendent les fonctionnalités existantes des
acteurs ou des images-objets Flash. Pour plus d’informations sur les composants Flash pris en
charge par Director, consultez Composant Flash, page 136.
Certaines des méthodes ou propriétés suivantes s’appliquent uniquement aux images-objets créées
à partir d’un acteur d’animation Flash.
131
Résumé des méthodes pour le type de média Animation Flash
Méthode
callFrame()
printAsBitmap()
clearAsObjects()
rewind() (GIF animé, Flash)
clearError()
setCallback()
findLabel()
setFlashProperty()
flashToStage()
settingsPanel()
getFlashProperty()
setVariable()
getVariable()
showProps()
goToFrame()
stageToFlash()
hitTest()
stop() (Flash)
hold()
stream()
newObject()
tellTarget()
print()
Résumé des propriétés pour le type de média Animation Flash
Propriété
actionsEnabled
originPoint
broadcastProps
originV
bufferSize
playBackMode
buttonsEnabled
playing
bytesStreamed
posterFrame
centerRegPoint
quality
clickMode
rotation
defaultRect
scale (acteur)
defaultRectMode
scaleMode
eventPassMode
sound (lecteur)
fixedRate
static
flashRect
streamMode
frameCount
streamSize
imageEnabled
viewH
linked
viewPoint
mouseOverButton
viewScale
originH
viewV
originMode
132
Chapitre 6 : Types de médias
Voir aussi
Composant Flash, Acteur
Animation liée
Représente un acteur d’animation liée.
Vous pouvez ajouter un acteur d’animation liée à une animation en utilisant la méthode
newMember() de l’objet Animation.
-- Syntaxe Lingo
_movie.newMember(#movie)
// Syntaxe JavaScript
_movie.newMember("movie");
Résumé des propriétés pour le type de média Animation liée
Propriété
scriptsEnabled
Voir aussi
Acteur
Bitmap
Représente un acteur bitmap.
Utilisez les objets image bitmaps pour effectuer de simples opérations affectant le contenu d’un
acteur bitmap telles que le changement des couleurs de fond et de premier plan de l’acteur ou
pour effectuer une délicate manipulation des pixels d’une image telle que le recadrage, le dessin et
la copie de pixels.
Vous pouvez ajouter un acteur bitmap à une animation en utilisant la méthode newMember() de
l’objet Animation.
-- Syntaxe Lingo
_movie.newMember(#bitmap)
// Syntaxe JavaScript
_movie.newMember("bitmap");
Certaines des méthodes ou propriétés suivantes s’appliquent uniquement aux images-objets créées
à partir d’un acteur bitmap.
Résumé des méthodes pour le type de média Bitmap
Méthode
crop() (Image)
pictureP()
133
Résumé des propriétés pour le type de média Bitmap
Propriété
alphaThreshold
imageCompression
backColor
imageQuality
blend (image-objet)
palette
depth (Bitmap)
picture (acteur)
dither
rect (image)
foreColor
trimWhiteSpace
image (image)
useAlpha
Voir aussi
Acteur
Boucle d’animation
Représente un acteur boucle d’animation.
Vous pouvez ajouter un acteur boucle d’animation à une animation en utilisant la méthode
newMember() de l’objet Animation.
-- Syntaxe Lingo
_movie.newMember(#filmloop)
// Syntaxe JavaScript
_movie.newMember("filmloop");
Résumé des propriétés pour le type de média Boucle d’animation
Propriété
media
regPoint
Voir aussi
Acteur
Bouton
Représente un acteur bouton ou case à cocher.
Vous pouvez ajouter un acteur bouton à une animation en utilisant la méthode newMember() de
l’objet Animation.
-- Syntaxe Lingo
_movie.newMember(#button)
// Syntaxe JavaScript
_movie.newMember("button");
134
Chapitre 6 : Types de médias
Résumé des propriétés pour le type de média Bouton
Propriété
hilite
Voir aussi
Acteur
Champ
Représente un acteur champ.
Vous pouvez ajouter un acteur champ à une animation en utilisant la méthode newMember() de
l’objet Animation.
-- Syntaxe Lingo
_movie.newMember(#field)
// Syntaxe JavaScript
_movie.newMember("field");
Résumé des méthodes pour le type de média Champ
Méthode
charPosToLoc()
pointToItem()
lineHeight()
pointToLine()
linePosToLocV()
pointToParagraph()
locToCharPos()
pointToWord()
locVToLinePos()
scrollByLine()
pointToChar()
scrollByPage()
Résumé des propriétés pour le type de média Champ
Propriété
alignment
fontStyle
autoTab
lineCount
border
margin
boxDropShadow
pageHeight
boxType
scrollTop
dropShadow
selEnd
editable
selStart
font
text
fontSize
wordWrap
Voir aussi
Acteur
135
Composant Flash
Représente un composant Macromedia Flash imbriqué dans un acteur ou une image-objet
comprenant un contenu Flash.
Un composant Flash offre des fonctionnalités qui étendent les fonctionnalités existantes des
acteurs ou des images-objets comprenant du contenu Flash. Ils sont créés et supportés entièrement par la communauté de développement de Director.
Director prend en charge les composants Flash suivants :
Composant Flash
Description
Button
Bouton d’interface utilisateur rectangulaire redimensionnable.
CheckBox
Partie importante de toute forme d’application ; vous pouvez l’utiliser à chaque
fois que vous avez besoin de rassembler un ensemble de valeurs true ou
false qui ne sont pas mutuellement exclusives.
DateChooser
Calendrier permettant à un utilisateur de choisir une date.
label
Une ligne de texte.
List
Liste défilante à un ou plusieurs choix.
NumericStepper
Permet à un utilisateur de parcourir un ensemble de numéros ordonnés.
RadioButton
Composante essentielle de toute forme d’application web : vous pouvez
l’utiliser à chaque fois que vous voulez faire un choix parmi un groupe
d’options.
ScrollPane
Affiche des clips, des fichiers JPEG et des fichiers SWF dans une zone à
défilement.
TextArea
Champ de texte à plusieurs lignes.
TextInput
Composant à une seule ligne qui entoure l’objet TextField natif d’ActionScript.
Tree
Permet à un utilisateur de visualiser des données hiérarchiques.
Un composant Flash a accès aux mêmes API que ceux auxquels accède un acteur ou une imageobjet Flash normal, en plus des fonctionnalités se rapportant à ce composant. Pour plus
d’informations sur l’utilisation de ces composants Flash, consultez les rubriques Utilisation
de Director dans le panneau d’aide de Director.
Vous pouvez ajouter un acteur de composant Flash à une animation en utilisant la méthode
newMember() de l’objet Animation.
-- Syntaxe Lingo
_movie.newMember(#flashcomponent)
// Syntaxe JavaScript
_movie.newMember("flashcomponent");
Voir aussi
Animation Flash, Acteur
136
Chapitre 6 : Types de médias
Curseur
Représente un acteur curseur.
Vous pouvez ajouter un acteur curseur à une animation en utilisant la méthode newMember() de
l’objet Animation.
-- Syntaxe Lingo
_movie.newMember(#cursor)
// Syntaxe JavaScript
_movie.newMember("cursor");
Résumé des propriétés pour le type de média Curseur
Propriété
castMemberList
cursorSize
hotSpot
interval
Voir aussi
Acteur
DVD
Représente un acteur DVD.
Vous pouvez ajouter un acteur DVD à une animation en utilisant la méthode newMember() de
l’objet Animation.
-- Syntaxe Lingo
_movie.newMember(#dvd)
// Syntaxe JavaScript
_movie.newMember("dvd");
Certaines des méthodes ou propriétés suivantes s’appliquent uniquement aux images-objets créées
à partir d’un acteur DVD.
Résumé des événements pour le type de média DVD
Les événements DVD suivants sont toujours pris en charge par un gestionnaire d’événement
DVDeventNotification. Lorsque l’un de ces événements se produit, le gestionnaire d’événement
DVDeventNotification le reçoit sous forme de paramètre. Certains de ces événements contiennent également d’autres informations qui sont transmises sous forme de deuxième ou troisième
paramètre à DVDeventNotification. Pour plus d’informations sur l’utilisation des événements
suivants avec le gestionnaire DVDeventNotification, consultez on DVDeventNotification,
page 179.
Evénement
angleChange
noFirstPlayChain
audioStreamChange
parentalLevelChange
137
Evénement (suite)
buttonChange
playbackStopped
chapterAutoStop
playPeriodAutoStop
chapterStart
rateChange
diskEjected
stillOff
diskInserted
stillOn
domainChange
titleChange
error
UOPchange
karaokeMode
warning
Résumé des méthodes pour le type de média DVD
Méthode
activateAtLoc()
selectAtLoc()
activateButton()
selectButton()
frameStep()
selectButtonRelative()
pause() (DVD)
stop() (DVD)
play() (DVD)
subPictureType()
returnToTitle()
titleMenu()
rootMenu()
Résumé des propriétés pour le type de média DVD
Propriété
138
angle (DVD)
duration (DVD)
angleCount
folder
aspectRatio
frameRate (DVD)
audio (DVD)
fullScreen
audioChannelCount
mediaStatus (DVD)
audioExtension
playRate (DVD)
audioFormat
resolution (DVD)
audioSampleRate
selectedButton
audioStream
startTimeList
audioStreamCount
stopTimeList
buttonCount
subPicture
chapter
subPictureCount
chapterCount
title (DVD)
closedCaptions
titleCount
Chapitre 6 : Types de médias
Propriété (suite)
currentTime (DVD)
videoFormat
domain
volume (DVD)
Voir aussi
Acteur
Forme vectorielle
Représente un acteur forme vectorielle.
Vous pouvez ajouter un acteur forme vectorielle à une animation en utilisant la méthode
newMember() de l’objet Animation.
-- Syntaxe Lingo
_movie.newMember(#vectorshape)
// Syntaxe JavaScript
_movie.newMember("vectorshape");
Certaines des méthodes ou propriétés suivantes s’appliquent uniquement aux images-objets créées
à partir d’un acteur forme vectorielle.
Résumé des méthodes pour le type de média Forme vectorielle
Méthode
addVertex()
deleteVertex()
moveVertex()
moveVertexHandle()
newCurve()
showProps()
Résumé des propriétés pour le type de média Forme vectorielle
Propriété
antiAlias
imageEnabled
backgroundColor
originH
broadcastProps
originMode
centerRegPoint
originPoint
closed
originV
curve
regPointVertex
defaultRect
scale (acteur)
defaultRectMode
scaleMode
endColor
strokeColor
139
Propriété (suite)
fillColor
strokeWidth
fillCycles
vertex
fillDirection
vertexList
fillMode
viewH
fillOffset
viewPoint
fillScale
viewScale
flashRect
viewV
gradientType
Voir aussi
Acteur
GIF animé
Représente un acteur GIF animé.
Vous pouvez ajouter un acteur GIF animé à une animation en utilisant la méthode newMember()
de l’objet Animation.
-- Syntaxe Lingo
_movie.newMember(#animgif)
// Syntaxe JavaScript
_movie.newMember("animgif");
Certaines des méthodes ou propriétés suivantes s’appliquent uniquement aux images-objets créées
à partir d’un acteur GIF animé.
Résumé des méthodes pour le type de média GIF animé
Méthode
resume()
rewind() (GIF animé, Flash)
Résumé des propriétés pour le type de média GIF animé
Propriété
directToStage
frameRate
linked
path (animation)
playBackMode
Voir aussi
Acteur
140
Chapitre 6 : Types de médias
Palette de couleurs
Représente la palette de couleurs associée à un acteur bitmap.
Une acteur palette de couleurs n’a aucune méthode ou propriété à laquelle il est possible d’accéder
directement. Les méthodes et propriétés suivantes sont simplement associées aux palettes de
couleurs.
Vous pouvez ajouter un acteur palette de couleurs à une animation en utilisant la méthode
newMember() de l’objet Animation.
-- Syntaxe Lingo
_movie.newMember(#palette)
// Syntaxe JavaScript
_movie.newMember("palette");
Vous pouvez associer un acteur bitmap à un acteur palette de couleurs à l’aide de la propriété
palette de l’acteur bitmap. L’exemple suivant attribut la propriété palette de l’acteur bitmap
acteurBmp à l’acteur palette de couleurs acteurPaletteDeCouleurs. La valeur de la propriété
palette reflète le numéro de l’acteur palette de couleurs.
-- Syntaxe Lingo
member("acteurBmp").palette = member("acteurPaletteDeCouleurs")
// Syntaxe JavaScript
member("acteurBmp").palette = member("acteurPaletteDeCouleurs");
Après avoir associé un acteur bitmap à un acteur palette de couleurs, vous ne pouvez pas
supprimer l’acteur palette de couleurs avant d’avoir supprimé son association à l’acteur bitmap.
Résumé des méthodes pour le type de média Palette de couleurs
Méthode
color()
Résumé des propriétés pour le type de média Palette de couleurs
Propriété
depth (Bitmap)
palette
paletteMapping
Voir aussi
Bitmap, Acteur, palette
141
Police
Représente un acteur police.
Vous pouvez ajouter un acteur police à une animation en utilisant la méthode newMember() de
l’objet Animation.
-- Syntaxe Lingo
_movie.newMember(#font)
// Syntaxe JavaScript
_movie.newMember("font");
Résumé des propriétés pour le type de média Police
Propriété
bitmapSizes
characterSet
fontStyle
originalFont
recordFont
Voir aussi
Acteur
QuickTime
Représente un acteur QuickTime.
Vous pouvez ajouter un acteur QuickTime à une animation en utilisant la méthode newMember()
de l’objet Animation.
-- Syntaxe Lingo
_movie.newMember(#quicktimemedia)
// Syntaxe JavaScript
_movie.newMember("quicktimemedia");
Certaines des méthodes ou propriétés suivantes s’appliquent uniquement aux images-objets créées
à partir d’un acteur QuickTime.
Résumé des méthodes pour le type de média QuickTime
Méthode
142
enableHotSpot()
trackEnabled
getHotSpotRect()
trackNextKeyTime
nudge()
trackNextSampleTime
ptToHotSpotID()
trackPreviousKeyTime
quickTimeVersion()
trackPreviousSampleTime
qtRegisterAccessKey()
trackStartTime (acteur)
Chapitre 6 : Types de médias
Méthode (suite)
qtUnRegisterAccessKey()
trackStopTime (acteur)
setTrackEnabled()
trackText
swing()
trackType (acteur)
trackCount (acteur)
Résumé des propriétés pour le type de média QuickTime
Propriété
fieldOfView
nodeType
hotSpotEnterCallback
pan (propriété QTVR)
hotSpotExitCallback
percentStreamed (acteur)
invertMask
preLoad (acteur)
isVRMovie
rotation
loopBounds
scale (acteur)
mask
staticQuality
motionQuality
tilt
mouseLevel
translation
node
triggerCallback
nodeEnterCallback
warpMode
nodeExitCallback
Voir aussi
Acteur
RealMedia
Représente un acteur RealMedia.
Vous pouvez ajouter un acteur RealMedia à une animation en utilisant la méthode newMember()
de l’objet Animation.
-- Syntaxe Lingo
_movie.newMember(#realmedia)
// Syntaxe JavaScript
_movie.newMember("realmedia");
Certaines des méthodes ou propriétés suivantes s’appliquent uniquement aux images-objets créées
à partir d’un acteur RealMedia.
143
Résumé des méthodes pour le type de média RealMedia
Méthode
pause() (RealMedia, SWA, Windows Media)
play() (RealMedia, SWA, Windows Media)
realPlayerNativeAudio()
realPlayerPromptToInstall()
realPlayerVersion()
seek()
stop() (RealMedia, SWA, Windows Media)
Résumé des propriétés pour le type de média RealMedia
Propriété
audio (RealMedia)
password
currentTime (RealMedia)
pausedAtStart (RealMedia, Windows Media)
displayRealLogo
percentBuffered
duration (RealMedia, SWA)
soundChannel (RealMedia)
image (RealMedia)
state (RealMedia)
lastError
userName (RealMedia)
mediaStatus (RealMedia, Windows Media)
video (RealMedia, Windows Media)
Voir aussi
Acteur
Shockwave 3D
Représente un acteur Macromedia Shockwave 3D.
Un acteur Shockwave 3D (ou, tout simplement, 3D) est différent des autres acteurs car il contient
un univers 3D complet. Un univers 3D contient un ensemble d’objets propres aux acteurs 3D
vous permettant d’ajouter des fonctionnalités 3D à une animation.
Vous pouvez ajouter un acteur 3D à une animation en utilisant la méthode newMember() de
l’objet Animation.
-- Syntaxe Lingo
_movie.newMember(#shockwave3d)
// Syntaxe JavaScript
_movie.newMember("shockwave3d");
Pour plus d’informations sur les objets et API dont disposent les acteurs 3D, consultez le
Chapitre 8, Objets 3D, page 153.
Voir aussi
Acteur
144
Chapitre 6 : Types de médias
Shockwave Audio
Représente un acteur Shockwave Audio.
Vous pouvez ajouter un acteur Shockwave Audio à une animation en utilisant la méthode
newMember() de l’objet Animation.
-- Syntaxe Lingo
_movie.newMember(#swa)
// Syntaxe JavaScript
_movie.newMember("swa");
Résumé des événements pour le type de média Shockwave Audio
Evénements
on cuePassed
Résumé des méthodes pour le type de média Shockwave Audio
Méthode
getError() (Flash, SWA)
getErrorString()
isPastCuePoint()
pause() (RealMedia, SWA, Windows Media)
play() (RealMedia, SWA, Windows Media)
preLoadBuffer()
stop() (RealMedia, SWA, Windows Media)
Résumé des propriétés pour le type de média Shockwave Audio
Propriété
bitRate
percentStreamed (acteur)
bitsPerSample
preLoadTime
channelCount
sampleRate
copyrightInfo (SWA)
sampleSize
cuePointNames
soundChannel (SWA)
cuePointTimes
state (Flash, SWA)
duration (RealMedia, SWA)
streamName
loop (acteur)
URL
mostRecentCuePoint
volume (acteur)
numChannels
Voir aussi
Acteur
145
Son
Représente un acteur utilisé pour stocker et faire référence à des échantillons de sons.
Les échantillons de sons sont contrôlés par les objets de base Son et Piste audio. Un acteur son ne
possède pas d’API et utilise les API des objets Son et Piste audio pour contrôler son
comportement.
Vous pouvez ajouter un acteur son à une animation en utilisant la méthode newMember() de
l’objet Animation.
-- Syntaxe Lingo
_movie.newMember(#sound)
// Syntaxe JavaScript
_movie.newMember("sound");
Pour plus d’informations sur les objets et API que vous pouvez utiliser pour contrôler des
échantillons de sons, consultez Son, page 126 et Piste audio, page 124.
Voir aussi
Acteur
Texte
Représente un acteur texte.
Vous pouvez ajouter un acteur texte à une animation en utilisant la méthode newMember() de
l’objet Animation.
-- Syntaxe Lingo
_movie.newMember(#text)
// Syntaxe JavaScript
_movie.newMember("text");
Résumé des événements pour le type de média Texte
Evénement
on hyperlinkClicked
Résumé des méthodes pour le type de média Texte
Méthode
count()
pointInHyperlink()
pointToChar()
pointToItem()
pointToLine()
pointToParagraph()
pointToWord()
146
Chapitre 6 : Types de médias
Résumé des propriétés pour le type de média Texte
Propriété
antiAlias
hyperlink
antiAliasThreshold
hyperlinkRange
bottomSpacing
hyperlinks
charSpacing
hyperlinkState
firstIndent
kerning
fixedLineSpace
kerningThreshold
font
RTF
fontStyle
selectedText
HTML
useHypertextStyles
Voir aussi
Acteur
Windows Media
Représente un acteur Windows Media.
Vous pouvez ajouter un acteur Windows Media à une animation en utilisant la méthode
newMember() de l’objet Animation.
-- Syntaxe Lingo
_movie.newMember(#windowsmedia)
// Syntaxe JavaScript
_movie.newMember("windowsmedia");
Certaines des méthodes ou propriétés suivantes s’appliquent uniquement aux images-objets créées
à partir d’un acteur Windows Media.
Résumé des méthodes pour le type de média Windows Media
Méthode
pause() (RealMedia, SWA, Windows Media)
play() (RealMedia, SWA, Windows Media)
playFromToTime()
rewind() (Windows Media)
stop() (RealMedia, SWA, Windows Media)
147
Résumé des propriétés pour le type de média Windows Media
propriété
audio (Windows Media)
pausedAtStart (RealMedia, Windows Media)
directToStage
playRate (Windows Media)
duration (acteur)
video (RealMedia, Windows Media)
height
volume (image-objet)
loop (Windows Media)
width
mediaStatus (RealMedia, Windows Media)
Voir aussi
Acteur
148
Chapitre 6 : Types de médias
CHAPITRE 7
Objets de scripting
Les objets de scripting, également connus sous le nom d'extensions Xtra dans Macromedia
Director MX 2004 fournissent l’accès à la fonctionnalité des composants du logiciel qui sont
installés avec Director et étendent la fonctionnalité principale de celui-ci. Les Xtras existants
fournissent certaines fonctions telles que l’importation de filtres et la connexion à Internet.
Vous pouvez créer vos propres Xtras si vous savez programmer en langage C.
Pour voir comment les objets de scripting sont liés les uns aux autres, ainsi qu'aux autres objets
de Director, veuillez consulter Diagramme de modèles d’objets, page 59.
Fileio
Permet d’effectuer des opérations d’entrée et de sortie de fichier.
Vous pouvez créer une référence à un objet Fileio à l’aide de l’opérateur new.
-- Syntaxe Lingo
objFileio = new xtra("fileio")
// Syntaxe JavaScript
var objFileio = new xtra("fileio");
Résumé des méthodes pour l’objet Fileio
Méthode
closeFile()
readFile()
createFile()
readLine()
delete()
readToken()
displayOpen()
readWord()
displaySave()
setFilterMask()
error()
setFinderInfo()
fileName()
setNewLineConversion()
getFinderInfo()
setPosition()
getLength()
status()
getOSDirectory()
version()
149
Méthode (suite)
getPosition()
writeChar()
openFile()
writeReturn()
readChar()
writeString()
NetLingo
Permet d’effectuer des opérations de réseau comme par exemple, obtenir ou lire en continu
un support à partir d’un réseau, vérifier la disponibilité du réseau, vérifier la progression d’une
opération de réseau, etc.
Vous pouvez créer une référence à un objet NetLingo à l’aide de l’opérateur new.
-- Syntaxe Lingo
objNetLingo = new xtra("netlingo")
// Syntaxe JavaScript
var objNetLingo = new xtra("netlingo");
Résumé des méthodes pour l’objet NetLingo
Méthode
browserName()
netDone()
cacheDocVerify()
netError()
cacheSize()
netLastModDate()
clearCache
netMIME()
downloadNetThing
netStatus
externalEvent()
netTextResult()
getLatestNetID
postNetText
getNetText()
preloadNetThing()
getStreamStatus()
proxyServer
gotoNetMovie
tellStreamStatus()
gotoNetPage
URLEncode
netAbort
SpeechXtra
Permet d’ajouter à une animation la fonctionnalité de synthèse de parole à partir du texte.
Vous pouvez créer une référence à un objet SpeechXtra à l’aide de l’opérateur new.
-- Syntaxe Lingo
objSpeech = new xtra("speechxtra")
// Syntaxe JavaScript
var objSpeech = new xtra("speechxtra");
150
Chapitre 7 : Objets de scripting
Résumé des méthodes pour l’objet SpeechXtra
Méthode
voiceCount()
voiceSet()
voiceGet()
voiceSetPitch()
voiceGetAll()
voiceSetRate()
voiceGetPitch()
voiceSetVolume()
voiceGetRate()
voiceSpeak()
voiceGetVolume()
voiceState()
voiceInitialize()
voiceStop()
voicePause()
voiceWordPos()
voiceResume()
XML Parser
Permet d’effectuer des analyses XML.
Vous pouvez créer une référence à un objet XML Parser à l’aide de l’opérateur new.
-- Syntaxe Lingo
objXml = new xtra("xmlparser")
// Syntaxe JavaScript
var objXml = new xtra("xmlparser");
Résumé des méthodes pour l’objet XML Parser
Méthode
count()
doneParsing()
getError() (XML)
ignoreWhiteSpace()
makeList()
makeSubList()
parseString()
parseURL()
Résumé des propriétés pour l’objet XML Parser
Propriété
attributeName
attributeValue
child (XML)
name (XML)
151
152
Chapitre 7 : Objets de scripting
CHAPITRE 8
Objets 3D
Les objets 3D permettent d’ajouter la fonctionnalité 3D à une animation. Ces objets sont à la fois
exposés à la syntaxe Lingo et à la syntaxe JavaScript au sein de Macromedia Director MX 2004,
des projections et du lecteur Macromedia Shockwave.
Vous avez accès à ces objets 3D par le biais des acteurs Shockwave 3D (ou 3D uniquement).
Vous pouvez également créer des images-objets 3D à partir des acteurs 3D. Les acteurs 3D ainsi
que les images-objets 3D comportent des fonctionnalités qui leur sont propres. Ils ont également
accès aux fonctionnalités des acteurs et images-objets non 3D dont les API sont respectivement
indiqués par les objets principaux Member et Sprite.
Un acteur 3D est différent des autres acteurs dans le sens où un acteur 3D contient tout un
monde en 3D. Un monde en 3D comprend des objets qui permettent l’accès à la fonctionnalité
3D. Tous les objets d’un monde en 3D se fondent sur un objet de base appelé noeud. La forme
la plus simple d’un nœud dans un monde en 3D est un objet Groupe ; cet objet Group est
fondamentalement le nœud de base. Tous les autres objets d’un monde en 3D se fondent sur un
objet Groupe, ce qui signifie que les autres objets héritent de la fonctionnalité d’un objet Groupe
en plus de posséder la fonctionnalité propre à ces objets.
Pour voir comment les objets 3D sont liés les uns aux autres, ainsi qu'aux autres objets de
Director, veuillez consulter Diagramme de modèles d’objets, page 59.
Director est livré avec deux Xtras vous donnant accès aux objets 3D :
• Xtra 3D (3DAuth.x32 sous Windows, 3D Auth Xtra sous Macintosh) prend en charge la
•
fenêtre média 3D dans Director.
Xtra 3D Media (Shockwave 3D Asset.x32 sous Windows, 3D Asset Xtra sur Macintosh) prend
en charge le média 3D proprement dit.
Pour accéder aux objets 3D lors de la programmation ou de l’exécution, votre animation doit
comprendre un Xtra 3D.
153
Acteur
Représente un acteur Shockwave 3D.
Un acteur Shockwave 3D (ou 3D uniquement) comprend tout un monde en 3D. Un monde
en 3D comprend un ensemble d’objets vous permettant d’ajouter un fonctionnalité 3D à une
animation.
Vous pouvez créer une référence à un acteur 3D soit à l’aide de la fonction member(), soit à l’aide
de la propriété member de l’objet Animation ou Image-objet. Vous pouvez utiliser les mêmes
techniques que pour créer une référence à un acteur qui n’est pas en 3D.
• Utilisez la fonction member() de haut niveau.
-- Syntaxe Lingo
acteur3d = member("magie")
// Syntaxe JavaScript
var acteur3d = member("magie");
• Utilisez la propriété member de l'objet Image-objet.
-- Syntaxe Lingo
acteur3d = sprite(1).member;
// Syntaxe JavaScript
var acteur3d = sprite(1).member;
Résumé des méthodes pour l’objet Acteur
Méthode
154
camera()
model
cloneModelFromCastmember
modelResource
cloneMotionFromCastmember
motion()
deleteCamera
newCamera
deleteGroup
newGroup
deleteLight
newLight
deleteModel
newMesh
deleteModelResource
newModel
deleteMotion
newModelResource
deleteShader
newShader
deleteTexture
newTexture
extrude3D
resetWorld
group()
revertToWorldDefaults
light()
shader()
loadFile()
texture()
Chapitre 8 : Objets 3D
Résumé des propriétés pour l’objet Acteur
Propriété
ambientColor
loop (3D)
animationEnabled
model
bevelDepth
modelResource
bevelType
motion
bytesStreamed (3D)
percentStreamed (3D)
camera
preLoad (3D)
cameraPosition
reflectivity
cameraRotation
shader
diffuseColor
smoothness
directionalColor
specularColor
directionalPreset
state (3D)
directToStage
streamSize (3D)
displayFace
texture
displayMode
textureMember
group
textureType
light
tunnelDepth
Voir aussi
Caméra, Groupe, Lumière, Modèle, Ressource modèle, Mouvement, Matériau, Imageobjet, Texture
Caméra
Représente un objet Caméra.
Une caméra contrôle la manière dont une image-objet 3D visualise le monde en 3D. Une imageobjet 3D affiche une vue de caméra particulière dans le monde.
Vous pouvez créer une référence à une caméra à l’aide de la propriété camera de l’objet 3D
Member. La propriété camera choisit la caméra située à un endroit précis de l’index dans la liste
des caméras. Avec Lingo, vous pouvez directement utiliser la propriété camera de l’objet 3D
Member afin de créer une référence. Dans la syntaxe JavaScript, vous devez utiliser la méthode
getPropRef() pour créer une référence.
Dans l’exemple suivant, une référence à la deuxième caméra de la « chambre familiale » de l’acteur
3D est créée et affectée à la variable maCaméra.
-- Syntaxe Lingo
maCaméra = member("chambre familiale").camera[2]
// Syntaxe JavaScript
var maCaméra = member("chambre familiale").getPropRef("camera", 2);
155
Résumé des méthodes pour l’objet Caméra
Méthode
addBackdrop
addOverlay
insertBackdrop
insertOverlay
removeBackdrop
removeOverlay
Résumé des propriétés pour l’objet Caméra
Propriété
backdrop
fog.far (brouillard)
backdrop[].blend (3D)
fog.near (brouillard)
backdrop[].loc (fond et recouvrement)
hither
backdrop[].regPoint (3D)
orthoHeight
backdrop[].rotation (fond et recouvrement)
overlay
backdrop[].scale (3D)
overlay[].blend (3D)
backdrop[].source
overlay[].loc (fond et recouvrement)
backdrop.count (3D)
overlay[].regPoint (3D)
child (3D)
overlay[].rotation (fond et recouvrement)
colorBuffer.clearAtRender
overlay[].scale (3D)
colorBuffer.clearValue
overlay[].source
fieldOfView (3D)
overlay.count (3D)
fog.color()
projection
fog.decayMode
rootNode
fog.enabled (brouillard)
yon
Voir aussi
Groupe, Lumière, Modèle, Ressource modèle, Mouvement, Matériau, Texture
156
Chapitre 8 : Objets 3D
Groupe
Représente un modèle n’ayant ni ressource ni matériaux.
Un groupe est un nœud de base et correspond tout simplement à un point dans l’espace représenté par une transformation. Vous pouvez affecter des enfants et des parents à ce nœud afin de
regrouper des modèles, des lumières, des caméras ou d’autres groupes.
Le groupe de base est appelé monde, ce qui revient fondamentalement au même qu’acteur 3D.
Vous pouvez créer une référence à un groupe à l'aide de la propriété group de l’objet 3D Member.
La propriété group choisit le groupe situé à un endroit précis de l’index dans la liste de groupes.
En Lingo, vous pouvez directement utiliser la propriété group de l’objet 3D Member pour créer
une référence. Dans la syntaxe JavaScript, vous devez utiliser la méthode getPropRef() pour
créer une référence.
Dans l’exemple suivant, une référence au premier groupe de l’acteur 3D espace est créée et
affectée à la variable monGroupe.
-- Syntaxe Lingo
monGroupe = member("espace").group[1]
// Syntaxe JavaScript
var monGroupe = member("espace").getPropRef("group", 1);
Résumé des méthodes pour l’objet Groupe
Méthode
addChild
pointAt
addToWorld
registerScript()
clone
removeFromWorld
cloneDeep
rotate
getWorldTransform()
scale (commande)
isInWorld()
translate
Résumé des propriétés pour l’objet Groupe
Propriété
name (3D)
parent
pointAtOrientation
transform (propriété)
userData
worldPosition
Voir aussi
Caméra, Lumière, Modèle, Ressource modèle, Mouvement, Matériau, Texture
157
Image-objet
Représente une image-objet 3D créée à partir d’un acteur Shockwave 3D.
Vous pouvez créer une référence à une image-objet 3D à l’aide de la fonction sprite() de haut
niveau, de la propriété sprite de l’objet Animation ou bien de la propriété sprite de l’objet
Piste d’images-objets. Vous pouvez utiliser les mêmes techniques que pour créer une référence
à une image-objet qui n’est pas 3D.
• Utilisez la fonction sprite() de haut niveau.
-- Syntaxe Lingo
imageObjet3d = sprite(1)
// Syntaxe JavaScript
var imageObjet3d = sprite(1);
• Utilisez la propriété sprite de l’objet Animation.
-- Syntaxe Lingo
imageObjet3d = _movie.sprite["saule"]
// Syntaxe JavaScript
var imageObjet3d = _movie.sprite["saule"];
• Utilisez la propriété sprite de l’objet Piste d’images-objets.
-- Syntaxe Lingo
imageObjet3d = channel(3).sprite
// Syntaxe JavaScript
var imageObjet3d = channel(3).sprite;
Résumé des méthodes pour l’objet Image-objet
Méthode
addCamera
cameraCount()
deleteCamera
Résumé des propriétés pour l’objet Image-objet
Propriété
antiAliasingEnabled
backColor
camera
directToStage
Voir aussi
Caméra, Acteur
158
Chapitre 8 : Objets 3D
Lumière
Représente une lumière dans un monde en 3D.
Les lumières sont utilisées pour éclairer un monde en 3D. Sans les lumières, on ne peut pas voir
les objets de ce monde.
Vous pouvez créer une référence à une lumière à l’aide de la propriété light de l’objet 3D
Member. La propriété light choisit une lumière à un endroit précis de l’index dans la liste
des lumières. En Lingo, vous pouvez directement utiliser la propriété light de l’objet 3D
Member pour créer une référence. Dans la syntaxe JavaScript, vous devez utiliser la méthode
getPropRef() pour créer une référence.
Dans l’exemple suivant, une référence à la troisième lumière de la « salle d'animation » de l’acteur
3D est créée et affectée à la variable maLumière.
-- Syntaxe Lingo
maLumière = member("salle d’animation").light[3]
// Syntaxe JavaScript
var maLumière = member("salle d’animation").getPropRef("light", 3);
Résumé des propriétés pour l’objet Lumière
Propriété
attenuation
color (lumière)
specular (lumière)
spotAngle
spotDecay
type (lumière)
Voir aussi
Caméra, Groupe, Modèle, Ressource modèle, Mouvement, Matériau, Texture
Matériau
Représente la couleur de la surface d’un modèle.
Vous pouvez dessiner des images à la surface d’un modèle en appliquant une ou plusieurs textures
à chaque matériau.
Vous pouvez créer une référence à un matériau à l’aide de la propriété shader de l’objet 3D
Member. La propriété shader choisit la nuance située à un endroit précis de l’index dans la liste
des matériaux. En Lingo, vous pouvez directement utiliser la propriété shader de l’objet 3D
Member afin de créer une référence. Dans la syntaxe JavaScript, vous devez utiliser la méthode
getPropRef() pour créer une référence.
159
Dans l’exemple suivant, une référence à la deuxième nuance de l’acteur 3D triangle est créée et
affectée à la variable monMatériau.
-- Syntaxe Lingo
monMatériau = member("triangle").shader[2]
// Syntaxe JavaScript
var monMatériau = member("triangle").getPropRef("shader", 2);
Modèle
Représente un objet visible qu’un utilisateur peut voir dans un monde en 3D.
Un modèle utilise une ressource modèle et occupe une orientation et un emplacement précis dans
un monde en 3D. Une ressource modèle est un élément de la géométrie 3D que vous pouvez
utiliser pour dessiner des modèles 3D. Un modèle définit également l’apparence d’une ressource
modèle, telle que les textures et les matériaux qui sont utilisés. Pour plus d’informations sur la
relation entre les modèles et les ressources modèles, veuillez consulter la rubrique Utilisation de
Director dans le panneau d’aide de Director.
Vous pouvez créer une référence à un modèle à l’aide de la propriété model de l’objet 3D Member.
La propriété model choisit un modèle situé à un endroit précis de l’index dans la liste des modèles.
En Lingo, vous pouvez directement utiliser la propriété model de l’objet 3D Member afin de créer
une référence. Dans la syntaxe JavaScript, vous devez utiliser la méthode getPropRef() pour
créer une référence.
Dans l’exemple suivant, une référence au deuxième modèle de l’acteur 3D Transportation est
créée et affectée à la variable monModèle.
-- Syntaxe Lingo
monModèle = member("Transportation").model[2]
// Syntaxe JavaScript
var monModèle = member("Transportation").getPropRef("model", 2);
Un modèle comprend également des modificateurs qui contrôlent le rendu du modèle et le
comportement de l’animation. Les modificateurs sont liés au modèle à l’aide de la méthode
addModifier(). Une fois un modificateur lié à un modèle, ses propriétés peuvent être
manipulées par le script.
Les modificateurs suivants sont disponibles avec un modèle :
160
Modificateur
Description
BonesPlayer
Modifie la forme d’un modèle après l’exécution.
Collision
Permet à un modèle d’être prévenu en cas de collision et d’agir en
fonction.
Inker
Ajoute une silhouette, des plis et des bords à un modèle existant.
KeyframePlayer
Modifie les propriétés transform du modèle après l’exécution.
LOD
Permet de contrôler le nombre de polygones utilisés par modèle
pour le rendu d’un modèle, en fonction de la distance du modèle par
rapport à la caméra.
Le modificateur LOD est également disponible pour les ressources
modèles.
Chapitre 8 : Objets 3D
Modificateur
Description
MeshDeform
Modifie la forme d’une ressource modèle existante lors de
l’exécution.
SDS
Le rendu du modèle comporte des détails géométriques
supplémentaires dans la zone du modèle que la caméra est en train
de fixer.
Toon
Modifie le rendu du modèle afin d’imiter le style des bandes
dessinées.
Pour plus d’informations sur les méthodes, propriétés et événements disponibles pour les
modificateurs, veuillez consulter la rubrique Utilisation de Director dans le panneau d’aide de
Director.
Mouvement
Représente une séquence d’animation prédéfinie qui implique le mouvement d’un modèle ou
d’un composant d’un modèle.
Vous pouvez définir les mouvements individuels de manière à ce qu'ils se lisent d'eux-mêmes ou
avec d'autres mouvements. Par exemple, une course peut être combinée à un saut afin de simuler
le saut d’une personne au-dessus d’une flaque d'eau.
Vous pouvez créer une référence à un mouvement à l’aide de la propriété motion de l’objet 3D
Member. La propriété motion choisit le mouvement situé à un endroit précis de l’index dans la
liste des mouvements. En Lingo, vous pouvez utiliser directement la propriété motion de l’objet
3D Member pour créer une référence. Dans la syntaxe JavaScript, vous devez utiliser la méthode
getPropRef() pour créer une référence.
Dans l’exemple suivant, une référence au quatrième mouvement de l’acteur 3D athlète est créée
et affectée à la variable monMouvement.
-- Syntaxe Lingo
monMouvement = member("athlète").motion[4]
// Syntaxe JavaScript
var monMouvement = member("athlète").getPropRef("motion", 4);
Ressource modèle
Représente un élément de la géométrie 3D utilisé pour dessiner des modèles 3D.
Un modèle utilise une ressource modèle et occupe une orientation et emplacement précis dans
un monde en 3D. Un modèle définit également l’apparence d’une ressource modèle, telle que
les textures et matériaux utilisés.
Pour plus d’informations sur la relation entre les modèles et les ressources modèles, ainsi que sur
l’utilisation des modèles et des ressources modèles, veuillez consulter la rubrique Utilisation de
Director dans le panneau d’aide de Director.
161
Vous pouvez créer une référence à une ressource modèle à l’aide de la propriété modelResource
de l’objet 3D Member. La propriété modelResource choisit la ressource modèle située à un
endroit précis de l’index dans la liste des ressources modèles. En Lingo, vous pouvez utiliser
directement la propriété modelResource de l’objet 3D Member pour créer une référence. Dans
la syntaxe JavaScript, vous devez utiliser la méthode getPropRef() pour créer une référence.
Dans l'exemple suivant, une référence à la deuxième ressource modèle de l’acteur 3D roues est
créée et affectée à la variable maRessourceModèle.
-- Syntaxe Lingo
maRessourceModèle = member("roues").modelResource[2]
// Syntaxe JavaScript
var maRessourceModèle = member("roues").getPropRef("modelResource", 2);
Services de rendu
Représente l’objet global qui comprend une liste de propriétés dont les valeurs influencent
les propriétés communes de rendu de tous les acteurs et images-objets 3D.
Vous pouvez accéder à l’objet services de rendu global à l’aide de la fonction
getRendererServices() de haut niveau.
Dans l’exemple suivant, on accède à la propriété de rendu de l’objet services de rendu global et
la valeur est affectée à la variable monRendu.
-- Syntaxe Lingo
monRendu = getRendererServices().renderer
// Syntaxe JavaScript
var monRendu = getRendererServices().renderer;
Résumé des méthodes pour l’objet Services de rendu
Méthode
getHardwareInfo()
Résumé des propriétés pour l’objet Services de rendu
Propriété
modifiers
primitives
renderer
rendererDeviceList
textureRenderFormat
Voir aussi
Acteur, Image-objet
162
Chapitre 8 : Objets 3D
Texture
Représente la texture appliquée à un matériau.
Vous pouvez créer une référence à une texture à l’aide de la propriété texture de l’objet 3D
Member. La propriété texture choisit la texture située à un endroit précis de l’index dans la liste
des textures. En Lingo, vous pouvez utiliser directement la propriété texture de l’objet 3D
Member afin de créer une référence. Dans la syntaxe JavaScript, vous devez utiliser la méthode
getPropRef() pour créer une référence.
Dans l’exemple suivant, une référence à la première texture de l’acteur 3D triangle est créée et
affectée à la variable maTexture.
-- Syntaxe Lingo
maTexture = member("triangle").texture[1]
// Syntaxe JavaScript
var maTexture = member("triangle").getPropRef("texture", 1);
163
164
Chapitre 8 : Objets 3D
CHAPITRE 9
Constantes
Cette section propose une liste alphabétique de toutes les constantes disponibles dans
Macromedia Director MX 2004.
La plupart de ces constantes ne s’appliquent qu’à Lingo. La syntaxe JavaScript contient des
constantes qui sont similaires aux constantes Lingo énumérées ici ; nous vous fournirons donc
des explications sur l’usage de la Syntaxe JavaScript ainsi que des exemples pour vous aider à
associer les fonctionnalités des constantes Lingo à leurs équivalents les plus proches dans la
syntaxe JavaScript. Pour plus d’informations sur les constantes de la syntaxe JavaScript, consultez
les nombreuses autres ressources consacrées à ce sujet.
" (chaîne)
Utilisation
-- Syntaxe Lingo
"
// Syntaxe JavaScript
"
Description
Constante de chaîne ; lorsqu’ils sont utilisés avant et après une chaîne, les guillemets droits
signifient que la chaîne est une chaîne littérale, et non une variable, une valeur numérique ou un
élément de script. Les guillemets droits doivent toujours encadrer les noms littéraux des acteurs,
des distributions, des fenêtres et des fichiers externes.
Exemple
L’instruction suivante utilise les guillemets droits pour indiquer que la chaîne « San Francisco »
est une chaîne littérale, le nom d’un acteur :
-- Syntaxe Lingo
put member("San Francisco").loaded
// Syntaxe JavaScript
put(member("San Francisco").loaded);
Voir aussi
QUOTE
165
BACKSPACE
Utilisation
-- Syntaxe Lingo
BACKSPACE
// Syntaxe JavaScript
51 // value of _key.keyCode
Description
Constante; représente la touche Suppression/Retour Arrière. Cette touche est appelée Retour
Arrière sur un clavier Windows et Suppr sur un clavier Macintosh.
Exemple
Le gestionnaire on keyDown suivant vérifie si l’utilisateur a appuyé sur la touche Retour Arrière et,
le cas échéant, appelle le gestionnaire effacerEntrée:
-- Syntaxe Lingo
on keyDown
if (_key.key = BACKSPACE) then effacerEntrée
_movie.stopEvent()
end keyDown
// Syntaxe JavaScript
function keyDown() {
if (_key.keyCode == 51) {
clearEntry();
_movie.stopEvent();
}
}
EMPTY
Utilisation
-- Syntaxe Lingo
VIDES
// Syntaxe JavaScript
""
Description
Constante de caractères ; représente la chaîne vide, "", une chaîne sans caractères.
Exemple
L’instruction suivante efface tous les caractères de l’acteur champ Notice en donnant au champ la
valeur EMPTY :
-- Syntaxe Lingo
member("Notice").text = EMPTY
// Syntaxe JavaScript
member("Notice").text = "";
166
Chapitre 9 : Constantes
ENTER
Utilisation
-- Syntaxe Lingo
ENTER
// Syntaxe JavaScript
3 // value of _key.keyCode
Description
Constante de caractères ; représente la touche Entrée (Windows) ou Retour (Macintosh) pour un
retour de chariot.
Sur les claviers PC, l’élément ENTER ne se rapporte qu’à la touche Entrée du clavier numérique.
Pour une animation lue comme applet, utilisez RETURN pour spécifier la touche Retour sous
Windows et la touche Entrée sur le Macintosh.
Exemple
Cette instruction vérifie si la touche Entrée est enfoncée et, le cas échéant, envoie la tête de lecture
sur l’image ajouterLaSomme :
-- Syntaxe Lingo
on keyDown
if (_key.key = ENTER) then _movie.go("ajouterLaSomme")
end
// Syntaxe JavaScript
function keyDown() {
if (_key.keyCode == 3) {
_movie.go("ajouterLaSomme");
}
}
Voir aussi
RETURN (constante)
FALSE
Utilisation
-- Syntaxe Lingo
FALSE
// Syntaxe JavaScript
FALSE
Description
Constante ; s’applique à une expression qui est logiquement fausseFALSE, telle que 2 > 3. Lorsque
traitée comme un nombre, FALSE a la valeur numérique de 0. Inversement, 0 est traité comme
FALSE.
167
Exemple
L’instruction suivante désactive la propriété soundEnabled en lui donnant la valeur FALSE :
-- Syntaxe Lingo
_sound.soundEnabled = FALSE
// Syntaxe JavaScript
_sound.soundEnabled = false;
Voir aussi
if, not, TRUE
PI
Utilisation
-- Syntaxe Lingo
PI
// Syntaxe JavaScript
Math.PI
Description
Constante ; renvoie la valeur de pi (π), le rapport de la circonférence d’un cercle et de son
diamètre, sous la forme d’un nombre à virgule flottante. La valeur est arrondie au nombre de
décimales défini par la propriété floatPrecision.
Exemple
L’instruction suivante utilise la constante PI dans une équation destinée à calculer la surface d’un
cercle :
-- Syntaxe Lingo
vRadius = 3
vArea = PI*power(vRadius, 2)
trace(vArea) – résultats dans 28.2743
// Syntaxe JavaScript
var vRadius = 3;
vArea = Math.PI*Math.pow(vRadius, 2);
trace(vArea); // résultats dans 28.274333882308138
QUOTE
Utilisation
-- Syntaxe Lingo
QUOTE
// Syntaxe JavaScript
\"
Description
Constante; représente le caractère guillemet dans une chaîne puisque ce caractère est lui-même
utilisé dans les scripts Lingo pour délimiter les chaînes.
168
Chapitre 9 : Constantes
Exemple
L’instruction suivante insère des guillemets dans une chaîne :
-- Syntaxe Lingo
put("Comment épelez-vous" && QUOTE & "Macromedia" & QUOTE & "?")
// Syntaxe JavaScript
put("Comment épelez-vous \"Macromedia\"?");
Le résultat est un jeu de guillemets placés autour du mot Macromedia :
Comment épelez-vous "Macromedia" ?
RETURN (constante)
Utilisation
-- Syntaxe Lingo
RETURN
// Syntaxe JavaScript
36 // value of _key.keyCode
\n // lorsqu’il est utilisé dans une chaîne
Description
Constante ; représente un retour de chariot.
Exemple
L’instruction suivante reprend la lecture d’une animation en pause lorsque l’utilisateur appuie sur
le retour de chariot :
-- Syntaxe Lingo
if (_key.key = RETURN) then _movie.go(_movie.frame + 1)
// Syntaxe JavaScript
if (_key.keyCode == 36) {
_movie.go(_movie.frame+1);
}
L’instruction suivante utilise la constante de caractère RETURN pour insérer un retour de chariot
entre deux lignes d’un message d’alerte :
-- Syntaxe Lingo
_player.alert("Dernière ligne du fichier." & RETURN & "Cliquer sur OK pour
fermer.")
// Syntaxe JavaScript
_player.alert("Dernière ligne du fichier.\nCliquez sur OK pour fermer");
Sous Windows, vous devez normalement placer un caractère additionnel de saut de ligne à la fin
de chaque ligne. L’instruction suivante crée une chaîne de deux caractères nommée CRLF
fournissant le saut de ligne additionnel :
CRLF = RETURN & numToChar(10)
169
SPACE
Utilisation
-- Syntaxe Lingo
SPACE
// Syntaxe JavaScript
49 // value of _key.keyCode
Description
Constante ; valeur en lecture seule représentant une espace.
Exemple
L’instruction suivante affiche Age de bronze dans la fenêtre Messages :
-- Syntaxe Lingo
put("Age"&SPACE&"de"&SPACE&"bronze")
TAB
Utilisation
-- Syntaxe Lingo
TAB
// Syntaxe JavaScript
48 // value of _key.keyCode
Description
Constante ; représente la touche Tab.
Exemple
L’instruction suivante vérifie si le caractère saisi est le caractère de tabulation et, le cas échéant,
appelle le gestionnaire champSuivant :
-- Syntaxe Lingo
if (_key.key = TAB) then champSuivant
// Syntaxe JavaScript
if (_key.keyCode == 48) {
doNextField();
}
Ces instructions font avancer ou reculer la tête de lecture selon que l’utilisateur appuie sur les
touches Tab ou Majuscule-Tab :
-- Syntaxe Lingo
if (_key.key = TAB) then
if (_key.shiftDown) then
_movie.go(_movie.frame - 1)
else
_movie.go(_movie.frame +1)
end if
end if
170
Chapitre 9 : Constantes
// Syntaxe JavaScript
if (_key.keyCode == 48) {
if (_key.shiftDown) {
_movie.go(_movie.frame-1);
} else {
_movie.go(_movie.frame+1);
}
}
Voir aussi
BACKSPACE, EMPTY, RETURN (constante)
TRUE
Utilisation
-- Syntaxe Lingo
TRUE
// Syntaxe JavaScript
true
Description
Constante ; représente la valeur d’une expression logique, telle que 2 < 3. Elle est traditionnellement une valeur numérique de 1, mais tout chiffre entier non nul donne TRUE dans une comparaison.
Exemple
L’instruction suivante active la propriété soundEnabled en lui donnant la valeur TRUE :
-- Syntaxe Lingo
_sound.soundEnabled = TRUE
// Syntaxe JavaScript
_sound.soundEnabled = true;
Voir aussi
FALSE, if
171
VOID
Utilisation
-- Syntaxe Lingo
VOID
// Syntaxe JavaScript
null
Description
Constante ; indique la valeur VOID.
Exemple
L’instruction suivante vérifie si la variable variableCourante a la valeur VOID :
-- Syntaxe Lingo
if variableCourante = VOID then
put("Cette variable n’a aucune valeur")
end if
// Syntaxe JavaScript
if (currentVariable == null) {
put("Cette variable n’a aucune valeur");
}
Voir aussi
voidP()
172
Chapitre 9 : Constantes
CHAPITRE 10
Evénements et messages
Cette section propose une liste alphabétique de tous les événements et messages disponibles dans
Macromedia Director MX 2004.
on activateApplication
Utilisation
-- Syntaxe Lingo
on activateApplication
instruction(s)
end
// Syntaxe JavaScript
function activateApplication() {
instruction(s);
}
Description
Gestionnaire intégré ; exécuté lorsque la projection passe au premier plan. Ce gestionnaire est
pratique lorsqu’une projection est exécutée dans une fenêtre et que l’utilisateur l’envoie à l’arrièreplan pour travailler dans une autre application. Le gestionnaire est exécuté lorsque la projection
repasse au premier plan. Toutes les MIAW exécutées dans la projection peuvent également
utiliser ce gestionnaire.
En cours de programmation, ce gestionnaire n’est appelé que lorsque l’option Animer en arrièreplan est activée dans les préférences générales.
Sous Windows, ce gestionnaire n’est pas appelé lorsque la projection n’est que réduite et
qu’aucune application n’est passée au premier plan.
Exemple
Le gestionnaire suivant lit un son à chaque fois que l’utilisateur ramène la projection au premier
plan :
-- Syntaxe Lingo
on activateApplication
sound(1).queue(member("sonDouverture"))
sound(1).play()
end
173
// Syntaxe JavaScript
function activateApplication() {
sound(1).queue(member("sonDouverture"));
sound(1).play();
}
Voir aussi
on deactivateApplication, activeCastLib, on deactivateWindow
on activateWindow
Utilisation
-- Syntaxe Lingo
on activateWindow
instruction(s)
end
// Syntaxe JavaScript
function activateWindow()
instruction(s);
}
Description
Message système et gestionnaire d’événements ; contient des instructions exécutées dans une
animation lorsque l’utilisateur clique sur la fenêtre inactive et que la fenêtre passe au premier plan.
Vous pouvez utiliser un gestionnaire on activateWindow dans un script que vous souhaitez
exécuter à chaque fois que l’animation devient active.
Le fait de cliquer sur l’animation principale (la scène principale) ne génère pas de gestionnaire on
activateWindow.
Exemple
Ce gestionnaire lit le son Hourra lorsque la fenêtre dans laquelle l’animation est exécutée devient
active :
-- Syntaxe Lingo
on activateWindow
sound(2).play(member("Hourra"))
end
// Syntaxe JavaScript
function activateWindow() {
sound(2).play(member("Hourra"));
}
Voir aussi
activeWindow, close(), on deactivateWindow, frontWindow, on moveWindow, open()
(fenêtre)
174
Chapitre 10 : Evénements et messages
on beginSprite
Utilisation
-- Syntaxe Lingo
on beginSprite
instruction(s)
end
// Syntaxe JavaScript
function beginSprite() {
instruction(s);
}
Description
Message système et gestionnaire d’événement ; contient des instructions exécutées lorsque la tête
de lecture passe à une image contenant une image-objet jusqu’alors inconnue. A l’instar de
endSprite, cet événement est généré une seule fois, même si la tête de lecture effectue une boucle
sur une image, étant donné que le déclencheur est une image-objet que la tête de lecture n’avait
pas encore rencontrée. L’événement est généré avant prepareFrame.
Director crée des instances de tout script de comportement lié à l’image-objet lorsque le message
beginSprite est envoyé.
La référence d’objet me est transmise à cet événement s’il est utilisé dans un comportement.
Le message est envoyé aux comportements et aux scripts d’images.
Si une image-objet commence à la première image lue dans le cadre de l’animation, le message
beginSprite est envoyé après le message prepareMovie mais avant les messages prepareFrame
et startMovie.
Remarque : N’oubliez pas que certaines propriétés d’image-objet telles que rect ne seront peut-être
pas accessibles dans un gestionnaire beginSprite. En effet, le système doit calculer la propriété, ce
qui ne peut se faire tant que l’image-objet n’a pas été dessinée.
Les commandes go, play et updateStage sont désactivées dans un gestionnaire
on beginSprite.
Exemple
Le gestionnaire suivant lit l’acteur Georges Brassens lorsque l’image-objet commence :
-- Syntaxe Lingo
on beginSprite me
sound(1).play(member("Georges Brassens"))
end
// Syntaxe JavaScript
function beginSprite() {
sound(1).play(member("Georges Brassens"));
}
Voir aussi
on endSprite, on prepareFrame, scriptInstanceList
175
on closeWindow
Utilisation
-- Syntaxe Lingo
on closeWindow
instruction(s)
end
// Syntaxe JavaScript
function closeWindow() {
instruction(s);
}
Description
Message système et gestionnaire d’événements ; contient les instructions exécutées lorsque
l’utilisateur ferme la fenêtre d’une animation en cliquant sur sa case de fermeture.
Le gestionnaire on closeWindow est un bon endroit pour placer les commandes que vous
souhaitez exécuter à chaque fermeture de la fenêtre de l’animation.
Exemple
Le gestionnaire suivant transmet à Director la commande forget pour qu’il libère la fenêtre
courante de la mémoire, lorsque l’utilisateur ferme la fenêtre dans laquelle l’animation est en
cours de lecture :
-- Syntaxe Lingo
on closeWindow
-- opérations de maintenance standard
window(1).forget()
end
// Syntaxe JavaScript
function closeWindow() {
// opérations de maintenance standard
window(1).forget();
}
on cuePassed
Utilisation
-- Syntaxe Lingo
on cuePassed({me,} IDdePiste, numéroDeRepère,nomDeRepère)
instruction(s)
end
// Syntaxe JavaScript
function cuePassed(IDdePiste,numéroDeRepère,nomDeRepère) {
instruction(s);
}
Description
Message système et gestionnaire d’événements ; contient des instructions exécutées à chaque fois
qu’un son ou qu’une image-objet passe par un point de repère sur son média.
176
Chapitre 10 : Evénements et messages
•
•
•
•
Le paramètre facultatif me représente la valeur réfDinstanceDeScript du script appelé.
Vous devez inclure ce paramètre si vous utilisez le message dans un comportement. Si vous
omettez ce paramètre, les autres arguments ne seront pas traités correctement.
IDdePiste Le numéro de la piste audio ou d'image-objet spécifique du fichier où le point de
repère a été franchi.
numéroDeRepère Le nombre ordinal du point de repère qui déclenche l’événement dans la
liste des points de repère de l’acteur.
nomDeRepère Le nom du point de repère rencontré.
me
Le message est transmis, dans l’ordre, aux scripts d’image-objet, d’acteur, d’image et d’animation.
Pour qu’elle reçoive l’événement, l’image-objet doit être la source du son, telle qu’une animation
QuickTime ou un acteur SWA. Utilisez la propriété isPastCuePoint pour vérifier les points de
repère dans les comportements relatifs aux images-objets qui ne génèrent aucun son.
Exemple
Le gestionnaire suivant placé dans un script d’animation ou d’image affiche tous les points de
repère pour la piste audio 1 dans la fenêtre Messages :
-- Syntaxe Lingo
on cuePassed piste, numéro, nom
if (channel = #Sound1) then
put("Le point de repère" && number && "intitulé" && name && "est survenu
dans le son 1")
end if
end
// Syntaxe JavaScript
function cuePassed(piste, numéro, nom) {
if (channel == symbol("Son1")) {
put("Le point de repère" + number + "intitulé" + name + "est survenu dans
le son 1");
}
}
Voir aussi
scriptInstanceList, cuePointNames, cuePointTimes, isPastCuePoint()
177
on deactivateApplication
Utilisation
-- Syntaxe Lingo
on deactivateApplication
instruction(s)
end
// Syntaxe JavaScript
function deactivateApplication() {
instruction(s);
}
Description
Gestionnaire intégré ; exécuté lorsque la projection passe à l’arrière-plan. Ce gestionnaire est
pratique lorsqu’une projection est exécutée dans une fenêtre et que l’utilisateur l’envoie à l’arrièreplan pour travailler dans une autre application. Toutes les MIAW exécutées dans la projection
peuvent également utiliser ce gestionnaire.
En cours de programmation, ce gestionnaire n’est appelé que lorsque l’option Animer en arrièreplan est activée dans les préférences générales.
Sous Windows, ce gestionnaire n’est pas appelé lorsque la projection n’est que réduite et
qu’aucune application n’est passée au premier plan.
Exemple
Le gestionnaire suivant lit un son à chaque fois que l’utilisateur envoie la projection à l’arrièreplan :
-- Syntaxe Lingo
on deactivateApplication
sound(1).queue(member("sonDeFermeture"))
sound(1).play()
end
// Syntaxe JavaScript
function deactivateApplication() {
sound(1).queue(member("sonDeFermeture"));
sound(1).play();
}
Voir aussi
add (texture 3D), activeCastLib, on deactivateWindow
178
Chapitre 10 : Evénements et messages
on deactivateWindow
Utilisation
-- Syntaxe Lingo
on deactivateWindow
instruction(s)
end
// Syntaxe JavaScript
function deactivateWindow() {
instruction(s);
}
Description
Message système et gestionnaire d’événements ; contient des instructions qui sont exécutées
lorsque la fenêtre dans laquelle l’animation est lue, est désactivée. Le gestionnaire d’événements
on deactivate est un bon endroit pour placer le code que vous souhaitez exécuter dès la
désactivation d’une fenêtre.
Exemple
Le gestionnaire suivant lit le son Ronflement lorsque la fenêtre dans laquelle l’animation est lue,
est désactivée :
-- Syntaxe Lingo
on deactivateWindow
sound(2).play(member("Ronflement"))
end
// Syntaxe JavaScript
function deactivateWindow() {
sound(2).play(member("Ronflement"));
}
on DVDeventNotification
Utilisation
-- Syntaxe Lingo
on DVDeventNotification eventArg1 {, eventArg2} {, eventArg3}
instruction(s)
}
// Syntaxe JavaScript
function DVDeventNotification(eventArg1 {, eventArg2} {, eventArg3}) {
instruction(s);
}
Description
Gestionnaire d’événements DVD intégré. Contient des instructions exécutées en réponse aux
événements qui se produisent durant la lecture d’un DVD.
Ce gestionnaire sert à gérer tous les événements DVD. L’événement qui se produit est toujours
transmis en tant que premier paramètre, eventArg1. Certains événements contiennent des
informations qui sont transmises en tant que second paramètre, eventArg2, et, dans certains cas,
en tant que troisième paramètre, eventArg3.
179
Le tableau suivant affiche les événements qui peuvent se produire durant la lecture d’un DVD.
180
Evénements
Description
angleChange
Se produit lorsque le nombre d’angles disponibles ou le nombre d’angles
de l’utilisateur courant a changé.
Les informations supplémentaires suivantes sont transmises à
DVDeventNotification lorsque cet événement se produit :
• eventArg2 - Un nombre entier ou une adresse indiquant le nombre
d’angles disponibles. Lorsque le nombre d’angles disponibles est 1, cela
signifie que la vidéo courante n’est pas multi angle.
• eventArg3 - Un nombre entier ou une adresse indiquant le nombre
d’angles de l’utilisateur courant.
audioStreamChange
Se produit lorsque le numéro de flux audio de l’utilisateur courant passe au
titre principal.
Les informations supplémentaires suivantes sont transmises à
DVDeventNotification lorsque cet événement se produit :
• eventArg2 - Un nombre entier ou une adresse indiquant le numéro du flux
audio du nouvel utilisateur. Stream 0xFFFFFFFF indique qu’aucun flux n’a
été sélectionné.
buttonChange
Se produit lorsque le nombre de boutons disponibles ou le numéro du
bouton actuellement sélectionné a changé.
Les informations supplémentaires suivantes sont transmises à
DVDeventNotification lorsque cet événement se produit :
• eventArg2 - Un nombre entier ou une adresse indiquant le nombre de
boutons disponibles.
• eventArg3 - Un nombre entier ou une adresse indiquant le numéro du
bouton actuellement sélectionné. Le numéro 0 indique qu’aucun bouton
n’a été sélectionné.
chapterAutoStop
Se produit lorsque la lecture s’arrête suite à un appel à
chapterPlayAutoStop().
chapterStart
Se produit lorsque de la lecture d’un nouveau programme dans le domaine
title commence.
Les informations supplémentaires suivantes sont transmises à
DVDeventNotification lorsque cet événement se produit :
• eventArg2 - Un nombre entier ou une adresse indiquant le numéro du
nouveau chapitre.
diskEjected
Se produit lorsqu’un DVD est éjecté.
diskInserted
Se produit lorsqu’un DVD est inséré.
Chapitre 10 : Evénements et messages
Evénements
Description
domainChange
Se produit lorsque le domaine du lecteur DVD change.
Les informations supplémentaires suivantes sont transmises à
DVDeventNotification lorsque cet événement se produit :
• eventArg2. Une valeur indiquant le nouveau domaine. Le nouveau
domaine sera l’une des valeurs suivantes.
firstPlay. Le Navigateur DVD effectue une initialisation par défaut
d’un DVD.
videoManagerMenu. Le Navigateur DVD affiche des menus pour la
totalité du disque.
videoTitleSetMenu. Le Navigateur DVD affiche des menus pour la
série de titres en cours.
title. Le Navigateur DVD affiche le titre courant.
stop. Le Navigateur DVD est dans le domaine stop.
■
■
■
■
■
error
Se produit lorsqu’une condition d’erreur DVD a lieu.
Les informations supplémentaires suivantes sont transmises à
DVDeventNotification lorsque cet événement se produit :
• eventArg2. Une valeur indiquant une condition d’erreur. La condition
d’erreur sera l’une des valeurs suivantes.
copyProtectFail. Echec de l’échange de clé pour la protection de
copie DVD. La lecture est interrompue.
invalidDVD1_0Disc. Le DVD créé ne correspond pas aux
spécifications de la version 1.x. La lecture est interrompue.
invalidDiscRegion. Le DVD ne peut pas être lu parce qu’il n’est pas
compatible avec la région système.
lowParentalLevel. Le niveau parental du lecteur est inférieur au niveau
parental le plus bas qui existe dans le contenu du DVD. La lecture est
interrompue.
macrovisionFail. Echec de la distribution Macrovision. Lecture
interrompue.
incompatibleSystemAndDecoderRegions. Aucun disque ne peut être lu
car la région système ne correspond pas à la région du décodeur.
incompatibleDiscAndDecoderRegions. Le DVD ne peut pas être lu
parce qu’il n’est pas compatible avec la région du décodeur.
unexpected. Une erreur inattendue s’est produite ; il est possible que le
contenu n’ait pas été créé correctement. La lecture est interrompue.
■
■
■
■
■
■
■
■
karaokeMode
A lieu lorsque le mode audio est réglé sur karaoke.
noFirstPlayChain
A lieu lorsque le DVD ne possède pas de FP_PGC (First Play Program
Chain) et que le Navigateur DVD ne charge pas de PGC et ne s’exécute
pas automatiquement.
parentalLevelChange
A lieu lorsque le niveau parental du contenu créé est sur le point de
changer.
Les informations supplémentaires suivantes sont transmises à
DVDeventNotification lorsque cet événement se produit :
• eventArg2. Nombre entier indiquant le nouveau niveau parental défini
dans le lecteur.
181
Evénements
Description
playbackStopped
A lieu lorsque la lecture est interrompue. Le Navigateur DVD a terminé la
lecture du PGC et n’a trouvé aucune instruction concernant la poursuite de
la lecture.
playPeriodAutoStop
rateChange
A lieu lorsque la cadence de lecture change.
Les informations supplémentaires suivantes sont transmises à
DVDeventNotification lorsque cet événement se produit :
• eventArg2. Nombre entier indiquant la nouvelle cadence de lecture.
Une valeur inférieure à (<) 0 indique un mode de lecture inverse. Une
valeur supérieure à (>) 0 indique un mode de lecture avant. Cette valeur
correspond à la cadence de lecture multipliée par 10 000.
stillOff
A lieu à la fin d’une image fixe (PGC, cellule ou VOBU)
stillOn
A lieu à la fin d’une image fixe (PGC, cellule ou VOBU)
Les informations supplémentaires suivantes sont transmises à
DVDeventNotification lorsque cet événement se produit :
• eventArg2 - Une valeur booléenne indiquant la disponibilité des boutons.
Zéro (0) indique que les boutons sont disponibles. Un (1) indique
qu’aucun bouton n’est disponible.
• eventArg3 - Un nombre entier ou une adresse indiquant la durée de
l’image fixe en secondes. 0xFFFFFFFF indique une image fixe infinie.
titleChange
A lieu lorsque le numéro du titre en cours change.
Les informations supplémentaires suivantes sont transmises à
DVDeventNotification lorsque cet événement se produit :
• eventArg2 - Un nombre entier ou une adresse indiquant le nouveau
numéro du titre.
UOPchange
A lieu lorsque l’un des mécanismes de lecture ou de recherche disponibles
a changé.
Les informations supplémentaires suivantes sont transmises à
DVDeventNotification lorsque cet événement se produit :
• eventArg2 - Un nombre entier ou une adresse indiquant les mécanismes
de lecture ou de recherche explicitement désactivés par le DVD.
warning
A lieu lorsqu’une condition d’avertissement DVD est rencontrée.
Les informations supplémentaires suivantes sont transmises à
DVDeventNotification lorsque cet événement se produit :
• eventArg2 - Un nombre entier ou une adresse indiquant la condition
d’avertissement. La condition d’avertissement sera l’une des valeurs
suivantes :
invalidDVD1_0Disc. Le DVD n’a pas été correctement créé. La lecture
peut continuer, mais un comportement inattendu risque de se produire.
formatNotSupported. Un décodeur ne supporte pas le format courant.
La lecture d’un flux risque de ne pas fonctionner.
illegalNavCommand. Le processeur de commande de navigation DVD
interne a essayé de traiter une commande illégale.
open.
seek.
read.
■
■
■
■
■
■
182
Chapitre 10 : Evénements et messages
Voir aussi
DVD
on endSprite
Utilisation
-- Syntaxe Lingo
on endSprite
instruction(s)
end
// Syntaxe JavaScript
function endSprite() {
instruction(s);
}
Description
Message système et gestionnaire d’événement ; contient des éléments Lingo exécutés lorsque la
tête de lecture sort d’une image-objet et passe à une image dans laquelle l’image-objet n’existe pas.
Il est généré après exitFrame.
Placez les gestionnaires on endSprite dans un script de comportement.
Director détruit les instances des scripts de comportement liés à l’image-objet immédiatement
après l’événement endSprite.
Le gestionnaire d’événement reçoit la référence de comportement ou de script d’image me
lorsqu’il est utilisé dans un comportement. Ce message endSprite est envoyé après le message
exitFrame si la tête de lecture continue jusqu’à la fin de l’image.
Les méthodes go(), play() et updateStage() sont désactivées dans un gestionnaire on
endSprite.
Exemple
Le gestionnaire suivant est exécuté lorsque la tête de lecture quitte une image-objet :
-- Syntaxe Lingo
on endSprite me
-- nettoyage
gNombreDeRequins = gNombreDeRequins - 1
sound(5).stop()
end
// Syntaxe JavaScript
function endSprite() {
// nettoyage
gNombreDeRequins--;
sound(5).stop();
}
Voir aussi
on beginSprite, on exitFrame
183
on enterFrame
Utilisation
-- Syntaxe Lingo
on enterFrame
instruction(s)
end
// Syntaxe JavaScript
function enterFrame() {
instruction(s);
}
Description
Message système et gestionnaire d’événement ; contient des instructions exécutées à chaque fois
que la tête de lecture entre dans l’image.
Placez les gestionnaires on enterFrame dans un script de comportement, d’image ou
d’animation, comme suit :
• Pour affecter le gestionnaire à une seule image-objet, placez-le dans un comportement lié
à l’image-objet.
• Pour affecter le gestionnaire à une seule image, placez-le dans le script de l’image.
• Pour affecter le gestionnaire à chaque image (à moins que vous n’indiquiez explicitement
le contraire), placez le gestionnaire on enterFrame dans un script d’animation. Le gestionnaire est exécuté à chaque fois que la tête de lecture entre dans une image à moins que
le script d’image n’ait son propre gestionnaire. Si le script d’image a son propre gestionnaire,
le gestionnaire on enterFrame du script d’image prend priorité sur le gestionnaire
on enterFrame du script d’animation.
L’ordre des événements d’images est stepFrame, prepareFrame, enterFrame et exitFrame.
Cet événement reçoit la référence d’objet me lorsqu’il est utilisé dans un comportement.
Exemple
Le gestionnaire suivant désactive la condition d’asservissement pour les images 1 à 5 à chaque fois
que la tête de lecture entre dans l’image :
-- Syntaxe Lingo
on enterFrame
repeat with i = 1 to 5
_movie.puppetSprite(i, FALSE)
end repeat
end
// Syntaxe JavaScript
function enterFrame() {
for (i=1;i<=5;i++) {
_movie.puppetSprite(i, false);
}
}
184
Chapitre 10 : Evénements et messages
on EvalScript
Utilisation
-- Syntaxe Lingo
on EvalScriptunParamètre
instruction(s)
end
// Syntaxe JavaScript
function EvalScript(unParamètre) {
instruction(s);
}
Description
Message système et gestionnaire d’événement ; dans une animation à contenu Macromedia
Shockwave, renferme des instructions exécutées lorsque le gestionnaire reçoit un message
EvalScript d’un navigateur. Le paramètre est une chaîne reçue du navigateur web.
• Le message EvalScript peut inclure une chaîne que Director peut interpréter comme une
•
instruction Lingo. Lingo n’accepte pas de chaînes imbriquées. Si le gestionnaire que vous
appelez attend une chaîne comme paramètre, passez le paramètre comme symbole.
Le gestionnaire on EvalScript est appelé par la méthode JavaScript ou VBScript
EvalScript() dans un navigateur web.
Seuls les comportements devant être contrôlés par les utilisateurs doivent être inclus dans
pour des raisons de sécurité, ne donnez pas d’accès complet à tous les
comportements.
on EvalScript;
Remarque : Si vous placez un mot-clé return à la fin de votre gestionnaire EvalScript, la valeur
renvoyée peut être utilisée par JavaScript dans le navigateur web.
Exemple
L’exemple suivant indique comment faire passer la tête de lecture à une image spécifique en
fonction de l’image passée comme paramètre :
-- Syntaxe Lingo
on EvalScript unParamètre
_movie.go(unParamètre)
end
// Syntaxe JavaScript
function EvalScript(unParamètre) {
_movie.go(unParamètre);
}
Le gestionnaire suivant exécute l’instruction _movie.go(unParamètre) s’il reçoit un message
EvalScript contenant l’argument chien, chat ou arbre :
-- Syntaxe Lingo
on EvalScript unParamètre
case unParamètre of
"chien", "chat", "arbre": _movie.go(unParamètre)
end case
end
185
// Syntaxe JavaScript
function EvalScript(unParamètre) {
switch(unParamètre) {
case "chien", "chat", "arbre": _movie.go(unParamètre);
}
}
Une instruction d’appel possible dans JavaScript serait EvalScript ("chien").
Le gestionnaire suivant prend un argument qui pourrait être un nombre ou un symbole :
-- Syntaxe Lingo
on EvalScript unParamètre
if word 1 of unParamètre = "monGestionnaire" then
_movie.go(unParamètre)
end if
end
// Syntaxe JavaScript
function EvalScript(unParamètre) {
if (unParamètre.indexOf("monGestionnaire",0)) {
_movie.go(unParamètre);
}
}
Le gestionnaire suivant nécessite normalement une chaîne comme argument. L’argument est
reçu comme un symbole, puis converti en chaîne dans le gestionnaire par la fonction string :
-- Syntaxe Lingo
on monGestionnaire unParamètre
_movie.go(chaîne(unParamètre))
end
// Syntaxe JavaScript
fonction monGestionnaire(unParamètre {
_movie.go(unParamètre.toString());
}
Voir aussi
externalEvent(), return (mot-clé)
on exitFrame
Utilisation
-- Syntaxe Lingo
on exitFrame
instruction(s)
end
// Syntaxe JavaScript
function exitFrame() {
instruction(s);
}
Description
Message système et gestionnaire d’événement ; contient des instructions exécutées à chaque fois
que la tête de lecture quitte l’image à laquelle le gestionnaire on exitFrame est lié. Le gestionnaire on exitFrame est pratique pour placer des instructions permettant de réinitialiser des conditions inutiles une fois sorti de l’image.
186
Chapitre 10 : Evénements et messages
Placez les gestionnaires on exitFrame dans des scripts de comportements, d’image ou
d’animation de la façon suivante :
• Pour affecter le gestionnaire à une seule image-objet, placez-le dans un comportement lié
à l’image-objet.
• Pour affecter le gestionnaire à une seule image, placez-le dans le script de l’image.
• Pour affecter le gestionnaire à chaque image (à moins que vous n’indiquiez explicitement le
contraire), placez le gestionnaire dans un script d’animation. Le gestionnaire on exitFrame est
exécuté à chaque fois que la tête de lecture quitte l’image, à moins que le script d’image n’ait
son propre gestionnaire on exitFrame. Le cas échéant, le gestionnaire on exitFrame du
script d’image prend priorité sur celui du script d’animation.
Lorsque utilisé dans un comportement, cet événement reçoit la référence me du script d’imageobjet ou d’image. L’ordre des événements d’image est prepareFrame, enterFrame et exitFrame.
Exemple
Le gestionnaire suivant désactive toutes les conditions d’asservissement lorsque la tête de lecture
quitte l’image :
-- Syntaxe Lingo
on exitFrame me
repeat with i = 48 down to 1
sprite(i).scripted = FALSE
end repeat
end
// Syntaxe JavaScript
function exitFrame() {
for (i=48; i>=1; i--);
sprite(i).scripted = false;
}
}
Le gestionnaire suivant déplace la tête de lecture vers une image spécifiée si la valeur de la variable
globale vTotal dépasse 1 000 lorsque la tête de lecture quitte l’image :
// Syntaxe JavaScript
function exitFrame() {
if (_global.vTotal > 1000) {
_movie.go("Terminé");
}
}
Voir aussi
on enterFrame
187
on getBehaviorDescription
Utilisation
-- Syntaxe Lingo
on getBehaviorDescription
instruction(s)
end
// Syntaxe JavaScript
function getBehaviorDescription() {
instruction(s);
}
Description
Message système et gestionnaire d’événement; contient des instructions renvoyant la chaîne
apparaissant dans le volet de description de l’inspecteur de comportement lorsque le
comportement est sélectionné.
La chaîne de description est facultative.
Director envoie le message getBehaviorDescription aux comportements liés à une image-objet
à l’ouverture de l’inspecteur de comportement. Placez le gestionnaire on
getBehaviorDescription dans un comportement.
Le gestionnaire peut contenir des caractères de retour de chariot pour formater les descriptions
multilignes.
Exemple
L’instruction suivante affiche « Barre de défilement vertical de champ de texte multiligne » dans
le volet de description :
-- Syntaxe Lingo
on getBehaviorDescription
return "Barre de défilement vertical de champ de texte multiligne"
end
// Syntaxe JavaScript
function getBehaviorDescription() {
return "Barre de défilement vertical de champ de texte multiligne";
}
Voir aussi
on getPropertyDescriptionList, on getBehaviorTooltip, on runPropertyDialog
188
Chapitre 10 : Evénements et messages
on getBehaviorTooltip
Utilisation
-- Syntaxe Lingo
on getBehaviorTooltip
instruction(s)
end
// Syntaxe JavaScript
function getBehaviorTooltip() {
instruction(s);
}
Description
Message système et gestionnaire d’événement ; contient des instructions renvoyant la chaîne
apparaissant dans une info-bulle pour un script de la palette des bibliothèques.
Director envoie le message getBehaviorTooltip au script lorsque le curseur s’arrête au-dessus de
ce dernier dans la palette des bibliothèques. Placez le gestionnaire on getBehaviorTooltip dans
le comportement.
L’utilisation du gestionnaire est facultative. Si aucun gestionnaire n’est fourni, le nom de l’acteur
apparaît dans l’info-bulle.
Le gestionnaire peut contenir des caractères de retour de chariot pour formater les descriptions
multilignes.
Exemple
L’instruction suivante affiche Pièce de puzzle dans le volet de description :
-- Syntaxe Lingo
on getBehaviorTooltip
return "Pièce de puzzle"
end
// Syntaxe JavaScript
function getBehaviorTooltip() {
return "Pièce de puzzle";
}
Voir aussi
on getPropertyDescriptionList, on getBehaviorDescription, on runPropertyDialog
189
on getPropertyDescriptionList
Utilisation
-- Syntaxe Lingo
on getPropertyDescriptionList
instruction(s)
end
// Syntaxe JavaScript
fonction getPropertyDescriptionList() {
instruction(s);
}
Description
Message système et gestionnaire d’événement ; contient des instructions générant une liste de
définitions et de libellés pour les paramètres qui apparaissent dans la boîte de dialogue Paramètres
d’un comportement.
Placez le gestionnaire on getPropertyDescriptionList dans un script de comportement.
Les comportements ne contenant pas de gestionnaire on getPropertyDescriptionList
n’apparaissent pas dans la boîte de dialogue Paramètres et ne peuvent pas être modifiés à partir
de l’interface de Director.
Le message on getPropertyDescriptionList est envoyé lorsqu’une action entraînant l’ouverture de l’inspecteur de comportement a lieu : soit lorsque l’utilisateur fait glisser un comportement sur le scénario, soit lorsqu’il double-clique sur un comportement dans l’inspecteur de
comportement.
Les paramètres #default, #format et #comment sont obligatoires pour chaque paramètre. Les
valeurs possibles de ces paramètres sont :
190
#default
Valeur initiale du paramètre.
#format
#integer #float #string #symbol #member #bitmap #filmloop #field #palette
#picture #sound #button #shape #movie #digitalvideo #script #richtext
#ole #transition #xtra #frame #marker #ink #boolean
#comment
Chaîne descriptive apparaissant à gauche du champ modifiable dans la boîte de
dialogue Paramètres.
#range
Fourchette de valeurs possibles pouvant être affectées à une propriété. Cette
fourchette est spécifiée sous la forme d’une liste linéaire avec plusieurs valeurs ou
comme un minimum et maximum sous la forme d’une liste de propriétés : [#min:
valeurMin, #max: valeurMax].
Chapitre 10 : Evénements et messages
Exemple
Le gestionnaire suivant définit les paramètres d’un comportement apparaissant dans la boîte de
dialogue Paramètres. Chaque instruction commençant par addProp ajoute un paramètre à la liste
appelée Description. Chaque élément ajouté à la liste définit une propriété et ses valeurs
#default, #format et #comment :
on getPropertyDescriptionList
description = [:]
adescription.addProp(#dynamic, [#default:1, #format:#boolean, \
#comment:"Dynamique"])
description.addProp(#fieldNum, [#default:1, #format:#integer, \
#comment:"Image-objet à faire défiler:"])
description.addProp(#extentSprite,[#default:1,#format:#integer, \
#comment: "Etendre l’image-objet:"])
description.addProp(#proportional, [#default:1, #format:#boolean, \
#comment: "Proportionnel:"])
return description
end
Voir aussi
addProp, on getBehaviorDescription, on runPropertyDialog
on hyperlinkClicked
Utilisation
-- Syntaxe Lingo
on hyperlinkClicked me, données, plage
instruction(s)
end
// Syntaxe JavaScript
function hyperlinkClicked(données, plage){
instruction(s);
}
Description
Message système et gestionnaire d’événement ; utilisé pour déterminer si l’utilisateur a cliqué sur
un lien hypertexte.
Ce gestionnaire d’événement comprend les paramètres suivants :
•
•
•
Utilisé dans un comportement pour identifier l’instance d’image-objet.
Les données du lien hypertexte même, la chaîne saisie dans l’inspecteur de texte lors
de la modification de l’acteur texte.
plage La plage de caractères du lien hypertexte dans le texte (il est possible d’obtenir le texte
de la plage même en utilisant la syntaxe réfActeur.char[plage[1]..plage[2]].
me
données
Ce gestionnaire doit être attaché à une image-objet en tant que script de comportement. Evitez de
placer ce gestionnaire dans un script d’acteur.
191
Exemple
Le comportement suivant affiche un lien utilisé pour examiner le lien hypertexte sélectionné,
passer à une URL si nécessaire, puis afficher le texte du lien dans la fenêtre Messages :
-- Syntaxe Lingo
property spriteNum
on hyperlinkClicked(me, données, plage)
if data starts "http://" then
gotoNetPage(données)
end if
acteurCourant = sprite(spriteNum).member
chaîneDancre = acteurCourant.char[plage[1]..plage[2]]
put("Le lien hypertexte"&&chaîneDancre&&"vient d’être activé.")
end
// Syntaxe JavaScript
function hyperlinkClicked(données, plage) {
var st = data.slice(0,7);
var ht = "http://";
if (st = ht) {
gotoNetPage(données) ;
}
var acteurCourant = sprite(this.spriteNum).member;
var r1 = acteurCourant.getPropRef("car", plage[1]).hyperlinkRange;
var a = r1[1] - 1;
var b = r1[2];
var st = new String(acteurCourant.text);
var chaîneDancre = st.slice(a, b);
put("Le lien hypertexte" + chaîneDancre + " vient d’être activé.");
}
on idle
Utilisation
-- Syntaxe Lingo
on idle
instruction(s)
end
// Syntaxe JavaScript
function idle() {
instruction(s);
}
Description
Message système et gestionnaire d’événement ; contient des instructions exécutées lorsque
l’animation n’a pas d’autres événements à traiter et constitue un endroit pratique pour placer
les instructions à exécuter aussi fréquemment que possible, comme celles qui mettent à jour
les valeurs des variables globales et affichent les conditions de l’animation courante.
Les instructions des gestionnaires on idle étant fréquemment exécutées, il est recommandé de
ne pas placer d’instruction Lingo dont le traitement prend trop de temps dans un gestionnaire
on idle.
Il est souvent préférable de placer les gestionnaires on idle dans des scripts d’image plutôt que
dans des scripts d’animation pour tirer parti du gestionnaire on idle uniquement lorsque
nécessaire.
192
Chapitre 10 : Evénements et messages
Director peut charger des acteurs à partir d’une distribution interne ou externe pendant un
événement idle. Cependant, il ne peut pas charger des acteurs liés pendant un événement idle.
Le message idle est envoyé uniquement aux scripts d’image et d’animation.
Exemple
Le gestionnaire suivant met à jour l’heure affichée dans l’animation lorsqu’il n’y a aucun autre
événement à traiter :
-- Syntaxe Lingo
on idle
member("Heure").text = _system.time()
end idle
// Syntaxe JavaScript
function idle() {
member("Heure").text = _system.time();
}
Voir aussi
idleHandlerPeriod
on isOKToAttach
Utilisation
-- Syntaxe Lingo
on isOKToAttach me, typeDimageObjet, numéroDimageObjet
instruction(s)
end
// Syntaxe JavaScript
function isOKToAttach(typeDimageObjet, numéroDimageObjet) {
instruction(s)
}
Description
Gestionnaire intégré ; vous pouvez ajouter ce gestionnaire à un comportement en vue de vérifier
le type d’image-objet auquel le comportement est associé et empêcher que ce comportement soit
attaché à des types d’images-objets non appropriés.
Lorsque le comportement est associé à une image-objet, le gestionnaire est exécuté et Director lui
transmet le type et le numéro de l’image-objet. L’argument me contient une référence au comportement associé à l’image-objet.
Ce gestionnaire est exécuté avant le gestionnaire on getPropertyDescriptionList.
L’auteur Lingo peut vérifier deux types d’images-objets. #graphic inclut tous les acteurs
graphique tels que les formes, les bitmaps, les vidéos numériques, le texte, etc. #script indique
le comportement associé à la piste des scripts. Dans ce cas, numéroDimageObjet est 1.
Pour chacun de ces types d’images-objets, le gestionnaire doit renvoyer la valeur TRUE ou FALSE.
La valeur TRUE indique que le comportement peut être associé à l’image-objet. La valeur FALSE
empêche l’association du comportement à l’image-objet.
Si le comportement ne contient pas de gestionnaire on isOKToAttach, le comportement peut
être associé à n’importe quelle image ou image-objet.
193
Ce gestionnaire est appelé lors de l’association initiale du comportement à l’image-objet ou à la
piste des scripts et lors de l’association d’un nouveau comportement à une image-objet à l’aide de
l’inspecteur de comportement.
Exemple
L’instruction suivante vérifie le type d’image-objet à laquelle le comportement est associé et
renvoie la valeur TRUE pour toutes les images-objets graphique à l’exception des formes et la valeur
FALSE pour la piste des scripts :
-- Syntaxe Lingo
on isOKToAttach me, typeDimageObjet, numéroDimageObjet
case typeDimageObjet of
#graphic: -- tout type d’image-objet graphique
return sprite(numéroDimageObjet).member.type <> #shape
-- fonctionne avec tout, sauf les acteurs forme
#script: --piste des scripts de l’image
return FALSE -- ne fonctionne pas comme script d’image
end case
end
// Syntaxe JavaScript
function isOKToAttach(typeDimageObjet, numéroDimageObjet) {
switch (typeDimageObjet) {
case symbol("graphique"): // tout type d’image-objet graphique
return sprite(numéroDimageObjet).member.type != symbol("forme");
// fonctionne avec tout, sauf les acteurs forme
case symbol("script"): // piste des scripts de l’image
return false; // ne fonctionne pas comme script d’image
}
}
on keyDown
Utilisation
-- Syntaxe Lingo
on keyDown
instruction(s)
end
// Syntaxe JavaScript
function keyDown() {
instruction(s);
}
Description
Message système et gestionnaire d’événement ; contient les instructions exécutées lorsqu’une
touche est enfoncée.
Lorsqu’une touche est enfoncée, Director recherche un gestionnaire on keyDown aux emplacements suivants et dans l’ordre qui suit : gestionnaire d’événement principal, script d’image-objet
champ modifiable, script d’acteur champ, script d’image et script d’animation. Pour les imagesobjets et les acteurs, les gestionnaires on keyDown ne fonctionnent qu’avec les acteurs texte et
champ modifiables. Un événement keyDown n’a aucun effet sur les autres types d’acteurs (acteurs
bitmap, par exemple). Si le fait d’appuyer sur une touche doit produire un résultat identique dans
toute l’animation, définissez keyDownScript.
194
Chapitre 10 : Evénements et messages
Director arrête la recherche dès qu’il rencontre le premier gestionnaire on keyDown, sauf si celuici contient une commande pass exigeant le renvoi du message keyDown à l’emplacement suivant.
Le gestionnaire d’événement on keyDown est idéal pour placer des instructions créant des
raccourcis clavier ou d’autres fonctions d’interface, en fonction des actions que vous souhaitez
déclencher lorsque l’utilisateur appuie sur une touche du clavier.
Lorsque l’animation est lue sous forme d’applet, un gestionnaire on keyDown intercepte toujours
les touches enfoncées, même s’il est vide. Lorsque l’utilisateur saisit du texte dans un champ
modifiable, le gestionnaire on keyDown de ce champ doit inclure la commande pass pour que les
caractères saisis apparaissent dans le champ.
L’endroit où vous placez un gestionnaire on keyDown peut affecter le moment où il est exécuté.
• Pour appliquer le gestionnaire à une image-objet champ modifiable particulière, placez-le dans
•
•
•
un script d’image-objet.
Pour appliquer le gestionnaire à un acteur champ modifiable quelconque, placez-le dans un
script d’acteur.
Pour appliquer le gestionnaire à une image entière, placez-le dans un script d’image.
Pour appliquer le gestionnaire à l’animation entière, placez-le dans un script d’animation.
Vous pouvez annuler un gestionnaire on keyDown en plaçant un autre gestionnaire on keyDown
dans une position qui sera vérifiée par Lingo avant celle du gestionnaire à annuler. Par exemple,
vous pouvez annuler un gestionnaire on keyDown affecté à un acteur en plaçant un gestionnaire
on keyDown dans un script d’image-objet.
Exemple
Le gestionnaire suivant vérifie si la touche Retour a été enfoncée et, le cas échéant, fait passer la
tête de lecture à une autre image :
-- Syntaxe Lingo
on keyDown
if (_key.key = RETURN) then _movie.go("additionnerLaSomme")
end keyDown
// Syntaxe JavaScript
function keyDown() {
if (_key.keyCode == 36) {
_movie.go("additionnerLaSomme");
}
}
Voir aussi
charToNum(), keyDownScript, keyUpScript, key, keyCode, keyPressed()
195
on keyUp
Utilisation
-- Syntaxe Lingo
on keyUp
instruction(s)
end
// Syntaxe JavaScript
function keyUp() {
instruction(s);
}
Description
Message système et gestionnaire d’événement ; contient des instructions exécutées lorsque
l’utilisateur relâche une touche. Le gestionnaire on keyUp est similaire au gestionnaire on
keyDown, à ceci près que l’événement se produit après l’apparition d’un caractère si l’image-objet
champ ou texte est modifiable à l’écran.
Lorsque l’utilisateur relâche une touche, Lingo recherche un gestionnaire on keyUp aux
emplacements suivants et dans l’ordre qui suit : gestionnaire d’événement principal, script
d’image-objet champ modifiable, script d’acteur champ, script d’image et script d’animation.
Pour les images-objets et les acteurs, les gestionnaires on keyUp ne fonctionnent qu’avec les
chaînes modifiables. Un événement keyUp n’a aucun effet sur les autres types d’acteurs (acteurs
bitmap, par exemple). Si le fait de relâcher une touche doit produire un résultat identique dans
toute l’animation, définissez keyUpScript.
Lingo arrête la recherche dès qu’il rencontre le premier gestionnaire on keyUp, sauf si celui-ci
contient une commande pass exigeant le renvoi du message keyUp au gestionnaire ou script
suivant.
Le gestionnaire on keyUp est idéal pour placer des instructions créant des raccourcis clavier ou
d’autres fonctions d’interface, en fonction des actions que vous souhaitez déclencher lorsque
l’utilisateur relâche une touche du clavier.
Lorsque l’animation est lue sous forme d’applet, un gestionnaire on keyUp enregistre toujours
les touches enfoncées, même s’il est vide. Lorsque l’utilisateur saisit du texte dans un champ
modifiable, le gestionnaire on keyUp de ce champ doit inclure la commande pass pour que les
caractères saisis apparaissent dans le champ.
L’endroit où vous placez un gestionnaire on keyUp affecte le moment où il est exécuté, tel que :
• Pour appliquer le gestionnaire à une image-objet champ modifiable spécifique, placez-le dans
•
•
•
un comportement.
Pour appliquer le gestionnaire à un acteur champ modifiable quelconque, placez-le dans un
script d’acteur.
Pour appliquer le gestionnaire à une image entière, placez-le dans un script d’image.
Pour appliquer le gestionnaire à l’animation entière, placez-le dans un script d’animation.
Vous pouvez annuler un gestionnaire on keyUp en plaçant un autre gestionnaire on keyUp dans
une position qui sera vérifiée par Lingo avant celle du gestionnaire à annuler. Par exemple, vous
pouvez annuler le gestionnaire on keyUp affecté à un acteur en plaçant un gestionnaire on keyUp
dans un script d’image-objet.
196
Chapitre 10 : Evénements et messages
Exemple
Le gestionnaire suivant vérifie si la touche Retour a été relâchée et, le cas échéant, fait passer la tête
de lecture à une autre image :
-- Syntaxe Lingo
on keyUp
if (_key.key = RETURN) then _movie.go("additionnerLaSomme")
end keyUp
// Syntaxe JavaScript
function keyUp() {
if (_key.keyCode == 36) {
_movie.go("additionnerLaSomme");
}
}
Voir aussi
on keyDown, keyDownScript, keyUpScript
on mouseDown (gestionnaire d’événement)
Utilisation
-- Syntaxe Lingo
on mouseDown
instruction(s)
end
// Syntaxe JavaScript
function mouseDown() {
instruction(s);
}
Description
Message système et gestionnaire d’événement; contient des instructions exécutées lorsque le
bouton de la souris est enfoncé.
Lorsque le bouton de la souris est enfoncé, Lingo recherche un gestionnaire on mouseDown aux
emplacements suivants et dans l’ordre qui suit : gestionnaire d’événement principal, script
d’image-objet, script d’acteur, script d’image et script d’animation. Lingo arrête la recherche
lorsqu’il atteint le premier emplacement contenant un gestionnaire on mouseDown, sauf si ce
dernier contient une commande pass permettant de passer explicitement le message mouseDown à
l’emplacement suivant.
Pour que l’animation réponde toujours de la même manière lorsque le bouton de la souris est
enfoncé, définissez mouseDownScript ou placez un gestionnaire mouseDown dans un script de
l’animation.
Les gestionnaires d’événements on mouseDown sont pratiques pour placer des instructions faisant
clignoter des images, déclenchant des effets sonores ou provoquant le déplacement d’imagesobjets lorsque l’utilisateur appuie sur le bouton de la souris.
L’endroit où vous placez un gestionnaire on mouseDown peut affecter le moment où il est exécuté.
• Pour appliquer le gestionnaire à une image-objet spécifique, placez-le dans un script d’image•
objet.
Pour appliquer le gestionnaire à un acteur quelconque, placez-le dans un script d’acteur.
197
• Pour appliquer le gestionnaire à une image entière, placez-le dans un script d’image.
• Pour appliquer le gestionnaire à l’animation entière, placez-le dans un script d’animation.
Vous pouvez annuler un gestionnaire on mouseDown en plaçant un autre gestionnaire on
dans une position qui sera vérifiée par Lingo avant celle du gestionnaire à annuler.
Par exemple, vous pouvez annuler un gestionnaire on mouseDown affecté à un acteur en plaçant
un gestionnaire on mouseDown dans le script d’une image-objet.
mouseDown
Lorsqu’il est utilisé dans un comportement, cet événement reçoit en paramètre la référence au
script de l’image-objet ou au script d’image me.
Exemple
Le gestionnaire suivant vérifie si l’utilisateur clique à un endroit quelconque de la scène et, le cas
échéant, fait passer la tête de lecture à une autre image :
-- Syntaxe Lingo
on mouseDown
if (_mouse.clickOn = 0) then _movie.go("additionnerLaSomme")
end
// Syntaxe JavaScript
function mouseDown() {
if (_mouse.clickOn == 0) {
_movie.go("additionnerLaSomme");
}
}
Le gestionnaire suivant, affecté à un script d’image-objet, lit un son lorsque l’utilisateur clique sur
l’image-objet :
-- Syntaxe Lingo
on mouseDown
sound(1).play(member("Grillons"))
end
// Syntaxe JavaScript
function mouseDown() {
sound(1).play(member("Grillons"));
}
Voir aussi
clickOn, mouseDownScript, mouseUpScript
198
Chapitre 10 : Evénements et messages
on mouseEnter
Utilisation
-- Syntaxe Lingo
on mouseEnter
instruction(s)
end
// Syntaxe JavaScript
function mouseEnter() {
instruction(s);
}
Description
Message système et gestionnaire d’événement ; contient les instructions exécutées lorsque le
pointeur de la souris entre en contact avec la zone référencée de l’image-objet. Il n’est pas
nécessaire que le bouton de la souris soit enfoncé.
Si l’image-objet est un acteur bitmap dont l’encre est Dessin seul, sa zone référencée correspond à
la portion d’image affichée. Dans tous les autres cas, elle correspond au rectangle de délimitation
de l’image-objet.
Lorsqu’il est utilisé dans un comportement, cet événement reçoit en paramètre la référence au
script de l’image-objet ou au script d’image me.
Exemple
L’instruction suivante est un comportement de bouton simple qui change l’image bitmap du
bouton lorsque la souris survole, puis sort du bouton :
-- Syntaxe Lingo
property spriteNum
on mouseEnter me
-- détermine l’acteur courant et passe à l’acteur suivant de la
distribution.
acteurCourant = sprite(spriteNum).member.number
sprite(spriteNum).member = acteurCourant + 1
end
on mouseLeave me
-- détermine l’acteur courant et passe à l’acteur suivant de la
distribution.
acteurCourant = sprite(spriteNum).member.number
sprite(spriteNum).member = acteurCourant -1
end
199
// Syntaxe JavaScript
var spriteNum;
function mouseEnter() {
// détermine l’acteur courant et passe à l’acteur suivant de la
distribution.
acteurCourant = sprite(spritenum).member.number;
sprite(spritenum).member = acteurCourant +1;
}
function mouseLeave() {
// détermine l’acteur courant et passe à l’acteur précédent de la
distribution.
acteurCourant = sprite(spritenum).member.number;
sprite(spritenum).member = acteurCourant - 1;
}
Voir aussi
on mouseLeave, on mouseWithin
on mouseLeave
Utilisation
-- Syntaxe Lingo
on mouseLeave
instruction(s)
end
// Syntaxe JavaScript
function mouseLeave() {
instruction(s);
}
Description
Message système et gestionnaire d’événement ; contient les instructions exécutées lorsque la souris
sort de la zone référencée de l’image-objet. Il n’est pas nécessaire que le bouton de la souris soit
enfoncé.
Si l’image-objet est un acteur bitmap dont l’encre est Dessin seul, sa zone référencée correspond à
la portion d’image affichée. Dans tous les autres cas, elle correspond au rectangle de délimitation
de l’image-objet.
Lorsqu’il est utilisé dans un comportement, cet événement reçoit en paramètre la référence au
script de l’image-objet ou au script d’image me.
Exemple
L’instruction suivante est un comportement de bouton simple qui change l’image bitmap du
bouton lorsque la souris survole le bouton, puis en sort :
-- Syntaxe Lingo
property spriteNum
on mouseEnter me
-- détermine l’acteur courant et passe à l’acteur suivant de la
distribution.
acteurCourant = sprite(spriteNum).member.number
sprite(spriteNum).member = acteurCourant + 1
200
Chapitre 10 : Evénements et messages
end
on mouseLeave me
-- détermine l’acteur courant et passe à l’acteur suivant de la
distribution.
acteurCourant = sprite(spriteNum).member.number
sprite(spriteNum).member = acteurCourant -1
end
// Syntaxe JavaScript
var spriteNum;
function mouseEnter() {
// détermine l’acteur courant et passe à l’acteur suivant de la
distribution.
acteurCourant = sprite(spritenum).member.number;
sprite(spritenum).member = acteurCourant +1;
}
function mouseLeave() {
// détermine l’acteur courant et passe à l’acteur précédent de la
distribution.
acteurCourant = sprite(spritenum).member.number;
sprite(spritenum).member = acteurCourant - 1;
}
Voir aussi
on mouseEnter, on mouseWithin
on mouseUp (gestionnaire d’événement)
Utilisation
-- Syntaxe Lingo
on mouseUp
instruction(s)
end
// Syntaxe JavaScript
function mouseUp() {
instruction(s);
}
Description
Message système et gestionnaire d’événement ; contient les instructions exécutées lorsque le
bouton de la souris est relâché.
Lorsque l’utilisateur relâche le bouton de la souris, Lingo recherche un gestionnaire on mouseUp
aux emplacements suivants et dans l’ordre qui suit : gestionnaire d’événement principal, script
d’image-objet, script d’acteur, script d’image et script d’animation. Lingo arrête la recherche dès
qu’il rencontre le premier gestionnaire on mouseUp, sauf si celui-ci contient une commande pass
permettant de passer explicitement le message mouseUp à l’emplacement suivant.
Pour obtenir la même réponse dans toute l’animation lorsque l’utilisateur relâche le bouton de la
souris, définissez the mouseUpScript.
201
Le gestionnaire d’événement on mouseUp est pratique pour appeler un script Lingo modifiant
l’apparence des objets (boutons, par exemple) une fois que l’utilisateur a cliqué dessus. Pour ce
faire, il suffit de changer l’acteur de l’image-objet sur laquelle l’utilisateur a cliqué, dès qu’il
relâche le bouton de la souris.
L’endroit où vous placez un gestionnaire on mouseUp affecte le moment où il est exécuté, de la
manière suivante :
• Pour appliquer le gestionnaire à une image-objet spécifique, placez-le dans un script d’imageobjet.
• Pour appliquer le gestionnaire à un acteur quelconque, placez-le dans un script d’acteur.
• Pour appliquer le gestionnaire à une image entière, placez-le dans un script d’image.
• Pour appliquer le gestionnaire à l’animation entière, placez-le dans un script d’animation.
Vous pouvez annuler un gestionnaire on mouseUp en plaçant un autre gestionnaire on mouseUp
dans une position qui sera vérifiée par Lingo avant celle du gestionnaire à annuler. Par exemple,
vous pouvez annuler un gestionnaire on mouseUp affecté à un acteur en plaçant un gestionnaire
on mouseUp dans un script d’image-objet.
Lorsqu’il est utilisé dans un comportement, cet événement reçoit en paramètre la référence au
script de l’image-objet ou au script d’image me.
Exemple
Le gestionnaire suivant, affecté à l’image-objet 10, change l’acteur associé à cette image-objet à
chaque fois que l’utilisateur relâche le bouton de la souris après avoir cliqué sur l’image-objet :
-- Syntaxe Lingo
on mouseUp
sprite(10).member = member ("Gris")
end
// Syntaxe JavaScript
function mouseUp() {
sprite(10).member = member ("Gris");
}
Voir aussi
on mouseDown (gestionnaire d’événement)
on mouseUpOutside
Utilisation
-- Syntaxe Lingo
on mouseUpOutside me
instruction(s)
end
// Syntaxe JavaScript
function mouseUpOutside() {
instruction(s);
}
Description
Message système et gestionnaire d’événement; envoyé lorsque l’utilisateur clique sur une imageobjet, puis relâche le bouton de la souris en dehors de cette dernière.
202
Chapitre 10 : Evénements et messages
Exemple
L’instruction suivante lit un son lorsque l’utilisateur clique sur une image-objet, puis relâche le
bouton de la souris en dehors du rectangle de délimitation de cette dernière :
-- Syntaxe Lingo
on mouseUpOutside me
sound(1).play(member("Professeur Machin"))
end
// Syntaxe JavaScript
function mouseUpOutside() {
sound(1).play(member("Professeur Machin"));
}
Voir aussi
on mouseEnter, on mouseLeave, on mouseWithin
on mouseWithin
Utilisation
-- Syntaxe Lingo
on mouseWithin
instruction(s)
end
// Syntaxe JavaScript
function mouseWithin() {
instruction(s);
}
Description
Message système et gestionnaire d’événement; contient les instructions exécutées lorsque la souris
est dans la zone référencée de l’image-objet. Il n’est pas nécessaire que le bouton de la souris soit
enfoncé.
Si l’image-objet est un acteur bitmap dont l’encre est Dessin seul, sa zone référencée correspond à
la partie d’image affichée. Dans tous les autres cas, elle correspond au rectangle de délimitation de
l’image-objet.
Lorsqu’il est utilisé dans un comportement, cet événement reçoit en paramètre la référence au
script de l’image-objet ou au script d’image me.
Exemple
L’instruction suivante affiche la position de la souris lorsqu’elle se trouve au-dessus d’une imageobjet :
-- Syntaxe Lingo
on mouseWithin
member("Affichage").text = string(_mouse.mouseH)
end
// Syntaxe JavaScript
function mouseWithin() {
member("Affichage").text = _mouse.mouseH.toString();
}
203
Voir aussi
on mouseEnter, on mouseLeave
on moveWindow
Utilisation
-- Syntaxe Lingo
on moveWindow
instruction(s)
end
// Syntaxe JavaScript
function moveWindow() {
instruction(s);
}
Description
Message système et gestionnaire d’événement; contient les instructions exécutées lorsqu’une
fenêtre est déplacée, par exemple lorsque l’utilisateur fait glisser une animation vers un nouvel
emplacement de la scène. Pratique pour placer le code Lingo qui doit être exécuté à chaque fois
que la fenêtre d’une animation est déplacée.
Exemple
Le gestionnaire suivant affiche un message dans la fenêtre Messages lorsque la fenêtre d’une
animation en cours de lecture est déplacée :
-- Syntaxe Lingo
on moveWindow
put("Déplacement de la fenêtre contenant" && _movie.name)
end
// Syntaxe JavaScript
function moveWindow() {
put "Déplacement de la fenêtre contenant + _movie.name);
}
Voir aussi
activeWindow, name (3D), windowList
204
Chapitre 10 : Evénements et messages
on openWindow
Utilisation
-- Syntaxe Lingo
on openWindow
instruction(s)
end
// Syntaxe JavaScript
function openWindow() {
instruction(s);
}
Description
Message système et gestionnaire d’événements; contient des instructions exécutées lorsque
Director ouvre l’animation en tant qu’animation dans une fenêtre. C’est aussi un endroit idéal
pour placer des instructions à exécuter à chaque fois que l’animation s’ouvre dans une fenêtre.
Exemple
Le gestionnaire suivant exécute le fichier audio Hourra lorsque la fenêtre de l’animation s’ouvre :
-- Syntaxe Lingo
on openWindow
sound(2).play(member("Hourra"))
end
// Syntaxe JavaScript
function openWindow() {
sound(2).play(member("Hourra"));
}
on prepareFrame
Utilisation
-- Syntaxe Lingo
on prepareFrame
instruction(s)
end
// Syntaxe JavaScript
function prepareFrame {
instruction(s);
}
Description
Message système et gestionnaire d’événements; contient des instructions exécutées immédiatement avant le dessin de l’image courante.
Contrairement aux événements beginSprite et endSprite, un événement prepareFrame est
généré à chaque fois que la tête de lecture arrive sur une image.
Le gestionnaire on prepareFrame est un bon endroit pour changer les propriétés de l’image-objet
avant qu’elle ne soit dessinée.
S’il est utilisé dans un comportement, le gestionnaire on prepareFrame reçoit la référence me.
205
Les commandes go, play et updateStage sont désactivées dans un gestionnaire
on prepareFrame.
Exemple
Le gestionnaire suivant définit la propriété locH de l’image-objet à laquelle le comportement est
lié :
-- Syntaxe Lingo
on prepareFrame me
sprite(me.spriteNum).locH = _mouse.mouseH
end
// Syntaxe JavaScript
function prepareFrame() {
sprite(spriteNum).locH = _mouse.mouseH;
}
Voir aussi
on enterFrame
on prepareMovie
Utilisation
-- Syntaxe Lingo
on prepareMovie
instruction(s)
end
// Syntaxe JavaScript
function prepareMovie() {
instruction(s);
}
Description
Message système et gestionnaire d’événements; contient des instructions exécutées après que
l’animation précharge les acteurs, mais avant qu’elle ne :
• crée des instances de comportements liées aux images-objets de la première image lue ;
• prépare la première image lue, y compris son dessin, la lecture des sons et l’exécution des
transitions et des effets de palette.
Les nouvelles variables globales utilisées pour le comportement des images-objets de la première
image doivent être initialisées dans le gestionnaire on prepareMovie. Il est inutile de redéfinir les
variables globales déjà définies par l’animation précédente.
Un gestionnaire on prepareMovie est un bon endroit pour placer un code Lingo ou JavaScript
servant à créer les variables globales, initialiser les variables, lire un son pendant que le reste de
l’animation se charge en mémoire ou vérifier et ajuster les paramètres de l’ordinateur tels que
le nombre de couleurs.
Les commandes go, play
on prepareMovie.
206
et updateStage sont désactivées dans un gestionnaire
Chapitre 10 : Evénements et messages
Exemple
Le gestionnaire suivant crée une variable globale lorsque l’animation débute :
-- Syntaxe Lingo
on prepareMovie
global ScoreActuel
ScoreActuel = 0
end
// Syntaxe JavaScript
function prepareMovie() {
_global.ScoreActuel = 0;
}
Voir aussi
on enterFrame, on startMovie
on resizeWindow
Utilisation
-- Syntaxe Lingo
on resizeWindow
instruction(s)
end
// Syntaxe JavaScript
function resizeWindow() {
instruction(s);
}
Description
Message système et gestionnaire d’événements; contient les instructions activées lorsqu’une
animation est lue dans une fenêtre et que l’utilisateur modifie les dimensions de cette fenêtre
en tirant sur sa case de redimensionnement ou sur l’un de ses bords.
Un gestionnaire d’événement on resizeWindow est idéal pour insérer des instructions se
rapportant aux dimensions de la fenêtre, comme le positionnement des images-objets et le
recadrement des animations de type vidéo numérique.
Exemple
Ce gestionnaire déplace l’image-objet 3 vers les coordonnées stockées dans la variable
emplacementCentral lorsque la fenêtre lue par l’animation est redimensionnée :
-- Syntaxe Lingo
on resizeWindow emplacementCentral
sprite(3).loc = emplacementCentral
end
// Syntaxe JavaScript
function resizeWindow(emplacementCentral) {
sprite(3).loc = emplacementCentral;
}
Voir aussi
drawRect, sourceRect
207
on rightMouseDown (gestionnaire d’événement)
Utilisation
-- Syntaxe Lingo
on rightMousedown
instruction(s)
end
// Syntaxe JavaScript
function rightMouseDown() {
instruction(s);
}
Description
Message système et gestionnaire d’événements; sous Windows, spécifie les instructions exécutées
lorsque l’utilisateur appuie sur le bouton droit de la souris. Sur Macintosh, les instructions sont
exécutées lorsque l’utilisateur appuie simultanément sur le bouton de la souris et la touche Ctrl,
et que la propriété emulateMultiButtonMouse a la valeur TRUE ; si cette propriété a la valeur
FALSE, ce gestionnaire d’événement n’a aucun effet sur Macintosh.
Exemple
Le gestionnaire suivant ouvre la fenêtre Aide lorsque l’utilisateur appuie sur le bouton droit de la
souris sous Windows :
-- Syntaxe Lingo
on rightMousedown
window("Aide").open()
end
// Syntaxe JavaScript
function rightMouseDown() {
window("Aide").open();
}
on rightMouseUp (gestionnaire d’événements)
Utilisation
-- Syntaxe Lingo
on rightMouseUp
instruction(s)
end
// Syntaxe JavaScript
function rightMouseUp() {
instruction(s);
}
Description
Message système et gestionnaire d’événements; sous Windows, spécifie les instructions exécutées
lorsque l’utilisateur relâche le bouton droit de la souris. Sur Macintosh, les instructions sont
exécutées lorsque l’utilisateur relâche le bouton de la souris tout en maintenant la touche Ctrl
enfoncée et que la propriété emulateMultiButtonMouse a la valeur TRUE ; si cette propriété a la
valeur FALSE, ce gestionnaire d’événement n’a aucun effet sur Macintosh.
208
Chapitre 10 : Evénements et messages
Exemple
Le gestionnaire suivant ouvre la fenêtre Aide lorsque l’utilisateur relâche le bouton droit de la
souris sous Windows :
-- Syntaxe Lingo
on rightMouseUp
window("Aide").open()
end
// Syntaxe JavaScript
function rightMouseUp() {
window("Aide").open();
}
on runPropertyDialog
Utilisation
-- Syntaxe Lingo
on runPropertyDialog me, listeDinitialisationCourante
instruction(s)
end
// Syntaxe JavaScript
function runPropertyDialog(ListeDinitialisationCourante) {
instruction(s);
}
Description
Message système et gestionnaire d’événements ; contient un code Lingo ou JavaScript définissant
des valeurs spécifiques pour les paramètres d’un comportement dans la boîte de dialogue Paramètres. Le message runPropertyDialog est envoyé à chaque fois que le comportement est lié à une
image-objet ou que l’utilisateur modifie les valeurs initiales de la propriété du comportement
d’une image-objet.
Les paramètres courants des propriétés initiales d’un comportement sont passés au gestionnaire
sous forme de liste de propriétés. Si le gestionnaire on runPropertyDialog n’est pas défini dans
le comportement, Director affiche une boîte de dialogue de personnalisation de comportement
basée sur la liste de propriétés renvoyée par le gestionnaire on getPropertyDescriptionList.
Exemple
Le gestionnaire suivant annule les valeurs des paramètres de la boîte de dialogue Paramètres
du comportement. Les nouvelles valeurs sont contenues dans la liste listeDinitialisationCourante. Normalement, la boîte de dialogue Paramètres permet à l’utilisateur de définir les
constantes de masse et de gravité. Cependant, le gestionnaire suivant affecte ces valeurs constantes
de paramètres sans afficher de boîte de dialogue :
-- Syntaxe Lingo
property masse
property constanteGravité
on runPropertyDialog me, listeDinitialisationCourante
-- forcer la masse à 10
ListeDinitialisationCourante.setaProp(#masse, 10)
-- forcer la constanteGravité à 9.8
ListeDinitialisationCourante.setaProp(#constanteGravité, 9.8)
return listeDinitialisationCourante
209
end
// Syntaxe JavaScript
function runPropertyDialog(ListeDinitialisationCourante) {
//forcer la masse à 10
ListeDinitialisationCourante.setaProp("masse", 10)
//forcer la constanteGravité à 9.8
ListeDinitialisationCourante.setaProp("constanteGravité", 9.8)
return(listeDinitialisationCourante)
}
Voir aussi
on getBehaviorDescription, on getPropertyDescriptionList
on savedLocal
Utilisation
-- Syntaxe Lingo
on savedLocal
instruction(s)
end
// Syntaxe JavaScript
function savedLocal() {
instruction(s);
}
Description
Message système et gestionnaire d’événements. Cette propriété est fournie pour permettre des
améliorations dans de futures versions de Shockwave Player.
Voir aussi
allowSaveLocal
on sendXML
Utilisation
-- Syntaxe Lingo
on sendXML "sendxmlstring", "fenêtre", "données"
instruction(s)
end
// Syntaxe JavaScript
function sendXML(sendxmlstring, fenêtre, données) {
instruction(s);
}
Description
Gestionnaire d’événement; fonctionne de manière similaire à la méthode de scripting getURL
également disponible avec l’Xtra Macromedia Flash Asset. Le gestionnaire on sendXML est appelé
en Lingo lorsque la méthode ActionScript objetXML.send est exécutée dans une image-objet
Flash ou dans un objet Flash XML.
210
Chapitre 10 : Evénements et messages
Dans ActionScript, la méthode objetXML.send transmet deux paramètres, en plus des données
XML, dans l’objet XML. Ces paramètres sont les suivants :
•
•
url – L’URL à laquelle envoyer les données XML. En règle générale, c’est l’URL d’un script
serveur qui attend de traiter les données XML.
fenêtre – la fenêtre de navigateur dans laquelle afficher la réponse du serveur.
La méthode ActionScript objetXML.send peut être appelée dans Director, soit par une imageobjet Flash, soit par un objet Flash XML global créé en Lingo. Dans ce cas, le gestionnaire Lingo
on sendXML est appelé, et les mêmes paramètres sont transmis au gestionnaire.
L’instruction Lingo suivante illustre le mode de réception des paramètres par le gestionnaire
on sendXML :
on sendXML me, Lurl, fenêtreCible, donnéesXml
Ces paramètres sont en corrélation avec le paramètre objetXML.send, comme suit :
•
•
•
– L’URL à laquelle envoyer les données XML.
– la fenêtre de navigateur dans laquelle afficher la réponse du serveur.
donnéesXML – Les données XML de l’objet XML Flash.
Lurl
fenêtreCible
En créant un gestionnaire on sendXML dans votre animation Director, vous lui permettez de
traiter les événements objetXML.send générés dans une image-objet Flash ou un objet Flash
global.
Les images-objets Flash peuvent également charger des données XML externes ou analyser des
données XML internes. L’Xtra Flash Asset gère ces fonctions de la même manière qu’un contenu
Flash 5 ou Flash MX dans votre navigateur.
Exemple
La commande Lingo suivante obtient les informations de méthode objetXML.send d’une imageobjet Flash, redirige le navigateur vers l’URL et transmet les données XML à l’URL :
-- Syntaxe Lingo
on sendXML me, Lurl, fenêtreCible, donnéesXml
gotoNetPage(Lurl, fenêtreCible)
postNetText(Lurl, donnéesXml)
end
// Syntaxe JavaScript
function sendXML(Lurl, fenêtreCible, donnéesXml) {
gotoNetPage(Lurl, fenêtreCible);
postNetText(Lurl, donnéesXml);
}
211
on startMovie
Utilisation
-- Syntaxe Lingo
on startMovie
instruction(s)
end
// Syntaxe JavaScript
function startMovie() {
instruction(s);
}
Description
Message système et gestionnaire d’événement; contient des instructions exécutées avant que la tête
de lecture n’atteigne la première image de l’animation. L’événement startMovie se produit après
l’événement prepareFrame et avant l’événement enterFrame.
Un gestionnaire on startMovie est idéal pour placer les éléments Lingo initialisant les imagesobjets de la première image de l’animation.
Exemple
Le gestionnaire suivant rend les images-objets invisibles au démarrage de l’animation :
-- Syntaxe Lingo
on startMovie
repeat with compteur = 10 to 50
sprite(compteur).visible = 0
end repeat
end startMovie
// Syntaxe JavaScript
function startMovie() {
for(compteur=10;compteur<=50;compteur++) {
sprite(compteur).visible = 0;
}
}
Voir aussi
on prepareMovie
212
Chapitre 10 : Evénements et messages
on stepFrame
Utilisation
-- Syntaxe Lingo
on stepFrame
instruction(s)
end
// Syntaxe JavaScript
function stepFrame() {
instruction(s);
}
Description
Message système et gestionnaire d’événement ; fonctionne avec les scripts présents dans la liste
actorList puisque ce sont les seuls à recevoir des messages on stepFrame. Ce gestionnaire
d’événement est exécuté lorsque la tête de lecture arrive sur une image ou que la scène est mise à
jour.
Un gestionnaire on stepFrame est un emplacement utile pour les instructions que vous souhaitez
exécuter fréquemment pour une série d’objets particulière. Affectez les objets à la liste actorList
lorsque vous souhaitez que les éléments Lingo du gestionnaire on stepFrame soient exécutés;
inversement, retirez ces objets de la liste actorList pour éviter l’exécution de ces éléments Lingo.
Lorsque les objets sont dans actorList, leurs gestionnaires on stepFrame sont exécutés à chaque
fois que la tête de lecture arrive sur une image ou que la commande updateStage est émise.
Le message stepFrame est envoyé avant le message prepareFrame.
Affectez des objets à actorList pour qu’ils puissent répondre aux messages stepFrame. Les
objets doivent disposer d’un gestionnaire on stepFrame pour utiliser cette fonctionnalité interne
avec actorList.
Les commandes go, play et updateStage sont désactivées dans un gestionnaire on stepFrame.
Exemple
Si l’objet enfant est affecté à actorList, le gestionnaire on stepFrame de ce script parent met à
jour la position de l’image-objet stockée dans la propriété monImageObjet à chaque fois que la
tête de lecture arrive sur une image :
-- Syntaxe Lingo
property monImageObjet
on new me, LimageObjet
monImageObjet = LimageObjet
return me
end
on stepFrame me
sprite(monImageObjet).loc = point(random(640),random(480))
end
213
// Syntaxe JavaScript
// définir une classe de construction contenant la propriété monImageObjet
function Frame(LimageObjet) {
this.monImageObjet = LimageObjet;
}
function stepFrame() {
var monImage = new Frame(sprite(spriteName).spriteNum);
sprite(monImage.monImageObjet).loc = point(random(640),random(480));
end
on stopMovie
Utilisation
-- Syntaxe Lingo
on stopMovie
instruction(s)
end
// Syntaxe JavaScript
function stopMovie() {
instruction(s);
}
Description
Message système et gestionnaire d’événement; contient des instructions exécutées à l’arrêt de
l’animation.
Un gestionnaire on stopMovie est l’emplacement idéal pour les éléments Lingo destinés à
éliminer les données superflues, comme la fermeture des fichiers ressource, l’élimination des
variables globales ou la suppression de champs et d’objets, lorsque l’animation est terminée.
Lorsque le gestionnaire on stopMovie figure dans une animation dans une fenêtre, il n’est appelé
que lorsque l’animation est lue jusqu’à la fin ou débouche sur une autre animation. Il n’est pas
appelé lorsque la fenêtre est fermée ou supprimée par le biais de la commande forget window.
Exemple
Le gestionnaire suivant supprime une variable globale lorsque l’animation s’arrête :
-- Syntaxe Lingo
global gScoreActuel
on stopMovie
gScoreActuel = 0
end
// Syntaxe JavaScript
_global.gScoreActuel;
function stopMovie() {
_global gScoreActuel = 0;
}
Voir aussi
on prepareMovie
214
Chapitre 10 : Evénements et messages
on streamStatus
Utilisation
-- Syntaxe Lingo
on streamStatus URL, état, octetsTéléchargés, totalDesoctets, erreur
instruction(s)
end
// Syntaxe JavaScript
function streamStatus(URL, état, octetsTéléchargés, totalDesoctets, erreur{
instruction(s);
}
Description
Message système et gestionnaire d’événements; appelé régulièrement pour déterminer la
quantité d’un objet déjà téléchargée depuis Internet. Ce gestionnaire n’est appelé que si
tellStreamStatus (TRUE) a été appelé et qu’il a été ajouté à un script d’animation.
Le gestionnaire on streamStatus possède les paramètres suivants :
URL
Affiche l’adresse Internet des données en cours de récupération.
état
Affiche l’état du flux en cours de téléchargement. Les valeurs possibles sont
Connecting (connexion), Started (commencé), InProgress (en cours), Complete
(terminé) et Error (erreur).
octets
Téléchargés
Affiche le nombre d’octets récupérés depuis le réseau.
totalDes
Octets
Affiche le nombre total d’octets transférés , si ce chiffre est connu. Cette valeur peut
être 0 si le serveur HTTP ne fait pas figurer la longueur du contenu dans l’en-tête
MIME.
erreur
Affiche une chaîne vide ("") si le téléchargement n’est pas terminé, OK (OK) si le
téléchargement a abouti ou un code d’erreur s’il a échoué.
Ces paramètres sont automatiquement remplis par Director avec des informations concernant
l’évolution du téléchargement. Ce gestionnaire est appelé automatiquement par Director et il n’y
a aucun moyen de contrôler quand il sera appelé la fois suivante. Si des informations relatives à
une opération particulière sont requises, appelez getStreamStatus().
Vous pouvez lancer un téléchargement réseau à l’aide de commandes Lingo, en liant les médias
avec une URL ou en utilisant un acteur externe à partir d’une URL. Un gestionnaire
streamStatus sera appelé pour fournir des informations sur tous les transferts à partir du réseau.
Placez le gestionnaire streamStatus dans les scripts d’animation.
215
Exemple
Le gestionnaire suivant détermine l’état d’un objet transféré et affiche son URL :
-- Syntaxe Lingo
on streamStatus URL, état, octetsTéléchargés, totalDesOctets
if état = "Complete" then
put(URL && "Téléchargement terminé");
end if
end streamStatus
// Syntaxe JavaScript
function streamStatus(URL, état, octetsTéléchargés, totalDesOctets) {
if (état == "Terminé") {
put(URL + " Téléchargement terminé");
}
}
Voir aussi
getStreamStatus(), tellStreamStatus()
on timeOut
Utilisation
-- Syntaxe Lingo
on timeOut
instruction(s)
end
// Syntaxe JavaScript
function timeOut() {
instruction(s);
}
Description
Message système et gestionnaire d’événement; contient des instructions exécutées lorsque la souris
ou le clavier n’a pas été utilisé pendant la durée spécifiée par timeOutLength. Placez toujours un
gestionnaire on timeOut dans un script d’animation.
Pour que la temporisation produise la même réponse pendant toute l’animation, utilisez
afin de contrôler le comportement du délai d’inactivité de façon centralisée.
timeoutScript
Exemple
Le gestionnaire suivant lit l’animation Boucle lorsque les utilisateurs sont restés inactifs pendant
l’intervalle de temps défini dans la propriété timeoutLength. Il peut être utilisé pour répondre
lorsque les utilisateurs quittent l’ordinateur.
-- Syntaxe Lingo
on timeOut
_movie.play("Boucle")
end timeOut
// Syntaxe JavaScript
function timeOut() {
_movie.play("Boucle");
}
216
Chapitre 10 : Evénements et messages
trayIconDoubleClick
Utilisation
-- Syntaxe Lingo
on trayIconDoubleClick
instruction(s)
end
// Syntaxe JavaScript
function trayIconDoubleClick() {
instruction(s);
}
Description
Gestionnaire d’événements d’animations et fenêtres (Microsoft Windows seulement). Contient
des instructions qui sont exécutées lorsqu’un utilisateur double clique sur l’icône de la barre
d’applications.
L’événement trayIconDoubleClick n’est envoyé au gestionnaire que si la propriété
systemTrayIcon est définie comme étant TRUE.
Exemple
Le gestionnaire suivant met une animation en pause quand un utilisateur double-clique sur
l’icône de la barre d’état système.
-- Syntaxe Lingo
on trayIconDoubleClick
_movie.delay(500)
end
// Syntaxe JavaScript
function trayIconDoubleClick() {
_movie.delay(500);
}
Voir aussi
Animation, systemTrayIcon, trayIconMouseDown, trayIconRightMouseDown, Fenêtre
trayIconMouseDown
Utilisation
-- Syntaxe Lingo
on trayIconMouseDown
instruction(s)
end
// Syntaxe JavaScript
function trayIconMouseDown() {
instruction(s);
}
Description
Gestionnaire d’événements d’animations et fenêtres (Microsoft Windows seulement). Contient
des instructions qui sont exécutées lorsqu’un utilisateur clique une fois sur l’icône de la barre
d’applications.
217
L’événement trayIconMouseDown n’est envoyé au gestionnaire que si la propriété
systemTrayIcon est définie comme étant TRUE.
Exemple
Le gestionnaire suivant met une animation en pause quand un utilisateur clique avec la souris
alors que le pointeur se trouve au-dessus de l’icône de la barre d’état système.
-- Syntaxe Lingo
on trayIconMouseDown
_movie.delay(500)
end
// Syntaxe JavaScript
function trayIconMouseDown() {
_movie.delay(500);
}
Voir aussi
Animation, systemTrayIcon, trayIconDoubleClick, trayIconRightMouseDown,
Fenêtre
trayIconRightMouseDown
Utilisation
-- Syntaxe Lingo
on trayIconRightMouseDown
instruction(s)
end
// Syntaxe JavaScript
function trayIconRightMouseDown() {
instruction(s);
}
Description
Gestionnaire d’événements d’animations et fenêtres (Microsoft Windows seulement). Contient
des instructions qui sont exécutées lorsqu’un utilisateur clique avec le bouton droit de la souris sur
l’icône de la barre d’applications.
L’événement trayIconRightMouseDown n’est envoyé au gestionnaire que si la propriété
systemTrayIcon est définie comme étant TRUE.
Exemple
Le gestionnaire suivant met une animation en pause quand un utilisateur clique sur l’icône de la
barre d’état système avec le bouton droit.
-- Syntaxe Lingo
on trayIconRightMouseDown
_movie.delay(500)
end
// Syntaxe JavaScript
function trayIconRightMouseDown() {
_movie.delay(500);
}
218
Chapitre 10 : Evénements et messages
Voir aussi
Animation, systemTrayIcon, trayIconDoubleClick, trayIconMouseDown, Fenêtre
on zoomWindow
Utilisation
-- Syntaxe Lingo
on zoomWindow
instruction(s)
end
// Syntaxe JavaScript
function zoomWindow() {
instruction(s);
}
Description
Message système et gestionnaire d’événement ; contient des instructions exécutées lorsqu’une
animation dans une fenêtre est redimensionnée. Cela se produit lorsque l’utilisateur clique sur
le bouton Réduction ou Agrandissement (Windows) ou sur le bouton Zoom (Macintosh).
Le système d’exploitation détermine les dimensions après avoir redimensionné la fenêtre.
Un gestionnaire d’événement on zoomWindow est un emplacement idéal pour insérer des
éléments Lingo permettant de réorganiser les images-objets lorsque les dimensions de la
fenêtre évoluent.
Exemple
Ce gestionnaire déplace l’image-objet 3 vers les coordonnées stockées dans la variable
emplacementCentral lorsque la fenêtre lue par l’animation est redimensionnée :
-- Syntaxe Lingo
on zoomWindow
emplacementCentral = point(10, 10)
sprite(3).loc = emplacementCentral
end
// Syntaxe JavaScript
function zoomWindow() {
var emplacementCentral = point(10, 10);
sprite(3).loc = emplacementCentral;
}
Voir aussi
drawRect, sourceRect, on resizeWindow
219
220
Chapitre 10 : Evénements et messages
CHAPITRE 11
Mots-clés
Cette section propose une liste alphabétique de tous les mots-clés disponibles dans Macromedia
Director MX 2004.
Ces mots-clés ne s’appliquent qu’à Lingo. La syntaxe JavaScript contient des mots-clés et des
expressions dont la fonction est similaire aux mots-clés Lingo suivants, mais qui ne sont pas traités
ici. Pour plus d’informations au sujet des mots-clés et expressions de la syntaxe JavaScript,
consultez le Chapitre 2, Principes de base du scripting dans Director, page 9.
\ (continuation)
Utilisation
-- Syntaxe Lingo
première partie d’une instruction sur cette ligne \
deuxième partie de l’instruction \
troisième partie de l’instruction
Description
Symbole de continuation; lorsqu’il est utilisé comme dernier caractère d’une ligne, indique que
l’instruction continue à la ligne suivante. Lingo interprète alors ces lignes comme une seule
instruction.
Exemple
L’instruction suivante utilise le caractère \ pour diviser l’instruction en deux lignes :
-- Syntaxe Lingo
if sprite("monImageObjet").member = member("monActeur") then \
_player.alert("L’image-objet a été créée à partir de monActeur")
221
case
Utilisation
-- Syntaxe Lingo
case expression of
expression1 : instruction
expression2 : Instruction(s)
expression3, expression4 : instruction
{otherwise: Instruction(s)}
end case
Description
Mot-clé ; lance une structure de branchements multiples plus facile à rédiger qu’une suite
d’instructions if...then.
Lingo compare la valeur de case expression aux expressions des lignes suivantes. Cette
comparaison commence au début de ces lignes et continue dans l’ordre jusqu’à ce que Lingo
rencontre une expression identique à case expression.
Le cas échéant, Lingo exécute la ou les instructions correspondantes suivant les deux points placés
après l’expression identique. Si une seule instruction suit l’expression identique, l’instruction peut
être placée sur la même ligne. Les instructions multiples doivent apparaître sur des lignes
immédiatement en retrait après l’expression identique.
Lorsque plusieurs correspondances possibles pourraient entraîner Lingo à exécuter les mêmes
instructions, les expressions doivent être séparées par des virgules. (La ligne contenant
expression3 et expression4 est un exemple de ce genre de situation.)
Lingo suspend sa recherche de correspondance dès qu’il rencontre la première expression
correspondant à celle recherchée.
Si l’instruction facultative otherwise figure à la fin de la structure case, les instructions qui
suivent otherwise sont exécutées si Lingo ne rencontre aucune expression identique.
Exemple
Le gestionnaire suivant teste la touche que l’utilisateur vient d’enfoncer et répond en
conséquence.
• Si l’utilisateur a appuyé sur A, l’animation passe à l’image Pomme.
• Si l’utilisateur a appuyé sur B ou C, l’animation exécute la transition demandée et passe à
l’image Oranges.
• Si l’utilisateur a appuyé sur n’importe quelle autre touche, l’ordinateur émet un bip sonore.
on keyDown
case (_key.key) of
"a" : _movie.go("Pomme")
"b", "c":
_movie.puppetTransition(99)
_movie.go("Oranges")
otherwise: _sound.beep()
end case
end keyDown
222
Chapitre 11 : Mots-clés
L’instruction case suivante vérifie si le curseur se trouve sur l’image-objet 1, 2 ou 3 et exécute
l’élément Lingo approprié :
case _movie.rollOver() of
1: sound(1).play(member("Clarinette"))
2: sound(1).play(member("Tambour"))
3: sound(1).play(member("Bongos"))
end case
char...of
Utilisation
-- Syntaxe Lingo
expressionActeurTexte.char[quelCaractère]
charquelCaractèreof variableChaîneouChamp
expressionActeurTexte.char[premierCaractère..dernierCaractère]
char premierCaractère to dernierCaractère of variableChaîneouChamp
Description
Mot-clé ; identifie un caractère ou une plage de caractères dans une sous-chaîne. Une expression
de sous-chaîne peut être n’importe quel caractère, mot, élément ou ligne dans n’importe quelle
source de texte (telle que des acteurs champ et des variables) contenant une chaîne.
• Une expression utilisant quelCaractère identifie un caractère spécifique.
• Une expression utilisant premierCaractère et dernierCaractère identifie une plage
de caractères.
Ces expressions doivent être des nombres entiers spécifiant un caractère ou une plage de caractères
dans une sous-chaîne. Les caractères peuvent être des lettres, des nombres, des signes de ponctuation, des espaces et des caractères de contrôle comme Tab ou Retour.
Le mot-clé char...of peut être testé, mais pas défini. Utilisez la commande put...into pour
modifier les caractères d’une chaîne.
Exemple
L’instruction suivante affiche le premier caractère de la chaîne 9,00 euros :
put(("9,00 euros").char[1..1])
-- "$"
L’instruction suivante affiche la chaîne 9,00 euros entière :
put(("9,00 euros").char[1.0.5])
-- "$9.00"
L’instruction suivante modifie les cinq premiers caractères du deuxième mot de la troisième ligne
d’un acteur texte :
member("question").line[3].word[2].char[1..5] = "?????"
Voir aussi
mouseMember, mouseItem, mouseLine, mouseWord
223
end
Utilisation
-- Syntaxe Lingo
end
Description
Mot-clé ; marque la fin des gestionnaires et des structures de contrôle à plusieurs lignes.
Exemple
Le gestionnaire mouseDown suivant se termine par une instruction end mouseDown.
on mouseDown
_player.alert("Le bouton de la souris a été enfoncé")
end mouseDown
end case
Utilisation
-- Syntaxe Lingo
end case
Description
Mot-clé ; termine une instruction case.
Exemple
Le gestionnaire suivant utilise le mot-clé end case pour terminer l’instruction case :
on keyDown
case (_key.key) of
"a" : _movie.go("Pomme")
"b", "c":
_movie.puppetTransition(99)
_movie.go("Oranges")
otherwise: _sound.beep()
end case
end keyDown
Voir aussi
case
exit
Utilisation
-- Syntaxe Lingo
exit
Description
Mot-clé ; indique à Lingo de quitter un gestionnaire et de retourner où le gestionnaire a été
appelé. Si le gestionnaire est imbriqué dans un autre gestionnaire, Lingo retourne au gestionnaire
principal.
224
Chapitre 11 : Mots-clés
Exemple
La première instruction du script suivant vérifie si le moniteur est en noir et blanc et, le cas
échéant, sort du gestionnaire :
on définitionDesCouleurs
if _system.colorDepth = 1 then exit
sprite(1).forecolor = 35
end
Voir aussi
abort, halt(), quit(), pass, return (mot-clé)
exit repeat
Utilisation
-- Syntaxe Lingo
exit repeat
Description
Mot-clé ; indique à Lingo de quitter une boucle et de passer à l’instruction suivant l’instruction
end repeat, sans toutefois quitter la méthode ou le gestionnaire courant.
Le mot-clé exit repeat est pratique pour sortir d’une boucle lorsqu’une condition spécifiée,
telle que l’égalité de deux valeurs ou la présence d’une valeur donnée dans une variable, existe.
Exemple
Le gestionnaire suivant cherche la position de la première voyelle dans une chaîne représentée par
la variable chaîneDeTest. Dès que la première voyelle est trouvée, la commande exit repeat
indique à Lingo de quitter la boucle et de passer à l’instruction return i :
on rechercheDeVoyelle chaîneDeTest
repeat with i = 1 to chaîneDeTest.char[chaîneDeTest.char.count]
if "aeiou" contains chaîneDeTest.char[i] then exit repeat
end repeat
return i
end
Voir aussi
repeat while, repeat with
field
Utilisation
field( quelChamp)
Description
Mot-clé ; fait référence à l’acteur champ spécifié par quelChamp.
• Lorsque quelChamp est une chaîne, il est utilisé comme nom d’acteur.
• Lorsque quelChamp est un nombre entier, il est utilisé comme numéro d’acteur.
Les chaînes de caractères et expressions de sous-chaînes peuvent être lues ou placées dans le
champ.
225
Le terme field était utilisé dans les versions précédentes de Director et est conservé pour une
compatibilité amont. Pour les nouvelles animations, utilisez member pour faire référence aux
acteurs champs.
Exemple
L’instruction suivante place les caractères 5 à 10 du champ nommé Entrée dans la variable
monMotClé :
monMotClé = field("Entrée").char[5..10]
L’instruction suivante vérifie si l’utilisateur a saisi le mot bureau et, le cas échéant, passe à l’image
devisBureau :
if member("devis") contains "bureau" then _movie.go("devisBureau")
Voir aussi
char...of, item...of, line...of, word...of
global
Utilisation
global variable1 {, variable2} {, variable3}...
Description
Mot-clé ; définit une variable comme variable globale pour que les autres gestionnaires ou
animations puissent la partager.
Chaque gestionnaire qui examine ou change le contenu d’une variable globale doit utiliser le motclé global pour identifier la variable comme une variable globale. Autrement, le gestionnaire
traite la variable comme une variable locale, même si un autre gestionnaire l’a déclarée comme
globale.
Remarque : Pour assurer que les variables globales soient disponibles dans l’ensemble d’une
animation, déclarez et initialisez-les dans le gestionnaire prepareMovie. Ensuite, si vous quittez
l’animation et revenez à celle-ci à partir d’une autre animation, vos variables globales reprendront
leurs valeurs initiales à moins que vous ne vérifiiez d’abord qu’elles ne sont pas déjà définies.
Une variable globale peut être déclarée dans n’importe quel gestionnaire ou script. Sa valeur peut
être utilisée par d’autres gestionnaires ou scripts qui déclarent également la variable comme
globale. Si le script change la valeur de la variable, la nouvelle valeur est disponible pour tous les
autres gestionnaires traitant la variable comme globale.
Une variable globale est disponible dans n’importe quel script ou animation, quel que soit
l’endroit où elle a été d’abord déclarée; elle n’est pas automatiquement supprimée lorsque vous
naviguez vers une autre image, animation ou fenêtre.
Les variables manipulées dans la fenêtre Messages sont automatiquement globales, même si elles
ne sont pas explicitement déclarées comme telles.
Les animations à contenu Macromedia Shockwave exécutées sur Internet ne peuvent pas accéder
aux variables globales d’autres animations, y compris les animations exécutées sur la même page
HTML. Les animations peuvent uniquement partager des variables globales si une animation
intégrée navigue vers une autre animation et est remplacée par le biais des commandes
goToNetMovie ou go movie.
226
Chapitre 11 : Mots-clés
Exemple
L’exemple suivant donne à la variable globale PointDeDépart/ sa valeur initiale de 1 si elle ne
contient pas déjà une valeur. Cela permet une navigation vers l’animation et aussi à partir de celleci, sans perte des données enregistrées.
global gPointDeDépart
on prepareMovie
if voidP(gPointDeDépart) then gPointDeDépart = 1
end
Voir aussi
showGlobals(), property, gotoNetMovie
if
Utilisation
ifexpressionLogique then instruction
if expressionLogique then instruction
else instruction
end if
if expressionLogique then
instruction(s)
end if
if expressionLogique then
instruction(s)
else
instruction(s)
end if
if expressionLogique1 then
instruction(s)
else if expressionLogique2 then
instruction(s)
else if expressionLogique3 then
instruction(s)
end if
if expressionLogique1 then
instruction(s)
else expressionLogique2
end if
Description
Mot-clé ; la structure if...then évalue l’expression logique spécifiée par expressionLogique.
• Si la condition a la valeur TRUE, Lingo exécute les instructions suivant then.
• Si la condition a la valeur FALSE, Lingo exécute les instructions suivant else. Si aucune
•
instruction ne suit else, Lingo quitte la structure if...then.
Toutes les parties de la condition doivent être évaluées, l’exécution ne s’arrêtant pas à la
première condition remplie ou non remplie. Un code plus rapide peut donc être créé en
imbriquant des instructions if...then sur des lignes séparées au lieu de toutes les placer sur
la première ligne à évaluer.
Lorsque la condition est une propriété, Lingo vérifie automatiquement si elle a la valeur TRUE.
Vous n’avez pas besoin d’ajouter explicitement la phrase = TRUE après la propriété.
227
La partie else de l’instruction est facultative. Pour utiliser plus
statement ou else, vous devez conclure par la forme end if.
d’une instruction then-
La partie else correspond toujours à l’instruction if précédente ; vous devez donc parfois inclure
une instruction else nothing pour associer un mot-clé else au mot-clé if approprié.
Remarque : Une façon rapide de déterminer dans la fenêtre Script si le script est correctement lié est
d’appuyer sur la touche Tab. Cela force Director à vérifier la fenêtre Script ouverte et afficher la
présentation en retrait du contenu. Les différences seront immédiatement visibles.
Exemple
L’instruction suivante vérifie si l’utilisateur a appuyé sur un retour chariot et, le cas échéant,
continue :
if the key = RETURN then go the frame + 1
Le gestionnaire suivant vérifie si les touches Cmd et Q ont été enfoncées simultanément et, le cas
échéant, exécute les instructions suivantes :
on keyDown
if (_key.commandDown) and (_key.key = "q") then
nettoyage
quit
end if
end keyDown
Comparez les deux constructions suivantes et les résultats en matière de performance. La première
construction évalue les deux conditions et doit déterminer la mesure du temps, ce qui peut
prendre un moment. La seconde construction évalue la première condition; la seconde condition
étant vérifiée uniquement si la première condition a la valeur TRUE.
imageObjetSousLeCurseur = rollOver()
if (imageObjetSousLeCurseur > 25) and MesureDuTempsDepuisLeDépart() then
_player.alert("Vous avez trouvé le trésor caché !")
end if
La construction plus rapide serait :
imageObjetSousLeCurseur = rollOver()
if (imageObjetSousLeCurseur > 25) then
if MesureDuTempsDepuisLeDépart() then
_player.alert("Vous avez trouvé le trésor caché !")
end if
end if
Voir aussi
case
INF
Utilisation
-- Syntaxe Lingo
INF
Description
Valeur renvoyée ; indique qu’une expression Lingo spécifiée est évaluée comme un nombre infini.
Voir aussi
NAN
228
Chapitre 11 : Mots-clés
item...of
Utilisation
-- Syntaxe Lingo
texpressionActeurTexte.item[quelElément]
item quelElément of variableChaîneOuChamp
expressionActeurTexte.item[premierElément..dernierElément]
item premierElément to dernierElément of variableChaîneOuChamp
Description
Mot-clé ; spécifie un élément ou une série d’éléments d’une sous-chaîne. Un élément est une
série de caractères délimités par le séparateur défini dans la propriété itemDelimiter.
Les termes quelElément, premierElément et dernierElément doivent être des nombres entiers
ou des expressions entières faisant référence à la position des éléments dans la sous-chaîne.
Les sous-chaînes permettent de faire référence à tout caractère, mot, élément ou ligne de
n’importe quelle chaîne de texte. Les chaînes possibles sont les acteurs champ et texte et les
variables contenant des chaînes.
Lorsque le nombre spécifiant le dernier élément est supérieur à celui correspondant à la position
de cet élément dans la sous-chaîne, le dernier élément est spécifié à la place.
Exemple
L’instruction suivante détermine le troisième élément d’une sous-chaîne composée de noms de
couleurs et affiche le résultat dans la fenêtre Messages :
put("rouge,jaune,bleu vert,orange".item[3])
-- "bleu vert"
Le résultat est la sous-chaîne « bleu vert » car tous les caractères placés entre virgules sont pris en
compte.
L’instruction suivante détermine les éléments du troisième au cinquième élément de la souschaîne. Puisque celle-ci ne contient que quatre éléments, seuls le troisième et le quatrième sont
renvoyés. Le résultat apparaît dans la fenêtre Messages.
put("rouge,jaune,bleu vert,orange".item[3..5])
-- "bleu vert, orange"
put item 5 of "rouge, jaune, bleu vert, orange"
-- ""
L’instruction suivante insère l’élément Bureau en quatrième position dans la deuxième ligne de
l’acteur champ Tous les devis :
member("Tous les devis").line[2].item[4] = "Bureau"
Voir aussi
char...of, itemDelimiter, number of members, word...of
229
line...of
Utilisation
-- Syntaxe Lingo
expressionActeurTexte.line[quelleLigne]
line quelleLigne of ChampOuVariableChaîne
expressionActeurTexte.line[premièreLigne..dernièreLigne]
line premièreLigne to dernièreLigne of ChampOuVariableChaîne
Description
Mot-clé ; identifie une ligne ou une série de lignes d’une sous-chaîne. Une ligne est constituée
d’une série de caractères délimités par des retours de chariot et non par des retours à la ligne
automatiques.
Les expressions quelleLigne, premièreLigne et dernièreLigne doivent être des nombres
entiers spécifiant une ligne de la sous-chaîne.
Les sous-chaînes peuvent représenter n’importe quel caractère, mot, élément ou ligne d’un groupe
de caractères. Les sources de texte peuvent être des acteurs champ et des variables contenant des
chaînes.
Exemple
L’instruction suivante affecte les quatre premières lignes de la variable Action à l’acteur champ
Tâches :
member("Tâches").text = Action.line[1..4]
L’instruction suivante insère le mot et après le deuxième mot de la troisième ligne de la chaîne
affectée à la variable Notes :
put "et" after Notes.line[3].word[2]
Voir aussi
char...of, item...of, word...of, number of members
loop (mot-clé)
Utilisation
-- Syntaxe Lingo
_movie.goLoop()
Description
Mot-clé ; fait référence au repère.
Exemple
Le gestionnaire suivant fait boucler l’animation entre le repère précédent et l’image courante :
on exitFrame
_movie.goLoop()
end exitFrame
230
Chapitre 11 : Mots-clés
me
Utilisation
-- Syntaxe Lingo
me
Description
Variable spéciale; s’utilise à l’intérieur de scripts parents et de comportements pour faire référence
à l’objet courant lorsqu’il est une instance du script parent, du comportement ou d’une variable
contenant l’adresse mémoire de l’objet.
Ce terme n’a aucune signification prédéfinie en Lingo. Le terme me est utilisé par convention.
Vous pourrez voir un exemple de me dans une animation en consultant l’animation Parent Scripts
du dossier Learning/Lingo, lui-même dans le dossier de Director.
Exemple
L’instruction suivante affecte l’objet monOiseau1 au script Oiseau. Le mot-clé me accepte le script
Oiseau et sert à renvoyer ce paramètre.
monOiseau1 = new script ("Oiseau")
Voici le gestionnaire on new du script Oiseau :
on new me
return me
end
Les deux ensembles de gestionnaires suivants forment un script parent. Le premier ensemble
utilise me pour faire référence à l’objet enfant. Le second ensemble utilise la variable monAdresse
pour faire référence à l’objet enfant. Pour ce qui est du reste, les scripts parents sont les mêmes.
Premier ensemble :
property mesDonnées
on new me, lesDonnées
mesDonnées = lesDonnées
return me
end
on stepFrame me
traiterLesDonnées me
end
Second ensemble :
property mesDonnées
on new monAdresse, lesDonnées
mesDonnées = lesDonnées
return monAdresse
end
on stepFrame monAdresse
traiterLesDonnées monAdresse
end
Voir aussi
new(), ancestor
231
menu
Utilisation
-- Syntaxe Lingo
menu: nomDeMenu
nomDélément | script
nomDélément | script
...
or
menu: nomDeMenu
nomDélément | script
nomDélément | script
...
[plus de menus]
Description
Mot-clé ; utilisé avec la commande installMenu, spécifie le contenu des menus personnalisés.
Les acteurs champ contiennent des définitions de menus. Faites référence à ces définitions en
utilisant le nom ou le numéro de l’acteur.
Le mot-clé menu est immédiatement suivi d’un deux-points, d’un espace et du nom du menu.
Spécifiez les éléments de ce menu sur les lignes suivantes. Vous pouvez définir un script qui sera
exécuté lorsque l’utilisateur choisit un élément du menu en plaçant le script après le symbole barre
verticale (|). Un nouveau menu est défini par les occurrences suivantes du mot-clé menu.
Remarque : Les menus ne sont pas disponibles dans Shockwave Player.
Sur Macintosh, vous pouvez utiliser des caractères spéciaux pour définir des menus personnalisés.
Ces caractères spéciaux sont sensibles à la casse. Par exemple, pour qu’un élément de menu
apparaisse en gras, la lettre B doit être en majuscules.
Des symboles spéciaux doivent suivre le nom de l’élément de menu et précéder le symbole barre
verticale (|). Vous pouvez également utiliser plus d’un caractère spécial pour définir un élément de
menu. L’utilisation de <B<U, par exemple, définit le style Gras et Souligné.
Evitez de formater les caractères spéciaux des animations qui seront lues sur des plates-formes
différentes, Windows ne supportant pas toujours ce formatage.
232
Symbole Exemple
Description
@
menu: @
*Sur Macintosh, crée le symbole Pomme et active les éléments de la
barre des menus lorsque vous définissez un menu Pomme.
!Ã
!ÃSélection
rapide
*Sur Macintosh, place une coche (Option+v) près du menu.
<B
Gras<B
*Sur Macintosh, donne à l’élément de menu le style Gras.
<I
Italique<I
*Sur Macintosh, définit le style Italique.
<U
Souligné<U
*Sur Macintosh, définit le style Souligné.
<O
Relief<O
*Sur Macintosh, définit le style Relief.
<S
Ombré<S
*Sur Macintosh, définit le style Ombré.
Chapitre 11 : Mots-clés
Symbole Exemple
Description
|
Ouvrir/O | go
to frame
"Ouvrir"
Associe un script à l’élément de menu.
/
Quitter/Q
Définit un équivalent commande-touche.
(
Enregistrer(
Désactive l’élément de menu.
(-
Crée une ligne désactivée dans le menu.
(*
identifie les symboles de formatage qui ne fonctionnent que sur Macintosh.
Exemple
Voici le texte d’un acteur champ appelé menuPersonnalisé2 qui permet d’indiquer le
contenu d’un menu Fichier personnalisé. Pour installer ce menu, utilisez installMenu
member("menuPersonnalisé2") pendant la lecture de l’animation. L’élément de menu
Convertir exécute le gestionnaire personnalisé convertirCeci.
menu: Fichier
Open/O | _movie.go("Ouvrir")
Close/W | _movie.go("Fermer")
Convertir/C | convertirCeci
(Quit/Q | _movie.go("Quitter")
Voir aussi
installMenu, name, number (éléments de menu), checkMark, enabled, script
NAN
Utilisation
-- Syntaxe Lingo
NAN
Description
Valeur renvoyée ; indique que l’expression Lingo spécifiée n’est pas un nombre.
L’instruction suivante tente d’afficher la racine carrée de -1, qui n’est pas un nombre, dans la
fenêtre Messages :
-- Syntaxe Lingo
put((-1).sqrt) -- NAN
Voir aussi
INF
next
Utilisation
-- Syntaxe Lingo
next
Description
Mot-clé ; fait référence au repère suivant de l’animation et revient à utiliser la phrase the marker
(+ 1).
233
Exemple
L’instruction suivante envoie la tête de lecture sur le repère suivant de l’animation :
go next
Le gestionnaire suivant fait passer la tête de lecture au repère suivant du scénario lorsque l’utilisateur appuie sur la touche flèche vers la droite et au repère précédent lorsqu’il appuie sur la touche
flèche vers la gauche :
on keyUp
if (_key.keyCode = 124) then _movie.goNext()
if (_key.keyCode = 123) then _movie.goPrevious()
end keyUp
Voir aussi
loop (mot-clé), goPrevious()
next repeat
Utilisation
-- Syntaxe Lingo
next repeat
Description
Mot-clé ; fait passer Lingo à l’étape suivante d’une boucle d’un script. Cette fonction est
différente de celle du mot-clé exit repeat.
Exemple
La boucle suivante n’affiche que les nombres impairs dans la fenêtre Messages :
repeat with i = 1 to 10
if (i mod 2) = 0 then next repeat
put(i)
end repeat
on
Utilisation
-- Syntaxe Lingo
on nomDeGestionnaire {argument1}, {argument2}, {argument3} ...
instruction(s)
end nomDeGestionnaire
Description
Mot-clé ; indique le début d’un gestionnaire, une suite d’instructions Lingo que vous pouvez
exécuter en utilisant le nom du gestionnaire. Un gestionnaire peut accepter des arguments comme
valeurs d’entrée et renvoyer une valeur comme résultat d’une fonction.
Les gestionnaires peuvent être définis dans les comportements, les scripts d’animations et les
scripts d’acteurs. Le gestionnaire d’un script d’acteur ne peut être appelé que par les autres
gestionnaires du même script. Le gestionnaire d’un script d’animation peut être appelé de
partout.
Vous pouvez utiliser le même gestionnaire dans plusieurs animations en plaçant son script dans
une distribution partagée.
234
Chapitre 11 : Mots-clés
otherwise
Utilisation
-- Syntaxe Lingo
otherwise instruction(s)
Description
Mot-clé ; précède les instructions que Lingo exécute si aucune des conditions précédentes d’une
instruction case n’est remplie.
Ce mot-clé peut s’utiliser pour avertir les utilisateurs d’une entrée hors limites ou d’un type non
valide. Il peut aussi s’avérer très utile pour les opérations de débogage pendant le développement.
Exemple
Le gestionnaire suivant détermine la dernière touche sur laquelle l’utilisateur a appuyé et répond
en conséquence :
• Si l’utilisateur a appuyé sur A, B ou C, l’animation exécute l’action correspondante qui suit le
•
mot-clé of.
Si l’utilisateur a appuyé sur une autre touche, l’animation exécute l’instruction qui suit le motclé otherwise. Le cas échéant, l’instruction est un simple message d’alerte.
on keyDown
case (_key.key) of
"a" : _movie.go("Pomme")
"b", "c":
_movie.puppetTransition(99)
_movie.go("Oranges")
otherwise: _player.alert("Cette touche n’est pas valide.")
end case
end keyDown
property
Utilisation
-- Syntaxe Lingo
property {propriété1}{, propriété2} {,propriété3} {...}
Description
Mot-clé ; déclare que les propriétés indiquées par propriété1, propriété2 etc,. sont des
variables de propriétés.
Declarez les variables de propriétés au début du script parent ou du script comportement.
L’opérateur the permet d’y accéder en dehors de ces scripts.
Remarque : La propriété spriteNum est disponible à tous les comportements et il suffit de la déclarer
pour y accéder.
Vous pouvez faire référence à une propriété dans un script parent ou de comportement sans
utiliser le mot-clé me. Cependant, pour faire référence à une propriété de l’ancêtre d’un script
parent, utilisez la forme me.propriété.
Pour les comportements, les propriétés définies dans un script de comportement sont disponibles
aux autres comportements associés à la même image-objet.
235
Vous pouvez manipuler la propriété d’un objet enfant directement en dehors de ses scripts parents
au moyen d’une syntaxe semblable à celle utilisée pour manipuler d’autres propriétés. Par exemple, l’instruction suivante définit la propriété styleDeDéplacement d’un objet enfant :
set the styleDeDéplacement of monObjet to #frénétique
Utilisez la fonction count pour déterminer le nombre de propriétés contenues dans le script
parent d’un objet enfant. Récupérez le nom de ces propriétés au moyen de getPropAt. Ajoutez
des propriétés à un objet au moyen de setaProp().
Vous pourrez voir un exemple de property dans une animation en consultant l’animation Parent
Scripts du dossier Learning/Lingo, lui-même dans le dossier de Director.
Exemple
L’instruction suivante permet à chaque objet enfant créé à partir d’un script parent unique de
posséder ses propres paramètres de position et de vitesse :
property position, vitesse
Le gestionnaire de script parent suivant déclare une propriété pMonNumDimageObjet pour la
rendre disponible :
-- script Ancien
property pMaPiste
on new me, quelleImageObjet
me.pMaPiste = quelleImageObjet
return me
end
Le script de comportement d’origine définit l’ancêtre et transmet la propriété spriteNum à tous
les comportements :
property spriteNum
property ancestor
on beginSprite me
ancestor = new script("Ancien", spriteNum)
end
Voir aussi
me, ancestor, spriteNum
put...after
Utilisation
-- Syntaxe Lingo
put expression after expressionSousChaîne
Description
Commande ; évalue une expression Lingo, convertit la valeur en chaîne et insère celle-ci à la fin
d’une sous-chaîne spécifiée dans un conteneur, sans remplacer le contenu de ce dernier. Si
expressionSousChaîne spécifie une sous-chaîne cible qui n’existe pas, la valeur de la chaîne est
insérée de manière appropriée dans le conteneur.
Les expressions de sous-chaîne peuvent représenter n’importe quel caractère, mot, élément ou
ligne dans un conteneur quelconque. Les conteneurs peuvent être des acteurs champ, des acteurs
texte et des variables contenant des chaînes, ainsi que des caractères, des mots, des éléments, des
lignes et des plages spécifiés dans des conteneurs.
236
Chapitre 11 : Mots-clés
Exemple
L’instruction suivante ajoute la chaîne « renard chien chat » après le contenu de l’acteur champ
Liste d’animaux :
put("renard chien chat") after member("Liste d’animaux")
Le même résultat peut s’obtenir avec l’instruction suivante :
put "renard chien chat" after member("Liste d’animaux").line[1]
Voir aussi
char...of, item...of, line...of, paragraph, word...of, put...before,
put...into
put...before
Utilisation
-- Syntaxe Lingo
put expression before expressionSousChaîne
Description
Commande ; évalue une expression Lingo, convertit la valeur en chaîne et insère celle-ci avant
une sous-chaîne spécifiée dans un conteneur, sans remplacer le contenu de ce dernier. Si
expressionSousChaîne spécifie une sous-chaîne cible qui n’existe pas, la valeur de la chaîne est
insérée de manière appropriée dans le conteneur.
Les expressions de sous-chaîne peuvent représenter n’importe quel caractère, mot, élément ou
ligne dans un conteneur quelconque. Les conteneurs peuvent être des acteurs champ, des acteurs
texte et des variables contenant des chaînes, ainsi que des caractères, des mots, des éléments, des
lignes et des plages spécifiés dans des conteneurs.
Exemple
L’instruction suivante affecte à la variable listeDanimaux la chaîne « renard chien chat », puis
insère le mot élan avant le deuxième mot de la liste :
put "renard chien chat" into listeDanimaux
put "élan" before word 2 of listeDanimaux
Le résultat correspond à la chaîne « renard élan chien chat ».
Le même résultat peut s’obtenir avec la syntaxe suivante :
put "renard chien chat" into listeDanimaux
put "élan" before listeDanimaux.word[2]
Voir aussi
char...of, item...of, line...of, paragraph, word...of, put...after, put...into
237
put...into
Utilisation
-- Syntaxe Lingo
put expression into expressionSousChaîne
Description
Commande ; évalue une expression Lingo, convertit la valeur en une chaîne et insère celle-ci pour
remplacer une sous-chaîne spécifiée d’un conteneur. Si expressionSousChaîne spécifie une
sous-chaîne cible qui n’existe pas, la valeur de la chaîne est insérée de manière appropriée dans le
conteneur.
Les expressions de sous-chaîne peuvent représenter n’importe quel caractère, mot, élément ou
ligne dans un conteneur quelconque. Les conteneurs peuvent être des acteurs champ, des acteurs
texte et des variables contenant des chaînes, ainsi que des caractères, des mots, des éléments, des
lignes et des plages spécifiés dans des conteneurs.
Lorsqu’une animation est lue en tant qu’applet, la commande put...into remplace tout le texte
d’un conteneur, et non uniquement des sous-chaînes de texte.
Pour affecter des valeurs à des variables, utilisez la commande set.
Exemple
L’instruction suivante change la seconde ligne de l’acteur champ Critiques en Critique par Olivier
Pognon :
put "Critique par Olivier Pognon" into line 2 of member("Critiques")
Le même résultat peut s’obtenir avec un acteur texte au moyen de la syntaxe suivante :
put "Critique par Olivier Pognon" into member("Critiques").line[2]
Voir aussi
char...of, item...of, line...of, paragraph, word...of, put...before,
put...after, set...to, set...=
repeat while
Utilisation
-- Syntaxe Lingo
repeat whileconditionTest
instruction(s)
end repeat
Description
Mot-clé ; exécute les instructions tant que la condition spécifiée par conditionTest a la
valeur TRUE. Cette structure peut servir pour des instructions Lingo qui lisent des chaînes jusqu’à
ce que la fin d’un fichier soit atteinte, qui vérifient des éléments jusqu’à la fin d’une liste, ou qui
effectuent une action en boucle jusqu’à ce que l’utilisateur clique sur le bouton de la souris ou le
relâche.
Tant qu’il est dans une boucle, Lingo ignore les autres événements. Pour déterminer la touche
courante dans une boucle, utilisez la propriété keyPressed.
238
Chapitre 11 : Mots-clés
Un seul gestionnaire peut être exécuté à la fois. Si Lingo reste dans une boucle d’une façon
prolongée, d’autres événements s’empilent en attente d’évaluation. Les boucles sont donc
préférables pour les opérations courtes et rapides ou lorsque vous ne prévoyez aucune action de
l’utilisateur.
Si vous devez traiter quelque chose pendant au moins plusieurs secondes, évaluez la fonction dans
une boucle avec un compteur quelconque ou testez sa progression.
Si la condition d’arrêt n’est jamais atteinte ou s’il n’existe aucune sortie de la boucle, vous pouvez
forcer Director à s’arrêter avec Ctrl+Alt+point (Windows) ou Cmd+point (Macintosh).
Exemple
Le gestionnaire suivant lance le compteur en le remettant à 0 et le fait compter jusqu’à 60
millisecondes :
on countTime
_system.milliseconds
repeat while _system.milliseconds < 60
-- en attente
end repeat
end countTime
Voir aussi
exit, exit repeat, repeat with, keyPressed()
repeat with
Utilisation
-- Syntaxe Lingo
repeat with compteur = début to fin
instruction(s)
end repeat
Description
Mot-clé ; exécute le Lingo spécifié par instruction(s) autant de fois que spécifié par compteur.
La valeur de compteur est la différence entre la valeur indiquée par début et celle indiquée par
fin. Le compteur augmente de 1 à chaque fois que Lingo parcourt la boucle.
La structure repeat with sert à appliquer en continu le même effet à un ensemble d’imagesobjets ou à calculer une série de nombres à une certaine puissance.
Tant qu’il est dans une boucle, Lingo ignore les autres événements. Pour déterminer la touche
courante dans une boucle, utilisez la propriété keyPressed.
Un seul gestionnaire peut être exécuté à la fois. Si Lingo reste dans une boucle d’une façon
prolongée, d’autres événements s’empilent en attente d’évaluation. Les boucles sont donc
préférables pour les opérations courtes et rapides ou lorsque vous ne prévoyez aucune action
de l’utilisateur.
Si vous devez traiter quelque chose pendant au moins plusieurs secondes, évaluez la fonction dans
une boucle avec un compteur ou testez sa progression.
Si la condition d’arrêt n’est jamais atteinte ou s’il n’existe aucune sortie de la boucle, vous pouvez
forcer Director à s’arrêter avec Ctrl+Alt+point (Windows) ou Cmd+point (Macintosh).
239
Exemple
Le gestionnaire suivant transforme les images-objets 1 à 30 en esclaves :
on esclaves
repeat with channel = 1 to 30
_movie.puppetSprite(channel, TRUE)
end repeat
end esclaves
Voir aussi
exit, exit repeat, repeat while, repeat with...down to, repeat with...in list
repeat with...down to
Utilisation
-- Syntaxe Lingo
repeat with variable = valeurInitiale down to valeurFinale
Description
Mot-clé ; décompte par incréments de 1 à partir de valeurInitiale jusqu’à valeurFinale.
Un seul gestionnaire peut être exécuté à la fois. Si Lingo reste dans une boucle d’une façon
prolongée, d’autres événements s’empilent en attente d’évaluation. Les boucles sont donc
préférables pour les opérations courtes et rapides ou lorsque vous ne prévoyez aucune action
de l’utilisateur.
Tant qu’il est dans une boucle, Lingo ignore les autres événements. Pour déterminer la touche
courante dans une boucle, utilisez la propriété keyPressed.
Si vous devez traiter quelque chose pendant au moins plusieurs secondes, évaluez la fonction dans
une boucle avec un compteur ou testez sa progression.
Si la condition d’arrêt n’est jamais atteinte ou s’il n’existe aucune sortie de la boucle, vous pouvez
forcer Director à s’arrêter avec Ctrl+Alt+point (Windows) ou Cmd+point (Macintosh).
Exemple
Le gestionnaire suivant contient une boucle qui décompte de 20 à 15 :
on countDown
repeat with i = 20 down to 15
sprite(6).member = 10 + i
_movie.updateStage()
end repeat
end
repeat with...in list
Utilisation
-- Syntaxe Lingo
repeat with variable in uneListe
Description
Mot-clé ; affecte à la variable les valeurs successives issues de la liste spécifiée.
240
Chapitre 11 : Mots-clés
Tant qu’il est dans une boucle, Lingo ignore les autres événements, à l’exception des touches.
Pour déterminer la touche courante dans une boucle, utilisez la propriété keyPressed.
Un seul gestionnaire peut être exécuté à la fois. Si Lingo reste dans une boucle d’une façon
prolongée, d’autres événements s’empilent en attente d’évaluation. Les boucles sont donc
préférables pour les opérations courtes et rapides ou lorsque vous ne prévoyez aucune action
de l’utilisateur.
Si vous devez traiter quelque chose pendant au moins plusieurs secondes, évaluez la fonction dans
une boucle avec un compteur ou testez sa progression.
Si la condition d’arrêt n’est jamais atteinte ou s’il n’existe aucune sortie de la boucle, vous pouvez
forcer Director à s’arrêter avec Ctrl+Alt+point (Windows) ou Cmd+point (Macintosh).
Exemple
L’instruction suivante affiche quatre valeurs dans la fenêtre Messages :
repeat with i in [1, 2, 3, 4]
put(i)
end repeat
return (mot-clé)
Utilisation
-- Syntaxe Lingo
return expression
Description
Mot-clé; renvoie la valeur expression et quitte le gestionnaire. L’argument expression
peut être une valeur Lingo quelconque.
Lorsque vous appelez un gestionnaire qui sert de fonction définie par l’utilisateur et possède une
valeur de renvoi, vous devez entourer de parenthèses les listes d’arguments, même lorsque ces
listes sont vides, comme dans le cas du gestionnaire de fonction lancerLesDés illustré sous la
fonction result.
La fonction du mot-clé return est similaire à celle de la commande exit, à l’exception près que
renvoie également une valeur à l’instruction qui a appelé le gestionnaire. La commande
dans un gestionnaire entraîne la sortie immédiate de ce gestionnaire, mais peut renvoyer
une valeur au Lingo l’ayant appelé.
return
return
L’utilisation de return dans des scripts orientés objet peut être difficile à comprendre. Il est plus
aisé de commencer par utiliser return pour créer des fonctions et sortir de gestionnaires. Vous
verrez ensuite que la ligne return me dans un gestionnaire on new fournit un moyen de passer
une référence à un objet créé de façon qu’il puisse être affecté à un nom de variable.
Le mot-clé return n’est pas identique à la constante de caractère RETURN, qui correspond à un
retour de chariot. La fonction dépend du contexte.
Pour récupérer une valeur renvoyée, utilisez des parenthèses après le nom du gestionnaire dans
l’instruction d’appel pour indiquer que ce nom de gestionnaire est une fonction.
Vous pourrez voir un exemple de return (mot-clé) dans une animation en consultant
l’animation Parent Scripts du dossier Learning/Lingo, lui-même dans le dossier de Director.
241
Exemple
Le gestionnaire suivant renvoie un multiple aléatoire de cinq compris entre 5 et 100 :
on scoreAléatoire
score = 5 * random(20)
return score
end scoreAléatoire
Vous appelez ce gestionnaire avec une instruction semblable à la suivante :
score = scoreAléatoire()
Dans cet exemple, la variable score reçoit la valeur renvoyée par la fonction scoreAléatoire().
Un script parent remplit la même fonction : en renvoyant la référence de l’objet, le nom de la
variable du code d’appel fournit un pointeur pour références ultérieures à cet objet.
Voir aussi
result, RETURN (constante)
set...to, set...=
Utilisation
-- Syntaxe Lingo
propriétéLingo = expression
variable = expression
Description
Commande ; évalue une expression et affecte le résultat à la propriété spécifiée par
propriétéLingo ou à la variable spécifiée par variable.
Exemple
L’instruction suivante donne à l’acteur 3 le nom de Coucher de soleil :
member(3).name = "Coucher de soleil"
L’instruction suivante inverse l’état de la propriété soundEnabled. Si la propriété soundEnabled
a la valeur TRUE (son activé), cette instruction le désactive. Si la propriété soundEnabled a la
valeur FALSE (son désactivé), cette instruction l’active.
_sound.soundEnabled = not (_sound.soundEnabled)
L’instruction suivante affecte à la variable voyelles la chaîne « aeiou » :
voyelles = "aeiou"
Voir aussi
property
242
Chapitre 11 : Mots-clés
sprite...intersects
Utilisation
-- Syntaxe Lingo
sprite(image-objet1).intersects(image-objet2)
spriteimageObjet1).intersects imageObjet2
Description
Mot-clé ; opérateur comparant la position de deux images-objets pour déterminer si le
quadrilatère de l’imageObjet1 est en contact avec celui de l’imageObjet2 (TRUE) ou non (FALSE).
Si l’encre Dessin seul est appliquée aux deux images-objets, la comparaison porte sur leurs
contours, non sur leurs quadrilatères. Le contour d’une image-objet est défini par l’ensemble des
pixels autres que blanc formant sa bordure.
Il s’agit d’un opérateur de comparaison avec niveau de priorité de 5.
Remarque : L’opérateur point est requis lorsque l’imageObjet1 n’est pas une expression simple – une
expression contenant une opération mathématique.
Exemple
L’instruction suivante vérifie si deux images-objets se croisent et, le cas échéant, modifie le
contenu de l’acteur champ Notice pour qu’il contienne le texte « Position correcte ».
if sprite i intersects j then put("Position correcte") \
into member("Notice")
Voir aussi
sprite...within, quad
sprite...within
Utilisation
-- Syntaxe Lingo
sprite(image-objet1).within(image-objet2)
sprite(imageObjet1withinimageObjet2)
Description
Mot-clé ; opérateur comparant la position de deux images-objets pour déterminer si le
quadrilatère de l’imageObjet1 est complètement à l’intérieur de celui de l’imageObjet2 (TRUE)
ou non (FALSE).
Si l’encre Dessin seul est appliquée aux deux images-objets, la comparaison porte sur leurs
contours, non sur leurs quadrilatères. Le contour d’une image-objet est défini par l’ensemble des
pixels autres que blanc formant sa bordure.
Il s’agit d’un opérateur de comparaison avec niveau de priorité de 5.
Remarque : L’opérateur point est requis lorsque l’imageObjet1 n’est pas une expression simple – une
expression contenant une opération mathématique.
Exemple
L’instruction suivante vérifie si deux images-objets se croisent et, le cas échéant, appelle le
gestionnaire Intérieur :
if sprite(3).within(2) then Intérieur
243
Voir aussi
sprite...intersects, quad
version
Utilisation
-- Syntaxe Lingo
_player.productVersion
Description
Mot-clé ; variable système contenant le numéro de version de Director. La même chaîne apparaît
dans la boîte de dialogue Lire les informations du Finder, sur le Macintosh.
Exemple
L’instruction suivante affiche la version de Director dans la fenêtre Messages :
put(_player.productVersion)
word...of
Utilisation
-- Syntaxe Lingo
member(quelActeur).word[quelMot]
expressionActeurTexte.word[quelMot]
expressionSousChaîne[quelMot]
word quelMot of variableChampOuChaîne
variableChampOuChaîne word[quelMot
expressionActeurTexte.word[premierMot..dernierMot]
member(quelActeur).word[premierMot..dernierMot]
word premierMot to dernierMot of expressionSousChaîne
expressionSousChaîne[quelMot..dernierMot]
Description
Expression de sous-chaîne ; spécifie un mot ou une série de mots dans une sous-chaîne. Une souschaîne de mots est une suite de caractères délimitée par des espaces. (Tout caractère invisible,
comme une tabulation ou un retour de chariot, est considéré comme une espace.)
Les expressions quelMot, premierMot et dernierMot doivent avoir pour valeur un nombre entier
correspondant à un mot de la sous-chaîne.
Les sous-chaînes peuvent représenter n’importe quel caractère, mot, élément ou ligne d’un groupe
de caractères. Les sources de texte peuvent être des acteurs champ et texte et des variables contenant des chaînes.
Vous pouvez voir un exemple de word...of dans une animation en consultant l’animation Text
du dossier Learning/Lingo, lui-même dans le dossier de Director.
Exemple
Les instructions suivantes affectent à la variable listeDanimaux la chaîne « renard chien chat »,
puis insèrent le mot élan avant le deuxième mot de la liste :
listeDanimaux = "renard chien chat"
put "élan" before listeDanimaux.word[2]
Le résultat correspond à la chaîne « renard élan chien chat ».
244
Chapitre 11 : Mots-clés
L’instruction suivante demande à Director d’afficher le cinquième mot de la même chaîne dans la
fenêtre Messages :
put "renard élan chien chat".word[5]
Cette chaîne ne comportant pas de cinquième mot, la fenêtre Messages affiche deux guillemets
droits(""), ce qui indique une chaîne vide.
Voir aussi
char...of, line...of, item...of, count(), number (mots)
245
246
Chapitre 11 : Mots-clés
CHAPITRE 12
Méthodes
Cette section fournit une liste alphabétique de toutes les méthodes disponibles dans Director.
abort
Utilisation
-- Syntaxe Lingo
abort
// Syntaxe JavaScript
abort();
Description
Commande ; indique à Lingo de sortir du gestionnaire courant et de tout autre gestionnaire qui
l’a appelé sans exécuter les instructions restantes du gestionnaire concerné. Elle est différente du
mot-clé exit, qui revient au gestionnaire à partir duquel le gestionnaire courant a été appelé.
La commande abort ne quitte pas Director.
Paramètres
Aucun.
Exemple
L’instruction suivante indique à Lingo de sortir du gestionnaire courant et de tout gestionnaire
l’ayant appelé si la quantité de mémoire disponible est inférieure à 50 Ko :
-- Syntaxe Lingo
if the freeBytes < 50*1024 then abort
// Syntaxe JavaScript
if (_player.freeBytes < 50*1024) {
abort()
}
Voir aussi
exit, halt(), quit()
247
abs()
Utilisation
-- Syntaxe Lingo
abs (expressionNumérique)
// Syntaxe JavaScript
Math.abs (expressionNumérique)
Description
Fonction mathématique (Lingo uniquement) ; calcule la valeur absolue d’une expression
numérique.
La fonction abs() peut être utilisée de différentes façons. Elle permet de simplifier le suivi du
mouvement de la souris et des images-objets en convertissant leurs coordonnées (qu’elles soient
positives ou négatives) en distances (celles-ci sont toujours positives). La fonction abs() permet
également de traiter les fonctions mathématiques telles que sqrt() et log().
Dans la syntaxe JavaScript, utilisez la fonction abs() de l’objet Math.
Paramètres
expressionNumérique Requis. Nombre entier ou à virgule flottante à partir duquel une valeur
absolue est calculée. Si expressionNumérique est un nombre entier, la valeur absolue est
également un nombre entier. Si expressionNumérique est un nombre à virgule flottante, la
valeur absolue est également un nombre à virgule flottante.
Exemple
L’instruction suivante permet de calculer si la valeur absolue de la différence entre la position
actuelle de la souris et la valeur de la variable débutV est supérieure à 30 (puisque vous n’allez pas
utiliser un nombre négatif pour exprimer une distance). Si c’est le cas, la couleur de premier plan
de l’image-objet 6 est modifiée.
-- Syntaxe Lingo
if (the mouseV - débutV).abs > 30 then sprite(6).forecolor = 95
// Syntaxe JavaScript
if ((_mouse.mouseV - Math.abs(_mouse.débutV)) > 30) {
sprite(6).foreColor = 95;
}
activateAtLoc()
Utilisation
-- Syntaxe Lingo
réfObjDvd.activateAtLoc(point(x, y))
// Syntaxe JavaScript
réfObjDvd.activateAtLoc(point(x, y));
Description
Méthode de DVD ; Active la sélection de l’élément de menu DVD intégré qui se trouve sous
l’emplacement spécifié.
Cette méthode renvoie la valeur 0 en cas de réussite.
248
Chapitre 12 : Méthodes
Paramètres
point(x, y)
Requis. Point spécifiant l’emplacement de l’élément de menu DVD intégré.
Exemple
Cette instruction active la sélection de l’élément de menu à un emplacement spécifié :
-- Syntaxe Lingo
member("animation1").activateAtLoc(point(100, 200))
// Syntaxe JavaScript
member("animation1").activateAtLoc(point(100, 200));
Voir aussi
DVD
activateButton()
Utilisation
-- Syntaxe Lingo
réfObjDvd.activateButton()
// Syntaxe JavaScript
réfObjDvd.activateButton();
Description
Méthode de DVD ; Active le bouton de menu actuellement sélectionné.
Cette méthode renvoie la valeur 0 en cas de réussite.
Paramètres
Aucun.
Exemple
Cette instruction active le bouton Menu sur un acteur spécifié :
-- Syntaxe Lingo
sprite(1).member.activateButton()
// Syntaxe JavaScript
sprite(1).member.activateButton();
Voir aussi
DVD
249
add
Utilisation
-- Syntaxe Lingo
listeLinéaire.add(valeur)
// Syntaxe JavaScript
tableau.push(valeur)
Description
Commande de liste (pour les listes linéaires uniquement) ; ajoute une valeur à une liste linéaire.
Dans le cas d’une liste triée, cette valeur est placée dans l’ordre correct. Dans le cas d’une liste non
triée, cette valeur est placée à la fin de la liste.
Cette commande provoque une erreur quand elle est utilisée dans une liste de propriétés.
Remarque : Veillez à ne pas confondre la commande add et l’opérateur + utilisé pour les additions ou
l’opérateur & utilisé pour concaténer les chaînes.
Paramètres
valeur
Requis. Valeur à ajouter à la liste linéaire.
Exemple
Les instructions suivantes ajoutent la valeur 2 à la liste nommée devis. La liste résultante est
[3, 4, 1, 2].
-- Syntaxe Lingo
devis = [3, 4, 1]
devis.add(2)
// Syntaxe JavaScript
devis = new Array(3,4,1);
devis.push(2);
L’instruction suivante ajoute 2 à la liste linéaire triée [1, 4, 5]. Le nouvel élément reste en ordre
alphanumérique, la liste étant une liste triée.
-- Syntaxe Lingo
devis.add(2)
// Syntaxe JavaScript
devis.push(2);
// trier la liste en utilisant la syntaxe JavaScript
devis.sort();
Voir aussi
sort
250
Chapitre 12 : Méthodes
add (texture 3D)
Utilisation
-- Syntaxe Lingo
member(quelActeur).model(quelModèle).meshdeform.mesh[index].\
textureLayer.add()
// Syntaxe JavaScript
member(quelActeur).model(quelModèle).meshdeform.mesh[index].\
textureLayer.add()
Description
Commande de modificateur 3D meshdeform ; ajoute une couche de texture vide à la maille du
modèle.
Vous pouvez copier les coordonnées de texture entre les couches à l’aide du code suivant :
réfDeModèle.meshdeform.texturelayer[a].texturecoordinatelist =
réfDeModèle.meshdeform.texturelayer[b].texturecoordinatelist
Paramètres
Aucun.
Exemple
L’instruction suivante crée une nouvelle couche de texture pour la première maille du modèle
appelé Oreille.
-- Syntaxe Lingo
member("Scène").model("Oreille").meshdeform.mesh[1].textureLayer.add()
// Syntaxe JavaScript
member("Scène").model("Oreille").meshdeform.mesh[1].textureLayer.add();
Voir aussi
meshDeform (modificateur), textureLayer, textureCoordinateList
addAt
Utilisation
liste.AddAt(position, valeur)
Description
Commande de liste (pour les listes linéaires uniquement) ; ajoute une valeur à une position
spécifiée dans la liste.
Cette commande provoque une erreur quand elle est utilisée avec une liste de propriétés.
Paramètres
position Requis. Nombre entier qui indique la position à laquelle la valeur spécifiée par value
est ajoutée à la liste.
valeur
Requis. Valeur à ajouter à la liste.
251
Exemple
L’instruction suivante ajoute la valeur 8 à la quatrième position de la liste devis, qui vaut
[3, 2, 4, 5, 6, 7] :
devis = [3, 2, 4, 5, 6, 7]
devis.addAt(4,8)
La valeur de devis est maintenant [3, 2, 4, 8, 5, 6, 7].
addBackdrop
Utilisation
-- Syntaxe Lingo
sprite(quelleImageObjet).camera{(index)}.addBackdrop(texture,
emplacementDansLimageObjet, rotation)
member(quelActeur).camera(quelleCaméra).addBackdrop(texture,
emplacementDansLimageObjet, rotation)
// Syntaxe JavaScript
sprite(quelleImageObjet).camera{(index)}.addBackdrop(texture,
emplacementDansLimageObjet, rotation);
member(quelActeur).camera(quelleCaméra).addBackdrop(texture,
emplacementDansLimageObjet, rotation);
Description
Commande de caméra 3D ; ajoute un fond à la fin de la liste des fonds de la caméra.
Paramètres
texture
Requis. Texture à appliquer au fond.
emplacementDansLimageObjet Requis. Emplacement 2D dont le fond est affiché dans l’imageobjet 3D. Cet emplacement est mesuré à partir du coin supérieur gauche de l’image-objet.
rotation
Requis. Nombre entier qui définit, en degrés, la rotation à appliquer à la texture.
Exemple
La première ligne de l’instruction suivante crée la texture Rugueuse à partir de l’acteur Cèdre
et l’enregistre dans la variable t1. La deuxième ligne applique la texture comme fond à
l’emplacement (220, 220) dans l’image-objet 5 avec une rotation de zéro degré. La dernière
ligne applique la même texture comme fond pour la caméra 1 de l’acteur Scène à l’emplacement
(20, 20) avec une rotation de 45°.
t1 = member("Scène").newTexture("Rugueuse", #fromCastMember,\
member("Cèdre"))
sprite(5).camera.addBackdrop(t1, point(220, 220), 0)
member("Scène").camera[1].addBackdrop(t1, point(20, 20), 45)
Voir aussi
removeBackdrop
252
Chapitre 12 : Méthodes
addCamera
Utilisation
-- Syntaxe Lingo
sprite(quelleImageObjet).addCamera(quelleCaméra, index)
-- Syntaxe JavaScript
sprite(quelleImageObjet).addCamera(quelleCaméra, index);
Description
Commande 3D ; ajoute une caméra à la liste des caméras de l’image-objet. Les vues des
différentes caméras sont affichées devant celles des caméras en position index inférieures.
Vous pouvez définir la propriété rect de chaque caméra afin d’afficher plusieurs vues au sein
de l’image-objet.
Paramètres
quelleCaméra
Requis. Référence à la caméra à ajouter à la liste des caméras de l’image-objet.
index Requis. Nombre entier spécifiant l’index au niveau duquel la caméra quelleCaméra est
ajoutée à la liste des caméras. Si la valeur index est supérieure à la valeur de cameraCount(), la
caméra est ajoutée à la fin de la liste.
Exemple
L’instruction suivante insère la caméra caméraDeVol en cinquième position de la liste des
caméras de l’image-objet 12 :
-- Syntaxe Lingo
sprite(12).addCamera(member("scène").camera("caméraDeVol"), 5)
// Syntaxe JavaScript
sprite(12).addCamera(member("scène").camera("caméraDeVol"), 5);
Voir aussi
cameraCount(), deleteCamera
addChild
Utilisation
-- Syntaxe Lingo
member(quelActeur).nœud(quelNœudParent).addChild(member\
(quelActeur).nœud(quelNœudEnfant) {,#conserverLunivers})
// Syntaxe JavaScript
member(quelActeur).nœud(quelNœudParent).addChild(member\
(quelActeur).nœud(quelNœudEnfant) {,#conserverLunivers})
Description
Commande 3D ; ajoute un nœud à la liste des enfants d’un autre nœud et le supprime de la liste
des enfants de son parent précédent.
Cette méthode équivaut à définir la propriété parent du nœud enfant sur le nœud parent.
253
Paramètres
quelActeur
Requis. Référence à l’acteur qui contient le nœud à ajouter.
Requis. Référence au nœud à ajouter. Ce nœud peut être un modèle, un groupe, une
caméra ou une lumière.
nœud
Facultatif. Référence à la caméra à ajouter à la liste des caméras de l’imageobjet. Les valeurs correctes sont #preserveWorld et #preserveParent. Lorsque l’enfant est
ajouté et que #preserveParent est spécifié, la transformation relative au parent de l’enfant reste
la même et ce dernier passe à cette transformation dans l’espace de son nouveau parent. La
transformation de l’enfant dans l’univers est recalculée. Lorsque l’enfant est ajouté et que
#preserveWorld est spécifié, la transformation de l’enfant dans l’univers reste la même et ce
dernier ne passe pas à sa transformation dans l’espace de son nouveau parent. Sa transformation
relative au parent est recalculée.
conserverLunivers
Exemple
L’instruction suivante ajoute le modèle Pneu à la liste des enfants du modèle Voiture.
-- Syntaxe Lingo
member("3D").model("Voiture").addChild(member("3D").model("Pneu"))
// Syntaxe JavaScript
member("3D").model("Voiture").addChild(member("3D").model("Pneu"));
L’instruction suivante ajoute le modèle Oiseau à la liste des enfants de la caméra MaCaméra et
utilise l’argument #preserveWorld pour conserver la position du modèle Oiseau dans l’univers.
-- Syntaxe Lingo
member("3D").camera("MaCaméra").addChild(member("3D").model
("Oiseau"), #preserveWorld)
// Syntaxe JavaScript
member("3D").camera("MaCaméra").addChild(member("3D").model
("Oiseau"), symbol("preserveWorld"));
Voir aussi
parent, addToWorld, removeFromWorld
addModifier
Utilisation
-- Syntaxe Lingo
member(quelActeur).model(quelModèle).addModifier\
(#typeDeModificateur)
// Syntaxe JavaScript
member(quelActeur).model(quelModèle).addModifier\
(symbol(typeDeModificateur));
Description
Commande 3D de modèle ; ajoute le modificateur spécifié au modèle. Il n’existe aucune valeur
par défaut pour cette commande.
254
Chapitre 12 : Méthodes
Paramètres
typeDeModificateur Requis. Symbole qui spécifie le modificateur à ajouter. Les modificateurs
possibles sont les suivants :
•
•
•
•
•
•
•
•
#bonesPlayer
#collision
#inker
#keyframePlayer
#lod
(niveau de détail)
#meshDeform
#sds
#toon
Pour plus d’informations, consultez les entrées des différents modificateurs.
Exemple
L’instruction suivante ajoute le modificateur toon au modèle Boîte.
-- Syntaxe Lingo
member("formes").model("Boîte").addModifier(#toon)
// Syntaxe JavaScript
member("formes").model("Boîte").addModifier(symbol("toon"));
Voir aussi
bonesPlayer (modificateur), collision (modificateur), inker (modificateur),
keyframePlayer (modificateur), lod (modificateur), meshDeform
(modificateur), sds (modificateur), toon (modificateur),
getRendererServices(), removeModifier, modifier, modifier[], modifiers
addOverlay
Utilisation
-- Syntaxe Lingo
sprite(quelleImageObjet).camera{(index)}.addOverlay(texture, \
emplacementDansLimageObjet, rotation)
member(quelActeur).camera(quelleCaméra).addOverlay(texture, \
emplacementDansLimageObjet, rotation)
// Syntaxe JavaScript
sprite(quelleImageObjet).camera{(index)}.addOverlay(texture, \
emplacementDansLimageObjet, rotation)
member(quelActeur).camera(quelleCaméra).addOverlay(texture, \
emplacementDansLimageObjet, rotation)
Description
Commande 3D de caméra ; ajoute un recouvrement à la fin de la liste des recouvrements d’une
caméra.
255
Paramètres
texture
Requis. Texture à appliquer au recouvrement.
emplacementDansLimageObjet Requis. Emplacement 2D où le recouvrement est affiché dans
l’image-objet 3D. Cet emplacement est mesuré à partir du coin supérieur gauche de l’imageobjet.
rotation
Requis. Nombre entier qui définit, en degrés, la rotation à appliquer à la texture.
Exemple
La première ligne de l’instruction suivante crée la texture Rugueuse à partir de l’acteur Cèdre et
l’enregistre dans la variable t1. La deuxième ligne applique la texture comme recouvrement à
l’emplacement (220, 220) dans l’image-objet 5 avec une rotation de zéro degré. La dernière ligne
de l’instruction applique la même texture comme recouvrement pour la caméra 1 de l’acteur
Scène, au point (20, 20). Une rotation de 45° est appliquée à la texture.
-- Syntaxe Lingo
t1 = member("Scène").newTexture("Rugueuse", #fromCastMember,\
member("Cèdre"))
sprite(5).camera.addOverlay(t1, point(220, 220), 0)
member("Scène").camera[1].addOverlay(t1, point(20, 20), 45)
// Syntaxe JavaScript
t1 = member("Scène").newTexture("Rugueuse", symbol("fromCastMember"),\
member("Cèdre"));
sprite(5).camera.addOverlay(t1, point(220, 220), 0);
member("Scène").camera[1].addOverlay(t1, point(20, 20), 45);
Voir aussi
removeOverlay
addProp
Utilisation
liste.addProp(propriété, valeur)
addProp list, propriété, valeur
Description
Commande de liste de propriétés ; ajoute, pour les listes de propriétés uniquement, une propriété
spécifiée et sa valeur à une liste de propriétés.
Dans le cas d’une liste non triée, cette valeur est placée à la fin de la liste. Dans le cas d’une liste
triée, cette valeur est placée dans l’ordre correct.
Si la propriété spécifiée existe déjà dans la liste, la syntaxe Lingo et JavaScript en créent une copie.
Afin d’éviter d’avoir des propriétés en double, utilisez la commande setaProp() pour modifier la
propriété correspondant à la nouvelle entrée de liste.
Cette commande provoque une erreur quand elle est utilisée avec une liste linéaire.
Paramètres
propriété
valeur
256
Requis. Propriété à ajouter à la liste.
Requis. Valeur de la propriété à ajouter à la liste.
Chapitre 12 : Méthodes
Exemple
L’instruction suivante ajoute la propriété dupont et sa valeur de 3 à la liste de propriétés devis,
qui contient [#avatar: 4, #soldes: 1]. Cette liste étant triée, la nouvelle entrée est placée par
ordre alphabétique :
devis.addProp(#dupont, 3)
La liste qui en résulte est [#avatar: 4, #dupont: 3, #soldes: 1].
L’instruction suivante ajoute l’entrée dupont: 7 à la liste devis, qui contient maintenant
[#avatar: 4, #dupont: 3, #soldes: 1]. Cette liste contenant déjà la propriété dupont,
le
script en crée une copie :
devis.addProp(#dupont, 7)
La liste qui en résulte est [#avatar: 4, #dupont: 3, #dupont: 7, #soldes: 1].
addToWorld
Utilisation
-- Syntaxe Lingo
member(quelActeur).model(quelModèle).addToWorld()
member(quelActeur).group(quelGroupe).addToWorld()
member(quelActeur).camera(quelleCaméra).addToWorld()
member(quelActeur).light(quelleLumière).addToWorld()
// Syntaxe JavaScript
member(quelActeur).model(quelModèle).addToWorld()
member(quelActeur).group(quelGroupe).addToWorld()
member(quelActeur).camera(quelleCaméra).addToWorld()
member(quelActeur).light(quelleLumière).addToWorld()
Description
Commande 3D ; insère le modèle, le groupe, la caméra ou la lumière, dans l’univers 3D de
l’acteur comme enfant du groupe World.
Lorsqu’un modèle, un groupe, une caméra ou une lumière, est créé ou cloné, il est automatiquement ajouté à l’univers. Utilisez la commande removeFromWorld pour retirer un modèle, un
groupe, une caméra ou une lumière, de l’univers 3D sans le supprimer. Utilisez la commande
isInWorld() pour vérifier si un modèle, un groupe, une caméra ou une lumière, a été ajouté ou
retiré de l’univers.
Paramètres
Aucun.
Exemple
L’instruction suivante ajoute le modèle gbCyl à l’univers 3D de l’acteur Scène.
-- Syntaxe Lingo
member("Scène").model("gbCyl").addToWorld()
// Syntaxe JavaScript
member("Scène").model("gbCyl").addToWorld();
Voir aussi
isInWorld(), removeFromWorld
257
addVertex()
Utilisation
-- Syntaxe Lingo
réfObjActeur.addVertex(indexOùAjouter, pointOùAjouterSommet {,[
emplacementVContrôleHoriz, \
emplacementVContrôleVert ], [ emplacementHContrôleHoriz,
emplacementHContrôleVert ]})
// Syntaxe JavaScript
réfObjActeur.addVertex(indexOùAjouter, pointOùAjouterSommet {,[
emplacementVContrôleHoriz, \
emplacementVContrôleVert ], [ emplacementHContrôleHoriz,
emplacementHContrôleVert ]});
Description
Commande de formes vectorielles ; ajoute un nouveau sommet à un acteur forme vectorielle à la
position spécifiée.
Les positions horizontale et verticale du nouveau sommet sont déterminées par rapport à l’origine
de l’acteur forme vectorielle.
Si vous utilisez les deux derniers paramètres facultatifs, vous pouvez spécifier la position des
poignées de contrôle pour le sommet. La position de ces poignées de contrôle doit être donnée
par rapport à celle du sommet ; par conséquent, si aucune position n’est spécifiée, la poignée sera
placée sans décalage horizontal ou vertical (valeur 0,0).
Paramètres
indexOùAjouter
Requis. Nombre entier qui spécifie l’index au niveau duquel le membre est
ajouté.
pointOùAjouterSommet
Requis. Nombre entier qui spécifie la position à laquelle le membre est
ajouté.
Facultatif. Nombre entier qui spécifie l’emplacement de la partie
horizontale de la poignée de contrôle horizontal.
emplacementHContrôleHoriz
Facultatif. Nombre entier qui spécifie l’emplacement de la partie
verticale de la poignée de contrôle horizontal.
emplacementVContrôleHoriz
Facultatif. Nombre entier qui spécifie l’emplacement de la partie
horizontale de la poignée de contrôle vertical.
emplacementHContrôleVert
Facultatif. Nombre entier qui spécifie l’emplacement de la partie
verticale de la poignée de contrôle vertical.
emplacementVContrôleVert
258
Chapitre 12 : Méthodes
Exemple
La ligne suivante ajoute un point de sommet dans la forme vectorielle Archie entre les deux points
de sommet existants, à la position horizontale 25 et verticale 15 :
-- Syntaxe Lingo
member("Archie").addVertex(2, point(25, 15))
// Syntaxe JavaScript
member("Archie").addVertex(2, point(25, 15));
Voir aussi
vertexList, moveVertex(), deleteVertex(), originMode
alert()
Utilisation
-- Syntaxe Lingo
_player.alert(chaîneAffichée)
// Syntaxe JavaScript
_player.alert(chaîneAffichée);
Description
Méthode de lecteur ; déclenche un bip sonore du système et affiche une boîte de dialogue
d'avertissement contenant une chaîne spécifiée.
Le message d’avertissement doit être une chaîne. Pour inclure une variable numérique dans le
message d’avertissement, convertissez la variable en chaîne avant de la transmettre à alert().
Paramètres
chaîneAffichée Requis. Chaîne qui représente le texte affiché dans la boîte de dialogue
d’avertissement. La chaîne peut contenir jusqu’à 255 caractères.
Exemple
L’instruction suivante crée un message d’alerte indiquant qu’aucun lecteur de CD-ROM n’est
connecté :
-- Syntaxe Lingo
_player.alert("Aucun lecteur de CD-ROM n’est connecté.")
// Syntaxe JavaScript
_player.alert("Aucun lecteur de CD-ROM n’est connecté.");
L’instruction suivante crée un message d’alerte indiquant qu’un fichier est introuvable :
-- Syntaxe Lingo
_player.alert("Le fichier" && QUOTE & nomDuFichier & QUOTE && "est
introuvable.")
// Syntaxe JavaScript
_player.alert("Le fichier \"" + nomDuFichier + "\" est introuvable.");
Voir aussi
Lecteur
259
append
Utilisation
liste.append(valeur)
append liste, valeur
Description
Commande de liste (pour les listes linéaires uniquement) ; ajoute la valeur spécifiée à la fin
d’une liste linéaire. Elle est différente de la commande add, qui insère une valeur à une liste triée
à l’endroit appropriée de cette liste.
Cette commande, utilisée avec une liste de propriétés, provoque une erreur de script.
Propriétés
valeur
Requis. Valeur à ajouter à la fin de la liste linéaire.
Exemple
L’instruction suivante ajoute la valeur 2 à la fin de la liste triée appelée devis, qui contient
[1, 3, 4], alors même que la position ne correspond pas à l'ordre trié de la liste :
set devis = [1, 3, 4]
devis.append(2)
La valeur de devis est maintenant [1, 3, 4, 2].
Voir aussi
add (texture 3D), sort
appMinimize()
Utilisation
-- Syntaxe Lingo
_player.appMinimize()
// Syntaxe JavaScript
_player.appMinimize();
Description
Méthode de lecteur ; dans Microsoft Windows, entraîne la réduction d’une projection en une
icône dans la barre des tâches Windows. Sur Macintosh, entraîne le masquage d’une projection.
Sur Macintosh, ouvre à nouveau une projection masquée depuis le menu des applications du
Macintosh.
Cette méthode est pratique pour les projections et animations MIAW lues sans barre de titre.
Paramètres
Aucun.
260
Chapitre 12 : Méthodes
Exemple
-- Syntaxe Lingo
on mouseUp me
_player.appMinimize()
end
// Syntaxe JavaScript
function mouseUp() {
_player.appMinimize();
}
Voir aussi
Lecteur
atan()
Utilisation
-- Syntaxe Lingo
(nombre).atan
atan (nombre)
// Syntaxe JavaScript
Math.atan(nombre);
Description
Fonction mathématique (Lingo uniquement) ; calcule l’arctangente, qui correspond à l’angle
dont la tangente est un nombre spécifié. Le résultat est une valeur en radians comprise entre pi/2
et +pi/2.
Dans la syntaxe JavaScript, utilisez la fonction atan() de l’objet Math.
Paramètres
Aucun.
Exemple
L’instruction suivante donne l’arctangente de 1 :
(1).atan
Le résultat, à quatre chiffres après la virgule, est 0,7854, soit approximativement pi/4.
La plupart des fonctions trigonométriques utilisent les radians ; vous devrez alors peut-être
convertir les valeurs de degrés en radians.
Le gestionnaire suivant vous permet d’effectuer les conversions de degrés en radians :
-- Syntaxe Lingo
on degrésEnRadians valeurEnDegrés
return valeurEnDegrés * PI/180
end
// Syntaxe JavaScript
function degrésEnRadians (valeurEnDegrés) {
return valeurEnDegrés * PI/180
}
261
Le gestionnaire affiche le résultat de la conversion de 30 degrés en radians dans la fenêtre
Messages :
put degrésEnRadians(30)
-- 0.5236
Voir aussi
cos(), PI, sin()
beep()
Utilisation
-- Syntaxe Lingo
_sound.beep({entNombreDeBits})
// Syntaxe JavaScript
_sound.beep({entNombreDeBits});
Description
Méthode audio ; déclenche l’émission d’un bip sonore sur le haut-parleur de l’ordinateur.
Ce bip se répète autant de fois que spécifié par entNombreDeBips. Si vous n’avez pas spécifié
entNombreDeBips, le bip sonore ne retentit qu’une seule fois.
• Sous Windows, le bip sonore est le son désigné dans la boîte de dialogue des propriétés
sonores.
• Sur Macintosh, le bip sonore est le son sélectionné dans la section Alertes du tableau de bord
Moniteurs et son. Si le volume a la valeur 0, le bip sonore est remplacé par un clignotement
de la barre de menus.
Paramètres
entNombreDeBits Facultatif. Nombre entier qui spécifie combien de fois les haut-parleurs de
l’ordinateur doivent émettre un bip sonore.
Exemple
-- Syntaxe Lingo
on mouseUp me
_sound.beep(1)
end mouseUp
// Syntaxe JavaScript
function mouseUp() {
_sound.beep(1);
}
Voir aussi
Son
262
Chapitre 12 : Méthodes
beginRecording()
Utilisation
-- Syntaxe Lingo
_movie.beginRecording()
// Syntaxe JavaScript
_movie.beginRecording();
Description
Méthode d’animation ; lance une session de création du scénario.
Lorsque vous appelez beginRecording(), la tête de lecture avance automatiquement d’une
image et commence l’enregistrement à partir de cette image. Pour éviter ce comportement
et commencer l’enregistrement dans l’image où beginRecording() est appelée, insérez une
instruction telle que _movie.go(_movie.frame - 1) entre les appels de beginRecording()
et de endRecording().
Dans une animation, vous ne pouvez procéder qu’à une seule session à la fois de mise à jour du
scénario.
A chaque appel de beginRecording() doit correspondre un appel de endRecording(), qui
termine la session de création du scénario.
Paramètres
Aucun.
Exemple
Lorsque vous l’utilisez dans le gestionnaire suivant, le mot-clé beginRecording démarre une
session de création du scénario qui anime l’acteur Balle en l'affectant à la piste d’image-objet 20,
puis en déplaçant l’image-objet horizontalement et verticalement sur une série d’images. Le
nombre des images est déterminé par l'argument nombreDimages.
-- Syntaxe Lingo
on animBalle(nombreDimages)
_movie.beginRecording()
horizontal = 0
vertical = 100
repeat with i = 1 to nombreDimages
_movie.go(i)
sprite(20).member = member("Balle")
sprite(20).locH = horizontal
sprite(20).locV = vertical
sprite(20).forecolor = 255
horizontal = horizontal + 3
vertical = vertical + 2
_movie.updateFrame()
end repeat
_movie.endRecording()
end animBalle
263
// Syntaxe JavaScript
function animBalle(nombreDimages) {
_movie.beginRecording();
var horizontal = 0;
var vertical = 100;
for (var i = 1; i <= nombreDimages; i++) {
_movie.go(1);
sprite(20).member = member("Balle");
sprite(20).locH = horizontal;
sprite(20).locV = vertical;
sprite(20).foreColor = 255;
horizontal = horizontal + 3;
vertical = vertical + 2;
_movie.updateFrame();
}
_movie.endRecording();
}
Voir aussi
endRecording(), Animation
bitAnd()
Utilisation
bitAnd(entier1, entier2)
Description
Fonction (Lingo uniquement) ; convertit les deux nombres entiers spécifiés en nombres binaires
32 bits et renvoie un nombre binaire constitué de 1 aux positions où les deux nombres comportaient un 1 et de 0 à toutes les autres positions. Le résultat est un nouveau nombre binaire, que
Lingo affiche sous la forme d'un entier en base 10.
Entier
Nombre binaire (abrégé)
6
00110
7
00111
Résultat
6
00110
Dans la syntaxe JavaScript, utilisez l’opérateur au niveau du bit « & ».
Paramètres
264
entier1
Requis. Le premier nombre entier.
entier2
Requis. Le second nombre entier.
Chapitre 12 : Méthodes
Exemple
L'instruction suivante compare les versions binaires des entiers 6 et 7 et renvoie le résultat sous la
forme d'un entier :
put bitAnd(6, 7)
-- 6
Voir aussi
bitNot(), bitOr(), bitXor()
bitNot()
Utilisation
(entier).bitNot
bitNot(entier)
Description
Fonction (Lingo uniquement) ; convertit le nombre entier spécifié en nombre binaire 32 bits
et inverse la valeur de chaque chiffre binaire en remplaçant les 1 par des 0 et les 0 par des 1. Le
résultat est un nouveau nombre binaire, que Lingo affiche sous la forme d’un nombre entier en
base 10.
Entier
Nombre binaire
1
00000000000000000000000000000001
Résultat
-2
11111111111111111111111111111110
Dans la syntaxe JavaScript, utilisez l’opérateur au niveau du bit « ~ ».
Paramètres
Aucun.
Exemple
L'instruction suivante inverse la représentation binaire de l'entier 1 et renvoie un nouveau
nombre.
put (1).bitNot
-- -2
Voir aussi
bitAnd(), bitOr(), bitXor()
265
bitOr()
Utilisation
bitOr(entier1, entier2)
Description
Fonction (Lingo uniquement) ; convertit les deux nombres entiers spécifiés en nombres binaires
32 bits et renvoie un nombre binaire constitué de 1 aux positions où l’un ou l’autre nombre
comportait un 1 et de 0 à toutes les autres positions. Le résultat est un nouveau nombre binaire,
que Lingo affiche sous la forme d'un entier en base 10.
Entier
Nombre binaire (abrégé)
5
0101
6
0110
Résultat
7
0111
Dans la syntaxe JavaScript, utilisez l’opérateur au niveau du bit « | ».
Paramètres
entier1
Requis. Le premier nombre entier.
entier2
Requis. Le second nombre entier.
Exemple
L'instruction suivante compare les versions binaires des entiers 5 et 6 et renvoie le résultat sous la
forme d'un entier :
put bitOr(5, 6)
-- 7
Voir aussi
bitNot(), bitAnd(), bitXor()
bitXor()
Utilisation
bitXor(entier1, entier2)
Description
Fonction ; convertit les deux entiers spécifiés en nombres binaires 32 bits et renvoie un nombre
binaire constitué de 1 aux positions où les chiffres des nombres donnés ne correspondent pas et
de 0 aux positions où les chiffres sont les mêmes. Le résultat est un nouveau nombre binaire, que
Lingo affiche sous la forme d'un entier en base 10.
266
Entier
Nombre binaire (abrégé)
5
0101
6
0110
Chapitre 12 : Méthodes
Entier
Nombre binaire (abrégé)
Résultat
3
0011
Dans la syntaxe JavaScript, utilisez l’opérateur au niveau du bit « ^ ».
Paramètres
entier1
Requis. Le premier nombre entier.
entier2
Requis. Le second nombre entier.
Exemple
L'instruction suivante compare les versions binaires des entiers 5 et 6 et renvoie le résultat sous la
forme d'un entier :
put bitXor(5, 6)
-- 3
Voir aussi
bitNot(), bitOr(), bitAnd()
breakLoop()
Utilisation
-- Syntaxe Lingo
réfObjPisteAudio.breakLoop()
// Syntaxe JavaScript
réfObjPisteAudio.breakLoop();
Description
Méthode de canal audio ; interrompt la lecture du son actuellement mis en boucle dans la piste
réfObjPisteAudio et entraîne sa lecture jusqu’à la limite endTime.
Si aucun son n’est actuellement en boucle, cette méthode n’a aucun effet.
Paramètres
Aucun.
267
Exemple
Le gestionnaire suivant arrête la lecture du son mis en boucle dans la piste audio 2 et entraîne sa
lecture jusqu’à la fin.
-- Syntaxe Lingo
on continuerLaMusiqueDeFond
sound(2).breakLoop()
end
// Syntaxe JavaScript
function continuerLaMusiqueDeFond() {
sound(2).breakLoop();
}
Voir aussi
endTime, Piste audio
browserName()
Utilisation
browserName chemin
browserName()
browserName(#enabled, trueOuFalse)
Description
Propriété système, commande et fonction ; spécifie le chemin ou l’emplacement du navigateur
web. Vous pouvez utiliser l’Xtra FileIO pour afficher une boîte de dialogue permettant à
l’utilisateur de rechercher un navigateur. La méthode displayOpen() de l’Xtra FileIO est utile
pour afficher une boîte de dialogue d’ouverture.
La forme browserName() renvoie le nom du navigateur actuellement spécifié. Si vous placez un
nom de chemin, tel celui trouvé au moyen de l’Xtra FileIO, comme argument dans la forme
browserName(CheminCompletVersLapplication), vous pouvez définir la propriété. La forme
browserName(#enabled, trueOuFalse) détermine si le navigateur spécifié est automatiquement lancé par la commande goToNetPage.
Cette commande est utile uniquement lors de la lecture dans une projection ou dans Director et
n’a aucun effet pour la lecture dans un navigateur.
Cette propriété peut être testée et définie.
Exemple
L’instruction suivante indique l’emplacement du navigateur Netscape :
browserName "Mon Disque:Mon Dossier:Netscape"
L’instruction suivante affiche le nom du navigateur dans une fenêtre Messages :
put browserName()
268
Chapitre 12 : Méthodes
build()
Utilisation
-- Syntaxe Lingo
member(quelActeur).modelResource(quelleRessDeMod).build()
// Syntaxe JavaScript
member(quelActeur).modelResource(quelleRessDeMod).build();
Description
Commande 3D de maille ; construit une maille. Cette commande n’est utilisée qu’avec les
ressources de modèle de type #mesh.
Vous devrez utiliser la commande build() pour la construction initiale de la maille, après avoir
modifié l’une de ses propriétés face, et après avoir utilisé la commande generateNormals().
Paramètres
Aucun.
Exemple
Cet exemple crée une simple ressource de modèle de type #mesh, en spécifie les propriétés, puis
l’utilise pour créer un nouveau modèle. Le processus est décrit dans les explications accompagnant
l’exemple suivant :
La ligne 1 crée une maille nommée Plan, qui consiste en une face, trois sommets et un maximum
de trois couleurs. Le nombre de normales et de coordonnées de textures n’est pas défini. Les
normales sont créées par la commande generateNormals.
La ligne 2 définit les vecteurs qui seront utilisés comme sommets de Plan.
La ligne 3 affecte les vecteurs aux sommets de la première face de Plan.
La ligne 4 définit les trois couleurs permises par la commande newMesh.
La ligne 5 affecte les couleurs à la première face de Plan. La troisième couleur de la liste est
appliquée au premier sommet de Plan, la deuxième couleur au deuxième sommet, et la première
couleur au troisième sommet. Les couleurs seront étalées sur la première face de Plan en dégradés.
La ligne 6 crée les normales de Plan avec la commande generateNormals().
La ligne 7 appelle la commande build() pour construire la maille.
-- Syntaxe Lingo
nm = member("Formes").newMesh("Plan",1,3,0,3,0)
nm.vertexList = [vector(0,0,0), vector(20,0,0), vector(20, 20, 0)]
nm.face[1].vertices = [ 1,20,3 ]
nm.colorList = [rgb(255,255,0), rgb(0, 255, 0), rgb(0,0,255)]
nm.face[1].colors = [3,20,1]
nm.generateNormals(#smooth)
nm.build()
nm = member("Formes").newModel("triModèle", nm)
269
// Syntaxe JavaScript
nm = member("Formes").newMesh("Plan",1,3,0,3,0);
nm.vertexList = [vector(0,0,0), vector(20,0,0), vector(20, 20, 0)];
nm.face[1].vertices = [ 1,2,3];
nm.colorList = [rgb(255,255,0), rgb(0, 255, 0), rgb(0,0,255)];
nm.face[1].colors = [3,2,1];
nm.generateNormals(#smooth);
nm.build();
nm = member("Formes").newModel("triModèle", nm);
Voir aussi
generateNormals(), newMesh, face[ ]
cacheDocVerify()
Utilisation
-- Syntaxe Lingo
cacheDocVerify #paramètre
cacheDocVerify()
// Syntaxe JavaScript
cacheDocVerify symbol(paramètre);
cacheDocVerify();
Description
Fonction ; définit la fréquence de rafraîchissement du contenu d’une page web sur la base des
informations contenues dans la mémoire cache de la projection.
La forme cacheDocVerify() renvoie le paramètre courant de la mémoire cache.
La fonction cacheDocVerify n’est valide que pour les animations exécutées dans Director ou
sous forme de projections. Elle n’est pas valide pour les animations avec un contenu Macromedia
Shockwave, qui utilisent les paramètres réseau du navigateur web dans lequel elles sont exécutées.
-- Syntaxe Lingo
on resetCache
valeurCourante = cacheDocVerify()
if valeurCourante = #once then
alert "Vérification du cache activée"
cacheDocVerify #always
end if
end
// Syntaxe JavaScript
function resetCache() {
valeurCourante = cacheDocVerify();
if (valeurCourante == symbol("once")) {
alert ("Vérification du cache activée");
cacheDocVerify(symbol("always"))
}
}
270
Chapitre 12 : Méthodes
Paramètres
Facultatif. Symbole qui spécifie la fréquence de rafraîchissement du contenu
d’une page web. Les valeurs possibles sont #once (une seule fois, valeur par défaut) et #always
(autant de fois que nécessaire). La valeur #once indique à une animation de télécharger une fois
un fichier depuis Internet, puis de l’utiliser depuis la mémoire cache sans rechercher une version
actualisée sur Internet. La valeur #always indique à une animation d’essayer de télécharger une
version actualisée du fichier à chaque fois que l’animation en question appelle une URL.
paramètreCache
Voir aussi
cacheSize(), clearCache
cacheSize()
Utilisation
-- Syntaxe Lingo
cacheSize taille
cacheSize()
// Syntaxe JavaScript
cacheSize(taille);
cacheSize();
Description
Fonction et commande ; définit la taille de la mémoire cache de Director.
La fonction cacheSize n’est valide que pour les animations exécutées sous Director ou sous
forme de projections. Elle n’est pas valide pour les animations avec un contenu Macromedia
Shockwave, qui utilisent les paramètres réseau du navigateur web dans lequel elles sont exécutées.
Paramètres
nouvelleTailleDeCache
Facultatif. Nombre entier qui spécifie la taille de la mémoire cache en
kilo-octets.
Exemple
Le gestionnaire suivant vérifie si le paramètre de cache du navigateur a une valeur inférieure à
1 Mo. Si c’est le cas, il affiche un message d’alerte et définit la taille de la mémoire cache à 1 Mo.
-- Syntaxe Lingo
on checkCache if
cacheSize()<1000 then
alert "augmentation de la mémoire cache à 1Mo"
cacheSize 1000
end if
end
// Syntaxe JavaScript
function checkCache() {
if (cacheSize() < 1000) {
alert ("augmentation de la mémoire cache à 1 Mo");
cacheSize(1000);
}
}
Voir aussi
cacheDocVerify(), clearCache
271
call
Utilisation
call #nomDeGestionnaire, script, {args...}
call (#nomDeGestionnaire, instanceDeScript, {args...})
Description
Commande ; envoie un message qui appelle un gestionnaire dans un script particulier ou une liste
de scripts donnés.
La commande call peut utiliser une variable comme nom de gestionnaire. Les messages transmis
à l’aide de call ne sont pas transmis aux autres scripts liés à l’image-objet, aux scripts d’acteurs,
scripts d’image ou scripts d’animation.
Paramètres
nomDeGestionnaire
Requis. Symbole qui spécifie le gestionnaire à activer.
instanceDeScript Requis. Référence au script ou à la liste de scripts qui contient le gestionnaire. Si instanceDeScript est une instance de script unique, un message d’alerte est envoyé si
le gestionnaire n’est pas défini dans le script ancêtre du script. Si instanceDeScript est une liste
d’instances de scripts, le message est envoyé à chaque élément de la liste tour à tour ; aucune alerte
n’est générée si le gestionnaire n’est pas défini dans le script ancêtre.
args
Facultatif. Tous les paramètres facultatifs à transmettre au gestionnaire.
Exemple
Le gestionnaire suivant envoie le message augmenterLeCompteur au premier script de
comportement lié à l’image-objet 1 :
-- Syntaxe Lingo
on mouseDown me
-- obtenir la référence du premier comportement de l’image-objet 1
set xref = getAt (the scriptInstanceList of sprite 1,1)
-- exécuter le gestionnaire augmenterLeCompteur dans le script référencé,
-- avec un paramètre
call (#augmenterLeCompteur, xref, 2)
end
// Syntaxe JavaScript
function mouseDown() {
// obtenir la référence du premier comportement de l’image-objet 1
xref = getAt(sprite(1).script(1));
// exécuter le gestionnaire augmenterLeCompteur dans le script référencé
call(symbol("augmenterLeCompteur"), xref, 2);
}
272
Chapitre 12 : Méthodes
L’exemple suivant illustre la façon dont une instruction call peut appeler les gestionnaires d’un
comportement ou d’un script parent et ceux de son ancêtre.
• Le script suivant est un script parent :
-- Syntaxe Lingo
-- script Homme
property ancestor
on new me
set ancestor = new(script "Animal", 2)
return me
end
on courir me, nouvelOutil
put "Homme courant sur "&the nombreDePattes of me&" pattes"
end
• Le script suivant est le script ancêtre :
-- script Animal
property nombreDePattes
on new me, nouveauNombreDePattes
set nombreDePattes = nouveauNombreDePattes
return me
end
on courir me
put "Animal courant sur "& nombreDePattes &" pattes"
end
on marcher me
put "Animal marchant sur "& nombreDePattes &" pattes"
end
• Les instructions suivantes utilisent le script parent et le script ancêtre.
L’instruction suivante crée une instance du script parent :
set h = new(script "homme")
L’instruction suivante fait marcher l’homme :
call #marcher, h
-- "Animal marchant sur 2 pattes"
L’instruction suivante fait courir l’homme :
set msg = #courir
call msg, h
-- "Homme courant sur 2 pattes"
L’instruction suivante crée une seconde instance du script parent :
set h2 = new(script "homme")
L’instruction suivante envoie un message aux deux instances du script parent :
call msg, [h, h2]
-- "Homme courant sur 2 pattes "
-- "Homme courant sur 2 pattes "
273
callAncestor
Utilisation
callAncestor nomDeGestionnaire, script, {args...}
Description
Commande ; envoie un message au script ancêtre d’un objet enfant.
Les ancêtres peuvent, à leur tour, avoir leurs propres ancêtres.
Lorsque vous utilisez callAncestor, le nom du gestionnaire peut être une variable et vous
pouvez explicitement contourner les gestionnaires du script principal et accéder directement
au script ancêtre.
Paramètres
nomDeGestionnaire
Requis. Symbole qui spécifie le gestionnaire à activer.
instanceDeScript Requis. Référence au script ou à la liste de scripts qui contient le gestionnaire. Si instanceDeScript est une instance de script unique, un message d’alerte est envoyé si
le gestionnaire n’est pas défini dans le script ancêtre du script. Si instanceDeScript est une liste
d’instances de scripts, le message est envoyé à chaque élément de la liste tour à tour ; aucune alerte
n’est générée si le gestionnaire n’est pas défini dans le script ancêtre.
args
Facultatif. Tous les paramètres facultatifs à transmettre au gestionnaire.
Exemple
L’exemple suivant présente la façon dont une instruction callAncestor peut appeler des
gestionnaires dans l’ancêtre d’un comportement ou d’un script parent.
• Le script suivant est un script parent :
-- script "homme"
property ancestor
on new me, nouvelOutil
set ancestor = new(script "Animal", 2)
return me
end
on courir me
put "Homme courant sur "&the nombreDePattes of me&" pattes"
end
• Le script suivant est le script ancêtre :
-- script "animal"
property nombreDePattes
on new me, nouveauNombreDePattes
set nombreDePattes = nouveauNombreDePattes
return me
end
on courir me
put "Animal courant sur "& nombreDePattes &" pattes"
end
on marcher me
put "Animal marchant sur "& nombreDePattes &" pattes"
end
274
Chapitre 12 : Méthodes
• Les instructions suivantes utilisent le script parent et le script ancêtre.
L’instruction suivante crée une instance du script parent :
set h = new(script "homme")
L’instruction suivante fait marcher l’homme :
call #marcher, h
-- "Animal marchant sur 2 pattes"
L’instruction suivante fait courir l’homme :
set msg = #courir
callAncestor msg, h
-- "Animal courant sur 2 pattes"
L’instruction suivante crée une seconde instance du script parent :
set h2 = new(script "homme")
L’instruction suivante envoie un message au script ancêtre des deux hommes :
callAncestor #courir,[h,h2]
-- "Animal courant sur 2 pattes"
-- "Animal courant sur 2 pattes"
Voir aussi
ancestor, new()
callFrame()
Utilisation
-- Syntaxe Lingo
réfObjImageObjet.callFrame(nomOuNumImageFlash)
// Syntaxe JavaScript
réfObjImageObjet.callFrame(nomOuNumImageFlash);
Description
Commande ; utilisée pour appeler une série d’actions résidant dans une image d’une image-objet
d’animation Flash.
Cette commande transmet un message au moteur ActionScript de Flash et déclenche l’exécution
des actions dans l’animation Flash.
Paramètres
nomOuNumImageFlash
Requis. Chaîne ou numéro qui spécifie le nom ou le numéro de l’image à
appeler.
Exemple
Cette instruction lance l’exécution des actions associées à l’image 10 de l’animation Flash dans
l’image-objet 1 :
-- Syntaxe Lingo
sprite(1).callFrame(10)
// Syntaxe JavaScript
sprite(1).callFrame(10);
275
camera()
Utilisation
member(quelActeur).camera(quelleCaméra)
member(quelActeur).camera[index]
member(quelActeur).camera(quelleCaméra).quellePropriétéDeCaméra
member(quelActeur).camera[index].quellePropriétéDeCaméra
sprite(quelleImageObjet).camera{(index)}
sprite(quelleImageObjet).camera{(index)}.quellePropriétéDeCaméra
Description
Elément 3D ; objet à une position de vecteur à partir de laquelle l’univers 3D est observé.
Chaque image-objet possède une liste de caméras. Les vues des différentes caméras de la liste
sont affichées au-dessus de celles des caméras en position index inférieures. Vous pouvez
définir la propriété rect (caméra) de chaque caméra afin d’afficher plusieurs vues au sein de
l’image-objet.
Les caméras sont enregistrées dans la palette des caméras de l’acteur. Utilisez les commandes
newCamera et deleteCamera pour créer et supprimer les caméras d’un acteur 3D.
La propriété camera d’une image-objet est la première caméra de la liste des caméras de l’imageobjet. La caméra référencée par sprite(quelleImageObjet).camera est la même que
sprite(quelleImageObjet).camera(1). Utilisez les commandes addCamera et deleteCamera
pour construire la liste des caméras d’une image-objet 3D.
Exemple
L’instruction suivante affecte à l’image-objet 1 la caméra camArbre de l’acteur Picnic.
sprite(1).camera = member("Picnic").camera("camArbre")
L’instruction suivante affecte à l’image-objet 1 la caméra 2 de l’acteur Picnic.
sprite(1).camera = member("Picnic").camera[2]
Voir aussi
bevelDepth, overlay, modelUnderLoc, spriteSpaceToWorldSpace, fog,
clearAtRender
cameraCount()
Utilisation
-- Syntaxe Lingo
sprite(quelleImageObjet).cameraCount()
// Syntaxe JavaScript
sprite(quelleImageObjet).cameraCount();
Description
Commande 3D ; renvoie le nombre d’éléments de la liste des caméras de l’image-objet.
Paramètres
Aucun.
276
Chapitre 12 : Méthodes
Exemple
L’instruction suivante indique que l’image-objet 5 contient trois caméras.
-- Syntaxe Lingo
put sprite(5).cameraCount()
-- 3
// Syntaxe JavaScript
put(sprite(5).cameraCount());
// 3
Voir aussi
addCamera, deleteCamera
cancelIdleLoad()
Utilisation
-- Syntaxe Lingo
_movie.cancelIdleLoad(entBaliseDeChargement)
// Syntaxe JavaScript
_movie.cancelIdleLoad(entBaliseDeChargement);
Description
Méthode d’animation ; annule le chargement de tous les acteurs portant la balise de chargement
spécifiée.
Paramètres
Requis. Nombre entier qui spécifie un groupe d’acteurs mis en file
d’attente pour être chargé lorsque l’ordinateur est inactif.
entBaliseDeChargement
Exemple
L’instruction suivante annule le chargement des acteurs portant la balise de chargement en
période d’inactivité numéro 20 :
-- Syntaxe Lingo
_movie.cancelIdleLoad(20)
// Syntaxe JavaScript
_movie.cancelIdleLoad(20);
Voir aussi
idleLoadTag, Animation
277
castLib()
Utilisation
-- Syntaxe Lingo
castLib(nomOuNumDeDistribution)
// Syntaxe JavaScript
castLib(nomOuNumDeDistribution);
Description
Fonction du niveau supérieur ; renvoie une référence à une distribution spécifiée.
La distribution par défaut est la distribution numéro 1. Si vous voulez spécifier un acteur dans
une distribution autre que la distribution numéro 1, définissez castLib() pour spécifier l’autre
distribution.
Paramètres
nomOuNumDeDistribution Requis. Chaîne qui spécifie le nom de la distribution ou nombre
entier qui spécifie son numéro.
Exemple
L’instruction suivante affecte à la variable parties la deuxième distribution :
-- Syntaxe Lingo
parties = castLib(2)
// Syntaxe JavaScript
var parties = castLib(2);
Voir aussi
Bibliothèque de distribution, castLibNum
channel() (niveau supérieur)
Utilisation
-- Syntaxe Lingo
channel(nomOuNumDePisteAudio)
// Syntaxe JavaScript
channel(nomOuNumDePisteAudio);
Description
Fonction du niveau supérieur ; renvoie une référence à un objet Piste audio.
Paramètres
Requis. Chaîne qui spécifie le nom d’une piste audio ou nombre entier
qui spécifie sa position d’index.
nomOuNumDePisteAudio
278
Chapitre 12 : Méthodes
Exemple
Cette instruction affecte à la variable nouvellePiste la piste audio 9 :
-- Syntaxe Lingo
nouvellePiste = channel(9)
// Syntaxe JavaScript
var nouvellePiste = channel(9);
Voir aussi
Piste audio
channel() (audio)
Utilisation
-- Syntaxe Lingo
_sound.channel(entNumDePiste)
// Syntaxe JavaScript
_sound.channel(entNumDePiste);
Description
Méthode audio ; renvoie une référence à une piste audio spécifiée.
La fonctionnalité de cette méthode est identique à celle de la méthode sound() du niveau
supérieur.
Paramètres
entNumDePiste
Requis. Nombre entier qui spécifie la piste audio à référencer.
Exemple
Cette instruction affecte à la variable maPiste la piste audio 2 :
-- Syntaxe Lingo
maPiste = _sound.channel(2)
// Syntaxe JavaScript
var maPiste = _sound.channel(2);
Voir aussi
Son, sound(), Piste audio
chapterCount()
Utilisation
-- Syntaxe Lingo
réfObjDvd.chapterCount({entTitre})
// Syntaxe JavaScript
réfObjDvd.chapterCount({entTitre});
Description
Méthode de DVD ; indique le nombre de chapitres disponibles dans un titre.
279
Paramètres
Facultatif. Nombre entier qui spécifie le titre contenant les chapitres à dénombrer. Si
ce paramètre est omis, chapterCount() renvoie le nombre de chapitres disponibles dans le titre
courant.
entTitre
Voir aussi
chapterCount, DVD
charPosToLoc()
Utilisation
-- Syntaxe Lingo
réfObjActeur.charPosToLoc(énièmeCaractère)
// Syntaxe JavaScript
réfObjActeur.charPosToLoc(énièmeCaractère);
Description
Fonction de champ ; renvoie le point de l’acteur champ entier (et pas seulement la partie affichée
sur la scène) qui est le plus proche d’un caractère spécifié. Elle est utile pour déterminer l’emplacement précis de caractères individuels.
Les valeurs de charPosToLoc sont exprimées en pixels et commencent à partir du coin supérieur
gauche de l’acteur champ. Le paramètre énièmeCaractère est 1 pour le premier caractère du
champ, 2 pour le deuxième, etc.
Paramètres
énièmeCaractère
Requis. Le caractère à tester.
Exemple
L’instruction suivante détermine le point auquel apparaît le cinquantième caractère de l’acteur
Titre et affecte le résultat à la variable emplacement :
-- Syntaxe Lingo
emplacement = member("Titre").charPosToLoc(50)
// Syntaxe JavaScript
var emplacement = member("Titre").charPosToLoc(50);
chars()
Utilisation
chars(expressionChaîne, premierCaractère, dernierCaractère)
Description
Fonction (Lingo uniquement) ; identifie une sous-chaîne de caractères dans une expression.
Les expressions premierCaractère et dernierCaractère doivent spécifier une position dans la
chaîne.
280
Chapitre 12 : Méthodes
Si les expressions premierCaractère et dernierCaractère sont égales, la chaîne ne renvoie
qu’un seul caractère. Si dernierCaractère est plus grand que la longueur de la chaîne, seule une
sous-chaîne allant jusqu’à la longueur de la chaîne est identifiée. Si dernierCaractère est placé
avant premierCaractère, cette fonction renvoie la valeur EMPTY.
Pour un exemple d’utilisation de chars() dans une animation, reportez-vous à l’animation Text
du dossier Learning/Lingo, lui-même inclus dans le dossier de Director.
Dans la syntaxe JavaScript, utilisez la fonction substr() de l’objet Chaîne.
Paramètres
expressionChaîne
Requis. Chaîne qui spécifie l’expression à partir de laquelle une sous-chaîne
est renvoyée.
premierCaractère
Requis. Nombre entier qui spécifie le point où la sous-chaîne commence.
dernierCaractère
Requis. Nombre entier qui spécifie le point où la sous-chaîne se termine.
Exemple
L’instruction suivante identifie le sixième caractère du mot Macromedia :
put chars ("Macromedia", 6, 6)
-- "m"
L’instruction suivante identifie les caractères compris entre les sixième et dixième caractères du
mot Macromedia :
put chars ("Macromedia", 6, 10)
-- "media"
L’instruction suivante essaie d’identifier les caractères compris entre le sixième et le vingtième
caractère du mot Macromedia. Puisque ce mot ne contient que 10 caractères, le résultat ne
contient que les caractères compris ente le sixième et le dixième caractère.
put chars ("Macromedia", 6, 20)
-- "media"
Voir aussi
char...of, length(), offset() (fonction de chaîne), number (caractères)
charToNum()
Utilisation
(expressionChaîne).charToNum
charToNum(expressionChaîne)
Description
Fonction (Lingo uniquement) ; renvoie le code ASCII correspondant au premier caractère d’une
expression.
La fonction charToNum() est particulièrement utile pour tester la valeur des caractères ASCII
créés avec des combinaisons de touches telles que la touche Ctrl et une autre touche alphanumérique.
Director ne fait pas la différence entre les caractères en majuscules et en minuscules si vous utilisez
l’opérateur de comparaison égal (=) ; par exemple, l’instruction put ("M" = "m") donne le
résultat 1 ou TRUE.
281
Evitez tout problème en utilisant charToNum() pour renvoyer le code ASCII d’un caractère et
utilisez ensuite le code ASCII pour faire référence à ce caractère.
Dans la syntaxe JavaScript, utilisez la fonction charCodeAt() de l’objet Chaîne.
Paramètres
expressionChaîne
Requis. Chaîne qui spécifie l’expression à tester.
Exemple
L’instruction suivante affiche le code ASCII de la lettre A :
put ("A").charToNum
-- 65
La comparaison suivante détermine si la lettre saisie est un A majuscule, puis passe à une séquence
correcte ou incorrecte du scénario :
-- Syntaxe Lingo
on CheckKeyHit theKey
if (theKey).charToNum = 65 then
go "Réponse correcte"
else
go "Réponse incorrecte"
end if
end
// Syntaxe JavaScript
function CheckKeyHit(theKey) {
if (theKey.charToNum() == 65) {
go ("Réponse correcte");
} else {
go ("Réponse incorrecte");
}
}
Voir aussi
numToChar()
clearAsObjects()
Utilisation
-- Syntaxe Lingo
clearAsObjects()
// Syntaxe JavaScript
clearAsObjects();
Description
Commande ; reconfigure le lecteur Flash global utilisé pour les objets ActionScript et supprime
tous les objets ActionScript de la mémoire. Cette commande n’efface ni ne reconfigure les
références à ces objets stockées dans Lingo. Les références Lingo resteront présentes mais feront
référence à des objets inexistants. Chaque référence doit être définie sur VOID individuellement.
282
Chapitre 12 : Méthodes
La commande clearAsObjects() n’affecte que les objets globaux, tels que le tableau créé dans
cette instruction :
-- Syntaxe Lingo
monTableauGlobal = newObject(#array)
// Syntaxe JavaScript
monTableauGlobal = new Array();
La commande clearAsObjects() n’a aucun effet sur les objets créés dans les références
d’images-objets, tel que :
monTableau = sprite(2).newObject(#array)
Paramètres
Aucun.
Exemple
Cette instruction supprime de la mémoire tous les objets ActionScript créés globalement :
-- Syntaxe Lingo
clearAsObjects()
// Syntaxe JavaScript
clearAsObjects();
Voir aussi
newObject(), setCallback()
clearCache
Utilisation
clearCache
Description
Commande ; vide la mémoire cache réseau de Director.
La commande clearCache vide uniquement la mémoire cache, qui est distincte de celle du
navigateur.
Les fichiers en cours d’utilisation ne sont pas supprimés de la mémoire cache (jusqu’à leur
inactivité).
Paramètres
Aucun.
283
Exemple
Le gestionnaire suivant vide la mémoire cache au lancement de l’animation :
-- Syntaxe Lingo
on startMovie
clearCache
end
// Syntaxe JavaScript
function startMovie() {
clearCache();
}
Voir aussi
cacheDocVerify(), cacheSize()
clearError()
Utilisation
-- Syntaxe Lingo
réfObjActeur.clearError()
// Syntaxe JavaScript
réfObjActeur.clearError();
Description
Commande Flash ; remet à zéro l’état d’erreur d’un acteur Flash en flux continu.
Si une erreur survient alors qu’un acteur est transféré en flux continu vers la mémoire, Director
affecte la valeur -1 à la propriété state de cet acteur, afin d’indiquer qu’une erreur s’est produite.
Dans ce cas, vous pouvez utiliser la fonction getError pour déterminer le type d’erreur survenue,
puis la commande clearError pour remettre à zéro l’état d’erreur de l’acteur. Une fois que vous
avez éliminé l’état d’erreur de l’acteur, Director essaie d’ouvrir ce dernier, si l’animation en a
encore besoin. D’autre part, la définition des propriétés pathName, linked et preload d’un
acteur élimine automatiquement la condition d’erreur.
Paramètres
Aucun.
Exemple
Le gestionnaire suivant vérifie l’occurrence d’une erreur de type mémoire épuisée pour l’acteur
Flash Dali, qui a été transféré en mémoire. Si une telle erreur est survenue, le script utilise la
commande unloadCast pour essayer de libérer de la mémoire ; il amène ensuite la tête de lecture
sur une image de l’animation Artistes de Director, dans laquelle l’image-objet de l’animation
Flash apparaît pour la première fois, de sorte que Director puisse relancer la lecture de l’animation
Flash. Si un autre type d’erreur est survenu, le script passe à une image appelée Désolé, qui
explique que l’animation Flash requise ne peut pas être lue.
284
Chapitre 12 : Méthodes
-- Syntaxe Lingo
on vérifierEtatFlash
if (member("Dali").getError() = #memory) then
member("Dali").clearError()
member("Dali").unload()
unloadCast
else
_movie.go("Désolé")
end if
end
// Syntaxe JavaScript
function CheckFlashStatus() {
var ge = member("Dali").getError();
if (ge = "memory") {
member("Dali").clearError();
unloadCast;
_movie.go("Artistes");
} else {
_movie.go("Désolé");
}
}
Voir aussi
state (Flash, SWA), getError() (Flash, SWA)
clearFrame()
Utilisation
-- Syntaxe Lingo
_movie.clearFrame()
// Syntaxe JavaScript
_movie.clearFrame();
Description
Méthode d’animation ; efface toutes les pistes d'images-objets dans une image pendant
l’enregistrement du scénario.
Paramètres
Aucun.
Exemple
Le gestionnaire suivant supprime le contenu de chaque image avant de les modifier pendant la
création du scénario :
-- Syntaxe Lingo
on newScore
_movie.beginRecording()
repeat with compteur = 1 to 50
_movie.clearFrame()
_movie.frameScript = 25
_movie.updateFrame()
end repeat
_movie.endRecording()
end
285
// Syntaxe JavaScript
function newScore() {
_movie.beginRecording();
for (var i = 1; i <= 50; i++) {
_movie.clearFrame();
_movie.frameScript = 25;
_movie.updateFrame();
}
_movie.endRecording();
}
Voir aussi
beginRecording(), endRecording(), Animation, updateFrame()
clearGlobals()
Utilisation
-- Syntaxe Lingo
_global.clearGlobals()
// Syntaxe JavaScript
_global.clearGlobals();
Description
Méthode globale ; donne à toutes les variables globales la valeur VOID (Lingo) ou null (syntaxe
JavaScript).
Cette méthode est utile lors de l’initialisation de variables globales ou de l’ouverture d’une
nouvelle animation qui exige un nouveau jeu de variables globales.
Paramètres
Aucun.
Exemple
Les gestionnaires suivants donnent à toutes les variables globales la valeur VOID (Lingo) ou null
(JavaScript) :
-- Syntaxe Lingo
on mouseDown
_global.clearGlobals()
end
// Syntaxe JavaScript
function mouseDown() {
_global.clearGlobals();
}
Voir aussi
Global
286
Chapitre 12 : Méthodes
clone
Utilisation
member(quelActeur).model(quelModèle).clone(nomDuClone)
member(quelActeur).group(quelGroupe).clone(nomDuClone)
member(quelActeur).light(quelleLumière).clone(nomDuClone)
member(quelActeur).camera(quelleCaméra).clone(nomDuClone)
Description
Commande 3D ; crée une copie du modèle, du groupe, de la lumière ou de la caméra, et de tous
ses enfants. Le clone a le même parent que le modèle, le groupe, la lumière ou la caméra à partir
duquel il a été cloné.
Le clone d’un modèle utilise la même ressource de modèle et la même liste de matériaux que le
modèle d’origine.
Si vous ne spécifiez pas le nomDuClone ou si vous spécifiez "", le clone ne sera pas pris en compte
par la méthode count, mais apparaîtra dans la scène.
Paramètres
nomDuClone
Requis. Spécifie le nom du nouveau clone.
Exemple
L’instruction suivante crée le clone Théière2 à partir du modèle Théière et renvoie une référence
au nouveau modèle.
copieDeThéière = member("Univers 3D").model("Théière").clone("Théière2")
Voir aussi
cloneDeep, cloneModelFromCastmember, cloneMotionFromCastmember, loadFile()
cloneDeep
Utilisation
member(quelActeur).model(quelModèle).cloneDeep(nomDuClone)
member(quelActeur).group(quelGroupe).cloneDeep(nomDeClone)
member(quelActeur).light(quelleLumière).cloneDeep(nomDeClone)
member(quelActeur).camera(quelleCaméra).cloneDeep(nomDeClone)
Description
Commande 3D ; crée une copie du modèle, du groupe, de la lumière ou de la caméra, plus tous
les éléments suivants :
• Les ressources de modèle, matériaux et textures utilisés par le modèle ou groupe d’origine
• Les enfants du modèle, du groupe, de la lumière ou de la caméra
• Les ressources de modèle, matériaux et textures utilisés par les enfants
Cette méthode utilise plus de mémoire et prend plus de temps que la commande clone.
Paramètres
nomDuClone
Requis. Spécifie le nom du nouveau clone.
287
Exemple
L’instruction suivante crée une copie du modèle Théière et de ses enfants, et des ressources
de modèle, des matériaux et des textures utilisés par Théière et ses enfants. La variable
copieDeThéière est une référence au modèle cloné.
copieDeThéière = member("Univers 3D").model("Théière").cloneDeep("Théière2")
Voir aussi
clone, cloneModelFromCastmember, cloneMotionFromCastmember, loadFile()
cloneModelFromCastmember
Utilisation
member(quelActeur).cloneModelFromCastmember\
(nomDeNouveauModèle, nomDeModèleSource, acteurSource)
Description
Commande 3D ; copie un modèle d’acteur, le renomme et l’insère dans un acteur en tant
qu’enfant de son univers 3D.
Cette commande copie également les enfants de nomDeModèleSource, ainsi que les ressources de
modèle, les matériaux et les textures, utilisés par le modèle et ses enfants.
Le chargement de l’acteur source doit être terminé pour la bonne exécution de cette commande.
Paramètres
nomDeNouveauModèle
nomDeModèleSource
acteurSource
Requis. Spécifie le nom du modèle qui vient d’être cloné.
Requis. Spécifie le modèle à cloner.
Requis. Spécifie l’acteur qui contient le modèle à cloner.
Exemple
L’instruction suivante crée une copie du modèle Pluton de l’acteur Scène et l’insère dans l’acteur
Scène2 avec le nouveau nom Planète. Les enfants de Pluton sont également importés, de même
que les ressources de modèle, les matériaux et les textures utilisés par Pluton et ses enfants.
member("Scène2").cloneModelFromCastmember("Planète", "Pluton", \
member("Scène"))
Voir aussi
cloneMotionFromCastmember, clone, cloneDeep, loadFile()
cloneMotionFromCastmember
Utilisation
member(quelActeur).cloneMotionFromCastmember(nomDeNouveauMouvement, \
nomDeMouvementSource, acteurSource)
Description
Commande 3D ; copie un mouvement d’un acteur, le renomme et l’insère dans un acteur.
Le chargement de l’acteur source doit être terminé pour la bonne exécution de cette commande.
288
Chapitre 12 : Méthodes
Paramètres
nomDeNouveauMouvement
nomDeMouvementSource
acteurSource
Requis. Spécifie le nom du mouvement qui vient d’être cloné.
Requis. Spécifie le mouvement à cloner.
Requis. Spécifie l’acteur qui contient le mouvement à cloner.
Exemple
L’instruction suivante copie le mouvement Marche de l’acteur Parc, nomme la copie
marcheBizarre, et la place dans l’acteur gbActeur.
member("gbActeur").cloneMotionFromCastmember("marcheBizarre", \
"Marche", member("Parc"))
Voir aussi
map (3D), cloneModelFromCastmember, clone, cloneDeep, loadFile()
close()
Utilisation
-- Syntaxe Lingo
réfObjFenêtre.close()
// Syntaxe JavaScript
réfObjFenêtre.close();
Description
Méthode de fenêtre ; ferme une fenêtre.
Toute tentative visant à fermer une fenêtre déjà fermée n’a aucun effet.
Veuillez noter que la fermeture d’une fenêtre ne termine pas l’exécution de l’animation dans la
fenêtre et ne la supprime pas non plus de la mémoire. Cette méthode sert simplement à fermer
la fenêtre dans laquelle l’animation est exécutée. Pour la rouvrir rapidement, utilisez la méthode
open() (fenêtre). Cette procédure assure un accès rapide aux fenêtres qui doivent rester
disponibles.
Pour supprimer totalement une fenêtre et la vider de la mémoire, utilisez la méthode forget().
Si vous utilisez la commande forget(), assurez-vous qu’aucun élément ne fait référence à
l’animation dans cette fenêtre, faute de quoi le système génère des erreurs lorsque les scripts
essaient de communiquer ou de dialoguer avec la fenêtre supprimée.
Paramètres
Aucun.
Exemple
L’instruction suivante ferme la fenêtre Panneau, qui se trouve dans le sous-dossier Sources MIAW
dans le dossier de l’animation courante :
-- Syntaxe Lingo
window(_movie.path & "Sources MIAW\Panneau").close()
// Syntaxe JavaScript
window(_movie.path + "Sources MIAW\\Panneau").close();
289
L’instruction suivante ferme la fenêtre 5 dans la liste windowList :
-- Syntaxe Lingo
window(5).close()
// Syntaxe JavaScript
window(5).close();
Voir aussi
forget() (fenêtre), open() (fenêtre), Fenêtre
closeFile()
Utilisation
-- Syntaxe Lingo
réfObjFileio.closeFile()
// Syntaxe JavaScript
réfObjFileio.closeFile();
Description
Méthode de Fileio ; ferme un fichier.
Paramètres
Aucun.
Voir aussi
Fileio
closeXlib
Utilisation
closeXlib quelFichier
Description
Commande ; ferme un fichier Xlibrary.
Les Xtras sont enregistrés dans des fichiers Xlibrary. Les fichiers Xlibrary sont les fichiers des
ressources contenant les Xtras. Les XCMD et XFCN HyperCard peuvent également être stockés
dans des fichiers Xlibrary.
La commande closeXlib ne fonctionne pas avec les URL.
Sous Windows, l’extension DLL des Xtras est facultative.
Nous vous recommandons de fermer tout fichier ouvert dès que vous n’en avez plus besoin.
Remarque : Cette commande n’est pas prise en charge dans Shockwave Player.
Paramètres
quelFichier Facultatif. Spécifie le fichier Xlibrary à fermer. Si le fichier Xlibrary se trouve
dans un dossier autre que celui de l’animation courante, quelFichier doit spécifier un chemin
d’accès. Si quelFichier est omis, tous les fichiers Xlibrary ouverts sont fermés.
290
Chapitre 12 : Méthodes
Exemple
L’instruction suivante ferme tous les fichiers Xlibrary ouverts :
closeXlib
L’instruction suivante ferme le fichier Xlibrary Disque vidéo qui se trouve dans le même dossier
que l’animation courante :
closeXlib "Xlibrary Disque vidéo"
L’instruction suivante ferme le fichier Xlibrary Transporter Xtras du dossier Nouveaux Xtras,
qui se trouve dans le même dossier que l’animation. Le disque est identifié par la variable
lecteurCourant :
closeXlib "@:Nouveaux Xtras:Transporter Xtras"
Voir aussi
interface(), openXlib
color()
Utilisation
-- Syntaxe Lingo
color(entIndexDePalette)
color(entRouge, entVert, entBleu)
// Syntaxe JavaScript
color(entIndexDePalette);
color(entRouge, entVert, entBleu);
Description
Fonction du niveau supérieur et type de données. Renvoie un objet de données Couleur sous la
forme de valeurs RVB ou de valeurs d'un index de palette 8 bits.
L’objet Couleur obtenu peut être appliqué à des acteurs, à des images-objets et à la scène si besoin
est.
Paramètres
entPaletteIndex Requis si vous utilisez des valeurs de palette 8 bits. Entier qui spécifie la valeur
de palette 8 bits à utiliser. Les valeurs correctes sont comprises entre 0 et 255. Toutes les autres
valeurs sont tronquées.
Requis si vous utilisez des valeurs RVB. Entier qui spécifie la composante rouge de la
couleur dans la palette courante. Les valeurs correctes sont comprises entre 0 et 255. Toutes les
autres valeurs sont tronquées.
entRouge
entVert Requis si vous utilisez des valeurs RVB. Entier qui spécifie la composante verte de la
couleur dans la palette courante. Les valeurs correctes sont comprises entre 0 et 255. Toutes les
autres valeurs sont tronquées.
entBleu Requis si vous utilisez des valeurs RVB. Entier qui spécifie la composante bleue de la
couleur dans la palette courante. Les valeurs correctes sont comprises entre 0 et 255. Toutes les
autres valeurs sont tronquées.
291
Exemple
Ces instructions affichent la couleur de l’image-objet 6 dans la fenêtre Messages, puis définissent
la couleur de l’image-objet 6 sur une nouvelle valeur :
-- Syntaxe Lingo
put(sprite(6).color) -- paletteIndex(255)
sprite(6).color = color(137)
put(sprite(6).color) -- paletteIndex(137)
// Syntaxe JavaScript
put(sprite(6).color) // paletteIndex(255);
sprite(6).color = color(137);
put(sprite(6).color) // paletteIndex(137);
constrainH()
Utilisation
-- Syntaxe Lingo
_movie.constrainH(entNumDimageObjet, entPosn)
// Syntaxe JavaScript
_movie.constrainH(entNumDimageObjet, entPosn);
Description
Méthode d’animation ; renvoie un nombre entier dont la valeur dépend des coordonnées
horizontales des côtés gauche et droit d’une image-objet.
Le nombre entier renvoyé peut avoir trois valeurs.
• Si le paramètre entPosn est compris entre les valeurs des coordonnées gauche et droite de
l’image-objet, le nombre entier renvoyé est égale à entPosn.
• Si le paramètre entPosn est inférieur à la valeur de la coordonnée gauche de l’image-objet,
le nombre entier renvoyé prend la valeur de la coordonnée gauche de l’image-objet.
• Si le paramètre entPosn est supérieur à la valeur de la coordonnée droite de l’image-objet,
le nombre entier renvoyé prend la valeur de la coordonnée droite de l’image-objet.
Cette méthode ne modifie pas les propriétés de l’image-objet.
Les méthodes constrainH() et constrainV() ne contraignent qu’un seul axe chacune.
Paramètres
Requis. Nombre entier qui spécifie l’image-objet dont les coordonnées
horizontales sont évaluées par rapport à entPosn.
entNumDimageObjet
entPosn Requis. Nombre entier à évaluer par rapport aux coordonnées horizontales des côtés
gauche et droit de l’image-objet identifiée par entNumDimageObjet.
292
Chapitre 12 : Méthodes
Exemple
Les instructions suivantes vérifient la fonction constrainH sur l’image-objet 1 lorsque ses
coordonnées gauche et droite sont 40 et 60 :
-- Syntaxe Lingo
put(constrainH(1, 20)) -- 40
put(constrainH(1, 55)) --55
put(constrainH(1, 100)) --60
// Syntaxe JavaScript
put(constrainH(1, 20)); // 40
put(constrainH(1, 55)); // 55
put(constrainH(1, 100)); // 60
L’instruction suivante limite les déplacements d’un curseur mobile (image-objet 1) aux bords
d’une jauge (image-objet 2) lorsque le pointeur de la souris dépasse les bords de cette dernière :
-- Syntaxe Lingo
sprite(1).locH = _movie.constrainH(2, _mouse.mouseH)
// Syntaxe JavaScript
sprite(1).locH = _movie.constrainH(2, _mouse.mouseH);
Voir aussi
constrainV(), Animation
constrainV()
Utilisation
-- Syntaxe Lingo
_movie.constrainV(entNumDimageObjet, entPosn)
// Syntaxe JavaScript
_movie.constrainV(entNumDimageObjet, entPosn);
Description
Méthode d’animation ; renvoie un nombre entier dont la valeur dépend des coordonnées
verticales des côtés supérieur et inférieur d’une image-objet.
Le nombre entier renvoyé peut avoir trois valeurs.
• Si le paramètre entPosn est compris entre les valeurs des coordonnées supérieure et inférieure
de l’image-objet, le nombre entier renvoyé est égale à entPosn.
• Si le paramètre entPosn est inférieur à la valeur de la coordonnée supérieure de l’image-objet,
le nombre entier renvoyé prend la valeur de la coordonnée supérieure de l’image-objet.
• Si le paramètre entPosn est supérieur à la valeur de la coordonnée inférieure de l’image-objet,
le nombre entier renvoyé prend la valeur de la coordonnée inférieure de l’image-objet.
Cette méthode ne modifie pas les propriétés de l’image-objet.
Les méthodes constrainV() et constrainH() ne contraignent qu’un seul axe chacune.
293
Paramètres
entNumDimageObjet Requis. Nombre entier qui identifie l’image-objet dont les coordonnées
verticales sont évaluées par rapport à entPosn.
entPosn Requis. Nombre entier à évaluer par rapport aux coordonnées verticales des côtés gauche
et droit de l’image-objet identifiée par entNumDimageObjet.
Exemple
Les instructions suivantes vérifient la fonction constrainV de l’image-objet 1 lorsque ses
coordonnées supérieure et inférieure sont 40 et 60 :
-- Syntaxe Lingo
put(constrainV(1, 20)) -- 40
put(constrainV(1, 55)) --55
put(constrainV(1, 100)) --60
// Syntaxe JavaScript
put(constrainV(1, 20)); // 40
put(constrainV(1, 55)); // 55
put(constrainV(1, 100)); // 60
L’instruction suivante limite les déplacements d’un curseur mobile (image-objet 1) aux bords
d’une jauge (image-objet 2) lorsque le pointeur de la souris dépasse les bords de cette dernière :
-- Syntaxe Lingo
sprite(1).locV = _movie.constrainV(2, _mouse.mouseH)
// Syntaxe JavaScript
sprite(1).locV = _movie.constrainV(2, _mouse.mouseH);
Voir aussi
constrainH(), Animation
copyPixels()
Utilisation
-- Syntaxe Lingo
réfObjImage.copyPixels(objImageSource, rectOuQuadDeDest, rectSource {,
listeDeParamètres})
// Syntaxe JavaScript
réfObjImage.copyPixels(objImageSource, rectOuQuadDeDest, rectSource {,
listeDeParamètres});
Description
Méthode d’image. Copie le contenu d’un rectangle inclus dans un objet image existant à
l’intérieur d’un nouvel objet image.
Lors de la copie de pixels d’une zone d’un acteur vers une autre zone du même acteur, il est
recommandé de copier d’abord les pixels dans un objet image dupliqué avant de les recopier dans
l’acteur d’origine. Copier directement d’une zone à l’autre dans la même image est déconseillé.
Pour simuler l’encre Dessin seul avec copyPixels(), créez un objet Dessin seul avec
createMatte(), puis transmettez cet objet en tant que paramètre #maskImage de
copyPixels().
294
Chapitre 12 : Méthodes
Pour un exemple d’utilisation de quadrilatère dans une animation, reportez-vous à l’animation
Quad du dossier Learning/Lingo, lui-même inclus dans le dossier de Director.
Paramètres
objImageSource
Requis. Référence à l’objet image source à partir duquel les pixels sont copiés.
rectOuQuadDeDest Requis si vous copiez les pixels dans un rectangle à coordonnée d’écran ou un
quadrilatère à virgule flottante. Le rectangle ou le quadrilatère dans lequel les pixels sont copiés.
rectSource
Requis. Rectangle source à partir duquel les pixels sont copiés.
Facultatif. Liste de paramètres qui peuvent être utilisés pour manipuler les
pixels copiés avant de les placer dans rectDeDest ou quadDeDest. La liste de propriétés peut
contenir l’intégralité ou une partie des paramètres suivants.
listeDeParamètres
Propriété
Usage et effet
#color
Couleur de premier plan à appliquer pour les effets de colorisation. La valeur
par défaut est noir.
#bgColor
Couleur d’arrière-plan à appliquer pour les effets de colorisation ou comme
transparence d’arrière-plan. La couleur par défaut est le blanc.
#ink
Type d’encre à appliquer aux pixels copiés. Il peut s’agir d’un symbole
d’encre ou de la valeur numérique correspondante. L’encre par défaut est
#copy.
#blendLevel
Degré d’opacité (transparence) à appliquer aux pixels copiés. La plage de
valeurs est comprise entre 0 et 225. La valeur par défaut est 255 (opaque).
L’utilisation d’une valeur inférieure à 255 définit le paramètre #ink sur
#blend, ou sur #blendTransparent s’il était initialement défini sur
#backgroundTransparent. #blendLevel peut également être remplacé par
#blend ; dans ce cas, utilisez une plage de valeurs comprise entre 0 et 100.
#dither
Valeur TRUE ou FALSE qui détermine si les pixels copiés seront tramés
lorsqu’ils seront placés dans le rectDeDestination des images 8 et 16 bits.
La valeur par défaut est FALSE, qui convertit directement les pixels copiés
dans la palette de couleurs de la réfObjImage.
#useFastQuads
Valeur TRUE ou FALSE qui détermine si les calculs de quadrilatères sont
effectués à l’aide de la méthode de Director, plus rapide mais moins
précise, lors de la copie de pixels dans un quadDeDestination. Définissez ce
paramètre sur TRUE si vous utilisez les quadrilatères pour des opérations
simples de rotation et d’inclinaison. Définissez ce paramètre sur FALSE pour
des quadrilatères aléatoires, tels que ceux utilisés pour les transformations
de perspective. La valeur par défaut est FALSE.
295
Propriété
Usage et effet
#maskImage
Spécifie un objet Masque ou Dessin seul, créé avec les fonctions
createMask() ou createMatte(), qui sera utilisé en tant que masque
pour les pixels à copier. Ceci permet de reproduire les effets des encres
d’images-objets Masque et Dessin seul. Si l’image source possède une
couche alpha et que sa propriété useAlpha est TRUE, la couche alpha sera
utilisée et l’objet Masque ou Dessin seul spécifié sera ignoré. La valeur par
défaut est pas de masque.
#maskOffset
Point indiquant la valeur de décalage x et y à appliquer au masque spécifié
par #maskImage. Le décalage est calculé par rapport au coin supérieur
gauche de l’image source. Le décalage par défaut est (0, 0).
Exemple
L’instruction suivante copie toute l’image de l’acteur Joyeux dans le rectangle de l’acteur Fleur.
Si les acteurs sont de tailles différentes, l’image de l’acteur Joyeux sera redimensionnée pour
s’ajuster au rectangle de l’acteur Fleur.
L’instruction suivante copie une portion de l’image de l’acteur Joyeux dans une portion de
l’acteur Fleur. La portion de l’image copiée de l’acteur Joyeux est située dans le rectangle
(0, 0, 200, 90). Elle est collée dans le rectangle (20, 20, 100, 40) à l’intérieur de l’image de
l’acteur Fleur. La portion copiée de l’acteur Joyeux est redimensionnée pour s’adapter aux
dimensions du rectangle dans lequel elle est collée.
L’instruction suivante copie entièrement l’image de l’acteur Joyeux dans un rectangle à l’intérieur
de l’acteur Fleur. Le rectangle dans lequel l’image copiée de l’acteur Joyeux est collée a la même
taille identique que le rectangle de l’acteur Joyeux, de sorte que l’image copiée n’est pas redimensionnée. Le niveau d’opacité de l’image copiée est de 50, elle est donc semi-tranparente, révélant
la portion de l’acteur Fleur sur laquelle elle est collée.
Voir aussi
color(), image()
copyToClipBoard()
Utilisation
-- Syntaxe Lingo
réfObjActeur.copyToClipBoard()
// Syntaxe JavaScript
réfObjActeur.copyToClipBoard();
Description
Méthode d’acteur ; copie un acteur désigné dans le Presse-papiers.
Il est possible d’appeler cette méthode sans que la fenêtre Distribution soit active.
Vous pouvez utiliser cette méthode pour copier des acteurs entre plusieurs animations ou
applications.
Paramètres
Aucun.
296
Chapitre 12 : Méthodes
Exemple
L’instruction suivante copie l’acteur Chaise dans le Presse-papiers :
-- Syntaxe Lingo
member("Chaise").copyToClipBoard()
// Syntaxe JavaScript
member("Chaise").copyToClipBoard();
L’instruction suivante copie l’acteur numéro 5 dans le Presse-papiers :
-- Syntaxe Lingo
member(5).copyToClipBoard()
// Syntaxe JavaScript
member(5).copyToClipBoard();
Voir aussi
Acteur, pasteClipBoardInto()
cos()
Utilisation
(angle).cos
cos (angle)
Description
Fonction (Lingo uniquement) ; calcule le cosinus de l’angle spécifié, exprimé en radians.
Dans la syntaxe JavaScript, utilisez la fonction cos() de l’objet Math.
Paramètres
angle
Requis. Nombre entier qui spécifie l’angle à tester.
Exemple
L’instruction suivante calcule le cosinus de pi sur 2 et l’affiche dans la fenêtre Messages :
put (PI/2).cos
Voir aussi
atan(), PI, sin()
297
count()
Utilisation
-- Syntaxe Lingo
liste.count
quelObjet.count
// Syntaxe JavaScript
liste.count;
quelObjet.count;
Description
Fonction ; renvoie le nombre d’entrées d’une liste linéaire ou de propriétés, le nombre de
propriétés d’un script parent sans compter les propriétés d’un script ancêtre ou les sous-chaînes
d’une expression texte telles que caractères, lignes ou mots.
La commande count fonctionne avec les listes linéaires et de propriétés, les objets créés avec des
scripts parents et la propriété the globals.
Pour un exemple d’utilisation de count() dans une animation, reportez-vous à l’animation Text
du dossier Learning/Lingo, lui-même inclus dans le dossier de Director.
Paramètres
Aucun.
Exemple
L’instruction suivante affiche la valeur 3, qui correspond au nombre d’entrées :
-- Syntaxe Lingo
put([10,20,30].count) -- 3
// Syntaxe JavaScript
put(list(10,20,30).count); // 3
Voir aussi
globals
createFile()
Utilisation
-- Syntaxe Lingo
réfObjFileio.createFile(chaîneNomDeFichier)
// Syntaxe JavaScript
réfObjFileio.createFile(chaîneNomDeFichier);
Description
Méthode de Fileio ; crée un fichier spécifié.
Paramètres
chaîneNomDeFichier
Requis. Chaîne qui spécifie le chemin et le nom du fichier à créer.
Voir aussi
Fileio
298
Chapitre 12 : Méthodes
createMask()
Utilisation
objetImage.createMask()
Description
La fonction suivante crée et renvoie un objet masque à utiliser avec la fonction copyPixels().
Les objets masque ne sont pas des objets image. Ils ne sont utilisés qu’avec la fonction
pour la reproduction de l’effet d’encre Masque. Afin de gagner du temps, si
vous envisagez d’utiliser plusieurs fois la même image en tant que masque, il est conseillé de
créer l’objet masque et de l’enregistrer dans une variable pour une utilisation ultérieure.
copyPixels()
Exemple
L’instruction suivante copie entièrement l’image de l’acteur Joyeux dans un rectangle à l’intérieur
de l’acteur Carré marron. L’acteur Dégradé2 est utilisé en tant que masque avec l’image copiée.
Le masque est décalé de 10 pixels vers le haut et vers la gauche du rectangle dans lequel l’image
Joyeux est collée.
member("Carré marron").image.copyPixels(member("Joyeux").image, \
rect(20, 20, 150, 108), member("Joyeux").rect, \
[#maskImage:member("Dégrad2").image.createMask(), maskOffset:point(-10, -10)])
Voir aussi
copyPixels(), createMatte(), ink
createMatte()
Utilisation
objetImage.createMatte({seuilAlpha})
Description
Cette fonction crée et renvoie un objet Dessin seul que vous pouvez utiliser avec copyPixels()
pour reproduire l’effet d’encre Dessin seul. L’objet Dessin seul est créé à partir de la couche alpha
de l’objet image spécifiée. Le paramètre facultatif seuilAlpha exclut de l’encre Dessin seul tous
les pixels dont la valeur de couche alpha est inférieure à ce seuil. Il n’est utilisé qu’avec les images
32 bits contenant une couche alpha. La valeur de seuilAlpha doit être comprise entre 0 et 255.
Les objets Dessin seul ne sont pas des objets image. Ils ne sont utilisés qu’avec la fonction
copyPixels(). Afin de gagner du temps, si vous envisagez d’utiliser plusieurs fois la même image
en tant que Dessin seul, il est conseillé de créer l’objet Dessin seul et de l’enregistrer dans une
variable pour une utilisation ultérieure.
Exemple
L’instruction suivante crée un nouvel objet Dessin seul à partir de la couche alpha de l’objet
image imageTest et ignore les pixels dont les valeurs alpha sont inférieures à 50 %.
nouveauDessinSeul = imageTest.createMatte(128)
Voir aussi
copyPixels(), createMask()
299
crop() (Image)
Utilisation
-- Syntaxe Lingo
réfObjImage.crop(rectDeRecadrage)
// Syntaxe JavaScript
réfObjImage.crop(rectDeRecadrage);
Description
Méthode d’image. Renvoie un nouvel objet image qui contient une copie d’un objet image source
recadré par rapport à un rectangle donné.
L’appel de crop() ne modifie pas l’objet image source.
Le nouvel objet image n’appartient plus à aucun acteur et n’est plus associé à la scène. Pour
affecter la nouvelle image à un acteur, définissez la propriété image de cet acteur.
Paramètres
rectDeRecadrage
Requis. Rectangle par rapport auquel la nouvelle image est recadrée.
Exemple
L’instruction Lingo suivante prend un cliché de la scène et la redimensionne dans le rect de
l’image-objet 10, capturant l’apparence courante de cette image-objet sur la scène :
L’instruction suivante utilise le rectangle de l’acteur Joyeux pour recadrer l’image de l’acteur
Fleur, puis applique l’image de l’acteur Joyeux au résultat :
member("Joyeux").image = member("Fleur").image.crop(member("Joyeux").rect)
Voir aussi
image (image), image(), rect (image)
crop() (Bitmap)
Utilisation
-- Syntaxe Lingo
réfObjActeur.crop()
// Syntaxe JavaScript
réfObjActeur.crop();
Description
Commande bitmap ; permet de recadrer un acteur bitmap à une taille spécifique.
La commande crop permet de recadrer des acteurs existants ou, en combinaison avec l’image de
la scène, de saisir un instantané, puis de le recadrer à la taille souhaitée pour l’afficher.
Le point d’alignement reste inchangé de sorte que le bitmap n’est pas déplacé par rapport à sa
position d’origine.
300
Chapitre 12 : Méthodes
Paramètres
rectDeRecadrage
Requis. Spécifie le rectangle par rapport auquel la nouvelle image est recadrée.
Exemple
L’instruction suivante affecte un acteur bitmap existant à un instantané de la scène, puis recadre
l’image résultante dans un rectangle égal à l’image-objet 10 :
-- Syntaxe Lingo
imageDeLaScène = (_movie.stage).image
imageDeLimageObjet = imageDeLaScène.crop(sprite(10).rect)
member("instantané de l’image-objet").image = imageDeLimageObjet
// Syntaxe JavaScript
var imageDeLaScène = (_movie.stage).image
var imageDeLimageObjet = imageDeLaScène.crop(sprite(10).rect);
member("instantané de l’image-objet").image = imageDeLimageObjet;
Voir aussi
picture (acteur)
cross
Utilisation
vecteur1.cross(vecteur2)
Description
Méthode 3D de vecteur ; renvoie un vecteur perpendiculaire à vecteur1 et vecteur2.
Exemple
Dans l’exemple suivant, pos1 est un vecteur sur l’axe des x et pos2 est un vecteur sur l’axe des y.
La valeur renvoyée par pos1.cross(pos2) est vector( 0.0000, 0.0000, 1.00000e4 ), qui
est perpendiculaire à pos1 et pos2.
pos1 = vector(100, 0, 0)
pos2 = vector(0, 100, 0)
put pos1.cross(pos2)
-- vector( 0.0000, 0.0000, 1.00000e4 )
Voir aussi
crossProduct(), perpendicularTo
301
crossProduct()
Utilisation
vecteur1.crossProduct(vecteur2)
Description
Méthode 3D de vecteur ; renvoie un vecteur perpendiculaire à vecteur1 et vecteur2.
Exemple
Dans l’exemple suivant, pos1 est un vecteur sur l’axe des x et pos2 est un vecteur sur l’axe des y.
La valeur renvoyée par pos1.crossProduct(pos2) est vector( 0.0000, 0.0000, 1.00000e4
), qui est perpendiculaire à pos1 et pos2.
pos1 = vector(100, 0, 0)
pos2 = vector(0, 100, 0)
put pos1.crossProduct(pos2)
-- vector( 0.0000, 0.0000, 1.00000e4 )
Voir aussi
perpendicularTo, cross
cursor()
Utilisation
-- Syntaxe Lingo
_player.cursor(entNumDeCurseur)
_player.cursor(numDacteurCurseur, numDacteurMasque)
_player.cursor(réfDacteurCurseur)
// Syntaxe JavaScript
_player.cursor(entNumDeCurseur);
_player.cursor(numDacteurCurseur, numDacteurMasque);
_player.cursor(réfDacteurCurseur);
Description
Méthode de lecteur ; change l’acteur ou le curseur intégré utilisé comme pointeur et reste en
vigueur jusqu’à ce que vous la désactiviez en affectant au curseur la valeur 0.
• Utilisez la syntaxe _player.cursor(numDacteurCurseur,
•
numDacteurMasque) pour
spécifier le numéro d’acteur à utiliser comme curseur et son masque facultatif. La zone
référencée du curseur correspond au point d’alignement de l’acteur.
L’acteur spécifié doit être un acteur 1 bit. Si l’acteur est plus grand que 16 x 16 pixels, Director
le recadre pour le transformer en carré de 16 x 16 pixels, à partir de l’angle supérieur gauche de
l’image. La zone référencée du curseur correspond toujours au point d’alignement de l’acteur.
Utilisez la syntaxe _player.cursor(réfDacteurCurseur) pour les curseurs personnalisés
proposés par l’Xtra Cursor.
Remarque : Bien que l’Xtra Cursor accepte les curseurs de différents types de distributions, les
acteurs texte ne peuvent pas être utilisés comme curseurs.
302
Chapitre 12 : Méthodes
• Utilisez la syntaxe _player.cursor(entNumDeCurseur) pour spécifier les curseurs par défaut
fournis par le système. Le terme entNumDeCurseur doit être l’un des nombres entiers suivants :
Valeur
Description
-1, 0
Flèche
1
Curseur en I
2
Croix
3
Croix épaisse
4
Montre (Macintosh) ou sablier (Windows)
5
Nord Sud Est Ouest (NSEO)
6
Nord Sud (NS)
200
Vide (masque le curseur)
254
Aide
256
Crayon
257
Gomme
258
Sélection
259
Pot de peinture
260
Main
261
Outil Rectangle
262
Outil Rectangle arrondi
263
Outil Cercle
264
Outil Ligne
265
Outil RTF
266
Outil Champ de texte
267
Outil Bouton
268
Outil Case à cocher
269
Outil Bouton radio
270
Outil Position
271
Outil Point d’alignement
272
Lasso
280
Doigt
281
Pipette
282
Attente bouton de souris enfoncé 1
283
Attente bouton de souris enfoncé 2
284
Taille verticale
303
Valeur
Description
285
Taille horizontale
286
Taille diagonale
290
Main fermée
291
Main sans déposer
292
Copie (main fermée)
293
Flèche inversée
294
Rotation
295
Inclinaison
296
Double flèche horizontale
297
Double flèche verticale
298
Double flèche sud-ouest nord-est
299
Double flèche nord-ouest sud-est
300
Pinceau pour enduire/estomper
301
Aérographe
302
Zoom avant
303
Zoom arrière
304
Annulation du zoom
305
Démarrer la forme
306
Ajouter un point
307
Fermer la forme
308
Zoom de la caméra
309
Déplacement de la caméra
310
Rotation de la caméra
457
Personnalisé
Pendant les événements système tels que le chargement d’un fichier, le système d’exploitation
peut afficher le curseur montre, puis revenir au curseur pointeur en rendant le contrôle à
l’application. Cela supplante les paramètres de la commande cursor de l’animation précédente.
Pour utiliser la commande cursor() au début d’une nouvelle animation chargée dans une
présentation utilisant un curseur personnalisé pour plusieurs animations, stockez tout numéro de
ressource de curseur spécial sous la forme d’une variable globale qui reste en mémoire entre les
animations.
Les commandes de curseur peuvent être interrompues par un Xtra ou tout autre élément externe.
Lorsque le curseur a une valeur dans Director et qu’un Xtra ou un élément externe en prend le
contrôle, la restitution de sa valeur d’origine n’a aucun effet, Director ne percevant pas que sa
valeur a changé. Pour résoudre ce problème, attribuez explicitement au curseur une troisième
valeur, puis rendez-lui sa valeur d’origine.
304
Chapitre 12 : Méthodes
Paramètres
entNumDeCurseur Requis lorsqu’un nombre entier est utilisé pour identifier un curseur. Nombre
entier qui spécifie le curseur intégré à utiliser en tant que curseur.
Requis lorsqu’un numéro d’acteur et son masque facultatif sont utilisés
pour identifier le curseur. Nombre entier qui spécifie le numéro de l’acteur à utiliser en tant que
curseur.
numDacteurCurseur
Requis lorsqu’un numéro d’acteur et son masque facultatif sont utilisés pour
identifier le curseur. Nombre entier qui spécifie le numéro de masque de numDacteurCurseur.
numDacteurMasque
réfDacteurCurseur Requis lorsqu’une référence d’acteur est utilisée pour identifier le curseur.
Référence à l’acteur à utiliser en tant que curseur.
Exemple
L’instruction suivante change le curseur en curseur montre sur un Macintosh et en sablier sous
Windows, si la valeur de la variable status est égale à 1 :
-- Syntaxe Lingo
if (status = 1) then
_player.cursor(4)
end if
// Syntaxe JavaScript
if (status == 1) {
_player.cursor(4);
}
Le gestionnaire suivant vérifie que l’acteur affecté à la variable est un acteur 1 bit et, le cas échéant,
l’utilise comme curseur :
-- Syntaxe Lingo
on monCurseur(unActeur)
if (member(UnActeur).depth = 1) then
_player.cursor(unActeur)
else
_sound.beep()
end if
end
// Syntaxe JavaScript
function monCurseur(unActeur) {
if (member(unActeur).depth == 1) {
_player.cursor(unActeur);
}
else {
_sound.beep();
}
}
Voir aussi
Lecteur
305
date() (formats)
Utilisation
-- Syntaxe Lingo
date({chaîneFormat})
date({entFormat})
date({entFormatAnnée, entFormatMois, entFormatJour})
// Syntaxe JavaScript
Date({“mois jj, aaaa hh:mm:ss”});
Date({“mois jj, aaaa”});
Date({aa,mm,jj,hh,mm,ss});
Date({aa,mm,jj});
Date({millisecondes});
Description
Fonction du niveau supérieur et type de données. Crée une instance d’objet Date au format standard que vous pouvez utiliser avec d’autres instances de date dans des opérations arithmétiques ou
pour manipuler les dates d’une plate-forme à l’autre, ainsi que dans des formats de pays différents.
Les objet Date Lingo et ceux de la syntaxe JavaScript sont différents ; par conséquent, il n’est pas
possible de créer des objets Date Lingo avec la syntaxe JavaScript et, inversement, de créer des
objets Date JavaScript avec la syntaxe Lingo.
Créez un nouvel objet Date dans la syntaxe JavaScript en utilisant la syntaxe new Date().
La syntaxe JavaScript tient compte de la casse. Par exemple, new date() provoque une erreur
d’exécution.
Lorsque vous créez une date en Lingo, utilisez quatre chiffres pour l’année, deux chiffres pour le
mois et deux chiffres pour le jour. Les expressions suivantes renvoient un objet Date correspondant au 21 octobre 2004.
Format de date
Emploi
chaîne
date(“20041021”)
entier
date(20041021)
séparation par virgules date(2004, 10, 21)
Les différentes propriétés de l’objet Date renvoyé sont les suivantes :
Propriété
Description
#year
Nombre entier représentant l’année
#month
Nombre entier représentant le mois de l’année
#day
Nombre entier représentant le jour du mois
Les opérations d’addition et de soustraction sur la date sont interprétées comme l’addition et la
soustraction de jours.
306
Chapitre 12 : Méthodes
Paramètres
chaîneFormat
Facultatif lors de la création d’un objet Date Lingo. Chaîne qui spécifie le nouvel
objet Date.
entFormat Facultatif lors de la création d’un objet Date Lingo. Nombre entier qui spécifie le
nouvel objet Date.
entFormatAnnée Facultatif lors de la création d’un objet Date Lingo. Nombre entier qui spécifie
les quatre chiffres de l’année du nouvel objet Date.
Facultatif lors de la création d’un objet Date Lingo. Nombre entier qui spécifie
les deux chiffres du mois du nouvel objet Date.
entFormatMois
Facultatif lors de la création d’un objet Date Lingo. Nombre entier qui spécifie
les deux chiffres du jour du nouvel objet Date.
entFormatJour
Facultatif lors de la création d’un objet Date dans la syntaxe JavaScript. Chaîne qui spécifie
le mois du nouvel objet Date. Les valeurs correctes sont comprises entre 0 (janvier) et 11
(décembre).
mois
jj Facultatif lors de la création d’un objet Date dans la syntaxe JavaScript. Nombre entier de
deux chiffres qui spécifie le jour du nouvel objet Date. Les valeurs correctes sont comprises entre
0 (dimanche) et 6 (samedi).
Facultatif lors de la création d’un objet Date dans la syntaxe JavaScript. Nombre entier de
quatre chiffres qui spécifie l’année du nouvel objet Date.
aaaa
hh Facultatif lors de la création d’un objet Date dans la syntaxe JavaScript. Nombre entier de
deux chiffres qui spécifie l’heure du nouvel objet Date. Les valeurs correctes sont comprises entre
0 (12:00) et 23 (23:00).
mm Facultatif lors de la création d’un objet Date dans la syntaxe JavaScript. Nombre entier de
deux chiffres qui spécifie les minutes du nouvel objet Date. Les valeurs correctes sont comprises
entre 0 et 59.
ss Facultatif lors de la création d’un objet Date dans la syntaxe JavaScript. Nombre entier de
deux chiffres qui spécifie les secondes du nouvel objet Date. Les valeurs correctes sont comprises
entre 0 et 59.
aa Facultatif lors de la création d’un objet Date dans la syntaxe JavaScript. Nombre entier de
deux chiffres qui spécifie l’année du nouvel objet Date. Les valeurs correctes sont comprises entre
0 et 99.
Facultatif lors de la création d’un objet Date dans la syntaxe JavaScript. Nombre
entier qui spécifie les millisecondes du nouvel objet Date. Les valeurs correctes sont comprises
entre 0 et 999.
millisecondes
307
Exemple
Les instructions suivantes créent et déterminent le nombre de jours séparant deux dates :
-- Syntaxe Lingo
maDateDeNaissance = date(19650712)
taDateDeNaissance = date(19450529)
put("Il y a" && abs(taDateDeNaissance - maDateDeNaissance) && "jours entre nos
\ dates de naissances.")
// Syntaxe JavaScript
var maDateDeNaissance = new Date(1965, 07, 12);
var taDateDeNaissance = new Date(1945, 05, 29);
put("Il y a " + Math.abs(((taDateDeNaissance - maDateDeNaissance)/1000/60/60/
24)) +
" jours entre nos dates de naissance.");
Les instructions suivantes permettent d’accéder à la propriété individuelle d’une date :
-- Syntaxe Lingo
maDateDeNaissance = date(19650712)
put("Je suis né au mois numéro"&&maDateDeNaissance.month)
// Syntaxe JavaScript
var maDateDeNaissance = new Date(1965, 07, 12);
put("Je suis né au mois numéro" + maDateDeNaissance.getMonth());
date() (Système)
Utilisation
-- Syntaxe Lingo
_system.date({aaaammjj})
// Syntaxe JavaScript
_system.date({aaaammjj});
Description
Méthode du système ; renvoie la date courante fournie par l’horloge du système.
Le format de date utilisé par Director varie suivant le format défini sur l’ordinateur.
• Sous Windows, vous pouvez personnaliser l’affichage de la date dans le Panneau de
•
configuration Paramètres régionaux. (Windows enregistre le format de date court dans le
fichier System.ini. Utilisez cette valeur pour déterminer ce qu’indiquent les parties de la date
au format court.)
Sur Macintosh, vous pouvez personnaliser l’affichage de la date dans le tableau de bord Date et
heure.
Paramètres
aaaammjj Facultatif. Nombre qui spécifie les quatre chiffres de l’année (aaaa),
du mois (mm) et les deux chiffres du jour (jj) de la date renvoyée.
308
Chapitre 12 : Méthodes
les deux chiffres
Exemple
L’instruction suivante détermine si la date en cours est le 1er janvier en vérifiant si les quatre
premiers caractères de la date sont 1/1/. Si c’est le 1er janvier, le message d’alerte Bonne année !
apparaît :
-- Syntaxe Lingo
if (_system.date().char[1..4] = "1/1/") then
_player.alert("Bonne année !")
end if
// Syntaxe JavaScript
if (_system.date().toString().substr(0, 4) == "1/1/") {
_player.alert("Bonne année !");
}
Voir aussi
Système
delay()
Utilisation
-- Syntaxe Lingo
_movie.delay(entBattements)
// Syntaxe JavaScript
_movie.delay(entBattements);
Description
Commande d’animation ; immobilise la tête de lecture pendant une durée donnée.
La seule activité de la souris et du clavier possible à ce moment-là consiste à arrêter l’animation en
appuyant sur Ctrl+Alt+point (Windows) ou Cmd+point (Macintosh). Dans la mesure où elle
augmente la durée des différentes images, la commande delay() est utile pour contrôler la
cadence de lecture d’une séquence d’images.
La méthode delay() peut être appliquée seulement lorsque la tête de lecture est en mouvement.
Toutefois, les gestionnaires peuvent toujours être exécutés lorsque la méthode delay() est active.
Seule la tête de lecture s’arrête ; l’exécution des scripts, elle, se poursuit. Placez les scripts utilisant
la méthode delay() dans un gestionnaire enterFrame ou exitFrame.
Pour simuler une interruption dans un gestionnaire lorsque la tête de lecture est immobile,
utilisez la propriété milliseconds de l’objet Système et patientez jusqu’à la fin du délai spécifié
avant de sortir de l’image.
Paramètres
Requis. Nombre entier qui spécifie la durée d’immobilisation de la tête de
lecture en nombre de battements. Un battement correspond à 1/60ème de seconde.
entBattements
309
Exemple
Le gestionnaire suivant interrompt l’animation pendant 2 secondes lorsque la tête de lecture
quitte l’image en cours :
-- Syntaxe Lingo
on keyDown
_movie.delay(2*60)
end
// Syntaxe JavaScript
function keyDown() {
_movie.delay(2*60);
}
Le gestionnaire suivant, qui peut être placé dans un script d’image, retarde l’animation d’un
nombre aléatoire de battements :
-- Syntaxe Lingo
on keyDown
if (_key.key = "x") then
_movie.delay(random(180))
end if
end
// Syntaxe JavaScript
function keyDown() {
if (_key.key == "x") {
_movie.delay(random(180));
}
}
Voir aussi
endFrame, milliseconds, Animation
delete()
Utilisation
-- Syntaxe Lingo
réfObjFileio.delete()
// Syntaxe JavaScript
réfObjFileio.delete();
Description
Méthode de Fileio ; supprime un fichier.
Paramètres
Aucun.
Voir aussi
Fileio
310
Chapitre 12 : Méthodes
deleteAt
Utilisation
liste.deleteAt(nombre)
deleteAt liste, nombre
Description
Commande de liste ; supprime un élément d’une liste linéaire ou de propriétés.
La commande deleteAt vérifie que l’élément se trouve dans la liste et, si vous essayez de
supprimer un objet qui n’est pas dans la liste, Director affiche un message d’erreur.
Paramètres
nombre
Requis. Spécifie la position de l’élément à supprimer dans la liste.
Exemple
L’instruction suivante supprime le deuxième élément de la liste designers, qui contient [dupont,
avatar, soldes] :
designers = ["dupont", "avatar", "soldes"]
designers.deleteAt(2)
Le résultat est la liste [dupont, soldes].
Le gestionnaire suivant vérifie si un objet se trouve dans la liste avant d’essayer de le supprimer :
on monDeleteAt laListe, Lindex
if laListe.count < Lindex then
beep
else
laListe.deleteAt(Lindex)
end if
end
Voir aussi
addAt
deleteCamera
Utilisation
member(quelActeur).deleteCamera(nomDeCaméra)
member(quelActeur).deleteCamera(index)
sprite(quelleImageObjet).deleteCamera(caméraOuIndex)
Description
Commande 3D ; dans un acteur, cette commande supprime la caméra de l’acteur et de l’univers
3D. Les enfants de la caméra sont retirés de l’univers 3D mais ne sont pas supprimés.
Il est impossible de supprimer la caméra par défaut de l’acteur.
Dans une image-objet, cette commande supprime la caméra de la liste des caméras de l’imageobjet. La caméra n’est pas supprimée de l’acteur.
Paramètres
nomDeCaméra, index ou caméraOuIndex. Requis. Chaîne ou nombre entier qui spécifie le nom
ou la position d’index de la caméra à supprimer.
311
Exemple
L’instruction suivante supprime deux caméras de l’acteur Pièce : tout d’abord la caméra
Caméra06, puis la caméra 1.
member("Pièce").deleteCamera("Caméra06")
member("Pièce").deleteCamera(1)
L’instruction suivante supprime deux caméras de la liste des caméras de l’image-objet 5 : tout
d’abord la deuxième caméra de la liste, puis la caméra Caméra06.
sprite(5).deleteCamera(2)
sprite(5).deleteCamera(member("Pièce").camera("Caméra06"))
Voir aussi
newCamera, addCamera, cameraCount()
deleteFrame()
Utilisation
-- Syntaxe Lingo
_movie.deleteFrame()
// Syntaxe JavaScript
_movie.deleteFrame();
Description
Méthode d’animation ; supprime l’image courante et fait de l’image suivante la nouvelle image
courante pendant une session de création du scénario uniquement.
Paramètres
Aucun.
Exemple
Le gestionnaire suivant vérifie si l’image-objet de la piste 10 de l’image courante a dépassé le bord
droit d’une scène de 640 x 480 pixels et, le cas échéant, supprime l’image :
-- Syntaxe Lingo
on testSprite
_movie.beginRecording()
if (sprite(10).locH > 640) then
_movie.deleteFrame()
end if
_movie.endRecording()
end
// Syntaxe JavaScript
function testSprite() {
_movie.beginRecording();
if (sprite(10).locH > 640) {
_movie.deleteFrame();
}
_movie.endRecording();
}
Voir aussi
beginRecording(), endRecording(), Animation, updateFrame()
312
Chapitre 12 : Méthodes
deleteGroup
Utilisation
member(quelActeur).deleteGroup(quelGroupe)
member(quelActeur).deleteGroup(index)
Description
Commande 3D ; supprime le groupe de l’acteur et de l’univers 3D. Les enfants du groupe sont
retirés de l’univers 3D mais ne sont pas supprimés.
Il est impossible de supprimer le groupe World, qui est le groupe par défaut.
Paramètres
ou index. Requis. Chaîne ou nombre entier qui spécifie le nom ou la position
d’index du groupe à supprimer.
quelGroupe
Exemple
La première ligne de cet exemple supprime le groupe Factice16 de l’acteur Scène. La deuxième
ligne supprime le troisième groupe de Scène.
member("Scène").deleteGroup("Factice16")
member("Scène").deleteGroup(3)
Voir aussi
newGroup, child (3D), parent
deleteLight
Utilisation
member(quelActeur).deleteLight(quelleLumière)
member(quelActeur).deleteLight(index)
Description
Commande 3D ; supprime la lumière de l’acteur et de l’univers 3D. Les enfants de la lumière
sont retirés de l’univers 3D mais ne sont pas supprimés.
Paramètres
quelleLumière ou index. Requis. Chaîne ou nombre entier qui spécifie le nom ou la position
d’index de la lumière à supprimer.
Exemple
Les exemples suivants suppriment les lumières de l’acteur Pièce.
member("Pièce").deleteLight("lumièreAmbiante")
member("Pièce").deleteLight(6)
Voir aussi
newLight
313
deleteModel
Utilisation
member(quelActeur).deleteModel(quelModèle)
member(quelActeur).deleteModel(index)
Description
Commande 3D ; supprime le modèle de l’acteur et de l’univers 3D. Les enfants du modèle sont
retirés de l’univers 3D mais ne sont pas supprimés.
Paramètres
ou index. Requis. Chaîne ou nombre entier qui spécifie le nom ou la position
d’index du modèle à supprimer.
quelModèle
Exemple
La première ligne de cet exemple supprime le modèle Lecteur3 de l’acteur gbUnivers. La
deuxième ligne supprime le neuvième modèle de gbUnivers.
member("gbUnivers").deleteModel("Lecteur3")
member("gbUnivers").deleteModel(9)
Voir aussi
newModel
deleteModelResource
Utilisation
member(quelActeur).deleteModelResource(quelleRessDeMod)
member(quelActeur).deleteModelResource(index)
Description
Commande 3D ; supprime la ressource de modèle de l’acteur et de l’univers 3D.
Les modèles qui utilisent la ressource de modèle supprimée deviennent invisibles car ils perdent
leur géométrie, mais ne sont ni supprimés ni retirés de l’univers.
Paramètres
quelleRessDeMod ou index. Requis. Chaîne ou nombre entier qui spécifie le nom ou la position
d’index de la ressource de modèle à supprimer.
Exemple
Les exemples suivants suppriment deux ressources de modèle de l’acteur ScèneDeRue.
member("ScèneDeRue").deleteModelResource("MaisonB")
member("ScèneDeRue").deleteModelResource(3)
Voir aussi
newModelResource, newMesh
314
Chapitre 12 : Méthodes
deleteMotion
Utilisation
member(quelActeur).deleteMotion(quelMouvement)
member(quelActeur).deleteMotion(index)
Description
Commande 3D ; supprime le mouvement de l’acteur.
Paramètres
quelMouvement ou index. Requis. Chaîne ou nombre entier qui spécifie le nom ou la position
d’index du mouvement à supprimer.
Exemple
La première ligne de l’exemple suivant supprime le mouvement Saut de l’acteur
ScèneDePiqueNique. La deuxième ligne supprime le cinquième mouvement de
ScèneDePiqueNique.
member("ScèneDePiqueNique").deleteMotion("Saut")
member("ScèneDePiqueNique").deleteMotion(5)
Voir aussi
newMotion(), removeLast()
deleteOne
Utilisation
liste.deleteOne(valeur)
deleteOne liste, valeur
Description
Commande de liste ; supprime une valeur d’une liste linéaire ou de propriétés. Pour une liste de
propriétés, deleteOne supprime également la propriété associée à la valeur supprimée. Si la valeur
se trouve à plusieurs endroits dans la liste, deleteOne ne supprime que la première occurrence.
L’utilisation de cette commande pour supprimer une propriété reste sans effet.
Paramètres
valeur
Requis. Valeur à supprimer de la liste.
Exemple
La première instruction suivante crée une liste contenant les jours mardi, mercredi et vendredi.
La seconde instruction suivante supprime le nom mercredi de la liste.
jours = ["mardi", "mercredi", "vendredi"]
jours.deleteOne("mercredi")
put jours
L’instruction put jours entraîne l’affichage du résultat dans la fenêtre Messages :
-- ["mardi", "vendredi"].
315
deleteProp
Utilisation
liste.deleteProp(élément)
deleteProp liste, élément
Description
Commande de liste ; supprime l’élément spécifié de la liste indiquée.
• Pour les listes linéaires, remplacez élément par le numéro correspondant à la position de
•
l’élément à supprimer dans la liste. La commande deleteProp a le même effet (dans les listes
linéaires) que la commande deleteAt. Un chiffre supérieur au nombre d’éléments de la liste
entraîne une erreur de script.
Pour les listes de propriétés, remplacez élément par le nom de la propriété à supprimer.
La suppression d’une propriété supprime également la valeur qui lui est associée. Si la liste
contient la même propriété à plusieurs endroits, seule la première occurrence de la propriété
est supprimée.
Paramètres
élément
Requis. Elément à supprimer de la liste.
Exemple
L’instruction suivante supprime la propriété color de la liste [#height:100, #width: 200,
appelée attributsDimageObjet :
#color: 34, #ink: 15],
attributsDimageObjet.deleteProp(#color)
Le résultat est la liste [#height:100, #width: 200, #ink: 15].
Voir aussi
deleteAt
deleteShader
Utilisation
member(quelActeur).deleteShader(quelMatériau)
member(quelActeur).deleteShader(index)
Description
Commande 3D ; retire le matériau de l’acteur.
Paramètres
quelMatériau ou index. Requis. Chaîne ou nombre entier qui spécifie le nom ou la position
d’index du matériau à supprimer.
316
Chapitre 12 : Méthodes
Exemple
La première ligne de cet exemple supprime le matériau Route de l’acteur ScèneDeRue.
La deuxième ligne supprime le troisième matériau de ScèneDeRue.
member("ScèneDeRue").deleteShader("Route")
member("ScèneDeRue").deleteShader(3)
Voir aussi
newShader, shaderList
deleteTexture
Utilisation
member(quelActeur).deleteTexture(quelleTexture)
member(quelActeur).deleteTexture(index)
Description
Commande 3D ; retire la texture de l’acteur.
Paramètres
quelleTexture ou index. Requis. Chaîne ou nombre entier qui spécifie le nom ou la position
d’index de la texture à supprimer.
Exemple
La première ligne de cet exemple supprime la texture Ciel de l’acteur ScèneDePiqueNique.
La deuxième ligne supprime la cinquième texture de ScèneDePiqueNique.
member("ScèneDePiqueNique).deleteTexture("Ciel")
member("ScèneDePiqueNique").deleteTexture(5)
Voir aussi
newTexture
deleteVertex()
Utilisation
-- Syntaxe Lingo
réfObjActeur.deleteVertex(indexASupprimer)
// Syntaxe JavaScript
réfObjActeur.deleteVertex(indexASupprimer);
Description
Commande de forme vectorielle ; supprime un sommet existant d’un acteur forme vectorielle à la
position d’index spécifiée.
Paramètres
indexASupprimer
Requis. Nombre entier qui spécifie la position d’index du sommet à
supprimer.
317
Exemple
La ligne suivante supprime le deuxième point de sommet de la forme vectorielle Archie :
-- Syntaxe Lingo
member("Archie").deleteVertex(2)
// Syntaxe JavaScript
member("Archie").deleteVertex(2);
Voir aussi
addVertex(), moveVertex(), originMode, vertexList
displayOpen()
Utilisation
-- Syntaxe Lingo
réfObjFileio.displayOpen()
// Syntaxe JavaScript
réfObjFileio.displayOpen();
Description
Méthode de Fileio ; affiche une boîte de dialogue d’ouverture.
Cette méthode renvoie au script le chemin d’accès complet et le nom du fichier sélectionné.
Paramètres
Aucun.
Voir aussi
Fileio
displaySave()
Utilisation
-- Syntaxe Lingo
réfObjFileio.displaySave(chaîneTitre, chaîneNomDeFichier)
// Syntaxe JavaScript
réfObjFileio.displaySave(chaîneTitre, chaîneNomDeFichier);
Description
Méthode de Fileio ; affiche une boîte de dialogue d’enregistrement.
Cette méthode renvoie au script le chemin d’accès complet et le nom du fichier enregistré.
318
Chapitre 12 : Méthodes
Paramètres
chaîneTitre. Requis. Chaîne qui représente le titre affiché dans la boîte de dialogue
d’enregistrement.
chaîneNomDeFichier.
Requis. Chaîne qui spécifie le chemin complet et le nom du fichier à
enregistrer.
Voir aussi
Fileio
do
Utilisation
do expressionChaîne
Description
Commande ; évalue une chaîne et exécute le résultat sous la forme d’une instruction de script.
Cette commande est pratique pour évaluer des expressions saisies par l’utilisateur et pour exécuter
des commandes placées dans des variables chaînes, des champs, des listes et des fichiers.
L’utilisation de variables locales non initialisées dans une commande do entraîne une erreur de
compilation. Il est conseillé d’initialiser à l’avance les variables locales.
Remarque : Cette commande ne permet pas la déclaration de variables globales, celles-ci devant
toujours être déclarées en avance.
La commande do fonctionne avec des chaînes à plusieurs lignes ainsi qu’avec les chaînes n’en
contenant qu’une seule.
Paramètres
expressionChaîne
Requis. Chaîne à évaluer.
Exemple
L’instruction suivante exécute l’instruction placée entre guillemets :
do "beep 2"
do listeDeCommandes[3]
doneParsing()
Utilisation
ObjetDanalyse.doneParsing()
Description
Fonction ; renvoie 1 (TRUE) lorsque l’objet d’analyse a terminé l’analyse du document avec
parseURL(). La valeur renvoyée est 0 (FALSE) jusqu’à la fin de l’analyse.
Paramètres
Aucun.
Voir aussi
parseURL()
319
dot()
Utilisation
vecteur1.dot(vecteur2)
Description
Méthode 3D de vecteur ; renvoie la somme des produits des composants x, y et z de deux
vecteurs. Si les deux vecteurs sont normalisés, le produit est le cosinus de l’angle entre les deux
vecteurs.
Pour manuellement arriver au dot de deux vecteurs, multipliez le composant x de vecteur1 par
le composant x de vecteur2, puis multipliez le composant y de vecteur1 par le composant y de
vecteur2, puis multipliez le composant z de vecteur1 par le composant z de vecteur2, avant de
finalement ajouter les trois produits.
Cette méthode est identique à la fonction dotProduct().
Paramètres
vecteur2
Requis. Le second des vecteurs dont la somme est renvoyée.
Exemple
Dans l’exemple suivant, l’angle séparant les vecteurs pos5 et pos6 est de 45°. La fonction
getNormalized renvoie les valeurs normalisées de pos5 et pos6 et les enregistre dans les variables
norm1 et norm2. Le produit dot de norm1 et norm2 est 0,7071, ce qui correspond au cosinus
de 45°.
pos5 = vector(100, 100, 0)
pos6 = vector(0, 100, 0)
put pos5.angleBetween(pos6)
-- 45.0000
norm1 = pos5.getNormalized()
put norm1
-- vector( 0.7071, 0.7071, 0.0000 )
norm2 = pos6.getNormalized()
put norm2
-- vector( 0.0000, 1.0000, 0.0000 )
put norm1.dot(norm2)
-- 0.7071
Voir aussi
dotProduct(), getNormalized, normalize
dotProduct()
Utilisation
vecteur1.dotProduct(vecteur2)
Description
Méthode 3D de vecteur ; renvoie la somme des produits des composants x, y et z de deux
vecteurs. Si les deux vecteurs sont normalisés, dotproduct renvoie le cosinus de l’angle entre les
deux vecteurs.
320
Chapitre 12 : Méthodes
Pour manuellement arriver au dot de deux vecteurs, multipliez le composant x de vecteur1 par
le composant x de vecteur2, puis multipliez le composant y de vecteur1 par le composant y de
vecteur2, puis multipliez le composant z de vecteur1 par le composant z de vecteur2, avant de
finalement ajouter les trois produits.
Cette méthode est identique à la fonction dot().
Paramètres
vecteur2
Requis. Le second des vecteurs dont la somme est renvoyée.
Exemple
Dans l’exemple suivant, l’angle séparant les vecteurs pos5 et pos6 est de 45°. La fonction
getNormalized renvoie les valeurs normalisées de pos5 et pos6 et les enregistre dans les variables
norm1 et norm2. Le dotProduct de norm1 et norm2 est 0.7071, ce qui est le cosinus de 45°.
pos5 = vector(100, 100, 0)
pos6 = vector(0, 100, 0)
put pos5.angleBetween(pos6)
-- 45.0000
norm1 = pos5.getNormalized()
put norm1
-- vector( 0.7071, 0.7071, 0.0000 )
norm2 = pos6.getNormalized()
put norm2
-- vector( 0.0000, 1.0000, 0.0000 )
put norm1.dotProduct(norm2)
-- 0.7071
Voir aussi
dot(), getNormalized, normalize
downloadNetThing
Utilisation
downloadNetThing URL, fichierLocal
Description
Commande ; copie un fichier depuis Internet vers un fichier placé sur le disque local, tandis que
la lecture de l’animation courante continue. Utilisez netDone pour vérifier si le téléchargement est
terminé.
Les animations Director en mode auteur et les projections prennent en charge la commande
mais celle-ci n’est pas prise en charge par Shockwave Player. Cela empêche
les utilisateurs de copier accidentellement des fichiers à partir d’Internet.
downLoadNetThing,
Bien que plusieurs opérations réseau puissent avoir lieu en même temps, l’exécution de plus de
quatre opérations simultanées réduit généralement les performances de façon inacceptable.
Ni la taille de la mémoire cache de l’animation Director, ni le paramètre de l’option Vérifier les
documents n’affectent le comportement de la commande downloadNetThing.
321
Paramètres
URL Requis. URL de n’importe quel objet pouvant être téléchargé : par exemple, un serveur FTP
ou HTTP, une page HTML, un acteur externe, une animation Director ou un graphique.
fichierLocal
Requis. Chemin d’accès et nom du fichier sur le disque local.
Exemple
Les instructions suivantes téléchargent un acteur externe depuis une URL vers le dossier de
Director et font de ce fichier l’acteur externe intitulé Distribution importante :
downLoadNetThing("http://www.cbDeMille.com/Milliers.cst", the \
applicationPath&"Milliers.Cst")
castLib("Distribution importante").fileName = the
applicationPath&"Milliers.Cst"
Voir aussi
importFileInto(), netDone(), preloadNetThing()
draw()
Utilisation
-- Syntaxe Lingo
réfObjImage.draw(x1, y1, x2, y2, objetCouleurOuListedeParamètres)
réfObjImage.draw(point(x, y), point(x, y), objetCouleurOuListedeParamètres)
réfObjImage.draw(rect, objetCouleurOuListedeParamètres)
// Syntaxe JavaScript
réfObjImage.draw(x1, y1, x2, y2, objetCouleurOuListedeParamètres);
réfObjImage.draw(point(x, y), point(x, y), objetCouleurOuListedeParamètres);
réfObjImage.draw(rect, objetCouleurOuListedeParamètres);
Description
Méthode d’image. Dessine une ligne ou une forme vide avec une couleur spécifiée dans une zone
rectangulaire d’un objet image donné.
Cette méthode renvoie une valeur égale à 1 si aucune erreur n’est détectée.
Si la liste des paramètres facultatifs n’est pas fournie, draw() dessine une ligne de 1 pixel entre le
premier et le second point donnés ou entre l’angle supérieur gauche et l’angle inférieur droit du
rectangle donné.
Pour optimiser les performances avec des images 8 bits (ou d’une qualité inférieure), l’objet
Couleur doit contenir une valeur de couleur indexée. Pour les images 16 ou 32 bits, utilisez une
valeur de couleur rvb.
Pour remplir une zone unie, utilisez la méthode fill().
Paramètres
Requis si vous dessinez une ligne avec des coordonnées x et y. Entier qui spécifie la coordonnée x du début de la ligne.
x1
Requis si vous dessinez une ligne avec des coordonnées x et y. Entier qui spécifie la coordonnée y du début de la ligne.
y1
Requis si vous dessinez une ligne avec des coordonnées x et y. Entier qui spécifie la coordonnée x de la fin de la ligne.
x2
322
Chapitre 12 : Méthodes
Requis si vous dessinez une ligne avec des coordonnées x et y. Entier qui spécifie la coordonnée y de la fin de la ligne.
y2
objCouleurOuListeDeParamètres Requis. Objet couleur ou liste de paramètres qui spécifie la
couleur de la ligne ou de la bordure de la forme. Il est possible d’utiliser la liste de paramètres à
la place d’un simple objet Couleur pour spécifier les propriétés suivantes.
Propriété
Description
#shapeType
Une valeur de symbole de #oval, #rect, #roundRect ou #line. La valeur par
défaut est #line.
#lineSize
Epaisseur du trait à utiliser pour le dessin de la forme.
#color
Un objet couleur, qui détermine la couleur de la bordure de la forme.
Requis si vous dessinez une ligne avec des points. Deux points qui
spécifient le début et la fin de la ligne.
point(x, y), point(x, y)
Requis si vous dessinez une forme. Rectangle qui spécifie la zone rectangulaire dans laquelle
la forme est dessinée.
rect
Exemple
L’instruction suivante dessine une ligne diagonale de 1 pixel, de couleur rouge foncé, du point
(0, 0) au point (128, 86) dans l’image de l’acteur Joyeux.
L’instruction suivante dessine un ovale vide de 3 pixels, rouge foncé, dans l’image de l’acteur
Joyeux. L’ovale est dessiné à l’intérieur du rectangle (0, 0, 128, 86).
Voir aussi
color(), copyPixels(), fill(), image(), setPixel()
duplicate() (image)
Utilisation
-- Syntaxe Lingo
réfObjImage.duplicate()
// Syntaxe JavaScript
réfObjImage.duplicate();
Description
Méthode d’image. Crée et renvoie une copie d’une image donnée.
La nouvelle image est entièrement indépendante de l’image d’origine et n’est liée à aucun acteur.
Si vous projetez d’apporter un grand nombre de modifications à une image, il est recommandé
d’en faire une copie indépendante d’un acteur.
Paramètres
Aucun.
323
Exemple
L’instruction suivante crée un nouvel objet image à partir de l’image de l’acteur Surface lunaire et
place le nouvel objet image dans la variable imageTemporaire :
imageTemporaire = member("Surface lunaire").image.duplicate()
Voir aussi
image()
duplicate() (fonction de liste)
Utilisation
(ancienneListe).duplicate()
duplicate(ancienneListe)
Description
Fonction de liste ; renvoie la copie d’une liste et copie des listes imbriquées (éléments de listes qui
sont eux-mêmes des listes) et leur contenu. Cette fonction est pratique pour enregistrer le contenu
courant d’une liste.
Lorsque vous affectez une liste à une variable, la variable contient une référence à la liste et non la
liste même. Cela signifie que les modifications apportées à la copie affectent également l’original.
Pour un exemple d’utilisation de duplicate() (fonction de liste) dans une animation,
reportez-vous à l’animation Vector Shapes du dossier Learning/Lingo, lui-même inclus dans le
dossier de Director.
Paramètres
ancienneListe
Requis. Spécifie la liste à dupliquer.
Exemple
Cette instruction copie la liste ClientsDuJour et l’affecte à la variable ListeDesClients :
ListeDesClients = ClientsDuJour.duplicate()
Voir aussi
image()
duplicate() (acteur)
Utilisation
-- Syntaxe Lingo
réfObjActeur.duplicate({entPosn})
// Syntaxe JavaScript
réfObjActeur.duplicate({entPosn});
Description
Méthode d’acteur ; crée une copie d’un acteur spécifié.
Cette méthode est destinée à être utilisée pendant la programmation plutôt que pendant
l’exécution, car elle crée un autre acteur en mémoire, ce qui risque d’entraîner des problèmes
de mémoire.
324
Chapitre 12 : Méthodes
Utilisez cette méthode pour enregistrer définitivement les modifications de l’acteur avec le fichier.
Paramètres
entPosn Facultatif. Nombre entier qui spécifie la fenêtre Distribution pour l’acteur copié. Si
le paramètre est omis, la copie de l’acteur est placée dans la première position disponible de la
fenêtre Distribution.
Exemple
L’instruction suivante copie l’acteur Bureau et le place dans la première position vide de la fenêtre
Distribution :
-- Syntaxe Lingo
member("Bureau").duplicate()
// Syntaxe JavaScript
member("Bureau").duplicate();
L’instruction suivante copie l’acteur Bureau et le place à la position 125 :
-- Syntaxe Lingo
member("Bureau").duplicate(125)
// Syntaxe JavaScript
member("Bureau").duplicate(125);
Voir aussi
Acteur
duplicateFrame()
Utilisation
-- Syntaxe Lingo
_movie.duplicateFrame()
// Syntaxe JavaScript
_movie.duplicateFrame();
Description
Méthode d’animation ; copie l’image courante et son contenu, insère la copie après l’image
courante et fait de la copie l’image courante. Cette méthode peut être utilisée pendant la création
du scénario uniquement.
Cette méthode a la même fonction que la méthode insertFrame().
Paramètres
Aucun.
325
Exemple
Lorsqu’elle est utilisée dans le gestionnaire suivant, la commande duplicateFrame crée une série
d’images dans lesquelles l’acteur Balle de la distribution externe Jouets est affecté à la piste
d’image-objet 20. Le nombre d’images est déterminé par l’argument nombreDimages.
-- Syntaxe Lingo
on animBalle(nombreDimages)
_movie.beginRecording()
sprite(20).member = member("Balle", "Jouets")
repeat with i = 0 to nombreDimages
_movie.duplicateFrame()
end repeat
_movie.endRecording()
end animBalle
// Syntaxe JavaScript
function animBalle(nombreDimages) {
_movie.beginRecording();
sprite(20).member = member("Balle", "Jouets");
for (var i = 0; i <= nombreDimages; i++) {
_movie.duplicateFrame();
}
_movie.endRecording();
}
Voir aussi
insertFrame(), Animation
enableHotSpot()
Utilisation
-- Syntaxe Lingo
réfObjImageObjet.enableHotSpot(idDeZoneRéférencée, trueOrFalse)
// Syntaxe JavaScript
réfObjImageObjet.enableHotSpot(idDeZoneRéférencée, trueOrFalse);
Description
Commande QTVR (QuickTime VR) ; détermine si une zone référencée dans une image-objet
QTVR spécifiée est activée (TRUE) ou désactivée (FALSE).
Paramètres
idDeZoneRéférencée
trueOuFalse
326
Requis. Spécifie la zone référencée dans l’image-objet QTVR à tester.
Requis. Valeur TRUE ou FALSE qui spécifie si l’image-objet QTVR est activée.
Chapitre 12 : Méthodes
endRecording()
Utilisation
-- Syntaxe Lingo
_movie.endRecording()
// Syntaxe JavaScript
_movie.endRecording();
Description
Méthode d’animation ; termine une session de mise à jour du scénario.
Vous pouvez reprendre le contrôle des pistes du scénario en créant des scripts après avoir appelé
endRecording().
Paramètres
Aucun.
Exemple
Lorsque utilisé dans le gestionnaire suivant, le mot-clé endRecording termine la session de
création de scénario :
-- Syntaxe Lingo
on animBalle(nombreDimages)
_movie.beginRecording()
horizontal = 0
vertical = 100
repeat with i = 1 to nombreDimages
_movie.go(i)
sprite(20).member = member("Balle")
sprite(20).locH = horizontal
sprite(20).locV = vertical
sprite(20).forecolor = 255
horizontal = horizontal + 3
vertical = vertical + 2
_movie.updateFrame()
end repeat
_movie.endRecording()
end animBalle
327
// Syntaxe JavaScript
function animBalle(nombreDimages) {
_movie.beginRecording();
var horizontal = 0;
var vertical = 100;
for (var i = 1; i <= nombreDimages; i++) {
_movie.go(1);
sprite(20).member = member("Balle");
sprite(20).locH = horizontal;
sprite(20).locV = vertical;
sprite(20).foreColor = 255;
horizontal = horizontal + 3;
vertical = vertical + 2;
_movie.updateFrame();
}
_movie.endRecording();
}
Voir aussi
beginRecording(), Animation, updateFrame()
erase()
Utilisation
-- Syntaxe Lingo
réfObjActeur.erase()
// Syntaxe JavaScript
réfObjActeur.erase();
Description
Méthode d’acteur ; supprime l’acteur spécifié et laisse son emplacement vide dans la fenêtre
Distribution.
Pour de meilleurs résultats, utilisez cette méthode pendant la programmation, et non dans les
projections, ce qui pourrait provoquer des problèmes de mémoire.
Paramètres
Aucun.
Exemple
L’instruction suivante supprime l’acteur Engrenage de la distribution Matériel :
-- Syntaxe Lingo
member("Engrenage", "Matériel").erase()
// Syntaxe JavaScript
member("Engrenage", "Matériel").erase();
328
Chapitre 12 : Méthodes
Le gestionnaire suivant supprime les acteurs du début à la fin :
-- Syntaxe Lingo
on effacerLesActeurs début, fin
repeat with i = début to fin
member(i).erase()
end repeat
end effacerLesActeurs
// Syntaxe JavaScript
function effacerLesActeurs(début, fin) {
for (var i=début; i<=fin; i++) {
member(i).erase();
}
}
Voir aussi
Acteur, new()
error()
Utilisation
-- Syntaxe Lingo
réfObjFileio.error(entErreur)
// Syntaxe JavaScript
réfObjFileio.error(entErreur);
Description
Méthode de Fileio ; renvoie un message d’erreur spécifié.
Paramètres
Requis. Nombre entier qui spécifie l’erreur. Les valeurs correctes incluent 0 ("OK") et
1 ("Memory allocation failure"). Toutes les autres valeurs renvoient "Unknown error".
entErreur
Voir aussi
Fileio
externalEvent()
Utilisation
externalEvent "chaîne"
Description
Commande ; envoie une chaîne au navigateur web pour qu’il l’interprète comme une instruction
de script, permettant la lecture d’une animation ou la communication avec la page HTML dans
laquelle elle est intégrée.
Cette commande fonctionne uniquement pour les animations dans des navigateurs.
Remarque : La commande externalEvent ne produit pas de valeur de renvoi. Il n’existe aucune
façon immédiate permettant de déterminer si le navigateur a traité l’événement ou l’a ignoré. Utilisez
on EvalScript dans le navigateur pour renvoyer un message à l’animation.
329
Paramètres
chaîne Requis. Chaîne à envoyer au navigateur. La chaîne doit être dans un langage de programmation pris en charge par le navigateur.
Exemple
Les instructions suivantes utilisent externalEvent dans l’environnement script LiveConnect,
supporté par Netscape 3.x et les versions plus récentes.
LiveConnect évalue la chaîne passée par externalEvent comme un appel de fonction. Les
auteurs utilisant JavaScript doivent définir et nommer cette fonction dans l’en-tête HTML.
Dans l’animation, le nom et les paramètres de la fonction sont définis comme une chaîne dans
externalEvent. Les paramètres devant être interprétés par le navigateur web comme des chaînes
distinctes, chaque paramètre est encadré de guillemets droits simples.
Instructions dans le code HTML :
function maFonction(param1, param2) {
//script placé ici
}
Instructions dans un script dans l’animation :
externalEvent ("maFonction ('param1','param2')")
Les instructions suivantes utilisent externalEvent dans l’environnement script ActiveX utilisé
par Internet Explorer sous Windows. ActiveX interprète externalEvent comme un événement
et traite cet événement et son paramètre de chaîne de la même façon qu’un événement onClick
dans un objet bouton.
• Instructions dans le code HTML :
Dans l’en-tête HTML, définissez une fonction repérant l’événement (l’exemple suivant est en
VBScript) :
Sub
nomDeLinstanceShockwave_externalEvent(unParamètre)
'script placé ici
End Sub
Vous pouvez également définir un script pour l’événement :
<SCRIPT FOR="nomDeLinstanceShockwave"
EVENT="externalEvent(unParamètre)"
LANGUAGE="VBScript">
'script placé ici
</SCRIPT>
Dans l’animation, incluez la fonction et les paramètres dans la chaîne externalEvent :
externalEvent ("maFonction ('param1','param2')")
Voir aussi
on EvalScript
330
Chapitre 12 : Méthodes
extrude3D
Utilisation
member(quelActeurTexte).extrude3D(member(quelActeur3D))
Description
Commande 3D ; crée une ressource de modèle #extruder dans un acteur 3D à partir du texte
d’un acteur texte.
Cela n’équivaut pas à utiliser la propriété 3D displayMode d’un acteur texte.
Pour créer un modèle avec extrude3D :
1 Créez une ressource de modèle #extruder dans un acteur 3D :
ressourceTexte = member("acteurTexte").extrude3D(member\
("acteur3D"))
2 Créez un modèle à l’aide de la ressource de modèle créée à l’étape 1 :
member("acteur3D").newModel("monTexte", ressourceTexte)
Paramètres
quelActeur3D
Requis. Acteur dans lequel une nouvelle ressource de modèle #extruder est créée.
Exemple
Dans l’exemple suivant, Logo est un acteur texte et Scène est un acteur 3D. La première ligne crée
une ressource de modèle dans Scène, qui est une version 3D du texte de Logo. La seconde ligne
utilise cette ressource de modèle pour créer un modèle nommé logo3D.
maRessourceDeModèleTexte = member("Logo").extrude3d(member("Scène"))
member("Scène").newModel("Logo3D", maRessourceDeModèleTexte)
Voir aussi
bevelDepth, bevelType, displayFace, smoothness, tunnelDepth, displayMode
externalParamName()
Utilisation
-- Syntaxe Lingo
_player.externalParamName(nomOuNumDeParam)
// Syntaxe JavaScript
_player.externalParamName(nomOuNumDeParam);
Description
Méthode de lecteur ; renvoie le nom d’un paramètre spécifié dans la liste de paramètres externes
d’une balise HTML <EMBED> ou <OBJECT>.
Si vous spécifiez un paramètre par son nom, cette méthode renvoie tous les noms de paramètres
qui correspondent à nomOuNumDeParam. La correspondance ne fait pas la distinction entre les
majuscules et les minuscules. Si aucun paramètre correspondant n’est trouvé, cette méthode
renvoie VOID (Lingo) ou null (syntaxe JavaScript).
331
Si vous spécifiez un paramètre par son numéro, cette méthode renvoie le nom de paramètre situé
à la position nomOuNumDeParam dans la liste des paramètres. Si aucun paramètre correspondant
n’est trouvé, cette méthode renvoie VOID ou null.
Cette méthode est valide uniquement pour les animations avec un contenu Shockwave exécutées
dans un navigateur. Elle ne peut pas être utilisée avec des animations Director ou des projections.
La liste suivante décrit les paramètres externes prédéfinis qui peuvent être utilisés.
332
Paramètre
Définition
swAudio
Chaîne qui spécifie l’emplacement d’un fichier audio Shockwave à lire avec
l’animation. Cette valeur est une URL complète.
swBackColor
Valeur de couleur destinée à modifier la propriété de couleur associée à la
scène de l'animation. Cette valeur est un nombre entier compris entre 0 et
255. Utilisez la plage 0–255 pour les animations en couleur 8 bits et la
plage 0–15 pour les animations en couleur 4 bits.
swBanner
Chaîne qui spécifie le texte à utiliser en tant que bandeau dans l’animation.
swColor
Valeur de couleur à utiliser pour modifier la couleur d’un objet spécifique.
Cette valeur est un nombre entier compris entre 0 et 255. Utilisez la plage
0–255 pour les animations en couleur 8 bits et la plage 0–15 pour les
animations en couleur 4 bits.
swForeColor
Nouvelle valeur de couleur de premier plan. Le texte écrit dans les acteurs
champ est rendu dans la couleur de premier plan actuellement active.
Cette valeur est un nombre entier compris entre 0 et 255. Utilisez la plage
0–255 pour les animations en couleur 8 bits et la plage 0–15 pour les
animations en couleur 4 bits.
swFrame
Valeur de chaîne correspondant au nom attribué à une image donnée de
l’animation.
swList
Liste d’éléments séparés par des virgules qui peut être analysée avec
un script. Les valeurs de la liste peuvent être des paires clé/valeur, des
éléments booléens, des nombres entiers ou des chaînes.
swName
Nom (par exemple, un nom d’utilisateur) à afficher ou utiliser dans
l’animation.
swPassword
Mot de passe, qui doit éventuellement être combiné avec la propriété
swName, à utiliser dans l’animation.
swPreloadTime
Nombre entier qui indique combien de secondes doivent s’écouler entre
le préchargement d’un fichier audio et le début de la lecture du son. Utilisé
avec Shockwave Audio pour améliorer les performances de la lecture en
augmentant la quantité de son déjà téléchargée avant qu’elle ne
commence.
swSound
Chaîne qui peut soit spécifier le nom d’un son à lire dans l’animation
Director soit indiquer si un son doit ou non être lu.
swText
Valeur (chaîne) qui spécifie le texte à utiliser dans l’animation.
swURL
URL (chaîne) qui peut spécifier l’emplacement d’une autre animation avec
un contenu Shockwave ou d’un autre fichier Shockwave Audio.
Chapitre 12 : Méthodes
Paramètre
Définition
swVolume
Nombre entier (valeur comprise entre 0 et 10 recommandée) utilisé pour
contrôler le niveau du volume de la sortie audio de l’animation. Une valeur
égale à 0 désactive le son, une valeur égale à 10 correspond au volume
maximum.
sw1 à sw9
Neuf propriétés supplémentaires pour les paramètres définis par l’auteur.
Paramètres
nomOuNumDeParam Requis. Chaîne qui spécifie le nom du paramètre à renvoyer ou nombre entier
qui spécifie sa position d’index.
Exemple
L’instruction suivante place la valeur d’un paramètre externe donné dans la variable maVariable :
-- Syntaxe Lingo
if (_player.externalParamName("swURL") = "URLsw") then
maVariable = _player.externalParamName("URLsw")
end if
// Syntaxe JavaScript
if (_player.externalParamName("URLsw") == "URLsw") {
var maVariable = _player.externalParamName("URLsw");
}
Voir aussi
externalParamValue(), Animation
externalParamValue()
Utilisation
-- Syntaxe Lingo
_player.externalParamValue(nomOuNumDeParam)
// Syntaxe JavaScript
_player.externalParamValue(nomOuNumDeParam);
Description
Renvoie la valeur d’un paramètre spécifié dans la liste de paramètres externes d’une balise HTML
<EMBED> ou <OBJECT>.
Si vous spécifiez un paramètre par son nom, cette méthode renvoie la valeur du premier paramètre dont le nom correspond à nomOuNumDeParam. La correspondance ne fait pas la distinction
entre les majuscules et les minuscules. Si aucun paramètre correspondant n’est trouvé, cette
méthode renvoie VOID (Lingo) ou null (syntaxe JavaScript).
Si vous spécifiez un paramètre par son numéro d’index, cette méthode renvoie le nom de paramètre situé à la position nomOuNumDeParam dans la liste des paramètres. Si aucun paramètre
correspondant n’est trouvé, cette méthode renvoie VOID ou null.
Cette méthode est valide uniquement pour les animations avec un contenu Shockwave exécutées
dans un navigateur. Elle ne peut pas être utilisée avec des animations Director ou des projections.
333
La liste suivante décrit les paramètres externes prédéfinis qui peuvent être utilisés.
334
Paramètre
Définition
swAudio
Chaîne qui spécifie l’emplacement d’un fichier audio Shockwave à lire avec
l’animation. Cette valeur est une URL complète.
swBackColor
Valeur de couleur destinée à modifier la propriété de couleur associée à la
scène de l'animation. Cette valeur est un nombre entier compris entre 0 et
255. Utilisez la plage 0–255 pour les animations en couleur 8 bits et la
plage 0–15 pour les animations en couleur 4 bits.
swBanner
Chaîne qui spécifie le texte à utiliser en tant que bandeau dans l’animation.
swColor
Valeur de couleur à utiliser pour modifier la couleur d’un objet spécifique.
Cette valeur est un nombre entier compris entre 0 et 255. Utilisez la plage
0–255 pour les animations en couleur 8 bits et la plage 0–15 pour les
animations en couleur 4 bits.
swForeColor
Nouvelle valeur de couleur de premier plan. Le texte écrit dans les acteurs
champ est rendu dans la couleur de premier plan actuellement active.
Cette valeur est un nombre entier compris entre 0 et 255. Utilisez la plage
0–255 pour les animations en couleur 8 bits et la plage 0–15 pour les
animations en couleur 4 bits.
swFrame
Valeur de chaîne correspondant au nom attribué à une image donnée de
l’animation.
swList
Liste d’éléments séparés par des virgules qui peut être analysée avec
un script. Les valeurs de la liste peuvent être des paires clé/valeur, des
éléments booléens, des nombres entiers ou des chaînes.
swName
Nom (par exemple, un nom d’utilisateur) à afficher ou utiliser dans
l’animation.
swPassword
Mot de passe, qui doit éventuellement être combiné avec la propriété
swName, à utiliser dans l’animation.
swPreloadTime
Nombre entier qui indique combien de secondes doivent s’écouler entre le
préchargement d’un fichier audio et le début de la lecture du son. Utilisé
avec Shockwave Audio pour améliorer les performances de la lecture en
augmentant la quantité de son déjà téléchargée avant qu’elle ne
commence.
swSound
Chaîne qui peut soit spécifier le nom d’un son à lire dans l’animation
Director soit indiquer si un son doit ou non être lu.
swText
Valeur (chaîne) qui spécifie le texte à utiliser dans l’animation.
swURL
URL (chaîne) qui peut spécifier l’emplacement d’une autre animation
Shockwave ou d’un autre fichier Shockwave Audio.
swVolume
Nombre entier (valeur comprise entre 0 et 10 recommandée) utilisé pour
contrôler le niveau du volume de la sortie audio de l’animation. Une valeur
égale à 0 désactive le son, une valeur égale à 10 correspond au volume
maximum.
sw1 à sw9
Neuf propriétés supplémentaires pour les paramètres définis par l’auteur.
Chapitre 12 : Méthodes
Paramètres
nomOuNumDeParam Requis. Chaîne qui spécifie le nom de la valeur de paramètre à renvoyer ou
nombre entier qui spécifie sa position d’index.
Exemple
L’instruction suivante place la valeur d’un paramètre externe dans la variable maVariable :
-- Syntaxe Lingo
if (_player.externalParamName("swURL") = "URLsw") then
maVariable = _player.externalParamValue("URLsw")
end if
// Syntaxe JavaScript
if (_player.externalParamName("URLsw") == "URLsw") {
var maVariable = _player.externalParamValue("URLsw");
}
Voir aussi
externalParamName(), Animation
extractAlpha()
Utilisation
objetImage.extractAlpha()
Description
Cette fonction copie la couche alpha de l’image 32 bits donnée et la renvoie sous forme d’un
nouvel objet image. Il en résulte une image 8 bits faite de niveaux de gris, représentant la couche
alpha.
Cette fonction s’avère pratique pour le sous-échantillonnage des images 32 bits avec des couches
alpha.
Exemple
L’instruction suivante place la couche alpha de l’image de l’acteur 1 dans la variable
alphaPrincipal :
alphaPrincipal = member(1).image.extractAlpha()
setAlpha(), useAlpha
fadeIn()
Utilisation
-- Syntaxe Lingo
réfObjPisteAudio.fadeOut({entMillisecondes})
// Syntaxe JavaScript
réfObjPisteAudio.fadeOut({entMillisecondes});
Description
Méthode de piste audio ; définit immédiatement le volume de la piste audio sur zéro pour le
ramener ensuite sur le volume courant en fonction du nombre de millisecondes défini.
Le paramètre de balance courant est conservé pour l’ensemble du fondu.
335
Paramètres
Facultatif. Nombre entier qui spécifie en combien de millisecondes le
volume augmente de nouveau jusqu’à sa valeur d’origine. Si aucune valeur n'est fournie, la
valeur par défaut est 1 000 millisecondes (1 seconde).
entMillisecondes
Exemple
L’instruction Lingo suivante amplifie le son de la piste 3 pendant une durée de 3 secondes à partir
du début de l’acteur intro2 :
-- Syntaxe Lingo
sound(3).play(member("intro2"))
sound(3).fadeIn(3000)
// Syntaxe JavaScript
sound(3).play(member("intro2"));
sound(3).fadeIn(3000);
Voir aussi
fadeOut(), fadeTo(), pan, Piste audio, volume (Windows Media)
fadeOut()
Utilisation
-- Syntaxe Lingo
réfObjPisteAudio.fadeOut({entMillisecondes})
// Syntaxe JavaScript
réfObjPisteAudio.fadeOut({entMillisecondes});
Description
Méthode de piste audio ; diminue progressivement le volume d’une piste audio jusqu’à zéro dans
un délai donné, défini en millisecondes.
Le paramètre de balance courant est conservé pour l’ensemble du fondu.
Paramètres
Facultatif. Nombre entier qui spécifie en combien de millisecondes le
volume est réduit à zéro. Si aucune valeur n'est fournie, la valeur par défaut est 1 000
millisecondes (1 seconde).
entMillisecondes
Exemple
L’instruction suivante diminue le son de la piste 3 sur de période de 5 secondes :
-- Syntaxe Lingo
sound(3).fadeOut(5000)
// Syntaxe JavaScript
sound(3).fadeOut(5000);
Voir aussi
fadeIn(), fadeTo(), pan, Piste audio, volume (Windows Media)
336
Chapitre 12 : Méthodes
fadeTo()
Utilisation
-- Syntaxe Lingo
réfObjPisteAudio.fadeTo(entVolume {, entMillisecondes})
// Syntaxe JavaScript
réfObjPisteAudio.fadeTo(entVolume {, entMillisecondes});
Description
Méthode de piste audio ; modifie progressivement le volume d’une piste audio jusqu’à un volume
spécifié dans un délai donné, défini en millisecondes.
Le paramètre de balance courant est conservé pour l’ensemble du fondu.
Pour un exemple d’utilisation de fadeTo() dans une animation, reportez-vous à l’animation
Sound Control du dossier Learning/Lingo, lui-même inclus dans le dossier de Director.
Paramètres
entVolume Requis. Nombre entier qui spécifie le nouveau niveau de volume souhaité. La plage
de valeurs du paramètre entVolume est comprise entre 0 et 255.
entMillisecondes Facultatif. Nombre entier qui spécifie en combien de millisecondes le niveau
du volume passe à entVolume. Si aucune valeur n'est fournie, la valeur par défaut est 1 000
millisecondes (1 seconde).
Exemple
L’instruction suivante fait passer le volume de la piste audio 4 à 150, sur une période de
2 secondes. Il peut s’agir d’une augmentation ou d’une diminution de volume, en fonction
du volume initial de la piste audio 4 au moment de départ du fondu.
-- Syntaxe Lingo
sound(4).fadeTo(150, 2000)
// Syntaxe JavaScript
sound(4).fadeTo(150, 2000);
Voir aussi
fadeIn(), fadeOut(), pan, Piste audio, volume (Windows Media)
fileName()
Utilisation
-- Syntaxe Lingo
réfObjFileio.fileName()
// Syntaxe JavaScript
réfObjFileio.fileName();
Description
Méthode de Fileio ; renvoie le chemin complet et le nom d’un fichier ouvert.
Vous devez d’abord ouvrir un fichier en appelant openFile() avant d’utiliser fileName() pour
renvoyer le nom du fichier.
337
Paramètres
Aucun.
Voir aussi
Fileio , openFile()
fill()
Utilisation
-- Syntaxe Lingo
réfObjImage.fill(gauche, haut, droite, bas, objetCouleurOuListedeParamètres)
réfObjImage.fill(point(x, y), point(x, y), objetCouleurOuListedeParamètres)
réfObjImage.fill(rect, objetCouleurOuListedeParamètres)
// Syntaxe JavaScript
réfObjImage.fill(gauche, haut, droite, bas, objetCouleurOuListedeParamètres);
réfObjImage.fill(point(x, y), point(x, y), objetCouleurOuListedeParamètres);
réfObjImage.fill(rect, objetCouleurOuListedeParamètres);
Description
Méthode d’image. Remplit une zone rectangulaire avec une couleur spécifiée dans un objet image
donné.
Cette méthode renvoie la valeur 1 si aucune erreur n’est détectée et zéro en cas d’erreur.
Pour optimiser les performances avec des images 8 bits (ou d’une qualité inférieure), l’objet
Couleur doit contenir une valeur de couleur indexée. Pour les images 16 ou 32 bits, utilisez une
valeur de couleur RVB.
Paramètres
gauche Requis si vous remplissez une zone spécifiée par des coordonnées. Nombre entier qui
spécifie le côté gauche de la zone à remplir.
Requis si vous remplissez une zone spécifiée par des coordonnées. Nombre entier qui
spécifie le côté supérieur de la zone à remplir.
haut
droite Requis si vous remplissez une zone spécifiée par des coordonnées. Nombre entier qui
spécifie le côté droit de la zone à remplir.
bas Requis si
vous remplissez une zone spécifiée par des coordonnées. Nombre entier qui spécifie
le côté inférieur de la zone à remplir.
objCouleurOuListeDeParamètres Requis. Objet Couleur ou liste de paramètres qui spécifie la
couleur de remplissage de la zone. Il est possible d’utiliser la liste de paramètres à la place d’un
simple objet Couleur pour spécifier les propriétés suivantes.
338
Propriété
Description
#shapeType
Une valeur de symbole de #oval, #rect, #roundRect ou #line. La valeur par
défaut est #line.
#lineSize
Epaisseur du trait à utiliser pour le dessin de la forme.
#color
Objet Couleur qui détermine la couleur de remplissage de la zone.
#bgColor
Objet Couleur qui détermine la couleur de la bordure de la zone.
Chapitre 12 : Méthodes
Requis si vous remplissez une zone avec des points. Deux points
qui spécifient les angles supérieur gauche et inférieur droit de la zone à remplir, par rapport à
l’angle supérieur gauche de l’objet image donné.
point(x, y), point(x, y)
Requis si vous remplissez une zone avec un rectangle. Rectangle qui spécifie la zone
rectangulaire à remplir.
rect
Exemple
L’instruction suivante rend l’objet image dans la variable monImage complètement noir :
L’instruction suivante dessine un ovale rempli dans l’objet image imageTest. L’ovale a un
remplissage vert et une bordure rouge d’une épaisseur de 5 pixels.
Voir aussi
color(), draw(), image()
findLabel()
Utilisation
-- Syntaxe Lingo
réfObjImageObjet.findLabel(quelNomDeLibellé)
// Syntaxe JavaScript
réfObjImageObjet.findLabel(quelNomDeLibellé);
Description
Fonction : cette fonction renvoie le numéro d’image (dans l’animation Flash) associée au nom
demandé.
Un 0 est renvoyé si le nom n’existe pas ou si cette portion de l’animation Flash n’a pas encore été
transférée en mémoire.
Paramètres
quelNomDeLibellé
Requis. Spécifie le libellé de l’image à rechercher.
findEmpty()
Utilisation
-- Syntaxe Lingo
réfObjDistribution.findEmpty({réfObjActeur})
// Syntaxe JavaScript
réfObjDistribution.findEmpty({réfObjActeur});
Description
Méthode de distribution ; affiche la prochaine position d’acteur vide ou la position après un
acteur spécifié.
Cette méthode est disponible uniquement sur la distribution courante.
Paramètres
réfObjActeur Facultatif. Référence à l’acteur après lequel la prochaine position d’acteur vide est
affichée. Si ce paramètre est omis, la prochaine position d’acteur vide est affichée.
339
Exemple
L’instruction suivante recherche le premier acteur vide à partir de l’acteur 100 :
-- Syntaxe Lingo
trace(castLib(1).findEmpty(member(100)))
// Syntaxe JavaScript
trace(castLib(1).findEmpty(member(100)));
Voir aussi
Bibliothèque de distribution, Acteur
findPos
Utilisation
liste.findPos(propriété)
findPos(liste, propriété)
Description
Commande de liste ; identifie la position d’une propriété dans une liste de propriétés.
L’utilisation de findPos avec des listes linéaires renvoie un nombre fictif si la valeur de
propriété est un nombre et une erreur de script si la valeur de propriété est une chaîne.
La commande findPos a la même fonction que la commande findPosNear, excepté que
a la valeur VOID lorsque la propriété spécifiée ne figure pas dans la liste.
findPos
Paramètres
propriété
Requis. Propriété dont la position est identifiée.
Exemple
L’instruction suivante identifie la position de la propriété c dans la liste Réponses, composée de
[#a:10, #b:12, #c:15, #d:22] :
Réponses.findPos(#c)
Le résultat est 3, c étant la troisième propriété de la liste.
Voir aussi
findPosNear, sort
findPosNear
Utilisation
listeTriée.findPosNear(valeurOuPropriété)
findPosNear(listeTriée, valeurOuPropriété)
Description
Commande de liste ; pour les listes triées uniquement, identifie la position d’un élément dans une
liste triée spécifiée.
La commande findPosNear fonctionne uniquement avec les listes triées. Remplacez
valeurOuPropriété par une valeur pour les listes linéaires triées et par une propriété pour les
listes de propriétés triées.
340
Chapitre 12 : Méthodes
La commande findPosNear est semblable à la commande findPos excepté que, lorsque la
propriété spécifiée n’est pas dans la liste, la commande findPosNear identifie la position de la
valeur ayant le nom alphanumérique le plus similaire. Cette commande est pratique pour trouver
le nom le plus proche dans un répertoire de noms triés.
Paramètres
valeurOuPropriété
Requis. Valeur ou propriété dont la position est identifiée.
Exemple
L’instruction suivante identifie la position d’une propriété dans la liste triée Réponses, composée
de [#Nil:2, #Pharaon:4, #Raja:0] :
Réponses.findPosNear(#Ni)
Le résultat est 1, Ni étant le plus proche de Nil, la première propriété de la liste.
Voir aussi
findPos
finishIdleLoad()
Utilisation
-- Syntaxe Lingo
_movie.finishIdleLoad(entBaliseDeChargement)
// Syntaxe JavaScript
_movie.finishIdleLoad(entBaliseDeChargement);
Description
Méthode d’animation ; force le chargement de tous les acteurs possédant la balise de chargement
spécifiée.
Paramètres
entBaliseDeChargement
Requis. Nombre entier qui spécifie la balise de chargement des acteurs
à charger.
Exemple
L’instruction suivante termine le chargement de tous les acteurs possédant la balise de chargement
20 :
-- Syntaxe Lingo
_movie.finishIdleLoad(20)
// Syntaxe JavaScript
_movie.finishIdleLoad(20);
Voir aussi
idleHandlerPeriod, idleLoadDone(), idleLoadMode, idleLoadPeriod, idleLoadTag,
idleReadChunkSize, Animation
341
flashToStage()
Utilisation
-- Syntaxe Lingo
réfObjImageObjet.flashToStage(pointDeLanimationFlash)
// Syntaxe JavaScript
réfObjImageObjet.flashToStage(pointDeLanimationFlash);
Description
Fonction ; renvoie la coordonnée de la scène Director correspondant à une coordonnée spécifiée
dans une image-objet d’animation Flash. Cette fonction accepte la coordonnée de piste et
d’animation Flash et renvoie la coordonnée de scène Director en valeurs de points Director :
par exemple, point (300,300).
Les coordonnées d’animation Flash sont mesurées en pixels d’animation Flash, qui sont
déterminés par la taille d’origine d’une animation lors de sa création dans Flash. Afin de calculer
les coordonnées de l’animation Flash, le point (0,0) d’une animation Flash est toujours son angle
supérieur gauche. La propriété originPoint de l’acteur est utilisée uniquement pour la rotation
et la mise à l’échelle, mais pas pour le calcul des coordonnées d’une animation.
La fonction flashToStage et la fonction stageToFlash correspondante sont pratiques pour
déterminer la coordonnée d’une animation Flash se trouvant à une coordonnée spécifique de la
scène Director. Pour Flash et Director, le point (0,0) est le coin supérieur gauche de la scène Flash
ou Director. Ces coordonnées peuvent ne pas coïncider sur la scène Director si une image-objet
Flash est étirée, mise à l’échelle ou a pivoté.
Paramètres
pointDeLanimationFlash Requis. Point dans l’image-objet de l’animation Flash dont les
coordonnées sont renvoyées.
Exemple
Le gestionnaire suivant accepte une valeur de point et une référence d’image-objet comme
paramètre, puis définit la coordonnée supérieure gauche de l’image-objet spécifiée en fonction
du point indiqué dans une image-objet d’animation Flash de la piste 10 :
-- Syntaxe Lingo
on déplacImObj(quelPointFlash, quelleImageObjet)
sprite(quelleImageObjet).loc = sprite(1).FlashToStage(quelPointFlash)
_movie.updatestage()
end
// Syntaxe JavaScript
function déplacImObj(quelPointFlash, quelleImageObjet) {
sprite(quelleImageObjet).loc = sprite(1).FlashToStage(quelPointFlash);
_movie.updateStage();
}
Voir aussi
stageToFlash()
342
Chapitre 12 : Méthodes
float()
Utilisation
(expression).float
float (expression)
Description
Fonction (Lingo uniquement) ; convertit une expression en un nombre à virgule flottante. Le
nombre de chiffres après la virgule (pour l’affichage uniquement, les calculs n’étant pas affectés)
est défini à l’aide de la propriété floatPrecision.
Dans la syntaxe JavaScript, utilisez la fonction parseFloat().
Paramètres
expression
Requis. Expression à convertir en nombre à virgule flottante.
Exemple
L’instruction suivante convertit le nombre entier 1 en 1 à virgule flottante :
put (1).float
-- 1.0
Les opérations mathématiques peuvent être réalisées avec float. Si l’un des termes a une valeur
float, toute l’opération est réalisée avec float :
"the floatPrecision = 1
put 2 +2
-- 4
put (2).float + 2
-- 4.0
the floatPrecision = 4
put 22 / 7
-- 3
put (22).float / 7
-- 3.1429"
Voir aussi
floatPrecision, ilk()
floatP()
Utilisation
(expression).floatP
floatP(expression)
Description
Fonction (Lingo uniquement) ; indique si une expression est un nombre à virgule flottante (1 ou
TRUE) ou non (0 ou FALSE).
Le P dans floatP signifie prédicat.
Paramètres
expression
Requis. Expression à tester.
343
Exemple
L’instruction suivante vérifie si 3.0 est un nombre à virgule flottante. La fenêtre Messages affiche
le nombre 1, indiquant que c’est le cas (TRUE).
put (3.0).floatP
-- 1
L’instruction suivante vérifie si 3 est un nombre à virgule flottante. La fenêtre Messages affiche le
nombre 0, indiquant que ce n’est pas le cas (FALSE).
put (3).floatP
-- 0
Voir aussi
float(), ilk(), integerP(), objectP(), stringP(), symbolP()
flushInputEvents()
Utilisation
-- Syntaxe Lingo
_player.flushInputEvents()
// Syntaxe JavaScript
_player.flushInputEvents();
Description
Méthode de lecteur ; purge les événements clavier ou souris de la file d’attente des messages de
Director.
En règle générale, cette commande est pratique lorsque le script exécute une boucle assez longue
et que vous souhaitez vous assurer que les commandes effectuées au clavier ou à l’aide de la souris
ne seront pas transmises.
Cette méthode n’est effective qu’en cours d’exécution et n’a aucun effet pendant la programmation.
Paramètres
Aucun.
Exemple
L’instruction suivante désactive les événements souris et clavier lors de l’exécution d’une boucle
de répétition :
-- Syntaxe Lingo
repeat with i = 1 to 10000
_player.flushInputEvents()
sprite(1).loc = sprite(1).loc + point(1, 1)
end repeat
344
Chapitre 12 : Méthodes
// Syntaxe JavaScript
for (var i = 1; i <= 10000; i++) {
_player.flushInputEvents();
sprite(1).loc = sprite(1).loc + point(1, 1);
}
Voir aussi
on keyDown, on keyUp, on mouseDown (gestionnaire d’événement), on mouseUp
(gestionnaire d’événement), Lecteur
forget() (fenêtre)
Utilisation
-- Syntaxe Lingo
réfObjFenêtre.forget()
// Syntaxe JavaScript
réfObjFenêtre.forget();
Description
Méthode de fenêtre ; ordonne au script de fermer la fenêtre et d’arrêter sa lecture lorsqu’elle n’est
plus utilisée et qu’aucune autre variable n’y fait référence.
L’appel de la méthode forget() sur une fenêtre supprime également la référence à cette fenêtre
de la liste windowList.
Lorsque la méthode forget window est appelée, la fenêtre et l’animation dans une fenêtre
(MIAW) disparaissent sans appeler les gestionnaires stopMovie, closeWindow ou
deactivateWindow.
S’il existe plusieurs références globales à l’animation dans une fenêtre, la fenêtre ne répond pas à la
méthode forget().
Paramètres
Aucun.
Exemple
L’instruction suivante ordonne à Lingo de supprimer la fenêtre Tableau de commande lorsque
l’animation ne l’utilise plus :
-- Syntaxe Lingo
window("Tableau de commande").forget()
// Syntaxe JavaScript
window("Tableau de commande").forget();
Voir aussi
close(), open() (fenêtre), Fenêtre, windowList
345
forget() (temporisation)
Utilisation
timeout("nomDeTemporisation").forget()
forget(timeout("nomDeTemporisation"))
Description
Cette fonction d’objet de temporisation supprime un objet de temporisation de la liste
timeoutList et l’empêche d’envoyer d’autres événements de temporisation.
Paramètres
Aucun.
Exemple
L’instruction suivante supprime l’objet de temporisation Réveil de la liste timeoutList :
timeout("Réveil").forget()
Voir aussi
timeout(), timeoutHandler, timeoutList, new()
framesToHMS()
Utilisation
framesToHMS(images, cadence, compensé, fractions)
Description
Fonction ; convertit le nombre d’images spécifié en durée équivalente en heures, minutes et
secondes. Cette fonction est pratique pour prévoir la durée de lecture réelle d’une animation
ou pour contrôler un appareil de lecture vidéo.
Le résultat est une chaîne sous la forme sHH:MM:SS.FFD, où :
s
Un caractère est utilisé si le temps est inférieur à zéro ou un espace si le temps est
supérieur ou égal à zéro.
HH
Heures.
MM
Minutes.
SS
Secondes.
FF
Indique une fraction de seconde si fractions a la valeur TRUE ou des images si fractions a
la valeur FALSE.
D
Un "d" est utilisé si compensé a la valeur TRUE ou un espace si compensé a la valeur FALSE.
Paramètres
images
Requis. Expression entière qui spécifie le nombre d’images.
cadence
Requis. Expression entière qui spécifie la cadence en nombre d’images par seconde.
Requis. Compense la cadence d'image NTSC couleur, qui n’est pas exactement de 30
images par seconde, et n’est utile que si la cadence est définie sur 30 images par seconde.
Normalement, ce paramètre a pour valeur FALSE.
compensé
346
Chapitre 12 : Méthodes
Requis. Détermine si les images résiduelles sont converties au centième de seconde le
plus proche (TRUE) ou renvoyées sous la forme d’un nombre entier d’images (FALSE).
fractions
Exemple
L’instruction suivante convertit une animation de 2710 images, 30 images par seconde. Les
arguments compensé et fractions sont tous les deux désactivés :
put framesToHMS(2710, 30, FALSE, FALSE)
-- " 00:01:30.10 "
Voir aussi
HMStoFrames()
frameReady() (animation)
Utilisation
-- Syntaxe Lingo
_movie.frameReady({entNumDimage})
_movie.frameReady(numDimageA, numDimageB)
// Syntaxe JavaScript
_movie.frameReady({entNumDimage});
_movie.frameReady(numDimageA, numDimageB);
Description
Méthode d’animation ; pour les animations Director, les projections et les animations avec
un contenu Shockwave, détermine si les acteurs d’une image ou d’une plage d’images ont été
téléchargés.
Cette méthode renvoie TRUE si les acteurs spécifiés ont été téléchargés et FALSE dans le cas
contraire.
Pour un exemple d’utilisation de la méthode frameReady() dans une animation Director,
consultez l’animation « Shockwave et flux continu » dans l’Aide de Director.
Paramètres
entNumDimage Facultatif si le test porte sur le téléchargement des acteurs d’une image unique.
Nombre entier qui spécifie l’image à tester. Si ce paramètres est omis, frameReady() détermine
si les acteurs utilisés dans n’importe quelle image du scénario ont été téléchargés.
numDimageA Requis si le test porte sur le téléchargement des acteurs d’une plage d’images.
Nombre entier qui spécifie la première image de la plage.
numDimageB Requis si le test porte sur le téléchargement des acteurs d’une plage d’images.
Nombre entier qui spécifie la dernière image de la plage.
347
Exemple
L’instruction suivante détermine si les acteurs de l’image 20 sont téléchargés et prêts à être
affichés :
-- Syntaxe Lingo
on exitFrame
if (_movie.frameReady(20)) then
_movie.go(20)
else
_movie.go(1)
end if
end
// Syntaxe JavaScript
function exitFrame() {
if (_movie.frameReady(20)) {
_movie.go(20);
}
else {
_movie.go(1);
}
}
Le script d’image suivant vérifie si l’image 25 d’une image-objet animation Flash dans la piste 5
peut être affichée. Dans le cas contraire, le script maintient la tête de lecture en boucle sur l’image
courante de l’animation Director. Lorsque l’image 25 peut être affichée, le script démarre
l’animation et laisse la tête de lecture passer à l’image suivante de l’animation Director.
Voir aussi
mediaReady, Animation
frameStep()
Utilisation
-- Syntaxe Lingo
réfObjDvd.frameStep(entImages)
// Syntaxe JavaScript
réfObjDvd.frameStep(entImages);
Description
Méthode de DVD ; avance d’un nombre d’images spécifié à partir de la position courante.
Paramètres
entImages
348
Requis. Nombre entier qui indique de combien d’images vous voulez avancer.
Chapitre 12 : Méthodes
Exemple
Cette instruction fait avancer de 100 images :
-- Syntaxe Lingo
member("drame").frameStep(100)
// Syntaxe JavaScript
member("drame").frameStep(100);
Voir aussi
DVD
freeBlock()
Utilisation
the freeBlock
Description
Fonction ; indique la taille du plus grand bloc de mémoire disponible, en octets. Un kilo-octet
(ko) correspond à 1 024 octets. Un méga-octet (Mo) correspond à 1 024 kilo-octets. Le chargement d’un acteur nécessite un bloc libre au moins aussi grand que l’acteur.
Paramètres
Aucun.
Exemple
L’instruction suivante détermine si le plus grand bloc de mémoire disponible est inférieur à 10 ko
et affiche un message d’alerte si c’est le cas :
-- Syntaxe Lingo
if (the freeBlock < (10 * 1024)) then alert "Mémoire insuffisante !"
// Syntaxe JavaScript
if (freeBlock < (10 * 1024)) {
alert("Mémoire insuffisante !")
}
Voir aussi
freeBytes(), memorySize, ramNeeded(), size
freeBytes()
Utilisation
the freeBytes
Description
Fonction ; indique le nombre total d’octets de mémoire disponible, qui ne forme pas forcément
un bloc continu. Un kilo-octet (ko) correspond à 1 024 octets. Un méga-octet (Mo) correspond à
1 024 kilo-octets.
Cette fonction est différente de freeBlock, puisqu’elle indique toute la mémoire disponible et
pas seulement la mémoire contiguë.
349
Sur Macintosh, la sélection de l’option Utiliser la mémoire temporaire du système dans les
préférences générales de Director ou dans la boîte de dialogue Options d’une projection indique à
la fonction freeBytes de renvoyer toute la mémoire disponible pour l’application. Cette
quantité est égale à la quantité affectée à l’application, affichée dans sa boîte de dialogue Lire les
informations, et à la valeur Mémoire disponible affichée dans la boîte de dialogue A propos de
votre Macintosh.
Paramètres
Aucun.
Exemple
L’instruction suivante vérifie si plus de 200 ko de mémoire son disponibles et lit une animation
couleur si c’est le cas :
if (the freeBytes > (200 * 1024)) then play movie "animationCouleur"
Voir aussi
freeBlock(), memorySize, objectP(), ramNeeded(), size
generateNormals()
Utilisation
member(quelActeur).modelResource(quelleRessDeMod).
generateNormals(style)
Description
Commande 3D de ressource de modèle #mesh ; calcule les vecteurs normal pour chaque sommet
de la maille.
Si le paramètre style a pour valeur #flat, chaque sommet reçoit une normale pour chaque face
à laquelle il appartient. Les trois sommets d’une face partagent la même normale. Par exemple,
si les sommets de face[1] reçoivent tous normal[1] et les sommets de face[2] reçoivent tous
normal[2], et que les deux faces partagent vertex[8], la normale de vertex[8] est normal[1]
pour face[1] et normal[2] pour face[2]. L’utilisation du paramètre #flat résulte en une
délimitation très claire des faces d’une maille.
Si le paramètre style a pour valeur #smooth, chaque sommet ne reçoit qu’une seule normale,
quel que soit le nombre de faces auquel il appartient, les trois sommets d’une face pouvant avoir
différente normales. Chaque normale de sommet est la moyenne des normales de toutes les faces
le partageant. L’utilisation du paramètre #smooth résulte en une apparence plus adoucie des faces
d’une maille, à l’exception des bords extérieurs, qui restent nets.
Une normale de sommet est le vecteur de direction indiquant la direction « vers l’avant » d’un
sommet. Si la normale de sommet pointe vers la caméra, les couleurs affichées dans la région de la
maille contrôlée par cette normale sont déterminées par le matériau. Si la normale de sommet
pointe en direction opposée à la caméra, la région de la maille contrôlée par cette normale ne sera
pas visible.
Si vous utilisez la commande generateNormals(), vous devrez utiliser la commande build()
pour reconstruire la maille.
Paramètres
style
350
Requis. Symbole qui spécifie le style du sommet.
Chapitre 12 : Méthodes
Exemple
L’instruction suivante calcule les normales de sommet de la ressource de modèle mailleDeSol.
Le paramètre style a pour valeur #smooth, tel que chaque sommet de la maille ne reçoive qu’une
seule normale.
member("Pièce").modelResource("mailleDeSol").generateNormals(#smooth)
Voir aussi
build(), face[ ], normalList, normals, flat
getaProp
Utilisation
listeDePropriétés.nomDePropriété
getaProp(liste, élément)
liste[positionDansLaListe]
listeDePropriétés [ #nomDePropriété ]
listeDePropriétés [ "nomDePropriété" ]
Description
Commande de liste ; pour les listes linéaires et de propriétés, identifie la valeur associée à
l’élément spécifié par élément, positionDansLaListe ou nomDePropriété dans la liste
spécifiée par liste.
• Lorsque la liste est linéaire, remplacez élément par le numéro correspondant à la position de
•
l’élément dans cette liste, indiquée par positionDansLaListe. Le résultat est la valeur située à
cette position.
Lorsque la liste est une liste de propriétés, remplacez élément par une propriété de la liste
comme dans nomDePropriété. Le résultat est la valeur associée à cette propriété.
La commande getaProp renvoie VOID si la valeur spécifiée n’est pas dans la liste.
Lorsque utilisée avec des listes linéaires, la commande getaProp a la même fonction que la
commande getAt.
Paramètres
nomOuNumDélément Requis. Pour les listes linéaires, nombre entier qui spécifie la position d’index
de la valeur dans la liste à renvoyer ; pour les listes de propriétés, symbole (Lingo) ou chaîne
(syntaxe JavaScript) qui spécifie la propriété dont la valeur est renvoyée.
Exemple
L’instruction suivante identifie la valeur associée à la propriété #pierre dans la liste de propriétés
âges, composée de [#jean:10, #pierre:12, #sophie:15, #barbara:22] :
put getaProp(âges, #pierre)
Le résultat est 12, car il s’agit de la valeur associée à la propriété #pierre.
Le même résultat peut être obtenu avec des crochets d’accès dans la même liste :
put âges[#jean]
Le résultat est à nouveau 12.
351
Pour obtenir la valeur située à une certaine position dans la liste, vous pouvez également utiliser
des crochets d’accès. Pour obtenir la troisième valeur de la liste associée à la troisième propriété,
utilisez la syntaxe suivante :
put âges[3]
-- 15
Remarque : Contrairement à la commande getAProp dans laquelle la valeur VOID est renvoyée
lorsqu’une propriété n’existe pas, une erreur de script a lieu si la propriété n’existe pas et que des
crochets d’accès sont utilisés.
Voir aussi
getAt, getOne(), getProp(), setaProp, setAt
getAt
Utilisation
getAt(liste, position)
liste [position]
Description
Commande de liste ; identifie l’élément situé à une position donnée dans une liste spécifiée. Si la
liste contient moins d’éléments que la position spécifiée, une erreur de script a lieu.
La commande getAt fonctionne avec les listes linéaires et de propriétés. Elle a la même fonction
que la commande getaProp pour les listes linéaires.
Elle est pratique pour extraire une liste d’une autre liste, comme deskTopRectList.
Paramètres
liste
Requis. Spécifie la liste dans laquelle l’élément existe.
position
Requis. Spécifie la position d’index de l’élément dans la liste.
Exemple
L’instruction suivante entraîne l’affichage dans la fenêtre Messages du troisième élément de la liste
Réponses, composée de [10, 12, 15, 22] :
put getAt(Réponses, 3)
-- 15
Le même résultat peut être renvoyé à l’aide de crochets d’accès :
put Réponses[3]
-- 15
352
Chapitre 12 : Méthodes
L’exemple suivant extrait la première entrée d’une liste de deux entrées indiquant les noms,
services et numéros d’identification des employés. Le second élément de la liste extraite est ensuite
renvoyé, identifiant le service dans lequel la première personne de la liste est employée. Le format
de la liste est [["Denis", "Conseil", 510], ["Sophie", "Distribution", 973]] et la liste est appelée
listeDinfosDesEmployés.
premièrePersonne = getAt(listeDinfosDesEmployés, 1)
put premièrePersonne
-- ["Denis", "Conseil", 510]
serviceDeLaPremièrePersonne = getAt(premièrePersonne, 2)
put serviceDeLaPremièrePersonne
-- "Conseil"
Il est également possible d’imbriquer des commandes getAt sans affecter de valeurs aux variables
dans les étapes intermédiaires. Ce format peut être plus difficile à lire et rédiger, mais contient
moins de texte.
serviceDeLaPremièrePersonne = getAt(getAt(listeDinfosDesEmployés, 1), 2)
put serviceDeLaPremièrePersonne
-- "Conseil"
Vous pouvez également utiliser les crochets d’accès :
premièrePersonne = listeDinfosDesEmployés[1]
put premièrePersonne
-- ["Denis", "Conseil", 510]
serviceDeLaPremièrePersonne = premièrePersonne[2]
put serviceDeLaPremièrePersonne
-- "Conseil"
De même qu’avec getAt, les crochets peuvent être imbriqués :
serviceDeLaPremièrePersonne = listeDinfosDesEmployés[1][2]
Voir aussi
getaProp, setaProp, setAt
getError() (Flash, SWA)
Utilisation
-- Syntaxe Lingo
réfObjActeur.getError()
// Syntaxe JavaScript
réfObjActeur.getError();
Description
Fonction ; pour les acteurs Shockwave Audio (SWA) ou Flash, indique si une erreur est survenue
pendant le transfert de l’acteur en mémoire et renvoie une valeur.
Les acteurs Shockwave Audio ont les valeurs entières getError() suivantes possibles et les
messages getErrorString() correspondants :
valeur getError()
message getErrorString()
0
OK
1
memory
353
valeur getError()
message getErrorString()
2
network
3
playback device
99
other
Les valeurs getError possibles des acteurs animation Flash sont les suivantes :
•
•
•
•
•
•
– Aucune erreur n’est survenue.
#memory – La mémoire est insuffisante pour le chargement de l’acteur.
#fileNotFound – Le fichier contenant les éléments de l’acteur est introuvable.
#network – Une erreur réseau a empêché le chargement de l’acteur.
#fileFormat – Le fichier a été trouvé, mais semble être d’un type incorrect ou une erreur est
survenue à la lecture.
#other – Une autre erreur est survenue.
FALSE
Lorsqu’une erreur survient pendant le transfert de l’acteur en mémoire, Director affecte la valeur
–1 à la propriété d’état de l’acteur. Utilisez la fonction getError pour déterminer le type d’erreur.
Paramètres
Aucun.
Exemple
Le gestionnaire suivant utilise getError pour déterminer si une erreur impliquant l’acteur
Shockwave Audio Norma Desmond parle est survenue et, le cas échéant, affiche la chaîne d’erreur
appropriée dans un champ :
-- Syntaxe Lingo
on exitFrame
if member("Norma Desmond parle").getError() <> 0 then
member("Affichage de l’erreur").text = member("Norma Desmond \
parle").getErrorString()
end if
end
// Syntaxe JavaScript
function exitFrame() {
var memNor = member("Norma Desmond parle").getError();
if (memNor != 0) {
member("Affichage de l’erreur").text =
member("Norma Desmond parle").getErrorString();
}
}
Le gestionnaire suivant vérifie si une erreur est survenue pour un acteur Flash intitulé Dali, lors de
son transfert en mémoire. Si une erreur est survenue et qu’il s’agit d’une erreur de mémoire, le
script utilise la commande unloadCast pour essayer de libérer de la mémoire et fait ensuite passer
la tête de lecture à une image appelée Artistes de l’animation Director, dans laquelle l’image-objet
d’animation Flash apparaît en premier, de façon à ce que Director puisse encore essayer de
charger et lire l’animation Flash. Si un autre type d’erreur est survenu, le script passe à une image
appelée Désolé, qui explique que l’animation Flash requise ne peut pas être lue.
354
Chapitre 12 : Méthodes
-- Syntaxe Lingo
on CheckFlashStatus
testErreur = member("Dali").getError()
if testErreur <> 0 then
if testErreur = #memory then
member("Dali").clearError()
unloadCast()
_movie.go("Artistes")
else
_movie.go("Désolé")
end if
end if
end
// Syntaxe JavaScript
function CheckFlashStatus() {
var testErreur = member("Dali").getError();
if (testErreur != 0) {
if (testErreur = "memory") {
member("Dali").clearError();
unloadCast();
_movie.go("Artistes");
} else {
_movie.go("Désolé");
}
}
}
Voir aussi
clearError(), getErrorString(), state (Flash, SWA)
getError() (XML)
Utilisation
gObjetDanalyse.getError()
Description
Fonction ; renvoie une chaîne d’erreur descriptive associée à un numéro d’erreur (comprenant le
numéro de la ligne et de la colonne de l’emplacement de l’erreur dans le code XML). Cette
fonction renvoie <VOID> lorsqu’il n’existe aucune erreur.
Paramètres
Aucun.
Exemple
Les instructions suivantes vérifient une erreur après l’analyse d’une chaîne contenant des données
XML :
errCode = ObjetDanalyse.parseString(member("texteXML").text)
chaîneDerreur = ObjetDanalyse.getError()
if voidP(chaîneDerreur) then
-- continuer et utiliser le code XML
else
alert "Désolé. Une erreur est survenue " & errorString
-- sortie du gestionnaire
exit
end if
355
getErrorString()
Utilisation
-- Syntaxe Lingo
réfObjActeur.getErrorString()
// Syntaxe JavaScript
réfObjActeur.getErrorString();
Description
Fonction ; pour les acteurs Shockwave Audio (SWA), renvoie la chaîne de message d’erreur
correspondant à la valeur de l’erreur renvoyée par la fonction getError().
Les valeurs entières getError() possibles et les messages getErrorString() correspondants
sont :
valeur getError()
message getErrorString()
0
OK
1
memory
2
network
3
playback device
99
other
Paramètres
Aucun.
Exemple
Le gestionnaire suivant utilise getError() pour déterminer si une erreur est survenue pour
l’acteur Shockwave Audio Norma Desmond parle et, si c’est le cas, utilise getErrorString pour
obtenir le message d’erreur et l’affecter à un acteur champ :
-- Syntaxe Lingo
on exitFrame
if member("Norma Desmond parle").getError() <> 0 then
member("Affichage de l’erreur").text = member("Norma Desmond \
parle").getErrorString()
end if
end
// Syntaxe JavaScript
function exitFrame() {
var memNor = member("Norma Desmond parle").getError();
if (memNor != 0) {
member("Affichage de l’erreur").text =
member("Norma Desmond parle").getErrorString();
}
}
Voir aussi
getError() (Flash, SWA)
356
Chapitre 12 : Méthodes
getFinderInfo()
Utilisation
-- Syntaxe Lingo
réfObjFileio.getFinderInfo()
// Syntaxe JavaScript
réfObjFileio.getFinderInfo();
Description
Méthode de Fileio (Macintosh uniquement) ; renvoie les informations du Finder pour un fichier
ouvert.
Vous devez d’abord ouvrir un fichier en appelant openFile() avant d’utiliser getFinderInfo()
pour renvoyer les informations du Finder relatives au fichier.
Paramètres
Aucun.
Voir aussi
Fileio, openFile()
getFlashProperty()
Utilisation
-- Syntaxe Lingo
réfObjImageObjet.getFlashProperty(NomDeCible, symProp)
// Syntaxe JavaScript
réfObjImageObjet.getFlashProperty(NomDeCible, symProp);
Description
Cette fonction permet à Lingo d’invoquer la fonction script d’action Flash getProperty() dans
l’image-objet Flash donnée. Cette fonction script d’action Flash est utilisée pour obtenir la valeur
des propriétés des recadrages ou des niveaux dans une animation Flash. Cette fonction est similaire au test des propriétés d’images-objets dans Director.
Pour obtenir une propriété globale de l’image-objet Flash, passez une ligne vide comme
nomDeCible. Ces propriétés globales Flash peuvent être testées : #focusRect et
#spriteSoundBufferTime.
Consultez la documentation de Flash pour plus d’informations sur ces propriétés.
Paramètres
nomDeCible Requis. Chaîne qui spécifie le nom du clip ou du niveau de l’animation dont vous
souhaitez obtenir la propriété dans l’image-objet Flash donnée.
symProp Requis. Symbole qui spécifie le nom de la propriété à obtenir. Les valeurs correctes sont :
#posX, #posY, #scaleX, #scaleY, #visible, #rotate, #alpha, #name, #width, #height,
#target, #url, #dropTarget, #totalFrames, #currentFrame, #cursor et #lastframeLoaded.
357
Exemple
L’instruction suivante obtient la valeur de la propriété #rotate du clip Etoile dans l’acteur Flash
de l’image-objet 3 :
-- Syntaxe Lingo
sprite(3).setFlashProperty("Etoile", #rotate)
sprite(3).getFlashProperty()
// Syntaxe JavaScript
sprite(3).setFlashProperty("Etoile", symbol("rotate"));
sprite(3).getFlashProperty();
getFrameLabel()
Utilisation
sprite(quelleImageObjetFlash).getFrameLabel(quelNuméroDimageFlash)
getFrameLabel(sprite quelleImageObjetFlash, quelNuméroDimageFlash)
Description
Fonction ; renvoie le libellé d’image d’une animation Flash associé au nom de numéro demandé.
Si le libellé n’existe pas ou si cette portion de l’animation Flash n’a pas encore été transférée en
mémoire, cette fonction renvoie une chaîne vide.
Paramètres
quelNuméroDimageFlash
Requis. Spécifie le numéro d’image associé au libellé d’image.
Exemple
Le gestionnaire suivant vérifie si le repère de l’image 15 de l’animation Flash lue dans l’imageobjet 1 porte le nom « Lions ». Le cas échéant, l’animation Director passe à l’image Lions. Dans le
cas contraire, l’animation Director reste dans l’image courante et la lecture de l’animation Flash se
poursuit.
-- Syntaxe Lingo
on exitFrame
if sprite(1).getFrameLabel(15) = "Lions" then
go "Lions"
else
go the frame
end if
end
// Syntaxe JavaScript
function exitFrame() {
if (sprite(1).getFrameLabel(15) == "Lions") {
_movie.go("Lions");
} else {
_movie.go(_movie.frame);
}
}
358
Chapitre 12 : Méthodes
getHardwareInfo()
Utilisation
getRendererServices().getHardwareInfo()
Description
Méthode 3D rendererServices ; renvoie une liste de propriétés contenant les informations
relatives à la carte vidéo de l’utilisateur. Cette liste contient les propriétés suivantes :
#present
est une valeur booléenne indiquant si l’ordinateur est équipé de matériel d’accélération
vidéo.
#vendor
#model
indique le nom du fabricant de la carte vidéo.
indique le modèle de la carte vidéo.
#version
indique la version du pilote vidéo.
#maxTextureSize est une liste linéaire contenant la largeur et hauteur maximum d’une texture,
en pixels. Les textures dépassant cette taille sont sous-échantillonnées à la taille maximum. Vous
pourrez éviter des erreurs de sous-échantillonnage en créant des textures de tailles variées et en
choisissant celles qui ne dépassent pas la valeur #maxTextureSize à l’exécution.
est une liste linéaire des formats supportés par la carte
vidéo. Pour plus d’informations, consultez textureRenderFormat.
#supportedTextureRenderFormats
#textureUnits
indique le nombre d’unités de texture disponibles pour la carte.
#depthBufferRange
depthBufferDepth.
est une liste linéaire de résolutions binaires associées à la propriété
#colorBufferRange
colorBufferDepth.
est une liste linéaire de résolutions binaires associées à la propriété
Exemple
L’instruction suivante affiche une liste de propriétés détaillée concernant le matériel de
l’utilisateur.
put getRendererServices().getHardwareInfo()
-- [#present: 1, #vendor: "NVIDIA Corporation", #model: \
"32MB DDR NVIDIA GeForce2 GTS (Dell)", #version: "4.12.01.0532", \
#maxTextureSize: [2048, 2048], #supportedTextureRenderFormats: \
[#rgba8888, #rgba8880, #rgba5650, #rgba5551, #rgba5550, \
#rgba4444], #textureUnits: 2, #depthBufferRange: [16, 24], \
#colorBufferRange: [16, 32]]
Voir aussi
getRendererServices()
359
getHotSpotRect()
Utilisation
-- Syntaxe Lingo
réfObjImageObjet.getHotSpotRect(idDeZoneRéférencée)
// Syntaxe JavaScript
réfObjImageObjet.getHotSpotRect(idDeZoneRéférencée);
Description
Fonction QuickTime VR ; renvoie un rectangle de délimitation approximative pour une zone
référencée. Si la zone référencée n’existe pas ou n’est pas visible sur la scène, cette fonction renvoie
rect(0, 0, 0, 0). Si la zone référencée est partiellement visible, cette fonction renvoie le rectangle de
délimitation pour la partie visible.
Paramètres
idDeZoneRéférencée
Requis. Spécifie la zone référencée pour laquelle un rectangle de délimita-
tion est renvoyé.
getLast()
Utilisation
liste.getLast()
getLast(liste)
Description
Fonction de liste ; identifie la dernière valeur d’une liste linéaire ou de propriétés spécifiée par
liste.
Paramètres
Aucun.
Exemple
L’instruction suivante identifie le dernier élément (22) de la liste Réponses, composée de [10, 12,
15, 22] :
put Réponses.getLast()
L’instruction suivante identifie le dernier élément (850) de la liste Devis, composée de
[#avatar:750, #dupont:600, #soldes:850] :
put Devis.getLast()
getLatestNetID
Utilisation
getLatestNetID
Description
Cette fonction renvoie un identifiant pour la dernière opération réseau entamée.
L’identificateur renvoyé par getLatestNetID peut être utilisé en tant que paramètre dans les
fonctions netDone, netError et netAbort pour identifier la dernière opération réseau.
360
Chapitre 12 : Méthodes
Remarque : Cette fonction est destinée à la compatibilité en amont. Il est recommandé d’utiliser l’ID
Réseau renvoyé par une fonction réseau de Lingo plutôt que par getLatestNetID. Cependant, si vous
utilisez getLatestNetID, faites-le immédiatement après la commande netLingo.
Paramètres
Aucun.
Exemple
Le script suivant affecte l’identifiant réseau d’une opération getNetText à l’acteur champ
Résultat, de manière à pouvoir récupérer ultérieurement les résultats de cette opération :
on débutDopération
global gIDréseau
getNetText("url")
set gIDréseau = getLatestNetID()
end
on vérifierLopération
global gIDréseau
if netDone(gIDréseau) then
put netTextResult into member "Résultat"
end if
end
Voir aussi
netAbort, netDone(), netError()
getLength()
Utilisation
-- Syntaxe Lingo
réfObjFileio.getLength()
// Syntaxe JavaScript
réfObjFileio.getLength();
Description
Méthode de Fileio ; renvoie la longueur d’un fichier ouvert.
Vous devez d’abord ouvrir un fichier en appelant openFile() avant d’utiliser getLength() pour
renvoyer la longueur du fichier.
Paramètres
Aucun.
Voir aussi
Fileio, openFile()
361
getNetText()
Utilisation
getNetText(URL {, chaîneOSduServeur} {, jeuDeCaractères})
getNetText(URL, listeDePropriétés {, chaîneOSduServeur} {, jeuDeCaractères})
Description
Fonction ; démarre la récupération de texte à partir d’un fichier placé sur un serveur HTTP ou
FTP ou lance une requête CGI.
La première syntaxe présentée entame la récupération du texte. Vous pouvez soumettre des
requêtes CGI HTTP de cette manière et devez les encoder correctement dans l’adresse URL.
La seconde syntaxe comprend une liste de propriétés et soumet une requête CGI, fournissant
le codage URL correct.
Utilisez le paramètre facultatif listeDePropriétés pour utiliser une liste de propriétés pour les
requêtes CGI. La liste de propriétés est encodée dans l’URL et l’URL envoyée est (chaîneURL &
"?" & listedePropriétésCodée).
Utilisez le paramètre facultatif chaîneOSduServeur pour encoder tout caractère renvoyé dans
listeDePropriétés. La valeur est par défaut UNIX mais peut recevoir Win ou Mac comme valeur
et convertit les retours chariot de l’argument listeDePropriétés en ceux utilisés par le serveur.
Pour la plupart des applications, ce paramètre n’est pas nécessaire, les ruptures de ligne n’étant
généralement pas utilisées dans les réponses de formulaires.
Le paramètre facultatif jeuDeCaractères ne s’applique que si l’utilisateur exécute Director sur
un système shift-JIS (Japonais). Les paramètres des jeux de caractères possibles sont JIS, EUC,
ASCII et AUTO. Lingo convertit les données récupérées de shift-JIS dans le jeu de caractères
spécifié. Avec le paramètre AUTO, le jeu de caractères essaie de déterminer le jeu de caractères du
texte récupéré et de le convertir au jeu de caractères de la machine locale. Le paramètre par défaut
est ASCII.
Utilisez netDone pour savoir quand l’opération getNetText est terminée et netError pour
savoir si elle a abouti. Utilisez netTextResult pour renvoyer le texte récupéré par getNetText.
Cette fonction est utilisable avec des URL relatives.
Pour un exemple d’utilisation de getNextText() dans une animation, reportez-vous à
l’animation Form and Post du dossier Learning/Lingo, lui-même inclus dans le dossier de
Director.
Paramètres
URL
Requis. URL du fichier qui contient le texte à récupérer.
listeDePropriétés
Facultatif. Spécifie une liste de propriétés utilisée pour les requêtes CGI.
chaîneOSduServeur Facultatif.
listeDePropriétés.
jeuDeCaractères
362
Spécifie le codage des caractères de retour chariot dans la liste
Facultatif. Spécifie les paramètres des caractères.
Chapitre 12 : Méthodes
Exemple
Le script suivant récupère du texte à partir de l’URL http://grandServeur.fr/exemple.txt et met à
jour l’acteur champ sur lequel la souris se trouve lorsque l’utilisateur clique dessus :
property spriteNum
property IDréseau
on mouseUp me
IDréseau = getNetText ("http://grandServeur.fr/exemple.txt")
end
on exitFrame me
if netDone(IDréseau) then
sprite(spriteNum).member.text = netTextResult(IDréseau)
end if
end
L’exemple suivant récupère les résultats d’une requête CGI :
getNetText("http://www.votreServeur.fr/cgi-bin/requête.cgi?nom=Jean")
Cet exemple est similaire au précédent, mais utilise une liste de propriétés pour soumettre une
requête CGI et effectue automatiquement le codage URL :
getNetText("http://www.votreServeur.fr/cgi-bin/requête.cgi", [#nom:"Jean"])
Voir aussi
netDone(), netError(), netTextResult()
getNormalized
Utilisation
getNormalized(vecteur)
vecteur.getNormalized()
Description
Méthode 3D de vecteur ; copie le vecteur et divise les composants x, y et z de la copie par la
longueur du vecteur d’origine. Le vecteur résultant a une longueur correspondant à une unité de
l’univers.
Cette méthode renvoie la copie et n’affecte pas le vecteur d’origine. Pour normaliser le vecteur
d’origine, utilisez la commande normalize.
Exemple
L’instruction suivante enregistre la valeur normalisée du vecteur monVecteur dans la variable
Norm. Norm a pour valeur vector(-0.1199, 0.9928, 0.0000) et 1 pour magnitude.
monVecteur = vector(-209.9019, 1737.5126, 0.0000)
Norm = monVecteur.getNormalized()
put Norm
-- vector( -0.1199, 0.9928, 0.0000 )
put Norm.magnitude
-- 1.0000
Voir aussi
normalize
363
getNthFileNameInFolder()
Utilisation
getNthFileNameInFolder(cheminDeDossier, numéroDeFichier)
Description
Méthode d’animation ; renvoie un nom de fichier du dossier en fonction du chemin d’accès et du
numéro spécifiés dans ce dossier. Pour être détectées par la fonction getNthFileNameInFolder
les animations Director doivent être définies comme visibles dans la structure des dossiers. Sur
Macintosh, d’autres types de fichiers peuvent être détectés, qu’ils soient visibles ou pas. Si cette
fonction renvoie une chaîne vide, vous avez spécifié un nombre supérieur au nombre de fichiers
dans le dossier.
La fonction getNthFileNameInFolder ne peut pas être utilisée avec des URL.
Pour spécifier d’autres noms de dossiers, utilisez l’opérateur @ pathname ou le chemin d’accès
complet défini dans le format de la plate-forme sur laquelle l’animation est exécutée.
Par exemple :
• Sous Windows, utilisez un chemin tel que C:\Director\Animations.
• Sur Macintosh, utilisez un chemin tel que DisqueDur:Director:Animations. Pour chercher des
•
fichiers se trouvant sur le bureau du Macintosh, utilisez le chemin DisqueDur:Desktop Folder.
Cette fonction n’est pas disponible dans Shockwave Player.
Paramètres
cheminDeDossier
Requis. Spécifie le chemin d’accès du dossier qui contient le fichier.
numéroDeFichier
Requis. Spécifie la position d’index du fichier dans le dossier.
Exemple
Le gestionnaire suivant renvoie une liste de noms de fichiers dans le dossier du chemin courant.
Pour appeler cette fonction, utilisez des parenthèses, comme dans put dossierCourant().
on dossierCourant
listeDeFichiers = [ ]
repeat with i = 1 to 100
n = getNthFileNameInFolder(the moviePath, i)
if n = EMPTY then exit repeat
listeDeFichiers.append(n)
end repeat
return listeDeFichiers
end dossierCourant
Voir aussi
@ (chemin d’accès), Animation
364
Chapitre 12 : Méthodes
getOne()
Utilisation
liste.getOne(valeur)
getOne(liste, valeur)
Description
Fonction de liste ; identifie la position (liste linéaire) ou la propriété (liste de propriétés) associée à
une valeur dans une liste.
Pour les valeurs contenues plus d’une fois dans la liste, seule la première occurrence est affichée.
La commande getOne renvoie le résultat 0 lorsque la valeur spécifiée n’est pas dans la liste.
Lorsque utilisée avec des listes linéaires, la commande getOne réalise les mêmes fonctions que la
commande getPos.
Paramètres
valeur
Requis. Spécifie la valeur associée à la position ou la propriété.
Exemple
L’instruction suivante identifie la position de la valeur 12 dans la liste linéaire Réponses,
composée de [10, 12, 15, 22] :
put Réponses.getOne(12)
Le résultat est 2, 12 étant la seconde valeur de la liste.
L’instruction suivante identifie la propriété associée à la valeur 12 dans la liste de propriétés
Réponses, composée de [#a:10, #b:12, #c:15, #d:22] :
put Réponses.getOne(12)
Le résultat est #b, correspondant à la propriété associée à la valeur 12.
Voir aussi
getPos()
getOSDirectory()
Utilisation
-- Syntaxe Lingo
réfObjFileio.getOSDirectory()
// Syntaxe JavaScript
réfObjFileio.getOSDirectory();
Description
Méthode de Fileio ; renvoie le chemin complet du dossier System (Macintosh) ou du répertoire
Windows (Windows).
Paramètres
Aucun.
Voir aussi
Fileio
365
getPixel()
Utilisation
-- Syntaxe Lingo
réfObjImage.getPixel(x, y {, #entier})
réfObjImage.getPixel(point(x, y) {, #entier})
// Syntaxe JavaScript
réfObjImage.getPixel(x, y {, #entier});
réfObjImage.getPixel(point(x, y) {, #entier});
Description
Méthode d’image. Renvoie une couleur indexée ou RVB du pixel en un point spécifié d’une
image donnée.
L’index des lignes et des colonnes de l’image renvoyée commence à 0. Par conséquent, pour
accéder au pixel situé dans le coin supérieur gauche d’une image, spécifiez l’emplacement (0,0),
et non (1,1). Si une image donnée a une hauteur de h pixels et une largeur de w pixels, pour
accéder au pixels situé dans le coin inférieur droit de l’image, spécifiez l’emplacement (w,1),
(h,1).
Cette méthode renvoie une valeur égale à 0 si le pixel spécifié se trouve en dehors de l’image
donnée.
Pour affecter à un grand nombre de pixels la couleur d’un autre pixel, la méthode la plus rapide
consiste à les définir en tant que nombres bruts (en utilisant le paramètre facultatif #entier). Les
valeurs de couleur brutes sont également pratiques en ce sens qu’elles contiennent à la fois des
informations de couche alpha et de couleurs dans les images 32 bits. Les informations de couche
alpha peuvent être extraites du nombre brut en divisant le nombre par 2^8+8+8.
Paramètres
x Requis si vous spécifiez un pixel avec des coordonnées x et y. Entier qui spécifie la coordonnée x
du pixel.
y1 Requis si vous spécifiez un
y du pixel.
#entier
pixel avec des coordonnées x et y. Entier qui spécifie la coordonnée
Facultatif. Symbole qui spécifie le nombre brut de la valeur de couleur renvoyée.
point(x, y)
Requis si vous spécifiez un pixel en utilisant un point. Point qui spécifie le point
du pixel.
Exemple
Les instructions suivantes définissent la couleur du pixel au point (90, 20) de l’acteur Joyeux et
définissent l’image-objet 2 sur cette couleur.
L’instruction suivante définit la variable alpha en fonction de la valeur de couche alpha du point
(25, 33) dans l’objet image 32 bits monImage.
Voir aussi
color(), image(), power(), setPixel()
366
Chapitre 12 : Méthodes
getPlayList()
Utilisation
-- Syntaxe Lingo
réfObjPisteAudio.getPlayList()
// Syntaxe JavaScript
réfObjPisteAudio.getPlayList();
Description
Méthode de piste audio ; renvoie une copie de la liste des sons mis en file d’attente pour une piste
audio.
La liste obtenue n’inclut pas le son en cours de lecture et ne peut pas être éditée directement.
Vous devez utiliser setPlayList().
La liste de lecture est une liste linéaire de listes de propriétés. Chaque liste de propriétés correspond à un acteur son placé en file d’attente. Chaque son placé en file d’attente peut spécifier ces
propriétés :
Propriété
Description
#member
L’acteur à placer en file d’attente. Cette propriété doit être spécifiée. Toutes
les autres sont facultatives.
#startTime
Position temporelle de départ de la lecture du son, en millisecondes. La
valeur par défaut est le début du son. Pour plus d’informations, consultez
startTime.
#endTime
Position temporelle de fin de la lecture du son, en millisecondes. La valeur
par défaut est la fin du son. Pour plus d’informations, consultez endTime.
#loopCount
Nombre de répétitions d’une boucle défini avec #loopStartTime et
#loopEndTime. La valeur par défaut est 1. Voir loopCount.
#loopStartTime
Position temporelle de départ de la boucle, en millisecondes. Pour plus
d’informations, consultez loopStartTime.
#loopEndTime
Position temporelle de fin de la boucle, en millisecondes. Pour plus
d’informations, consultez loopEndTime.
#preloadTime
Quantité de son à placer en mémoire tampon avant la lecture, en
millisecondes. Pour plus d’informations, consultez preloadTime.
Paramètres
Aucun.
367
Exemple
Le gestionnaire suivant place deux sons en file d’attente dans la piste audio 2, démarre leur
lecture, puis affiche la liste de lecture dans la fenêtre Messages. La liste de lecture ne contient que
le second son placé en file d’attente, le premier son étant déjà en cours de lecture.
-- Syntaxe Lingo
on playMusic
sound(2).queue(member("Carillon"))
sound(2).queue([#member:member("intro"), #startTime:3000, \
#endTime:10000, #loopCount:5, #loopStartTime:8000, #loopEndTime:8900])
put(sound(2).getPlayList())
sound(2).play()
end playMusic
// Syntaxe JavaScript
function playMusic() {
sound(2).queue(member("Carillon"));
sound(2).queue(propList("member",member("intro"), "startTime",3000,
"endTime",10000, "loopCount",5, "loopStartTime",8000, "loopEndTime",8900));
put(sound(2).getPlayList());
sound(2).play();
}
Voir aussi
endTime, loopCount, loopEndTime, loopStartTime, Acteur, member, preLoadTime,
queue(), setPlayList(), Piste audio, startTime
getPosition()
Utilisation
-- Syntaxe Lingo
réfObjFileio.getPosition()
// Syntaxe JavaScript
réfObjFileio.getPosition();
Description
Méthode de Fileio ; renvoie la position d’un fichier.
Paramètres
Aucun.
Voir aussi
Fileio
368
Chapitre 12 : Méthodes
getPref()
Utilisation
-- Syntaxe Lingo
_player.getPref(chaîneNomDePréf)
// Syntaxe JavaScript
_player.getPref(chaîneNomDePréf);
Description
Méthode de lecteur ; récupère le contenu du fichier spécifié.
Lorsque vous utilisez cette méthode, remplacez chaîneNomDePréf par le nom d’un fichier créé
par la méthode setPref(). Si un tel fichier n’existe pas, getPref() renvoie VOID (Lingo) ou
null (syntaxe JavaScript).
Le nom de fichier utilisé pour chaîneNomDePréf doit être un nom de fichier valide, et non un
chemin d’accès complet ; le chemin est fourni par Director. Le chemin vers le fichier est géré par
Director. Les seules extensions de fichiers valides pour chaîneNomDePréf sont .txt et .htm ; toute
autre extension est rejetée.
N’utilisez pas cette commande pour accéder à des médias en lecture seule ou verrouillés.
Remarque : Dans un navigateur, les données écrites par setPref() ne sont pas confidentielles.
Toute animation avec un contenu Shockwave est en mesure de lire ces informations et de les
télécharger vers un serveur. Les informations confidentielles ne doivent donc pas être stockées à
l’aide de la commande setPref().
Pour un exemple d’utilisation de getPref() dans une animation, reportez-vous à l’animation
Read and Write Text du dossier Learning/Lingo, lui-même inclus dans le dossier de Director.
Paramètres
chaîneNomDePréf
Requis. Chaîne qui spécifie le fichier dont le contenu est récupéré.
Exemple
Le gestionnaire suivant récupère le contenu du fichier Test et en affecte le texte au champ Score :
-- Syntaxe Lingo
on mouseUp
leTexte = _player.getPref("Test")
member("Score").text = leTexte
end
// Syntaxe JavaScript
function mouseUp() {
var leTexte = _player.getPref("Test");
member("Score").text = leTexte;
}
Voir aussi
Lecteur, setPref()
369
getPos()
Utilisation
liste.getPos(valeur)
getPos(liste, valeur)
Description
Fonction de liste ; identifie la position d’une valeur dans une liste. Lorsque la valeur spécifiée n’est
pas dans la liste, la commande getPos renvoie la valeur 0.
Pour les valeurs contenues plus d’une fois dans la liste, seule la première occurrence est affichée.
Cette commande réalise la même fonction que la commande getOne lorsque utilisée pour les
listes linéaires.
Paramètres
valeur
Requis. Spécifie la valeur associée à la position.
Exemple
L’instruction suivante identifie la position de la valeur 12 dans la liste Réponses, composée de
[#a:10, #b:12, #c:15, #d:22] :
put Réponses.getPos(12)
Le résultat est 2, 12 étant la seconde valeur de la liste.
Voir aussi
getOne()
getPref()
Utilisation
getPref(nomDeFichierDePréférences)
Description
Fonction ; récupère le contenu du fichier spécifié.
Lorsque vous utilisez cette fonction, remplacez nomDeFichierDePréférences par le nom du
fichier créé par la fonction setPref. Si un tel fichier n’existe pas, getPref renvoie VOID.
Le nom de fichier utilisé pour nomDeFichierDePréférences doit être un nom de fichier valide
et non un chemin d’accès complet ; Director fournit le chemin. Le chemin vers le fichier est géré
par Director. Les seules extensions de fichiers valides pour nomDeFichierDePréférences sont
.txt et .ht, toute autre extension étant rejetée.
N’utilisez pas cette commande pour accéder à des médias en lecture seule ou verrouillés.
Remarque : Dans un navigateur web, les données écrites par setPref ne sont pas confidentielles.
Toute animation avec un contenu Shockwave est en mesure de lire ces informations et de les
télécharger vers un serveur. Les informations confidentielles ne doivent donc pas être stockées à
l’aide de la commande setPref.
Pour un exemple d’utilisation de getPref() dans une animation, reportez-vous à l’animation
Read and Write Text du dossier Learning/Lingo, lui-même inclus dans le dossier de Director.
370
Chapitre 12 : Méthodes
Paramètres
nomDeFichierDePréférences
Requis. Spécifie le fichier à partir duquel le contenu est récupéré.
Exemple
Le gestionnaire suivant récupère le contenu du fichier Test et en affecte le texte au champ Score :
on mouseUp
leTexte = getPref("Test")
member("Score").text = leTexte
end
Voir aussi
setPref()
getProp()
Utilisation
getProp(liste, propriété)
liste.propriété
Description
Fonction de liste de propriétés ; identifie la valeur associée à une propriété dans une liste de
propriétés.
Presque identique à la commande getaProp, la commande getProp affiche un message d’erreur
si la propriété spécifiée n’est pas dans la liste ou si vous spécifiez une liste linéaire.
Paramètres
liste
Requis. Spécifie la liste de propriétés dans laquelle la propriété est récupérée.
propriété
Requis. Spécifie la propriété à laquelle la valeur identifiée est associée.
Exemple
L’instruction suivante identifie la valeur associée à la propriété #c dans la liste de
propriétés Réponses, composée de [#a:10, #b:12, #c:15, #d:22] :
getProp(Réponses, #c)
Le résultat est 15, qui est la valeur associée à #c.
Voir aussi
getOne()
getPropAt()
Utilisation
liste.getPropAt(index)
getPropAt(liste, index)
Description
Fonction de liste de propriétés ; pour les listes de propriétés uniquement, identifie le nom de la
propriété associée à une position spécifiée dans une liste de propriétés. Si l’élément spécifié n’est
pas dans la liste ou si vous utilisez getPropAt() avec une liste linéaire, une erreur de script a lieu.
371
Paramètres
index
Requis. Spécifie la position d’index de la propriété dans la liste de propriétés.
Exemple
L’instruction suivante affiche la seconde propriété de la liste donnée :
put Réponses.getPropAt(2)
-- #b
Le résultat est 20, qui est la valeur associée à #b.
getRendererServices()
Utilisation
getRendererServices()
getRendererServices().quellePropriétéDeGetRendererServices
Description
Commande 3D ; renvoie l’objet rendererServices. Cet objet contient les informations sur le
matériel et les propriétés qui affectent tous les acteurs et images-objets 3D.
L’objet rendererServices a les propriétés suivantes :
•
•
•
•
•
•
•
indique le rasteriseur logiciel utilisé pour le rendu des images-objets 3D.
rendererDeviceList renvoie une liste des rasteriseurs logiciels présents sur le système de
l’utilisateur. Les valeurs possibles sont #openGL, #directX5_2, #directX7_0 et #software.
La valeur de renderer doit être une de celles-ci. Cette propriété peut être testée, mais pas
définie.
textureRenderFormat indique le format de pixel utilisé par le moteur de rendu. Les valeurs
possibles sont #rgba8888, #rgba8880, #rgba5650, #rgba5550, #rgba5551 et #rgba4444. Les
quatre chiffres de chaque symbole indiquent le nombre de bits utilisés pour chaque
composante rouge, verte, bleue et alpha.
depthBufferDepth indique le codage binaire du tampon de sortie matériel.
colorBufferDepth indique le codage binaire du tampon des couleurs. Cette propriété peut
être testée, mais pas définie.
modifiers est une liste linéaire des modificateurs disponibles et pouvant être utilisées par les
modèles des acteurs 3D. Les valeurs possibles sont #collision, #bonesPlayer,
#keyframePlayer, #toon, #lod, #meshDeform, #sds, #inker et des modificateurs basés sur
des Xtras publiés par des tiers. Cette propriété peut être testée, mais pas définie.
primitives est une liste linéaire des types de primitives disponibles et pouvant être utilisés
dans la création de ressources de modèle. Les valeurs possibles sont #sphere, #box,
#cylinder, #plane, #particle et des types de primitives basés sur des Xtras publiés par
d’autres éditeurs. Cette propriété peut être testée, mais pas définie.
renderer
Remarque : Pour plus d’informations, consultez les entrées des différentes propriétés.
Paramètres
Aucun.
Voir aussi
renderer, preferred3dRenderer, active3dRenderer, rendererDeviceList
372
Chapitre 12 : Méthodes
getStreamStatus()
Utilisation
getStreamStatus(IDréseau)
getStreamStatus(chaîneURL)
Description
Fonction ; renvoie une liste de propriétés correspondant au format utilisé pour la fonction
tellStreamStatus disponible globalement et pouvant être utilisée avec des appels d’imagesobjets ou d’objets. La liste contient les chaînes suivantes :
#URL
Chaîne contenant l’emplacement de l’URL utilisée pour le début des opérations
réseau.
#state
Chaîne composée de Connecting (connexion), Started (démarrée), InProgress (en
cours), Complete (terminée), Error (erreur) ou NoInformation (aucune information) ;
cette dernière chaîne sert lorsque l’ID réseau est tellement ancienne que les
informations d’état n’existent plus ou que l’URL spécifiée dans chaîneURL n’a pas
été trouvée dans la mémoire cache.
#bytesSoFar
Nombre d’octets récupérés jusqu’à maintenant à partir du réseau.
#bytesTotal
Nombre total d’octets dans le flux, s’il est connu. Cette valeur peut être zéro si le
serveur HTTP n’indique pas la longueur du contenu dans l’en-tête MIME.
#error
Chaîne contenant "" (EMPTY) si le téléchargement n’est pas terminé, OK s’il a abouti
ou un code d’erreur si le téléchargement s’est terminé par une erreur.
Par exemple, vous pouvez démarrer une opération réseau avec getNetText( ) et suivre sa
progression avec getStreamStatus().
Paramètres
IDréseau
Facultatif. Opération réseau qui représente le flux de texte sur lequel intervenir.
Exemple
L’instruction suivante affiche dans la fenêtre Messages l’état courant d’un téléchargement démarré
avec getNetText() et l’identifiant réseau obtenu, placé dans la variable IDréseau :
put getStreamStatus(IDréseau)
-- [#URL: "www.macromedia.com", #state: "InProgress", #bytesSoFar: 250, \
#bytesTotal: 50000, #error: EMPTY]
Voir aussi
on streamStatus, tellStreamStatus()
373
getVariable()
Utilisation
-- Syntaxe Lingo
réfObjImageObjet).getVariable(nomDeVariable {, valeurOuRéfRenvoyée})
// Syntaxe JavaScript
réfObjImageObjet.getVariable(nomDeVariable {, valeurOuRéfRenvoyée});
Description
Cette fonction renvoie la valeur courante de la variable donnée de l’image-objet donnée. Les
variables Flash ont été introduites dans la version 4 de Flash.
Cette fonction peut être utilisée de deux façons.
La définition du paramètre optionnel valeurOuRéfRenvoyée sur TRUE (valeur par défaut)
renvoie la valeur courante de la variable en tant que chaîne. La définition du paramètre
valeurOuRéfRenvoyée sur FALSE renvoie la valeur littérale courante de la variable Flash.
Si la valeur de la variable Flash est une référence d’objet, vous devez définir le paramètre
sur FALSE pour que la valeur renvoyée soit traitée en tant que référence
d’objet. Si elle est renvoyée en tant que chaîne, la chaîne ne constituera pas une référence d’objet
valide.
valeurOuRéfRenvoyée
Paramètres
nomDeVariable
Requis. Spécifie le nom de la variable dont la valeur est renvoyée.
valeurOuRéfRenvoyée Facultatif. Spécifie si la valeur renvoyée est une chaîne (TRUE) ou une
référence d’objet (FALSE).
Exemple
L’instruction suivante définit la variable valeurT sur la valeur de la chaîne de la variable Flash
appelée gAutreVar dans l’animation Flash, au niveau de l’image-objet 3 :
-- Syntaxe Lingo
valeurT = sprite(3).getVariable("gAutreVar", TRUE)
put(valeurT) -- "5"
// Syntaxe JavaScript
var valeurT = sprite(3).getVariable("gAutreVar", true);
trace(valeurT); // 5
L’instruction suivante définit la variable objetT de manière à référencer le même objet que la
variable appelée gVar dans l’animation Flash, au niveau de l’image-objet 3 :
-- Syntaxe Lingo
objetT = sprite(3).getVariable("gVar",FALSE)
// Syntaxe JavaScript
var objetT = sprite(3).getVariable("gVar",0);
374
Chapitre 12 : Méthodes
L’instruction suivante renvoie la valeur de la variable URLactuelle de l’acteur Flash de l’imageobjet 3 et l’affiche dans la fenêtre Messages.
-- Syntaxe Lingo
put(sprite(3).getVariable("URLactuelle"))
// Syntaxe JavaScript
trace(sprite(3).getVariable("URLactuelle"));
Voir aussi
setVariable()
getWorldTransform()
Utilisation
member(quelActeur).node(quelNœud).getWorldTransform()
member(quelActeur).node(quelNoeud).getWorldTransform().\
position
member(quelActeur).node(quelNœud).getWorldTransform().\
rotation
member(quelActeur).node(quelNœud).getWorldTransform().scale
Description
Commande 3D ; renvoie une transformation relative à l’univers du modèle, du groupe, de la
caméra ou de la lumière, représenté par nœud.
La propriété transform du nœud est calculée en fonction de la transformation du parent du
nœud et est donc relative au parent. La commande getWorldTransform() calcule la transformation du nœud par rapport à l’origine de l’univers 3D ; elle est donc relative à l’univers.
Utilisez member(quelActeur).node(quelNœud).getWorldTransform().position pour
rechercher la propriété position de la transformation relative à l'univers du nœud. Vous pouvez
également utiliser worldPosition comme raccourci de getWorldTransform().position.
Utilisez member(quelActeur).node(quelNœud).getWorldTransform().rotation pour
rechercher la propriété rotation de la transformation relative à l'univers du nœud.
Utilisez member(quelActeur).node(quelNœud).getWorldTransform().scale pour
rechercher la propriété scale de la transformation relative à l'univers du nœud.
Ces propriétés peuvent être testées, mais pas définies.
Exemple
L’instruction suivante indique la transformation relative à l’univers du modèle Boîte, suivie de ses
propriétés de position et de rotation.
put member("Univers 3D").model("Boîte").getworldTransform()
-- transform(1.000000,0.000000,0.000000,0.000000, \
0.000000,1.000000,0.000000,0.000000, \
0.000000,0.000000,1.000000,0.000000, -\
94.144844,119.012825,0.000000,1.000000)
put member("Univers 3D").model("Boîte").getworldTransform().position
-- vector( -94.1448, 119.0128, 0.0000 )
put member("Univers 3D").model("Boîte").getworldTransform().rotation
-- vector( 0.0000, 0.0000, 0.0000 )
Voir aussi
worldPosition, transform (propriété)
375
go()
Utilisation
-- Syntaxe Lingo
_movie.go(nomOuNumDimage {, nomDanimation})
// Syntaxe JavaScript
_movie.go(nomOuNumDimage {, nomDanimation});
Description
Méthode d’animation ; place la tête de lecture sur l'image spécifiée dans une animation donnée.
Cette méthode peut être employée pour demander à la tête de lecture d'effectuer une boucle vers
le repère précédent, offrant ainsi un moyen pratique de conserver la tête de lecture dans la même
partie de l'animation pendant que le script reste actif.
Il est préférable d’utiliser des libellés de repères plutôt que des numéros d’images pour
nomOuNumDimage, la modification d’une animation pouvant entraîner le changement des
numéros d’images. L’utilisation de libellé de repères facilite également la lecture des scripts.
Lorsque vous appelez go() avec le paramètre nomDanimation, l’image 1 de l’animation est
chargée. Si la méthode go() est appelée à partir d’un gestionnaire, le gestionnaire dans laquelle
elle est placée poursuit son exécution. Pour suspendre le gestionnaire pendant la lecture de
l’animation, utilisez la méthode play(), qui peut être suivie d’un appel de playDone() pour
revenir en arrière.
Lorsque vous spécifiez une animation à lire, indiquez son chemin d’accès si l’animation se trouve
dans un dossier différent, mais, pour éviter un éventuel échec du chargement, n’incluez pas
l’extension du fichier de l’animation (.dir, .dxr ou .dcr).
Pour passer plus facilement à une animation sur une URL, utilisez la méthode
downloadNetThing() afin de télécharger le fichier de l’animation sur un disque local, puis
utilisez la méthode go() avec le paramètre nomDanimation cette animation sur le disque local.
La méthode goLoop() envoie la tête de lecture vers le repère précédent et offre ainsi un moyen
pratique de conserver la tête de lecture dans la même partie de l'animation pendant que la syntaxe
Lingo ou JavaScript reste active.
Les paramètres suivants sont réinitialisés au chargement d’une animation : propriétés beepOn
et constraint ; keyDownScript, mouseDownScript et mouseUpScript ; propriétés d’imagesobjets cursor et immediate ; méthodes cursor() et puppetSprite() ; et menus personnalisés.
Cependant, la propriété timeoutScript n’est pas réinitialisée au chargement d’une animation.
Paramètres
nomOuNumDimage Requis. Chaîne qui spécifie le repère de l’image sur laquelle la tête de lecture se
place ou nombre entier qui spécifie le numéro de cette image.
nomDanimation Facultatif. Chaîne qui spécifie l’animation contenant l’image définie par
nomOuNumDimage. Cette valeur doit spécifier un fichier d’animation ; si l’animation se trouve
dans un autre dossier, nomDanimation doit également spécifier le chemin d’accès.
376
Chapitre 12 : Méthodes
Exemple
L’instruction suivante envoie la tête de lecture au point de repère intitulé Début :
-- Syntaxe Lingo
_movie.go("Début")
// Syntaxe JavaScript
_movie.go("Début");
L’instruction suivante envoie la tête de lecture au point de repère Mémoire de l’animation
intitulée Mon animation :
-- Syntaxe Lingo
_movie.go("Mémoire", "Mon animation")
// Syntaxe JavaScript
_movie.go("Mémoire", "Mon animation");
Le gestionnaire suivant indique à l’animation de faire une boucle sur l’image courante. Ce
gestionnaire est pratique pour faire en sorte que l’animation s’arrête sur une image pendant la
lecture tout en répondant aux événements.
-- Syntaxe Lingo
on exitFrame
_movie.go(_movie.frame)
end
// Syntaxe JavaScript
function exitFrame() {
_movie.go(_movie.frame);
}
Voir aussi
downloadNetThing, goLoop(), Animation
goLoop()
Utilisation
-- Syntaxe Lingo
_movie.goLoop()
// Syntaxe JavaScript
_movie.goLoop();
Description
Méthode d’animation ; envoie la tête de lecture au point de repère précédent dans l’animation, un
point de repère avant l’image courante si l’image courante n’a pas de repère ou à l’image courante
si l’image courante possède un repère.
Si aucun repère ne se trouve à gauche de la tête de lecture, la tête de lecture se place sur :
• Le prochain repère à droite si l’image courante ne possède pas de repère.
• L’image courante si celle-ci possède un repère.
• L’image 1 si l’animation ne contient aucun repère.
Paramètres
Aucun.
377
Exemple
L’instruction suivante fait faire une boucle à l’animation entre l’image courante et le repère
précédent :
-- Syntaxe Lingo
_movie.goLoop()
// Syntaxe JavaScript
_movie.goLoop();
Voir aussi
go(), goNext(), goPrevious(), Animation
goNext()
Utilisation
-- Syntaxe Lingo
_movie.goNext()
// Syntaxe JavaScript
_movie.goNext();
Description
Méthode d’animation ; place la tête de lecture sur le repère suivant dans l’animation.
Si aucun repère ne se trouve à droite de la tête de lecture, celle-ci se place sur le dernier repère de
l’animation ou sur l’image 1 si l’animation ne contient aucun repère.
Paramètres
Aucun.
Exemple
L’instruction suivante envoie la tête de lecture sur le repère suivant de l’animation :
-- Syntaxe Lingo
_movie.goNext()
// Syntaxe JavaScript
_movie.goNext();
Voir aussi
go(), goLoop(), goPrevious(), Animation
378
Chapitre 12 : Méthodes
goPrevious()
Utilisation
-- Syntaxe Lingo
_movie.goPrevious()
// Syntaxe JavaScript
_movie.goPrevious();
Description
Méthode d’animation ; place la tête de lecture sur le point de repère précédent dans l’animation.
Ce repère est situé deux repères avant l’image courante si celle-ci ne possède pas de repère ou un
repère avant l’image courante si elle en possède un.
Si aucun repère ne se trouve à gauche de la tête de lecture, la tête de lecture se place sur un des
éléments suivants :
• Le prochain repère à droite si l’image courante ne possède pas de repère.
• L’image courante si celle-ci possède un repère.
• L’image 1 si l’animation ne contient aucun repère.
Paramètres
Aucun.
Exemple
L’instruction suivante envoie la tête de lecture sur le repère précédent dans l’animation :
-- Syntaxe Lingo
_movie.goPrevious()
// Syntaxe JavaScript
_movie.goPrevious();
Voir aussi
go(), goLoop(), goNext(), Animation
goToFrame()
Utilisation
-- Syntaxe Lingo
réfObjImageObjet.goToFrame(nomOuNumDimage)
// Syntaxe JavaScript
réfObjImageObjet.goToFrame(nomOuNumDimage);
Description
Commande ; lit une image-objet d’animation Flash à partir de l’image identifiée par le paramètre
nomOuNumDimage. Vous pouvez identifier l’image par un nombre entier indiquant le numéro
d’image ou par une chaîne indiquant le nom du libellé. L’utilisation de la commande goToFrame
a le même effet que la définition de la propriété frame d’une image-objet d’animation Flash.
379
Exemple
Le gestionnaire suivant passe à différents points d’une animation Flash dans la piste 5. Il accepte
un paramètre qui indiquant l’image à laquelle il doit passer.
-- Syntaxe Lingo
on Navigate(Cible)
sprite(5).goToFrame(Cible)
end
// Syntaxe JavaScript
function Navigate(Cible) {
sprite(5).goToFrame(Cible);
}
gotoNetMovie
Utilisation
gotoNetMovie URL
gotoNetMovie (URL)
Description
Commande ; récupère et lit une nouvelle animation avec un contenu Shockwave à partir d’un
serveur HTTP ou FTP. L’exécution de l’animation courante continue jusqu’à ce que la nouvelle
animation soit disponible.
Seules les URL sont supportées comme paramètres valides. L’URL peut spécifier un nom de
fichier ou un repère dans une animation. Les URL relatives fonctionnent si l’animation se trouve
sur un serveur Internet, mais vous devez inclure l’extension avec le nom de fichier.
Lorsque vous réalisez des tests sur un disque ou réseau local, les médias doivent se trouver dans un
répertoire appelé dswmedia.
Si une opération gotoNetMovie est en cours et que vous envoyez une seconde commande
gotoNetMovie avant la fin de la première, la seconde commande annule la première.
Paramètres
URL
Requis. Spécifie l’URL du contenu Shockwave à lire.
Exemple
Dans l’instruction suivante, l’URL indique un nom de fichier Director :
gotoNetMovie "http://www.votreserveur.fr/animations/animation1.dcr"
Dans l’instruction suivante, l’URL indique un repère dans un nom de fichier :
gotoNetMovie "http://www.votreserveur.fr/animations/boutons.dcr#Contenu"
Dans l’instruction suivante, gotoNetMovie est utilisée comme une fonction. Cette fonction
renvoie l’identifiant réseau pour l’opération.
monIDréseau = gotoNetMovie ("http://www.votreServeur.fr/animations/
boutons.dcr#Contenu")
380
Chapitre 12 : Méthodes
gotoNetPage
Utilisation
gotoNetPage "URL", {"nomDeCible"}
Description
Commande ; ouvre une animation avec un contenu Shockwave ou un autre fichier MIME dans le
navigateur.
Seules les URL sont supportées comme paramètres valides. Les URL relatives fonctionnent si
l’animation se trouve sur un serveur HTTP ou FTP.
Dans l’environnement de programmation, la commande gotoNetPage lance le navigateur préféré
s’il est activé. Dans les projections, cette commande essaie de lancer le navigateur préféré, défini
dans la boîte de dialogue des préférences réseau ou la commande browserName. Si aucune
commande n’a été utilisée pour définir le navigateur préféré, la commande goToNetPage essaie
de trouver un navigateur web sur l’ordinateur.
Paramètres
URL
Requis. Spécifie l’URL de l’animation avec un contenu Shockwave ou du fichier MIME à
lire.
nomDeCible
Facultatif. Paramètre HTML qui identifie le cadre ou la fenêtre dans lequel la page
est chargée.
• Si nomDeCible est une fenêtre ou un cadre dans le navigateur web, gotoNetPage en remplace
le contenu.
• Si nomDeCible n’est pas un cadre ou une fenêtre ouverts, goToNetPage ouvre une nouvelle
•
fenêtre. L’utilisation de la chaîne "_new" provoque systématiquement l’ouverture d’une
nouvelle fenêtre.
Si nomDeCible est omis, gotoNetPage remplace la page courante, où qu’elle se trouve.
Exemple
Le script suivant charge le fichier nouvellePage.html dans le cadre ou la fenêtre intitulé(e) frwin.
S’il existe une fenêtre ou un cadre intitulés frwin, cette fenêtre ou ce cadre est utilisé. Si la fenêtre
frwin n’existe pas, une nouvelle fenêtre intitulée frwin est créée.
on keyDown
gotoNetPage "nouvellePage.html", "frwin"
end
Le gestionnaire suivant ouvre une nouvelle fenêtre, quelle que soit la fenêtre ouverte par le
navigateur :
on mouseUp
goToNetPage "Nouvelles_du_jour.html", "_new"
end
Voir aussi
browserName(), netDone()
381
group()
Utilisation
member(quelActeur).group(quelGroupe)
member(quelActeur).group[index]
Description
Elément 3D ; nœud de l’univers 3D qui a un nom, une transformation, un parent et des enfants,
mais aucune autre propriété.
Chaque acteur 3D est associé à un groupe par défaut nommé Univers et qui ne peut pas être
supprimé. La hiérarchie parent de tous les modèles, lumières, caméras et groupes qui existent dans
l’univers 3D se terminent dans group("world").
Exemple
L’instruction suivante indique que le quatrième groupe de l’acteur nouveauMartien est le groupe
Direct01.
put member("nouveauMartien").group[4]
-- group("Direct01")
Voir aussi
newGroup, deleteGroup, child (3D), parent
halt()
Utilisation
-- Syntaxe Lingo
_movie.halt()
// Syntaxe JavaScript
_movie.halt();
Description
Méthode d’animation ; quitte le gestionnaire courant et tout autre gestionnaire qui l’a appelé et
arrête l’animation pendant la programmation ou quitte la projection pendant son exécution.
Paramètres
Aucun.
382
Chapitre 12 : Méthodes
Exemple
L’instruction suivante vérifie si la quantité de mémoire disponible est inférieure à 50 ko et, le cas
échéant, quitte tous les gestionnaires qui l’ont appelée et arrête l’animation :
-- Syntaxe Lingo
if (_system.freeBytes < (50*1024)) then
_movie.halt()
end if
// Syntaxe JavaScript
if (_system.freeBytes < (50*1024)) {
_movie.halt();
}
Voir aussi
Animation
handler()
Utilisation
objetScript.handler(#symboleDeGestionnaire)
Description
Cette fonction renvoie TRUE si l’objetScript donné contient un gestionnaire spécifié et FALSE
dans le cas contraire. L’objet script doit être un script parent, un objet enfant ou un comportement.
Paramètres
symboleDeGestionnaire
Requis. Spécifie le nom du gestionnaire.
Exemple
Le code Lingo suivant appelle un gestionnaire sur un objet, uniquement si le gestionnaire en
question existe :
if objetAraignée.handler(#saut) = TRUE then
objetAraignée.saut()
end if
Voir aussi
handlers(), new(), rawNew(), script()
handlers()
Utilisation
objetScript.handlers()
Description
Cette fonction renvoie une liste linéaire des gestionnaires dans l’objetScript donné. Chaque
nom de gestionnaire est présenté sous forme de symbole dans la liste. Cette fonction est pratique
pour le débogage des animations.
Vous ne pouvez pas accéder directement aux gestionnaires d’un acteur script. Vous devez y
accéder par l’intermédiaire de la propriété script de l’acteur.
383
Paramètres
Aucun.
Exemple
L’instruction suivante affiche la liste des gestionnaires de l’objet enfant voitureRouge dans la
fenêtre Messages :
put voitureRouge.handlers()
-- [#accélérer, #tourner, #arrêter]
L’instruction suivante affiche la liste des gestionnaires du script parent ScriptParentDeVoiture
dans la fenêtre Messages :
put member("ScriptParentDeVoiture").script.handlers()
-- [#accélérer, #tourner, #arrêter]
Voir aussi
handler(), script()
hilite (commande)
Utilisation
expressionSousChaîneChamp.hilite()
hilite expressionSousChaîneChamp
Description
Commande ; sélectionne l’expression de sous-chaîne spécifiée dans l’image-objet champ, qui peut
être n’importe quelle sous-chaîne que Lingo vous permet de définir, telle qu’un caractère, un mot
ou une ligne. Sur Macintosh, la couleur de sélection est définie dans le tableau de bord Couleur.
Paramètres
Aucun.
Exemple
L’instruction suivante sélectionne le troisième mot dans l’acteur champ Commentaires, qui
contient la chaîne Pensée du jour :
member("Commentaires").word[4].hilite()
L’instruction suivante entraîne l’affichage du texte sélectionné dans le champ mesRecettes de
l’image-objet sans surbrillance :
monNombreDeLignes = member("mesRecettes").line.count
member("mesRecettes").line[monNombreDeLignes + 1].hilite()
Voir aussi
char...of, item...of, line...of, word...of, delete(), mouseChar, mouseLine,
mouseWord, field, selection() (fonction), selEnd, selStart
384
Chapitre 12 : Méthodes
hitTest()
Utilisation
-- Syntaxe Lingo
réfObjImageObjet.hitTest(point)
// Syntaxe JavaScript
réfObjImageObjet.hitTest(point);
Description
Fonction ; indique la partie d’une animation Flash se trouvant directement sur un emplacement
spécifique de la scène Director. L’emplacement de la scène Director est exprimé en valeur de
points Director : par exemple, point (100,50). La fonction hitTest renvoie ces valeurs :
•
#background
– L’emplacement spécifié est dans l’arrière-plan de l’image-objet animation
Flash.
•
•
•
– L’emplacement spécifié est dans une image-objet remplie.
#button – L’emplacement spécifié est dans la zone référencée d’un bouton.
#editText – L’emplacement spécifié est dans un champ de texte modifiable Flash.
#normal
Paramètres
point
Requis. Spécifie le point à tester.
Exemple
Le script d’image suivant vérifie si la souris se trouve au-dessus d’un bouton dans une image-objet
animation Flash dans la piste 5 et, le cas échéant, le script définit un champ de texte utilisé pour
afficher un message d’état :
-- Syntaxe Lingo
on exitFrame
if sprite(5).hitTest(_mouse.mouseLoc) = #button then
member("Ligne de message").text = "Cliquez ici pour lire l’animation."
_movie.updatestage()
else
member("message").text = " "
end if
_movie.go(_movie.frame)
end
// Syntaxe JavaScript
function exitFrame() {
var hT = sprite(5).hitTest(_mouse.mouseLoc);
if (hT = "bouton") {
member("Ligne de message").text = "Cliquez ici pour lire l’animation.";
_movie.updatestage();
} else {
member("Ligne de message").text = "";
}
_movie.go(_movie.frame)
}
385
HMStoFrames()
Utilisation
HMStoFrames(hms, cadence, compensé, fractions)
Description
Fonction ; convertit les animations mesurées en heures, minutes et secondes au nombre
équivalent d’images ou convertit un nombre d’heures, minutes et secondes en temps si vous
donnez à l’argument cadence la valeur 1 (1 image = 1 seconde).
Paramètres
hms
Requis. Expression de chaîne qui spécifie le temps sous la forme sHH:MM:SS.FFD, où :
s
Un caractère est utilisé si le temps est inférieur à zéro ou un espace si le temps est
supérieur ou égal à zéro.
HH
Heures.
MM
Minutes.
SS
Secondes.
FF
Indique une fraction de seconde si fractions a la valeur TRUE ou des images si fractions a
la valeur FALSE.
D
Un d est utilisé si composé a la valeur TRUE ou un espace si composé a la valeur FALSE.
cadence
Requis. Spécifie la cadence en images par seconde.
compensé Requis. Expression logique qui détermine si l’image est compensée (TRUE) ou non
(FALSE). Si la chaîne hms se termine par d, le temps est traité comme une image compensée,
quelle que soit la valeur de l’argument compensé.
Requis. Expression logique qui détermine la signification des nombres après les
secondes ; il peut s’agir de fractions de secondes arrondies au centième de seconde le plus proche
(TRUE) ou du nombre d’images résiduelles (FALSE).
fractions
Exemple
L’instruction suivante détermine le nombre d’images dans une animation d’une minute, 30,1
secondes lorsque la cadence est de 30 images par seconde. Les arguments compensé et fractions
ne sont pas utilisés.
put HMStoFrames(" 00:01:30.10 ", 30, FALSE, FALSE)
-- 2710
L’instruction suivante convertit 600 secondes en minutes :
put framesToHMS(600, 1,0,0)
>> -- " 00:10:00.00 "
L’instruction suivante convertit une heure et demie en secondes :
put HMStoFrames("1:30:00", 1,0,0)
>> -- 5400
Voir aussi
framesToHMS()
386
Chapitre 12 : Méthodes
hold()
Utilisation
-- Syntaxe Lingo
réfObjImageObjet.hitTest(point)
// Syntaxe JavaScript
réfObjImageObjet.hitTest(point);
Description
Commande Flash ; arrête une image-objet animation Flash lue dans l’image courante, sans
interrompre la lecture audio.
Paramètres
Aucun.
Exemple
Le script d’image suivant arrête la lecture des images-objets animation Flash dans les pistes 5 à 10
sans interrompre la lecture audio de ces pistes :
-- Syntaxe Lingo
on enterFrame
repeat with i = 5 to 10
sprite(i).hold()
end repeat
end
// Syntaxe JavaScript
function enterFrame() {
var i = 5;
while (i < 11) {
sprite(i).hold();
i++;
}
}
Voir aussi
playRate (QuickTime, AVI)
identity()
Utilisation
member(quelActeur).model(quelModèle).transform.identity()
member(quelActeur).group(quelGroupe).transform.identity()
member(quelActeur).camera(quelleCaméra).transform.identity()
sprite(quelleImageObjet).camera{(index)}.transform.identity()
member(quelActeur).light(quelleLumière).transform.identity()
référenceDeTransformation.identity()
Description
Commande 3D ; fait de la transformation la transformation d’identité, qui est
transform(1.0000,0.0000,0.0000,0.0000, 0.0000,1.0000,0.0000,0.0000,
0.0000,0.0000,1.0000,0.0000, 0.0000,0.0000,0.0000,1.0000).
La propriété position de la transformation d’identité est vector(0, 0, 0).
387
La propriété rotation de la transformation d’identité est vector(0, 0, 0).
La propriété scale de la transformation d’identité est vector(1, 1, 1).
La transformation d’identité est relative au parent.
Paramètres
Aucun.
Exemple
L’instruction suivante fait de la transformation du modèle Boîte la transformation d’identité.
member("Univers 3D").model("Boîte").transform.identity()
Voir aussi
transform (propriété), getWorldTransform()
idleLoadDone()
Utilisation
-- Syntaxe Lingo
_movie.idleLoadDone(entBaliseDeChargement)
// Syntaxe JavaScript
_movie.idleLoadDone(entBaliseDeChargement);
Description
Méthode d’animation ; indique si tous les acteurs ayant la balise spécifiée ont été chargés (TRUE)
ou s’ils doivent encore être chargés (FALSE).
Paramètres
entBaliseDeChargement
Requis. Nombre entier qui spécifie la balise de chargement des acteurs
à tester.
Exemple
L’instruction suivante vérifie si tous les acteurs dont la balise de chargement est 20 ont été chargés
et, le cas échéant, lit l’animation Kiosque :
-- Syntaxe Lingo
if (_movie.idleLoadDone(20)) then
_movie.play(1, "Kiosque")
end if
// Syntaxe JavaScript
if (_movie.idleLoadDone(20)) {
_movie.play(1, "Kiosque");
}
Voir aussi
idleHandlerPeriod, idleLoadMode, idleLoadPeriod, idleLoadTag,
idleReadChunkSize, Animation
388
Chapitre 12 : Méthodes
ignoreWhiteSpace()
Utilisation
objetDanalyseXML.ignoreWhiteSpace(trueOuFalse)
Description
Commande XML ; spécifie si l’objet d’analyse doit ignorer ou conserver les espaces vierges dans
les listes Lingo. Lorsque ignoreWhiteSpace() a pour valeur TRUE (la valeur par défaut), l’objet
d’analyse ignore les espaces vierges. Lorsque cette commande a pour valeur FALSE, l’objet
d’analyse conserve les espaces vierges et les traite comme des données réelles.
Lorsqu’un élément possède des balises initiales et finales distinctes, telles que <exemple>
</exemple>, les caractères de l’élément sont ignorés si (et uniquement si) il n’est composé que
d’espaces vierges. En cas de présence d’un espace autre qu’un espace vierge, ou si
ignoreWhiteSpace() a pour valeur FALSE, un nœud CDATA contenant le même texte y
compris l’espace vierge, sera créé.
Paramètres
trueOuFalse Requis. Valeur qui spécifie si l’objet d’analyse doit ignorer les espaces vierges (TRUE)
ou non (FALSE).
Exemple
Les instructions Lingo suivantes laissent à ignoreWhiteSpace() sa valeur par défaut de TRUE
et convertissent le document XML donné en une liste. L’élément <exemple> ne possède pas
d’enfant dans la liste.
TexteXML = "<exemple> </exemple>"
ObjetDanalyse.parseString(TexteXML)
laListe = ObjetDanalyse.makelist()
put laListe
-- ["ROOT OF XML DOCUMENT": ["!ATTRIBUTES": [:], "exemple": ["!ATTRIBUTES":
[:]]]]
Les instructions Lingo suivantes donnent à ignoreWhiteSpace() la valeur FALSE et convertissent
le document XML donné en une liste. L’élément <exemple> possède maintenant un enfant
contenant un espace.
TexteXML = "<exemple> </exemple>"
objetDanalyse.ignoreWhiteSpace(FALSE)
ObjetDanalyse.parseString(TexteXML)
laListe = ObjetDanalyse.makelist()
put laListe
-- ["ROOT OF XML DOCUMENT": ["!ATTRIBUTES": [:], "exemple": ["!ATTRIBUTES":
[:], "!CHARDATA": " "]]]
Les instructions Lingo suivantes laissent à ignoreWhiteSpace() sa valeur par défaut de TRUE et
analysent le document XML donné. Il n’existe qu’un seul nœud enfant de la balise <exemple>
et qu’un seul nœud enfant de la balise <inf>.
texteXML = "<exemple> <inf> phrase 1 </inf></exemple>"
ObjetDanalyse.parseString(TexteXML)
laListe = objetDanalyse.makeList()
put laListe
-- ["ROOT OF XML DOCUMENT": ["!ATTRIBUTES": [:], "exemple": ["!ATTRIBUTES":
[:], "inf": ["!ATTRIBUTES": [:], "!CHARDATA": " phrase 1 "]]]]
389
Les instructions Lingo suivantes donnent à ignoreWhiteSpace() la valeur FALSE et analysent le
document XML donné. Il existe maintenant deux nœuds enfants de la balise <exemple>, le
premier étant un caractère d’espace.
texteXML = "<exemple> <inf> phrase 1 </inf></exemple>"
gObjetDanalyse.ignoreWhiteSpace(FALSE)
gObjetDanalyse.parseString(texteXML)
laListe = gObjetDanalyse.makeList()
put laListe
-- ["ROOT OF XML DOCUMENT": ["!ATTRIBUTES": [:], "exemple": ["!ATTRIBUTES":
[:], "!CHARDATA": " ", "inf": ["!ATTRIBUTES": [:], "!CHARDATA": " phrase 1
"]]]]
ilk()
Utilisation
ilk(objet)
ilk(objet, type)
Description
Fonction ; indique le type d’un objet.
Le tableau suivant présente la valeur renvoyée pour chaque type d’objet reconnu par ilk() :
390
Type d’objet ilk(objet)
renvoie
ilk(objet, type)
liste linéaire
#list
#list ou #linearlist
ilk ([1,2,3])
liste de
propriétés
#proplist
#list ou #proplist
ilk ([#Alui: 1234, #Aelle: 7890])
entier
#integer
#integer ou #number
ilk (333)
valeur à
virgule
flottante
#float
#float ou #number
ilk (123.456)
chaîne
#string
#string
ilk ("asdf")
rect
#rect
#rect ou #list
ilk (sprite(1).rect)
point
#point
#point ou #list
ilk (sprite(1).loc)
couleur
#color
#color
ilk (sprite(1).color)
date
#date
#date
ilk (the systemdate)
symbole
#symbol
#symbol
ilk (#bonjour)
void
#void
#void
ilk (void)
image
#picture
#picture
ilk (member (2).picture)
instance de
script parent
#instance
#object
ilk (new (script "blabla"))
instance
d’Xtra
#instance
#object
ilk (new (xtra "fileio"))
Chapitre 12 : Méthodes
Exemple
renvoie 1 uniquement si le type =
Type d’objet ilk(objet)
renvoie
ilk(objet, type)
acteur
#member
#object ou #member
ilk (member 1)
Xtra
#xtra
#object ou #xtra
ilk (xtra "fileio")
script
#script
#object ou #script
ilk (script "blabla")
castlib
#castlib
#object ou #castlib
ilk (castlib 1)
image-objet
#sprite
#object ou #sprite
ilk (sprite 1)
son
#instance ou
#instance ou #sound
#sound (lorsque
Exemple
renvoie 1 uniquement si le type =
ilk (sound "tralala")
l’Xtra de
contrôle audio
est absent)
fenêtre
#window
#object ou #window
ilk (the stage)
médias
#media
#object ou #media
ilk (member (2).media)
timeout
#timeout
#object ou #timeout
ilk (timeOut("compteurIntervalle"))
image
#image
#object ou #image
ilk ((the stage).image)
Paramètres
objet
Requis. Spécifie l’objet à tester.
type Facultatif. Spécifie le type par rapport auquel l’objet est comparé. Si l’objet est du type
spécifié, la fonction ilk renvoie la valeur TRUE. Si l’objet n’est pas du type spécifié, la fonction
ilk renvoie la valeur FALSE.
Exemple
L’instruction ilk suivante identifie le type de l’objet appelé Devis :
Devis = [:]
put ilk( Devis )
-- #proplist
L’instruction suivante ilk teste si la variable Total est une liste et affiche le résultat dans la fenêtre
Messages :
Total = 2+2
put ilk( Total, #list )
-- 0
Dans ce cas, étant donné que la variable n’est pas une liste, la fenêtre Messages affiche 0,
l’équivalent numérique de FALSE.
L’exemple suivant teste une variable intitulée maVariable et vérifie qu’elle correspond à un objet
de date avant de l’afficher dans la fenêtre Messages :
maVariable = the systemDate
if ilk(maVariable, #date) then put maVariable
-- date( 1999, 2, 19 )
391
ilk (3D)
Utilisation
ilk(objet)
ilk(objet,type)
objet.ilk
objet.ilk(type)
Description
Fonction Lingo ; indique le type d’un objet.
Le tableau suivant présente la valeur renvoyée pour chaque type d’objet 3D reconnu par ilk().
Le dictionnaire Lingo principal contient une liste des valeurs renvoyées pour les objets autres que
3D.
Type d’objet
ilk(objet) renvoie
ilk(objet, type) uniquement si type =
services de rendu #renderer
#renderer
ressource de
modèle
#modelResource, #plane, #box,
#sphere, #cylinder,
#particle, #mesh
Identique à ilk(objet), à l’exception de
#modelResource qui est équivalent aux
ressources générées par un fichier *.w3d
importé
modèle
#model
#model
mouvement
#motion
#motion ou #list
matériau
#shader
#shader ou #list
texture
#texture
#texture ou #list
groupe
#group
#group
caméra
#camera
#camera
données de
collision
#collisiondata
#collisiondata
vecteurs
#vector
#vector
transformation
#transform
#transform
Paramètres
objet
Requis. Spécifie l’objet à tester.
type Facultatif. Spécifie le type par rapport auquel l’objet est comparé. Si l’objet est du type
spécifié, la fonction ilk renvoie la valeur TRUE. Si l’objet n’est pas du type spécifié, la fonction
ilk renvoie la valeur FALSE.
Exemple
L’instruction suivante indique que monObjet est un objet de mouvement.
put MonObjet.ilk
-- #motion
392
Chapitre 12 : Méthodes
L’instruction suivante vérifie si monObjet est un objet de mouvement. La valeur renvoyée, 1,
indique qu’il s’agit bien d’un tel objet.
put MonObjet.ilk(#motion)
-- 1
Voir aussi
tweenMode
image()
Utilisation
-- Syntaxe Lingo
image(entLargeur, entHauteur, entProfondeurDeBit)
// Syntaxe JavaScript
image(entLargeur, entHauteur, entProfondeurDeBit);
Description
Fonction du niveau supérieur ; crée et renvoie une nouvelle image avec des dimensions spécifiées.
Si vous créez une nouvelle image en utilisant la fonction image() du niveau supérieur, la nouvelle
image est un ensemble de données d'images autonome et elle est indépendante de toutes les autres
images. Les modifications apportées aux autres images n’ont aucune incidence sur la nouvelle
image.
Si vous faites référence à une image en définissant une variable égale à une image source telle
qu’un acteur ou l’image de la scène, la variable contient une référence à l’image source. Une
modification apportée à l’image dans l’objet source ou la variable sera répercutée dans l’autre
image.
Pour éviter ce comportement et créer une copie d’une image indépendante de l’image source,
utilisez la méthode duplicate(). La méthode duplicate() renvoie une copie d’une image
source qui hérite de toutes les valeurs de l’image source, mais qui n’est pas liée à cette dernière.
Par conséquent, une modification apportée à l’image source ou à la nouvelle copie de l’image
source n’aura aucune incidence sur l’autre image.
Si un objet image est créé en référence à un acteur, l’objet contiendra une référence à l’image de
l’acteur. Toutes les modifications apportées à l’image sont répercutées dans l’acteur et dans les
images-objets créées à partir de cet acteur.
Lorsque vous créez un nouvel objet image, par défaut, la couleur d’arrière-plan est blanche
(color(255,255,255)) et la couche alpha est complètement opaque (color(0,0,0)).
La couleur de la couche alpha pour une transparence de 100 % est le blanc (color(255,255,255)) ;
pour une opacité de 100 %, la couleur de la couche alpha est le noir (color(0,0,0)).
Pour un exemple d’utilisation d’une méthode image() dans une animation, reportez-vous à
l’animation Imaging du dossier Learning/Lingo, lui-même inclus dans le dossier de Director.
Paramètres
entLargeur
Requis. Nombre entier qui spécifie la largeur de la nouvelle image.
entHauteur
Requis. Nombre entier qui spécifie la hauteur de la nouvelle image.
393
entProfondeurDeBit Requis. Nombre entier qui spécifie la profondeur de bit de la nouvelle
image. Les valeurs correctes sont 1, 2, 4, 8, 16 et 32.
Exemple
L’exemple suivant crée une image 8 bits d’une largeur de 200 pixels et d’une hauteur de
200 pixels.
-- Syntaxe Lingo
monImage = image(200, 200, 8)
// Syntaxe JavaScript
var objImage = image(200, 200, 8);
L’exemple suivant crée une image en faisant référence à l’image de la scène.
-- Syntaxe Lingo
objImage = _movie.stage.image
// Syntaxe JavaScript
var objImage = _movie.stage.image;
Voir aussi
duplicate() (image), fill(), image (image)
importFileInto()
Utilisation
-- Syntaxe Lingo
réfObjActeur.importFileInto(chaîneFichierOuUrl)
// Syntaxe JavaScript
réfObjActeur.importFileInto(chaîneFichierOuUrl);
Description
Méthode d’acteur ; remplace le contenu d’un acteur donné par un fichier spécifié.
La méthode importFileInto() est pratique dans les situations suivantes.
• Lorsque vous finalisez ou développez une animation, elle permet d’intégrer des médias externes
•
•
liés de façon à pouvoir les modifier pendant le projet.
Lorsque vous créez un scénario à partir d’une syntaxe Lingo ou JavaScript pendant la création
de l’animation, elle permet d’affecter un contenu aux nouveaux acteurs.
Lors du téléchargement de fichiers à partir d’Internet, elle permet de télécharger le fichier à
partir d’une URL spécifique et de définir le nom de fichier du média lié.
Remarque : Pour importer un fichier à partir d’une URL, il est généralement plus efficace de
télécharger d’abord le fichier sur un disque local avec preloadNetThing(), puis de l’importer depuis
le disque local. La fonction preloadNetThing() minimise également les problèmes de
téléchargement potentiels.
• Elle permet d’importer des documents RTF et HTML dans des acteurs texte en gardant le
format et les liens intacts.
L’utilisation de la méthode importFileInto() dans les projections peut rapidement consommer
la mémoire disponible et il est donc plus judicieux de réutiliser, si possible, les mêmes acteurs
pour les données importées.
394
Chapitre 12 : Méthodes
Dans Director et les projections, importFileInto() télécharge automatiquement le fichier.
Dans Shockwave Player, appelez preloadNetThing() et attendez la fin du téléchargement avant
d’utiliser importFileInto() avec le fichier.
Paramètres
chaîneFichierOuUrl Requis. Chaîne qui spécifie le fichier qui remplacera le contenu de l’acteur.
Exemple
Le gestionnaire suivant affecte une URL contenant un fichier GIF à la variable URLtemporaire,
puis utilise la commande importFileInto pour importer le fichier de l’URL dans un nouvel
acteur bitmap :
-- Syntaxe Lingo
on exitFrame
URLtemporaire = "http://www.uneUrl.fr/couronne.gif"
_movie.newMember(#bitmap).importFileInto(URLtemporaire)
end
// Syntaxe JavaScript
function exitFrame() {
var URLtemporaire = "http://www.dukeOfUrl.com/crown.gif";
_movie.newMember("bitmap").importFileInto(URLtemporaire);
}
L’instruction suivante remplace le contenu de l’acteur son Mémoire par le fichier audio Vent :
-- Syntaxe Lingo
member("Mémoire").importFileInto("Vent.wav")
// Syntaxe JavaScript
member("Mémoire").importFileInto("Vent.wav");
Les instructions suivantes téléchargent un fichier externe depuis une URL dans le dossier de
Director et importent ce fichier dans l’acteur son Norma Desmond parle :
-- Syntaxe Lingo
downLoadNetThing("http://www.cbDeMille.com/CinémaParlant.AIF", \
_player.applicationPath & "CinémaParlant.AIF")
member("Norma Desmond parle").importFileInto(_player.applicationPath &
"CinémaParlant.AIF")
// Syntaxe JavaScript
downLoadNetThing("http://www.cbDeMille.com/CinémaParlant.AIF",
_player.applicationPath + "CinémaParlant.AIF");
member("Norma Desmond parle").importFileInto(_player.applicationPath +
"CinémaParlant.AIF");
Voir aussi
downloadNetThing, fileName (fenêtre), Acteur, preloadNetThing()
395
insertBackdrop
Utilisation
sprite(quelleImageObjet).camera{(index)}.insertBackdrop(index, \
texture, emplacementDansLimageObjet, rotation)
member(quelActeur).camera(quelleCaméra).\
insertBackdrop(index, texture, emplacementDansLimageObjet, rotation)
Description
Commande 3D de caméra ; ajoute un fond à la liste des fonds de la caméra, à une position
spécifiée dans la liste.
Paramètres
index Requis. Spécifie la position d’index où le fond est ajouté dans la liste des fonds de la
caméra.
texture
Requis. Spécifie la texture du fond ajouté.
emplacementDansLimageObjet Requis. Emplacement 2D dont le fond est affiché dans l’imageobjet 3D. Cet emplacement est mesuré à partir du coin supérieur gauche de l’image-objet.
rotation
Facultatif. Spécifie la rotation texture du fond ajouté.
Exemple
La première ligne de l’exemple suivant crée une texture nommée Cèdre. La deuxième ligne insère
cette texture à la première position de la liste des fonds de la caméra de l’image-objet 5. Le fond
est placé au point (300, 120), mesuré à partir du coin supérieur gauche de l’image-objet. La
rotation est de 45°.
t1 = member("Scène").texture("Cèdre")
sprite(5).camera.insertBackdrop(1, t1, point(300, 120), 45)
Voir aussi
removeBackdrop, bevelDepth, overlay
insertFrame()
Utilisation
-- Syntaxe Lingo
_movie.insertFrame()
// Syntaxe JavaScript
_movie.insertFrame();
Description
Méthode d’animation ; crée une copie de l’image courante et de son contenu.
L’image copiée est insérée après l’image courante et devient alors l’image courante.
Cette méthode ne peut être utilisée que pendant une session d’enregistrement du scénario et
remplit la même fonction que la méthode duplicateFrame().
Paramètres
Aucun.
396
Chapitre 12 : Méthodes
Exemple
Le gestionnaire suivant crée une image dans laquelle l’acteur transition Brouillard est affecté à la
piste des transitions, suivie d’un groupe d’images vides. L’argument nombreDimages définit ce
nombre d’images.
-- Syntaxe Lingo
on animBalle(nombreDimages)
_movie.beginRecording()
_movie.frameTransition = member("Brouillard").number
_movie.go(_movie.frame +1)
repeat with i = 0 to nombreDimages
_movie.insertFrame()
end repeat
_movie.endRecording()
end animBalle
// Syntaxe JavaScript
function animBalle(nombreDimages) {
_movie.beginRecording();
_movie.frameTransition = member("Brouillard").number;
_movie.go(_movie.frame+1);
for (var i = 0; i <= nombreDimages; i++) {
_movie.insertFrame();
}
_movie.endRecording();
}
Voir aussi
duplicateFrame(), Animation
insertOverlay
Utilisation
sprite(quelleImageObjet).camera{(index)}.insertOverlay(index, \
texture, emplacementDansLimageObjet, rotation)
member(quelActeur).camera(quelleCaméra).\
insertOverlay(index, texture, \
emplacementDansLimageObjet, rotation)
Description
Commande 3D de caméra ; ajoute un recouvrement à la liste des recouvrements de la caméra, à
une position spécifiée dans la liste.
Paramètres
index Requis. Spécifie la position d’index où le recouvrement est ajouté dans la liste des recouvre-
ments de la caméra.
texture
Requis. Spécifie la texture du recouvrement ajouté.
emplacementDansLimageObjet Requis. Emplacement 2D auquel où le recouvrement est affiché
dans l’image-objet 3D. Cet emplacement est mesuré à partir du coin supérieur gauche de l’imageobjet.
rotation
Facultatif. Spécifie la rotation texture du recouvrement ajouté.
397
Exemple
La première ligne de l’exemple suivant crée une texture nommée Cèdre. La deuxième ligne insère
cette texture à la première position de la liste des recouvrements de la caméra de l’image-objet 5.
Le recouvrement est placé au point (300, 120), mesuré à partir du coin supérieur gauche de
l’image-objet. La rotation est de 45°.
t1 = member("Scène").texture("Cèdre")
sprite(5).camera.insertOverlay(1, t1, point(300, 120), 45)
Voir aussi
removeOverlay, overlay, bevelDepth
inside()
Utilisation
point.inside(rectangle)
inside(point, rectangle)
Description
Fonction ; indique si un point donné se trouve à l’intérieur d’un rectangle spécifié (TRUE) ou en
dehors (FALSE).
Paramètres
rectangle
Requis. Spécifie le rectangle qui contient le point à tester.
Exemple
L’instruction suivante indique si le point Centre se trouve à l’intérieur du rectangle Zone et
affiche le résultat dans la fenêtre Messages :
put Centre.inside(Zone)
Voir aussi
map(), mouseH, mouseV, point()
installMenu
Utilisation
installMenu réfObjActeurChamp
Description
Commande ; installe le menu défini dans l’acteur champ spécifié par réfObjActeurChamp. Ces
menus personnalisés n’apparaissent que pendant la lecture de l’animation. Pour les supprimer,
utilisez la commande installMenu sans argument, ou avec 0 comme argument. Cette
commande ne fonctionne pas avec les menus hiérarchiques.
Pour plus de détails sur la définition d’articles de menus dans les acteurs champ, consultez le motclé menu.
Il est conseillé d’éviter la modification fréquente des menus, celle-ci affectant les ressources du
système.
398
Chapitre 12 : Méthodes
Sous Windows, si le menu ne tient pas à l’écran, seule une partie est affichée. Sur Macintosh, vous
pouvez faire défiler les menus qui ne tiennent pas à l’écran.
Remarque : Les menus ne sont pas disponibles dans Shockwave Player.
Paramètres
réfObjActeurChamp
Facultatif. Spécifie l’acteur champ dans lequel un menu est installé.
Exemple
L’instruction suivante installe le menu défini dans l’acteur champ 37 :
installMenu 37
L’instruction suivante installe le menu défini dans l’acteur champ Barre de menu :
installMenu member "Barre de menu"
L’instruction suivante désactive les menus qui ont été installés avec la commande installMenu :
installMenu 0
Voir aussi
menu
integer()
Utilisation
(expressionNumérique).integer
integer(expressionNumérique)
Description
Fonction (Lingo uniquement) ; arrondit la valeur d’une expression au nombre entier le plus
proche.
Vous pouvez forcer un nombre entier en une chaîne avec la fonction string().
Dans la syntaxe JavaScript, utilisez la fonction parseInt().
Paramètres
expressionNumérique
Requis. La valeur numérique à arrondir à un nombre entier.
Exemple
L’instruction suivante arrondit le nombre 3,75 au nombre entier le plus proche :
put integer(3.75)
-- 4
L’instruction suivante arrondit la valeur entre parenthèses. Cela permet de donner une valeur
utilisable à la propriété d’image-objet locH, qui exige un nombre entier :
sprite(1).locH = integer(0.333 * largeurDeScène)
Voir aussi
float(), string()
399
integerP()
Utilisation
expression.integerP
(expressionNumérique).integerP
integerP(expression)
Description
Fonction (Lingo uniquement) ; indique si une expression spécifiée est un entier (1 ou TRUE) ou
non (0 ou FALSE). Le P de la fonction integerP signifie prédicat.
Paramètres
expression
Requis. Expression à tester.
Exemple
L’instruction suivante vérifie si le nombre 3 est un entier et affiche 1 (TRUE) dans la fenêtre
Messages :
put(3).integerP
-- 1
L’instruction suivante vérifie si le nombre 3 est un entier. Puisque le nombre 3 est entouré de
guillemets droits, il n’est pas considéré comme un entier et 0 (FALSE) est affiché dans la fenêtre
Messages :
put("3").integerP
-- 0
L’instruction suivante vérifie si la valeur numérique de la chaîne de l’acteur champ Saisie est un
entier et affiche une alerte si ce n’est pas le cas :
if field("Saisie").value.integerP = FALSE then alert "Saisissez un entier."
Voir aussi
floatP(), integer(), ilk(), objectP(), stringP(), symbolP()
interface()
Utilisation
xtra("nomDeLxtra").interface()
interface(xtra "nomDeLxtra")
Description
Fonction ; renvoie une chaîne délimitée par des retours chariot décrivant l’Xtra et fournissant une
liste de ses méthodes. Cette fonction remplace maintenant la fonction obsolète mMessageList.
Paramètres
Aucun.
Exemple
L’instruction suivante affiche les données produites par cette fonction utilisée avec l’Xtra
QuickTime Asset dans la fenêtre Messages :
put Xtra("QuickTimeSupport").interface()
400
Chapitre 12 : Méthodes
interpolate()
Utilisation
transformation1.interpolate(transformation2,pourcentage)
Description
Méthode 3D transform ; renvoie une copie de transformation1 créée par l’interpolation
de la position et de la rotation de transformation1 et de la position et de la rotation de
transformation2, en fonction du pourcentage spécifié. La transformation1 d’origine n’est
pas affectée. Pour interpoler transformation1, utilisez interpolateTo().
Pour effectuer l’interpolation manuellement, multipliez la différence des deux nombres par le
pourcentage. Par exemple, l’interpolation de 4 à 8 par 50 % donne 6.
Exemple
Dans l’exemple suivant, tBoîte est la transformation du modèle nommé Boîte et tSphère est la
transformation du modèle nommé Sphère. La troisième ligne de l’exemple interpole une copie
de la transformation de Boîte à mi-chemin jusqu’à la transformation de Sphère.
tBoîte = member("Univers 3D").model("Boîte").transform
tSphère = member("Univers 3D").model("Sphère").transform
tNouv = tBoîte.interpolate(tSphère, 50)
Voir aussi
interpolateTo()
interpolateTo()
Utilisation
transformation1.interpolateTo(transformation2, pourcentage)
Description
Méthode 3D transform ; modifie transformation1 en interpolant la position et la rotation de
transformation1 par la position et la rotation d’une nouvelle transformation en fonction d’un
pourcentage spécifié. La transformation1 d’origine est changée. Pour interpoler une copie de
transformation1, utilisez la fonction interpolate().
Pour effectuer l’interpolation manuellement, multipliez la différence des deux nombres par le
pourcentage. Par exemple, l’interpolation de 4 à 8 par 50 % donne 6.
Paramètres
transformation2 Requis. Spécifie la transformation résultant de l’interpolation d’une
transformation donnée.
pourcentage
Requis. Spéifie le pourcentage de rotation de transformation2.
401
Exemple
Dans l’exemple suivant, tBoîte est la transformation du modèle nommé Boîte et tSphère est la
transformation du modèle nommé Sphère. La troisième ligne de l’exemple interpole la transformation de Boîte à mi-chemin jusqu’à la transformation de Sphère.
tBoîte = member("Univers 3D").model("Boîte").transform
tSphère = member("Univers 3D").model("Sphère").transform
tBoîte.interpolateTo(tSphère, 50)
Voir aussi
interpolate()
intersect()
Utilisation
rectangle1. intersect(rectangle2)
intersect(rectangle1, rectangle2)
Description
Fonction ; détermine le rectangle formé par l’intersection de deux rectangles.
Paramètres
rectangle2
Requis. Spécifie le second rectangle du test d’intersection.
Exemple
Cette instruction affecte la variable nouveauRectangle au rectangle formé par l’intersection du
rectangle Outils avec le rectangle Rampe :
nouveauRectangle = Outils.intersect(Rampe)
Voir aussi
map(), rect(), union()
inverse()
Utilisation
member(quelActeur).model(quelModèle).transform.inverse()
member(quelActeur).group(quelGroupe).transform.inverse()
member(quelActeur).camera(quelleCaméra).transform.inverse()
sprite(quelleImageObjet).camera{(index)}.transform.inverse()
member(quelActeur).light(quelleLumière).transform.inverse()
référenceDeTransformation.inverse()
Description
Méthode 3D transform ; renvoie une copie de la transformation, avec ses propriétés de position
et de rotation inversées.
Cette méthode ne change pas la transformation d’origine. Pour inverser la transformation
d’origine, utilisez la fonction invert().
Paramètres
Aucun.
402
Chapitre 12 : Méthodes
Exemple
L’instruction suivante inverse une copie de la transformation du modèle Fauteuil.
boxInv = member("Univers 3D").model("Fauteuil").transform.inverse()
Voir aussi
invert()
invert()
Utilisation
member(quelActeur).model(quelModèle).transform.invert()
member(quelActeur).group(quelGroupe).transform.invert()
member(quelActeur).camera(quelleCaméra).transform.invert()
sprite(quelleImageObjet).camera{(index)}.transform.invert()
member(quelActeur).light(quelleLumière).transform.invert()
référenceDeTransformation.invert()
Description
Méthode 3D transform ; inverse les propriétés de position et de rotation de la transformation.
Cette méthode change la transformation d’origine. Pour inverser une copie de la transformation
d’origine, utilisez la fonction inverse().
Paramètres
Aucun.
Exemple
L’instruction suivante inverse la transformation du modèle Boîte.
member("Univers 3D").model("Boîte").transform.invert()
Voir aussi
inverse()
isBusy()
Utilisation
-- Syntaxe Lingo
réfObjPisteAudio.isBusy()
// Syntaxe JavaScript
réfObjPisteAudio.isBusy();
Description
Méthode de piste audio ; détermine si un son est lu (TRUE) ou non (FALSE) sur une piste audio.
Vérifiez d’abord que la tête de lecture a bougé avant d’utiliser isBusy() pour vérifier la piste
audio. Si cette fonction continue de renvoyer la valeur FALSE après la lecture présumée d’un son,
ajoutez la méthode updateStage() pour démarrer la lecture du son avant que la tête de lecture
ne se remette à bouger.
403
Cette méthode fonctionne avec les pistes audio occupées par des acteurs son réels. Dans la mesure
où les composants audio QuickTime, Flash et Shockwave gèrent le son différemment, cette
méthode ne peut pas fonctionner avec ces types de médias.
Il est conseillé d’utiliser la propriété status d’une piste audio, plutôt que la propriété isBusy().
La propriété status s’avère plus appropriée dans la plupart des cas.
Paramètres
Aucun.
Exemple
L’instruction suivante vérifie si un son est lu dans la piste audio 1 et, le cas échéant, effectue une
lecture en boucle dans l’image. Cela permet au son d’être lu en entier avant que la tête de lecture
ne passe à une autre image.
-- Syntaxe Lingo
if (sound(1).isBusy()) then
_movie.go(_movie.frame)
end if
// Syntaxe JavaScript
if (sound(1).isBusy()) {
_movie.go(_movie.frame);
}
Voir aussi
status, Piste audio
isInWorld()
Utilisation
member(quelActeur).model(quelModèle).isInWorld()
member(quelActeur).camera(quelleCaméra).isInWorld()
member(quelActeur).light(quelleLumière).isInWorld()
member(quelActeur).group(quelGroupe).isInWorld()
Description
Commande 3D ; renvoie la valeur TRUE si la hiérarchie parent du modèle, de la caméra, de la
lumière ou du groupe se termine dans l’univers. Si la valeur de isInWorld est TRUE, le modèle, la
caméra, la lumière, ou le groupe, fonctionne dans l’univers 3D de l’acteur.
Les modèles, caméras, lumières et groupes peuvent être enregistrés dans un acteur 3D mais ne
peuvent pas être utilisés dans son univers 3D. Utilisez les commandes addToWorld et
removeFromWorld pour ajouter et supprimer des modèles, des caméras, des lumières et des
groupes de l’univers 3D de l’acteur.
Paramètres
Aucun.
404
Chapitre 12 : Méthodes
Exemple
L’instruction suivante indique que le modèle Théière existe dans l’univers 3D de l’acteur
scèneDeTable.
put member("ScèneDeTable").model("Théière").isInWorld()
-- 1
Voir aussi
addToWorld, removeFromWorld, child (3D)
isPastCuePoint()
Utilisation
-- Syntaxe Lingo
réfObjImageObjet.isPastCuePoint(IDduRepère)
// Syntaxe JavaScript
réfObjImageObjet.isPastCuePoint(IDduRepère);
Description
Fonction ; détermine si une piste d’image-objet ou une piste audio est passée par un point de
repère spécifié dans ses médias. Cette fonction peut être utilisée avec les fichiers audio (WAV,
AIFF, SND, SWA, AU), QuickTime ou Xtra supportant les points de repère.
Remplacez réfObjImageObjet par une piste d’image-objet ou une piste audio. Les sons
Shockwave Audio (SWA) peuvent apparaître sous forme d’images-objets dans les pistes d’imagesobjets, mais sont lus dans les pistes audio. Il est conseillé de faire référence aux images-objets
audio SWA par le numéro de leur piste d’image-objet plutôt que par celui de leur piste audio.
Remplacez IDduRepère par une référence à un point de repère :
• Si IDduRepère est un entier, isPastCuePoint renvoie 1 si le point de repère a été dépassé et 0
•
dans le cas contraire.
Si IDduRepère est un nom, isPastCuePoint renvoie le nombre de points de repère dépassés
portant ce nom.
Si la valeur spécifiée pour IDduRepère n’existe pas dans l’image-objet ou le son, la fonction
renvoie 0.
Le nombre renvoyé par isPastCuePoint est basé sur la position absolue de l’image-objet dans
son média. Par exemple, lorsqu’un son dépasse le point de repère Principal, puis se met en boucle
et dépasse de nouveau ce point de repère, isPastCuePoint renvoie 1 au lieu de 2.
Lorsque le résultat de isPastCuePoint est traité comme un opérateur booléen, la fonction
renvoie la valeur TRUE si un point identifié par IDduRepère a été dépassé et FALSE si ce n’est pas le
cas.
Paramètres
Requis. Chaîne ou nombre entier qui spécifie le nom ou le numéro du point de
repère spécifié.
IDduRepère
405
Exemple
L’instruction suivante lit un son jusqu’au troisième passage sur le point de repère Fin du choeur :
-- Syntaxe Lingo
if (sound(1).isPastCuePoint("Fin du chœur")=3) then
sound(1).stop()
end if
// Syntaxe JavaScript
var fc = sound(1).isPastCuePoint("Fin du chœur");
if (fc == 3) {
sound(1).stop();
}
L’exemple suivant permet d’afficher dans l’acteur « champ 2 » des informations concernant la
lecture de la musique sur la piste audio 1. Si le point de repère « Apogée » n’a pas encore été
atteint, le texte de « champ 2 » est « Début du morceau. » Sinon, le texte est « Fin du morceau. »
-- Syntaxe Lingo
if not sound(1).isPastCuePoint("Apogée") then
member("champ 2").text = "Début du morceau."
else
member("champ 2").text = "Fin du morceau."
end if
// Syntaxe JavaScript
var fc = sound(1).isPastCuePoint("Apogée");
if (cmx != 1) {
member("champ 2").text = "Début du morceau.";
} else {
member("champ 2").text = "Fin du morceau.";
}
keyPressed()
Utilisation
-- Syntaxe Lingo
_key.keyPressed({codeOuCaractèreDeTouche})
// Syntaxe JavaScript
_key.keyPressed({codeOuCaractèreDeTouche});
Description
Méthode de touche ; renvoie la chaîne de caractères affectée à la dernière touche activée ou,
éventuellement, indique si une touche spécifiée a été activée.
Si le paramètre codeOuCaractèreDeTouche est omis, cette méthode renvoie la chaîne de
caractères affectée à la dernière touche activée. Si aucune touche n’a été activée, elle renvoie une
chaîne vide.
Lorsque le paramètre codeOuCaractèreDeTouche est utilisé pour spécifier la touche actuellement
activée, cette méthode renvoie TRUE si l’utilisateur appuie sur cette touche spécifique ou FALSE
dans le cas contraire.
Cette méthode est mise à jour lorsque l’utilisateur appuie sur des touches pendant une boucle
repeat (Lingo) ou for (syntaxe JavaScript). Elle présente un avantage par rapport à la propriété
key, qui n’est pas mise à jour pendant une boucle repeat ou for.
406
Chapitre 12 : Méthodes
Utilisez l’animation Clavier et Lingo pour tester la correspondance entre les caractères et les
touches sur différents claviers.
Paramètres
codeOuCaractèreDeTouche
Facultatif. Code de touche ou chaîne de caractères ASCII à tester.
Exemple
L’instruction suivante vérifie si l’utilisateur a appuyé sur la touche Entrée sous Windows ou sur la
touche Retour du Macintosh et, le cas échéant, exécute le gestionnaire miseAjourDesDonnées :
-- Syntaxe Lingo
if (_key.keyPressed(RETURN)) then
miseAjourDesDonnées
end if
// Syntaxe JavaScript
if (_key.keyPressed(36)) {
miseAjourDesDonnées();
}
L'instruction suivante utilise le code de la touche a pour vérifier si elle est enfoncée et affiche le
résultat dans la fenêtre Messages :
-- Syntaxe Lingo
if (_key.keyPressed(0)) then
put("La touche est enfoncée")
end if
// Syntaxe JavaScript
if (_key.keyPressed(0)) {
put("La touche est enfoncée");
}
L’instruction suivante utilise les chaînes ASCII pour vérifier si les touches a et b sont enfoncées et
affiche le résultat dans la fenêtre Messages :
-- Syntaxe Lingo
if (_key.keyPressed("a") and _key.keyPressed("b")) then
put("Les deux touches sont enfoncées")
end if
// Syntaxe JavaScript
if (_key.keyPressed("a") && _key.keyPressed("b")) {
put("Les deux touches sont enfoncées");
}
Voir aussi
Touche, key, keyCode
407
label()
Utilisation
-- Syntaxe Lingo
_movie.label(chaîneNomDeRepère)
// Syntaxe JavaScript
_movie.label(chaîneNomDeRepère);
Description
Méthode d’animation ; indique l’image associée à un libellé de repère.
Le paramètre chaîneNomDeRepère doit être un libellé dans l’animation courante. Si ce n’est pas le
cas, cette méthode renvoie 0.
Paramètres
chaîneNomDeRepère
Requis. Chaîne qui spécifie le nom du libellé de repère associé à une image.
Exemple
L’instruction suivante place la tête de lecture sur la dixième image après le repère intitulé Début :
-- Syntaxe Lingo
_movie.go(_movie.label("Début") + 10)
// Syntaxe JavaScript
_movie.go(_movie.label("Début") + 10);
Voir aussi
frameLabel, go(), labelList, Animation
last()
Utilisation
the last sousChaîne of ( expressionSousChaîne )
the last sousChaîne in (expressionSousChaîne)
Description
Fonction ; identifie la dernière sous-chaîne dans une expression de sous-chaîne.
Les expressions de sous-chaînes peuvent correspondre à tout caractère, mot, élément ou ligne
extrait d’un conteneur de caractères. Les conteneurs peuvent être des acteurs champ, des variables
contenant des chaînes, et les caractères, mots, lignes et plages spécifiés dans les conteneurs.
Paramètres
expressionSousChaîne
Requis. Spécifie l’expression de sous-chaîne qui contient la dernière
sous-chaîne.
Exemple
L’instruction suivante identifie le dernier mot de la chaîne Macromedia, la société multimédia et
affiche le résultat dans la fenêtre Messages :
put the last word of "Macromedia, la société multimédia"
Le résultat est le mot multimédia.
408
Chapitre 12 : Méthodes
L’instruction suivante identifie le dernier caractère de la chaîne Macromedia, la société
multimédia et affiche le résultat dans la fenêtre Messages :
put last char("Macromedia, la société multimédia")
Le résultat est la lettre a.
Voir aussi
char...of, word...of
lastClick()
Utilisation
the lastClick
Description
Fonction ; renvoie le nombre de battements (1 battement = 1/60ème de seconde) écoulés depuis
le dernier clic de la souris.
Cette fonction peut être testée, mais pas définie.
Paramètres
Aucun.
Exemple
L’instruction suivante vérifie si 10 secondes se sont écoulées depuis le dernier clic de la souris et, le
cas échéant, fait passer la tête de lecture sur le repère Pas de clic :
if the lastClick > 10 * 60 then go to "Pas de clic"
Voir aussi
lastEvent(), lastKey, lastRoll, milliseconds
lastEvent()
Utilisation
the lastEvent
Description
Fonction ; renvoie le nombre de battements (1 battement = 1/60ème de seconde) écoulés depuis
la dernière fois où l’utilisateur a appuyé sur le bouton de la souris, a survolé un élément avec la
souris ou a appuyé sur une touche.
Paramètres
Aucun.
409
Exemple
L’instruction suivante vérifie si 10 secondes se sont écoulées depuis la dernière fois où l’utilisateur
a appuyé sur le bouton de la souris, a survolé un élément avec la souris ou a appuyé sur une
touche. Si c’est le cas, la tête de lecture est placée sur le repère Aide :
if the lastEvent > 10 * 60 then go to "Aide"
Voir aussi
lastClick(), lastKey, lastRoll, milliseconds
length()
Utilisation
chaîne.length
length(chaîne)
Description
Fonction ; renvoie le nombre de caractères de la chaîne spécifiée par chaîne, y compris les espaces
et les caractères de contrôle tels que Tab et Retour.
Paramètres
Aucun.
Exemple
L’instruction suivante affiche le nombre de caractères de la chaîne « Macro »&« media » :
put ("Macro" & "media").length
-- 10
L’instruction suivante vérifie si le contenu de l’acteur champ Nom de fichier contient plus de 31
caractères et, le cas échéant, affiche un message d’alerte :
-- Syntaxe Lingo
if member("Nom de fichier").text.length > 31 then
alert "Ce nom de fichier est trop long."
end if
// Syntaxe JavaScript
if (member("Nom de fichier").text.length > 31) {
alert ("Ce nom de fichier est trop long.");
}
Voir aussi
chars(), offset() (fonction de chaîne)
light()
Utilisation
member(quelActeur).light(quelleLumière)
member(quelActeur).light[index]
member(quelActeur).light(quelleLumière).quellePropriétéDeLumière
member(quelActeur).light[index].quellePropriétéDeLumière
Description
Elément 3D ; objet à une position de vecteur à partir de laquelle la lumière émane.
410
Chapitre 12 : Méthodes
Pour une liste complète des propriétés et des méthodes, consultez les rubriques Utilisation de
Director dans le panneau d’aide de Director.
Exemple
L’exemple suivant indique les deux façons de faire référence à une lumière. La première ligne
utilise une chaîne entre parenthèses et la seconde utilise un nombre entre crochets. La chaîne
correspond au nom de la lumière et le nombre à la position de la lumière dans la liste des lumières
de l’acteur.
cetteLumière = member("Univers 3D").light("spot01")
cetteLumière = member("Univers 3D").light[2]
Voir aussi
newLight, deleteLight
lineHeight()
Utilisation
-- Syntaxe Lingo
réfObjActeur.lineHeight(numéroDeLigne)
// Syntaxe JavaScript
réfObjActeur.lineHeight(numéroDeLigne);
Description
Fonction ; renvoie la hauteur, en pixels, d’une ligne spécifique dans un acteur champ spécifié.
Paramètres
numéroDeLigne
Requis. Nombre entier qui spécifie la ligne à mesurer.
Exemple
Cette instruction détermine la hauteur, en pixels, de la première ligne de l’acteur champ
Nouvelles du jour et affecte le résultat à la variable titre :
-- Syntaxe Lingo
titre = member("Nouvelles du jour").lineHeight(1)
// Syntaxe JavaScript
var titre = member("Nouvelles du jour").lineHeight(1);
linePosToLocV()
Utilisation
-- Syntaxe Lingo
réfObjActeur.linePosToLocV(numéroDeLigne)
// Syntaxe JavaScript
réfObjActeur.linePosToLocV(numéroDeLigne);
Description
Fonction ; renvoie la distance, en pixels, d’une ligne spécifique à partir du bord supérieur de
l’acteur champ spécifié.
411
Paramètres
numéroDeLigne
Requis. Nombre entier qui spécifie la ligne à mesurer.
Exemple
Cette instruction mesure la distance, en pixels, entre la deuxième ligne de l’acteur champ
Nouvelles du jour et le bord supérieur de l’acteur et affecte le résultat à la variable
débutDeChaîne :
-- Syntaxe Lingo
débutDeChaîne = member("Nouvelles du jour").linePosToLocV(2)
// Syntaxe JavaScript
var débutDeChaîne = member("Nouvelles du jour").linePosToLocV(2);
linkAs()
Utilisation
unActeur.linkAs()
Description
Fonction d’acteur script ; ouvre une boîte de dialogue d’enregistrement, permettant d’enregistrer
le contenu du script dans un fichier externe. L’acteur script est alors lié à ce fichier.
Les scripts liés sont importés dans l’animation lorsque vous les enregistrez comme projection ou
comme animation avec un contenu Shockwave. Ceci diffère des autres médias liés, qui restent
externes à l’animation, à moins que vous ne les importiez explicitement.
Paramètres
Aucun.
Exemple
L’instruction suivante, saisie dans la fenêtre Messages, ouvre une boîte de dialogue
d’enregistrement, permettant d’enregistrer le script Mouvement aléatoire comme fichier externe :
member("Mouvement aléatoire").linkAs()
importFileInto, linked
list()
Utilisation
-- Syntaxe Lingo
list()
[]
list(valeurDeChaîne1, valeurDeChaîne2, ...)
[valeurDeChaîne1, valeurDeChaîne2, ...]
// Syntaxe JavaScript
list();
list(valeurDeChaîne1, valeurDeChaîne2, ...);
Description
Fonction du niveau supérieur ; crée une liste linéaire.
412
Chapitre 12 : Méthodes
Lorsque vous créez une liste en utilisant la syntaxe list(), avec ou sans paramètres, les valeurs de
la liste sont indexées à partir de 1.
Lorsque vous créez une liste en utilisant la syntaxe [], avec ou sans paramètres, les valeurs de la
liste sont indexées à partir de 0.
La longueur maximale d’une ligne de script exécutable est de 256 caractères. Il n’est pas possible
de créer des listes importantes avec list(). Pour créer une liste contenant une grande quantité de
données, mettez les données entre crochets ([]), placez-les dans un champ, puis affectez le champ
à une variable. Le contenu de cette variable deviendra une liste des données.
Paramètres
valeurDeChaîne1, valeurDeChaîne2 ...
Facultatif. Liste de chaînes qui spécifient les valeurs
initiales dans la liste.
Exemple
L’instruction suivante associe la variable Designers à une liste linéaire contenant les noms Jean,
Pierre et Marc :
-- Syntaxe Lingo
designers = list("Jean", "Pierre", "Marc") – utilisation de list()
designers = ["Jean", "Pierre", "Marc"] – utilisation de crochets
// Syntaxe JavaScript
var designers = list("Jean", "Pierre", "Marc");
Voir aussi
propList()
listP()
Utilisation
listP(élément)
Description
Fonction ; indique si un élément spécifié est une liste, un rectangle ou un point (1 ou TRUE) ou
non (0 ou FALSE).
Paramètres
élément
Requis. Spécifie l’élément à tester.
Exemple
L’instruction suivante vérifie si la liste contenue dans la variable designers est une liste, un
rectangle ou un point et affiche le résultat dans la fenêtre Messages :
put listP(designers)
Le résultat est 1, équivalent numérique de TRUE.
Voir aussi
ilk(), objectP()
413
loadFile()
Utilisation
member(quelActeur).loadFile(nomDeFichier {, écraser?, \
générerDesNomsUniques?})
Description
Commande d’acteur 3D ; importe les actifs d’un fichier *.w3d dans un acteur.
La propriété state de l’acteur doit avoir pour valeur -1 (erreur) ou 4 (chargé) avant l’utilisation
de la commande loadFile.
Paramètres
nomDeFichier
Requis. Spécifie le fichier *.w3d qui contient les actifs à importer.
écraser? Facultatif. Indique si les actifs du fichier *.w3d remplacent ceux de l’acteur (TRUE) ou
s’ils sont ajoutés à ceux de l’acteur (FALSE). La valeur par défaut de écraser? est TRUE.
générerDesNomsUniques? Facultatif. Si ce paramètre a pour valeur TRUE, tout élément du fichier
*.w3d portant le même nom qu’un élément correspondant de l’acteur sera renommé. S’il a pour
valeur FALSE, les éléments de l’acteur seront remplacés par les éléments correspondants ayant le
même nom dans le fichier *.w3d. La valeur par défaut de générerDesNomsUniques? est TRUE.
Exemple
L’instruction suivante importe le contenu du fichier Camion.w3d dans l’acteur Route. Le
contenu de Camion.w3d sera ajouté au contenu de Route. Si certains objets importés ont le
même nom que des objets déjà présents dans Route, Director leur donnera un nouveau nom.
member("Route").loadFile("Camion.w3d", FALSE, TRUE)
L’instruction suivante importe le contenu du fichier Chevy.w3d dans l’acteur Route. Chevy.w3d
se trouve dans un dossier Modèles, un niveau au-dessous de l’animation. Le contenu de Route
sera remplacé par celui de Chevy.w3d. Le troisième paramètre n’a aucune importance étant
donné que la valeur du second paramètre est TRUE.
member("Route").loadFile(the moviePath & "Modèles\Chevy.w3d", \
TRUE, TRUE)
Voir aussi
state (3D)
locToCharPos()
Utilisation
-- Syntaxe Lingo
réfObjActeur.locToCharPos(emplacement)
// Syntaxe JavaScript
réfObjActeur.locToCharPos(emplacement);
Description
Fonction ; renvoie le numéro du caractère de l’acteur champ spécifié qui est le plus proche d’un
point dans le champ.
414
Chapitre 12 : Méthodes
La valeur 1 correspond au premier caractère de la chaîne, la valeur 2 au second caractère de cette
chaîne, et ainsi de suite.
Paramètres
emplacement Requis. Point à l’intérieur de l’acteur champ. La valeur de emplacement est un
point calculé par rapport au coin supérieur gauche de l’acteur champ.
Exemple
L’instruction suivante détermine le caractère le plus proche du point situé à 100 pixels sur la
droite et à 100 pixels en dessous du coin supérieur gauche de l’acteur champ Nouvelles du jour.
Elle affecte ensuite le résultat à la variable MiseEnPage.
-- Syntaxe Lingo
miseEnPage = member("Nouvelles du jour").locToCharPos(point(100, 100))
// Syntaxe JavaScript
var miseEnPage = member("Nouvelles du jour").locToCharPos(point(100, 100));
locVToLinePos()
Utilisation
-- Syntaxe Lingo
réfObjActeur.locVToLinePos(locV)
// Syntaxe JavaScript
réfObjActeur.locVToLinePos(locV);
Description
Fonction ; renvoie le numéro de la ligne de caractères apparaissant à une position verticale
spécifiée.
Paramètres
emplacementV Requis. Spécifie la position verticale de la ligne de caractères. Cette valeur
correspond au nombre de pixels depuis le haut de l’acteur champ, et non depuis la partie de
l’acteur champ actuellement affichée sur la scène.
Exemple
L’instruction suivante détermine la ligne de caractères qui apparaît à 150 pixels du haut de
l’acteur champ Nouvelles du jour et affecte le résultat à la variable sautDePage:
-- Syntaxe Lingo
sautDePage = member("Nouvelles du jour").locVToLinePos(150)
// Syntaxe JavaScript
var sautDePage = member("Nouvelles du jour").locVToLinePos(150);
415
log()
Utilisation
log(nombre)
Description
Fonction mathématique (Lingo uniquement) ; calcule le logarithme naturel d’un nombre
spécifié.
Dans la syntaxe JavaScript, utilisez la fonction log() de l’objet Math.
Paramètres
nombre Requis. Valeur numérique à partir de laquelle le logarithme naturel est calculé. Il doit
s’agir d’un nombre entier supérieur à 0.
Exemple
L’instruction suivante affecte le logarithme naturel de 10,5 à la variable Réponse.
Réponse = log(10.5)
Exemple
L’instruction suivante calcule le logarithme de la racine carrée de la valeur Nombre et affecte le
résultat à la variable Réponse :
Réponse = log(Nombre.sqrt)
makeList()
Utilisation
-- Syntaxe Lingo
objetDanalyse.makeList()
// Syntaxe JavaScript
objetDanalyse.makeList();
Description
Fonction ; renvoie une liste de propriétés basée sur le document XML analysé à l’aide de
parseString() ou parseURL().
Paramètres
Aucun.
416
Chapitre 12 : Méthodes
Exemple
Le gestionnaire suivant analyse un document XML et renvoie la liste résultante :
-- Syntaxe Lingo
on conversionEnListe chaîneXML
objetDanalyse = new(xtra "xmlparser")
codeErreur = objetDanalyse.parseString(chaîneXML)
chaîneDerreur = ObjetDanalyse.getError()
if voidP(chaîneDerreur) then
listeAnalysée = objetDanalyse.makeList()
else
alert "Désolé. Une erreur est survenue" && chaîneDerreur
exit
end if
return listeAnalysée
end
// Syntaxe JavaScript
function conversionEnListe(chaîneXML) {
objetDanalyse = new Xtra("xmlparser"); // vérifier la syntaxe
codeErreur = objetDanalyse.parseString(chaîneXML);
chaîneDerreur = objetDanalyse.getError();
if (voidP(chaîneDerreur)) {
listeAnalysée = objetDanalyse.makeList();
} else {
alert ("Désolé. Une erreur est survenue" + chaîneDerreur);
return FALSE;
}
return listeAnalysée;
}
Voir aussi
makeSubList()
makeScriptedSprite()
Utilisation
-- Syntaxe Lingo
réfObjPisteDimageObjet.makeScriptedSprite({réfObjActeur, emplacement})
// Syntaxe JavaScript
réfObjPisteDimageObjet.makeScriptedSprite({réfObjActeur, emplacement});
Description
Méthode de piste d’image-objet ; bascule le contrôle d’une piste d'image-objet du scénario vers le
script et place éventuellement une image-objet d’un acteur donné à un emplacement spécifié sur
la scène.
Appelez removeScriptedSprite() pour basculer de nouveau le contrôle de l’image-objet vers le
scénario.
417
Paramètres
réfObjActeur Facultatif. Référence à l’acteur à partir duquel une image-objet contrôlée par
script est créée. Si vous founissez seulement ce paramètre, l’image-objet est placée au centre de la
scène.
Facultatif. Point qui spécifie l’emplacement de la scène où est placée l’image-objet
contrôlée par script.
emplacement
Exemple
L’instruction suivante crée une image-objet scriptée dans la piste des images-objets 5 à partir de
l’acteur intitulé cerf-volant et la place à un point spécifique de la scène :
-- Syntaxe Lingo
channel(5).makeScriptedSprite(member("cerf-volant"), point(35, 70))
// Syntaxe JavaScript
channel(5).makeScriptedSprite(member("cerf-volant"), point(35, 70));
Voir aussi
removeScriptedSprite(), Piste d’image-objet
makeSubList()
Utilisation
nœudXML.makeSubList()
Description
Fonction ; renvoie une liste de propriétés d’un nœud enfant de la même façon que makeList()
renvoie la racine d’un document XML sous la forme d’une liste.
Paramètres
Aucun.
Exemple
Avec le code XML suivant :
<?xml version="1.0"?>
<e1>
<nomDeBalise attr1="val1" attr2="val2"/>
<e2>élém 2</e2>
<e3>élém 3</e3>
</e1>
L’instruction suivante renvoie une liste de propriétés constituée du contenu du premier enfant de
la balise <e1> :
put gObjetDanalyse.child[ 1 ].child[ 1 ].makeSubList()
-- ["nomDeBalise": ["!ATTRIBUTES": ["attr1": "val1", "attr2": "val2"]]]
Voir aussi
makeList()
418
Chapitre 12 : Méthodes
map()
Utilisation
map(rectCible, rectSource, rectDeDestination)
map(pointCible, rectSource, rectDeDestination)
Description
Fonction ; permet de positionner et de dimensionner un rectangle ou un point en fonction du
rapport existant entre un rectangle source et un rectangle cible.
La relation de la valeur pointCible avec la valeur rectSource contrôle la relation du résultat de
la fonction avec rectDeDestination.
Paramètres
rectCible
Requis. Rectangle cible dans la relation.
pointCible
Requis. Point cible dans la relation.
rectSource
Requis. Rectangle source dans la relation.
rectDeDestination
Requis. Rectangle de destination.
Exemple
Dans le comportement suivant, toutes les images-objets ont déjà été définies comme déplaçables.
L’image-objet 2b contient un petit bitmap. L’image-objet 1s est une image-objet de forme
rectangulaire, suffisamment grande pour contenir facilement l’image-objet 2b. L’image-objet 4b
est une version plus grande du bitmap compris dans l’image-objet 2b. L’image-objet 3s est une
version plus grande de la forme comprise dans l’image-objet 1s. Le déplacement des imagesobjets 2b ou 1s entraîne le déplacement de l’image-objet 4b. Lorsque vous faites glisser l’imageobjet 2b, ses mouvements sont copiés par l’image-objet 4b. Lorsque vous faites glisser l’imageobjet 1s, l’image-objet 4b se déplace dans la direction opposée. Le redimensionnement de
l’image-objet 2b ou 1s produira des résultats intéressants.
on exitFrame
sprite(4b).rect = map(sprite(2b).rect, sprite(1s).rect, sprite(3s).rect)
go the frame
end
map (3D)
Utilisation
member(quelActeur).motion(quelMouvement).\
map(quelAutreMouvement {, nomDeSegment})
Description
Commande de mouvement 3D ; mappe un mouvement spécifié sur le mouvement courant et
l’applique à un segment et à tous les enfants de ce dernier. Cette commande remplace tout
mouvement précédemment mappé dans le segment spécifié et ses enfants. Cette commande ne
modifie pas la liste de lecture d’un modèle.
419
Paramètres
quelAutreMouvement
Requis. Chaîne qui spécifie le nom du mouvement à mapper.
Facultatif. Chaîne qui spécifie le nom du segment auquel le mouvement mappé
est appliqué. Si ce paramètre est omis, le segment racine est utilisé.
nomDeSegment
Exemple
L’instruction suivante mappe le mouvement Plafond au mouvement Assis, à partir du segment
Cou. Le modèle s’assiéra et regardera le plafond simultanément.
member("Restaurant").motion("Assis").map("Plafond", "Cou")
Voir aussi
motion(), duration (3D), cloneMotionFromCastmember
mapMemberToStage()
Utilisation
sprite(quelNuméroDimageObjet).mapMemberToStage(quelPointDeLacteur)
mapMemberToStage(sprite quelNuméroDimageObjet, quelPointDeLacteur)
Description
Fonction ; utilise l’image-objet et le point spécifiés pour renvoyer un point équivalent dans les
dimensions de la scène. Cette propriété tient compte de la transformation actuelle de l’imageobjet en utilisant quad ou le rectangle si celui-ci n’est pas transformé.
Elle est idéale pour déterminer si l’utilisateur a cliqué sur une zone spécifique d’un acteur, même
si son image-objet sur la scène a été transformée de manière importante.
Si le point de la scène spécifié ne se trouve pas à l’intérieur de l’image-objet, la valeur VOID est
renvoyée.
Paramètres
quelPointDeLacteur
Requis. Point à partir duquel un point équivalent est renvoyé.
Voir aussi
map(), mapStageToMember()
mapStageToMember()
Utilisation
sprite(quelNuméroDimageObjet).mapStageToMember(quelPointDeLaScène)
mapStageToMember(sprite quelNuméroDimageObjet, quelPointDeLaScène)
Description
Fonction ; utilise l’image-objet et le point spécifiés pour renvoyer un point équivalent dans les
dimensions de l’acteur. Cette propriété tient compte de la transformation actuelle de l’imageobjet en utilisant quad ou le rectangle si celui-ci n’est pas transformé.
Elle est idéale pour déterminer si l’utilisateur a cliqué sur une zone spécifique d’un acteur, même
si son image-objet sur la scène a été transformée de manière importante.
420
Chapitre 12 : Méthodes
Si le point de la scène spécifié ne se trouve pas à l’intérieur de l’image-objet, cette fonction renvoie
la valeur VOID.
Paramètres
quelPointDeLaScène
Requis. Point à partir duquel un point équivalent est renvoyé.
Voir aussi
map(), mapMemberToStage()
marker()
Utilisation
-- Syntaxe Lingo
_movie.marker(nomOuNumDeRepère)
// Syntaxe JavaScript
_movie.marker(nomOuNumDeRepère);
Description
Méthode d’animation ; renvoie le numéro des repères situés avant et après l’image courante.
Cette méthode est utile pour implémenter un bouton Suivant ou Précédent ou pour définir une
boucle d’animation.
Si le paramètre nomOuNumDeRepère est un nombre entier, il peut être positif, négatif ou égal à
zéro. Par exemple :
•
•
•
•
•
marker(2) – Renvoie
le numéro d’image du deuxième repère après l’image courante.
marker(1) – Renvoie le numéro d’image du premier repère après l’image courante.
marker(0) – Renvoie le numéro de l’image courante si celle-ci contient un repère ou, si elle
n’en contient pas, celui de l’image contenant le repère précédent.
marker(-1) – Renvoie le numéro d’image du premier repère précédant le repère (0).
marker(-2) – Renvoie le numéro d’image du second repère précédant le repère (0).
Si le paramètre nomOuNumDeRepère est une chaîne, marker() renvoie le numéro de la première
image dont le repère correspond à la chaîne.
Paramètres
nomOuNumDeRepère Requis. Chaîne qui spécifie un libellé de repère ou nombre entier qui spécifie
un numéro de repère.
Exemple
L’instruction suivante fait passer la tête de lecture au début de l’image courante si celle-ci contient
un repère ou la fait passer au repère précédent dans le cas contraire :
-- Syntaxe Lingo
_movie.go(_movie.marker(0))
// Syntaxe JavaScript
_movie.go(_movie.marker(0));
421
L’instruction suivante donne à la variable repèreSuivant la même valeur que celle du repère
suivant du scénario :
-- Syntaxe Lingo
repèreSuivant = _movie.marker(1)
// Syntaxe JavaScript
repèreSuivant = _movie.marker(1);
Voir aussi
frame, frameLabel, go(), label(), markerList, Animation
max()
Utilisation
liste.max()
max(liste)
max(valeur1, valeur2, valeur3, ...)
Description
Fonction (Lingo uniquement) ; renvoie la valeur la plus élevée dans la liste spécifiée ou dans une
série de valeurs donnée.
La fonction max peut également être utilisée avec les caractères ASCII, de la même manière que les
opérateurs < et > peuvent être utilisés avec des chaînes.
Paramètres
valeur1, valeur2, valeur3, ...
Facultatif. Liste de valeurs dans laquelle la valeur la plus
élevée est sélectionnée.
Exemple
Le gestionnaire suivant affecte à la variable Gagnant la valeur maximum de la liste Devis, qui est
composée de [#Martin:600, #Dupont:750, #Lajoie:230]. Le résultat est ensuite inséré dans le
contenu de l’acteur champ Félicitations.
-- Syntaxe Lingo
on rechercheDuGagnant Devis
Gagnant = Devis.max()
member("Félicitations").text = \
"Vous avez gagné, avec un devis de " & Gagnant &"euros !"
end
// Syntaxe JavaScript
function rechercheDuGagnant(Devis) {
Gagnant = Devis.max();
member("Félicitations").text = "Vous avez gagné, avec un devis de " +
Gagnant \
+ "euros !");
}
422
Chapitre 12 : Méthodes
maximize()
Utilisation
-- Syntaxe Lingo
réfObjFenêtre.maximize()
// Syntaxe JavaScript
réfObjFenêtre.maximize();
Description
Méthode de fenêtre ; agrandit une fenêtre.
Utilisez cette méthode lorsque vous créez des barres de titre personnalisées.
Paramètres
Aucun.
Exemple
Ces instructions agrandissent la fenêtre intitulée Artistes si elle n’est pas déjà agrandie.
-- Syntaxe Lingo
if (window("Artistes").sizeState <> #maximized) then
window("Artistes").maximize()
end if
// Syntaxe JavaScript
if (window("Artistes").sizeState != symbol("maximized")) {
window("Artistes").maximize();
}
Voir aussi
minimize(), Fenêtre
mci
Utilisation
mci "chaîne"
Description
Commande ; exclusive à l’environnement Windows, passe les chaînes spécifiées par chaîne à
l’interface de contrôle des médias de Windows pour le contrôle des extensions multimédia.
Remarque : Microsoft ne recommande plus l’utilisation de l’interface MCI de 16 bits. Vous devrez
peut-être utiliser des Xtras de fabricants tiers pour remplacer cette fonctionnalité.
Paramètres
chaîne
Requis. Chaîne qui est transmise à l’interface MCI.
Exemple
L’instruction suivante ordonne à la commande play cdaudio from 200 to 600 track 7 de ne
lire le CD audio que lorsque l’animation est lue sous Windows :
mci "play cdaudio from 200 to 600 track 7"
423
member()
Utilisation
-- Syntaxe Lingo
member(nomOuNumDacteur {, nomOuNumDeDistribution})
// Syntaxe JavaScript
member(nomOuNumDacteur {, nomOuNumDeDistribution});
Description
Fonction du niveau supérieur ; crée une référence à un acteur et, éventuellement, spécifie la
distribution qui contient cet acteur.
Lorsqu’elle est utilisée à la fois avec le paramètre nomOuNumDacteur et le paramètre
nomOuNumDeDistribution, la méthode member() est une référence spécifique à une distribution
et à un de ses acteurs :
trace(sprite(1).member);
// (member 1 of castLib 1)
Cette méthode est différente de la propriété d’image-objet spriteNum, qui est toujours un
nombre entier désignant une position dans une distribution, mais qui ne spécifie pas la
distribution :
trace(sprite(2).spriteNum);
// 2
Le numéro d’un acteur est également une référence absolue à un acteur spécifique d’une
distribution particulière :
trace(sprite(3).member.number)
// 3
Paramètres
nomOuNumDacteur Requis. Chaîne qui spécifie le nom de l’acteur à référencer ou nombre entier
qui spécifie sa position d’index.
nomOuNumDeDistribution Facultatif. Chaîne qui spécifie le nom de la distribution à laquelle
l’acteur appartient ou nombre entier qui spécifie sa position d’index. Si ce paramètre est omis,
member() effectue une recherche dans toutes les distributions jusqu’à ce qu’il trouve une
correspondance.
Exemple
Cette instruction affecte à la variable ailesMem l’acteur Avions, qui se trouve dans la distribution
Transport.
-- Syntaxe Lingo
ailesMem = member("Avions", "Transport")
// Syntaxe JavaScript
var ailesMem = member("Avions", "Transport");
Voir aussi
Acteur, Image-objet, spriteNum
424
Chapitre 12 : Méthodes
mergeDisplayTemplate()
Utilisation
-- Syntaxe Lingo
_movie.mergeDisplayTemplate(listeDesPropriétés)
// Syntaxe JavaScript
_movie.mergeDisplayTemplate(listeDesPropriétés);
Description
Méthode d’animation ; fusionne un nombre arbitraire de propriétés de gabarit d’affichage avec le
jeu de propriétés existant en une seule opération.
Paramètres
listeDesPropriétés Requis. Liste de propriétés qui contient les propriétés de gabarit d’affichage à fusionner avec le jeu de propriétés existant. En Lingo, listeDesPropriétés est une liste
de paires nom/valeur ou symbole/valeur séparées par des virgules. Dans la syntaxe JavaScript,
listeDesPropriétés est une liste de paires nom/valeur séparées par des virgules.
Exemple
Cette instruction fusionne une valeur pour la propriété title dans displayTemplate :
-- Syntaxe Lingo
_movie.mergeDisplayTemplate(propList(#title, "Bienvenue !"))
// Syntaxe JavaScript
_movie.mergeDisplayTemplate(propList("title", "Bienvenue !"))
Voir aussi
appearanceOptions, displayTemplate, Animation, propList(), titlebarOptions
mergeProps()
Utilisation
-- Syntaxe Lingo
réfObjFenêtre.mergeProps(listeDesPropriétés)
// Syntaxe JavaScript
réfObjFenêtre.mergeProps(listeDesPropriétés);
Description
Méthode de fenêtre. Fusionne un nombre arbitraire de propriétés de fenêtre avec le jeu de
propriétés existant en une seule opération.
Paramètres
listeDesPropriétés Requis. Jeu de propriétés de fenêtre à fusionner avec le jeu de propriétés
existant. Les propriétés sont spécifiées par les propriétés appearanceOptions et
titlebarOptions.
• En Lingo, listeDesPropriétés est une liste de paires nom/valeur ou symbole/valeur séparées
•
par des virgules.
Dans la syntaxe JavaScript, listeDesPropriétés est une liste de paires nom/valeur séparées
par des virgules.
425
Exemple
Cette instruction définit diverses propriétés pour la fenêtre intitulée Voitures.
-- Syntaxe Lingo
window("Voitures").mergeProps([#title:"Photos de voitures", #resizable:FALSE,
\
#titlebarOptions:[#closebox:TRUE, #icon:member(2)], \
#appearanceOptions:[#border:#line, #shadow:TRUE]])
// Syntaxe JavaScript
window("Voitures").mergeProps(propList("title","Photos de voitures",
"resizable",false,
"titlebarOptions",propList("closebox",true, "icon",member(2)),
"appearanceOptions",propList("border","line", "shadow",true)));
Voir aussi
appearanceOptions, titlebarOptions, Fenêtre
mesh (propriété)
Utilisation
member(quelActeur).model(quelModèle).\
meshdeform.mesh[index].propriétéDeMaille
Description
Commande 3D ; permet d’accéder aux propriétés de maille des modèles auxquels est associé le
modificateur meshDeform. Lorsque utilisée comme mesh.count, cette commande renvoie le
nombre total de mailles du modèle référencé.
Les propriétés de chacune des mailles auxquelles il est possible d’accéder sont les suivantes :
•
•
•
•
•
•
•
permet d’obtenir ou de définir la liste des couleurs utilisées par la maille spécifiée.
vertexList permet d’obtenir ou de définir la liste des sommets utilisés par la maille spécifiée.
normalList vous permet d’obtenir ou de définir la liste des vecteurs de normales utilisés par la
maille spécifiée.
textureCoordinateList permet d’obtenir ou de définir les coordonnées de texture utilisées
par la première couche de texture de la maille spécifiée. Pour obtenir ou définir les
coordonnées de texture pour toute autre couche de texture de la maille spécifiée, utilisez
meshdeform.mesh[index].texturelayer[index].textureCoordinateList.
textureLayer[index] permet d’obtenir ou de définir l’accès aux propriétés de la couche de
texture spécifiée.
face[index] permet d’obtenir ou de définir les sommets, les normales, les coordonnées de
texture, les couleurs et les matériaux utilisés par les faces de la maille spécifiée.
face.count permet d’obtenir le nombre total des faces qui se trouvent à l’intérieur de la maille
spécifiée.
colorList
Remarque : Pour plus d’informations sur ces propriétés, consultez les entrées correspondantes (et
qui apparaissent sous la section Voir aussi de cette entrée).
Paramètres
Aucun.
426
Chapitre 12 : Méthodes
Exemple
Le code Lingo suivant ajoute le modificateur #meshDeform au modèle truc1, puis affiche la liste
des sommets de la première maille du modèle truc1.
member("nouveauMartien").model("truc1").addModifier(#meshDeform)
put member("nouveauMartien").model("truc1").meshDeform.mesh[1].vertexList
-- [vector(239.0, -1000.5, 27.4), vector\
(162.5, -1064.7, 29.3), vector(115.3, -1010.8, -40.6),
vector(239,0, -1000,5, 27,4), vector(115,3, -1010,8, -40,6),
vector(162.5, -1064.7, 29.3), vector(359.0, -828.5, -46.3),
vector(309.9, -914.5, -45.3)]
L’instruction suivante affiche le nombre de mailles du modèle Avion.
put member("world").model("Avion").meshDeform.mesh.count
-- 4
Voir aussi
meshDeform (modificateur), colorList, textureCoordinateList, textureLayer,
normalList, vertexList (déformation de maille), face[ ]
meshDeform (modificateur)
Utilisation
member(quelActeur).model(quelModèle).meshDeform.nomDePropriété
Description
Modificateur 3D ; permet de contrôler les différents aspects de la structure de maille du modèle
référencé. Lorsque vous ajoutez le modificateur #meshDeform (à l’aide de la commande
addModifier) à un modèle, vous avez accès aux propriétés suivantes du modificateur
#meshDeform :
Remarque : Pour plus d’informations sur ces propriétés, consultez les entrées correspondantes (et
qui apparaissent sous la section Voir aussi de cette entrée).
•
•
•
renvoie le nombre total de faces du modèle référencé.
renvoie le nombre de mailles du modèle référencé.
mesh[index] permet d’accéder aux propriétés de la maille spécifiée.
face.count
mesh.count
Paramètres
Aucun.
Exemple
L’instruction suivante affiche le nombre de faces du modèle gbFace.
put member("Univers 3D").model("gbFace").meshDeform.face.count
-- 432
L’instruction suivante affiche le nombre de mailles du modèle gbFace.
put member("Univers 3D").model("gbFace").meshDeform.mesh.count
-- 2
427
L’instruction suivante affiche le nombre de faces de la deuxième maille du modèle gbFace.
put member("Univers 3D").model("gbFace").meshDeform.mesh[2].face.count
-- 204
Voir aussi
mesh (propriété), addModifier
min
Utilisation
liste.min
min(liste)
min (a1, a2, a3...)
Description
Fonction (Lingo uniquement) ; spécifie la valeur minimale dans une liste.
Paramètres
a1, a2, a3, ...
Facultatif. Liste de valeurs dans laquelle la valeur la plus faible est sélectionnée.
Exemple
Le gestionnaire suivant donne à la variable vPlusBas la valeur la plus faible de la liste Devis, qui
est composée de [#Pierre:600, #Paul:750, #Jean:230]. Le résultat est alors inséré dans l’acteur
champ Désolé :
on rechercheDuPlusBas Devis
vPlusBas = Devis.min()
member("Désolé").text = \
"Votre offre de " & vPlusBas && " euros n’a pas été acceptée !"
end
Voir aussi
max()
minimize()
Utilisation
-- Syntaxe Lingo
réfObjFenêtre.minimize()
// Syntaxe JavaScript
réfObjFenêtre.minimize();
Description
Méthode de fenêtre ; réduit une fenêtre.
Utilisez cette méthode lorsque vous créez des barres de titre personnalisées.
Paramètres
Aucun.
428
Chapitre 12 : Méthodes
Exemple
Ces instructions réduisent la fenêtre intitulée Artistes si elle n’est pas déjà réduite.
-- Syntaxe Lingo
if (window("Artistes").sizeState <> #minimized) then
window("Artistes").minimize()
end if
// Syntaxe JavaScript
if (window("Artistes").sizeState != symbol("minimized")) {
window("Artistes").minimized();
}
Voir aussi
maximize(), Fenêtre
model
Utilisation
member(quelActeur).model(quelModèle)
member(quelActeur).model[index]
member(quelActeur).model.count
member(quelActeur).model(quelModèle).nomDePropriété
member(quelActeur).model[index].nomDePropriété
Description
Commande 3D ; renvoie le modèle trouvé dans l’acteur référencé dont le nom est spécifié par
quelModèle, ou trouvé à la position d’index spécifiée par index. Si aucun modèle n’existe pour
le paramètre spécifié, la commande renvoie void. Tout comme model.count, la commande
renvoie le nombre de modèles détectés dans l’acteur référencé. Cette commande permet
également d’accéder aux propriétés du modèle spécifié.
Les comparaisons de noms de modèle ne sont pas sensibles à la hauteur de casse. La position
d’index d’un modèle particulier peut changer lorsque des objets dans des positions inférieures
sont supprimés.
Si aucun modèle n’utilise le nom spécifié ou n’est trouvé à la position d’index spécifiée, cette
commande renvoie void.
Paramètres
quelModèle
Facultatif. Chaîne qui spécifie le nom du modèle à renvoyer.
Exemple
L’instruction suivante enregistre une référence au modèle Lecteur dans la variable ceModèle :
ceModèle = member("Univers3D").model("Lecteur")
L’instruction suivante enregistre une référence au huitième modèle de l’acteur Univers3D dans la
variable ceModèle.
ceModèle = member("Univers3D").model[8]
L’instruction suivante indique que quatre modèles se trouvent dans l’acteur de l’image-objet 1.
put sprite(1).member.model.count
-- 4
429
modelResource
Utilisation
member(quelActeur).modelResource(quelleRessDeMod)
member(quelActeur).modelResource[index]
member(quelActeur).modelResource.count
member(quelActeur).modelResource(quelleRessDeMod).\
nomDePropriété
member(quelActeur).modelResource[index].nomDePropriété
Description
Commande 3D ; renvoie la ressource de modèle trouvée dans l’acteur référencé dont le nom est
spécifié par quelleRessDeMod, ou trouvée à la position d’index spécifiée par le paramètre index.
Si aucune ressource de modèle n’existe pour le paramètre spécifié, la commande renvoie void.
Tout comme modelResource.count, la commande renvoie le nombre de ressources de modèle
détectées dans l’acteur référencé. Cette commande permet également d’accéder aux propriétés du
modèle spécifié.
Les comparaisons de chaînes de noms de ressources de modèle ne sont pas sensibles à la hauteur
de casse. La position d’index d’une ressource de modèle particulière peut changer lorsque des
objets dans des positions inférieures sont supprimés.
Paramètres
quelleRessDeMod
Facultatif. Chaîne qui spécifie le nom de la ressource de modèle à renvoyer.
Exemple
L’instruction suivante enregistre une référence à la ressource de modèle MaisonA dans la variable
cetteRessourceDeModèle.
cetteRessourceDeModèle = member("Univers3D").modelResource("MaisonA")
L’instruction suivante enregistre une référence à la quatorzième ressource de modèle de l’acteur
Univers3D dans la variable cetteRessourceDeModèle.
cetteRessourceDeModèle = member("Univers3D").modelResource[14]
L’instruction suivante indique que dix ressources de modèle se trouvent dans l’acteur de l’imageobjet 1.
put sprite(1).member.modelResource.count
--10
modelsUnderLoc
Utilisation
member(quelActeur).camera(quelleCaméra).modelsUnderLoc\
(pointDansLimageObjet {, nombreMaxDeModèles, précision})
Description
Commande 3D ; renvoie une liste des modèles situés sous un point spécifié à l’intérieur du
rectangle d’une image-objet utilisant la caméra référencée.
Dans la liste renvoyée, le premier modèle listé est celui qui est le plus proche du spectateur et le
dernier modèle listé est le plus éloigné.
430
Chapitre 12 : Méthodes
Une seule intersection (la plus proche) est renvoyée par modèle.
La commande renvoie une liste vide s’il n’existe aucun modèle sous le point spécifié.
Paramètres
Requis. Point sous lequel est située une liste de modèles. Ce point est
défini par rapport au coin supérieur gauche de l’image-objet, en pixels.
pointDansLimageObjet
nombreMaxDeModèles Facultatif. Nombre entier qui spécifie la longueur maximale de la liste
renvoyée. Si ce paramètre n’est pas spécifié, la commande renvoie une liste contenant les
références de tous les modèles détectés sous le point spécifié.
Facultatif. Symbole qui spécifie le niveau de détail des informations renvoyées. Les
valeurs correctes sont :
précision
•
•
#simple renvoie une liste contenant les références des modèles situés sous le point. C’est la
valeur par défaut.
#detailed renvoie une liste de listes de propriétés, représentant chacune un modèle rencontré.
Chaque liste de propriétés doit contenir les propriétés suivantes :
■ #model est une référence à l’objet de modèle rencontré.
■ #distance est la distance séparant la caméra du point d’intersection avec le modèle.
■ #isectPosition est un vecteur représentant la position du point d’intersection dans
l’univers.
■ #isectNormal est le vecteur de la maille au point d’intersection.
■ #meshID est l’identifiant de la maille coupée, qui peut être utilisé comme index dans la liste
des mailles du modificateur meshDeform.
■ #faceID est l’identifiant de la face coupée, qui peut être utilisé comme index dans la liste
des faces du modificateur meshDeform.
■ #vertices est une liste de vecteurs contenant trois éléments qui représentent les positions
dans l’univers des sommets de la face intersectée.
■ #uvCoord est une liste de propriétés contenant les propriétés #u et #v représentant les
coordonnées barycentriques u et v de la face.
Exemple
La première ligne du gestionnaire suivant transfère l’emplacement du curseur d’un point de la
scène à un point de l’image-objet 5. La deuxième ligne utilise la commande modelsUnderLoc
pour obtenir les trois premiers modèles situés sous ce point. La troisième ligne affiche des
informations détaillées sur les modèles dans la fenêtre Messages.
-- Syntaxe Lingo
on mouseUp
pt = the mouseLoc - point(sprite(5).left, sprite(5).top)
m = sprite(5).camera.modelsUnderLoc(pt, 3, #detailed)
put m
end
431
// Syntaxe JavaScript
function mouseUp() {
pt = _mouse.mouseLoc - point(sprite(5).left, sprite(5).top);
m = sprite(5).camera.modelsUnderLoc(pt, 3, #detailed)
put(m);
}
Voir aussi
modelsUnderRay, modelUnderLoc
modelsUnderRay
Utilisation
member(quelActeur).modelsUnderRay(vecteurDemplacement, vecteurDeDirection {,
nombreMaxDeModèles, précision})
Description
Commande 3D ; renvoie une liste des modèles situés sous un rayon tracé à partir d’une position
spécifiée dans une direction donnée ; les deux vecteurs étant spécifiés en coordonnées relatives à
l'univers.
Dans la liste renvoyée, le premier modèle listé est le plus proche de la position spécifiée par
vecteurDemplacement et le dernier modèle listé est le plus éloigné de cette position.
Une seule intersection (la plus proche) est renvoyée par modèle.
La commande renvoie une liste vide s’il n’existe aucun modèle sous le rayon spécifié.
Paramètres
vecteurDemplacement Requis. Vecteur à partir duquel un rayon est dessiné et sous lequel se
trouve une liste de modèles.
vecteurDeDirection
Requis. Vecteur qui spécifie la direction dans laquelle le rayon est orienté.
nombreMaxDeModèles Facultatif. Nombre entier qui spécifie la longueur maximale de la liste
renvoyée. Si ce paramètre n’est pas spécifié, la commande renvoie une liste contenant les
références de tous les modèles détectés sous le rayon spécifié.
Facultatif. Symbole qui spécifie le niveau de détail des informations renvoyées. Les
valeurs correctes sont :
précision
•
•
432
#simple renvoie une liste contenant les références des modèles situés sous le point. C’est la
valeur par défaut.
#detailed renvoie une liste de listes de propriétés, représentant chacune un modèle rencontré.
Chaque liste de propriétés doit contenir les propriétés suivantes :
■ #model est une référence à l’objet de modèle rencontré.
■ #distance est la distance séparant la position d’univers spécifiée par
vecteurDemplacement du point d’intersection avec le modèle.
■ #isectPosition est un vecteur représentant la position du point d’intersection dans
l’univers.
■ #isectNormal est le vecteur de la maille au point d’intersection.
■ #meshID est l’identifiant de la maille coupée, qui peut être utilisé comme index dans la liste
des mailles du modificateur meshDeform.
Chapitre 12 : Méthodes
■
■
■
#faceID est l’identifiant de la face coupée, qui peut être utilisé comme index dans la liste
des faces du modificateur meshDeform.
#vertices est une liste de vecteurs contenant trois éléments qui représentent les positions
dans l’univers des sommets de la face intersectée.
#uvCoord est une liste de propriétés contenant les propriétés #u et #v représentant les
coordonnées barycentriques u et v de la face.
Exemple
L’instruction suivante affiche les informations détaillées d’un modèle intersecté par un rayon tracé
à partir de la position de vector(0, 0, 300), en direction de l’axe des z négatif.
put member("3d").modelsUnderRay(vector(0, 0, 300), vector(0, 0, -\
1), 3, #detailed)
-- [[#model: model("mSphere"), #distance: 275.0000, \
#isectPosition: vector( 0.0000, 0.0000, 25.0000 ), #isectNormal: \
vector( -0.0775, 0.0161, 0.9969 ), #meshID: 1, #faceID: 229, \
#vertices: [vector( 0.0000, 0.0000, 25.0000 ), vector( -3.6851, \
1.3097, 24.6922 ), vector( -3.9017, 0.2669, 24.6922 )], \
#uvCoord: [#u: 0.0000, #v: 0.0000]]]
Voir aussi
modelsUnderLoc, modelUnderLoc
modelUnderLoc
Utilisation
member(quelActeur).camera(quelleCaméra).\
modelUnderLoc(pointDansLimageObjet)
Description
Commande 3D ; renvoie une référence au premier modèle situé sous un point spécifié à
l’intérieur du rectangle d’une image-objet utilisant la caméra référencée.
Cette commande renvoie void si aucun modèle n’est situé sous le point spécifié.
Pour obtenir une liste de tous les modèles situés sous un point spécifié et des informations
détaillées les concernant, consultez modelsUnderLoc.
Paramètres
pointDansLimageObjet Requis. Point sous lequel se trouve le premier modèle. L’emplacement
de pointDansLimageObjet est calculé en fonction du coin supérieur gauche de l’image-objet, en
pixels.
Exemple
La première ligne du gestionnaire suivant transfère l’emplacement du curseur d’un point de la
scène à un point de l’image-objet 5. La deuxième ligne détermine le premier modèle situé sous ce
point. La troisième ligne affiche les résultats dans la fenêtre Messages.
-- Syntaxe Lingo
on mouseUp
pt = the mouseLoc - point(sprite(5).left, sprite(5).top)
m = sprite(5).camera.modelUnderLoc(pt)
put m
end
433
// Syntaxe JavaScript
function mouseUp() {
pt = _mouse.mouseLoc - point(sprite(5).left, sprite(5).top);
m = sprite(5).camera.modelUnderLoc(pt);
put(m);
}
Voir aussi
modelsUnderLoc, modelsUnderRay
motion()
Utilisation
member(quelActeur).motion(quelMouvement)
member(quelActeur).motion[index]
member(quelActeur).motion.count
Description
Commande 3D ; renvoie le mouvement trouvé dans l’acteur référencé dont le nom est spécifié
par quelMouvement, ou trouvé à la position d’index spécifiée par index. Tout comme
motion.count, cette propriété renvoie le nombre total de mouvements détectés dans l’acteur.
Les comparaisons de chaînes de nom d’objet ne sont pas sensibles à la hauteur de casse. La
position d’index d’un mouvement particulier peut changer lorsque des objets dans des positions
inférieures sont supprimés.
Si aucun mouvement n’utilise le nom spécifié ou n’est trouvé à la position d’index spécifiée, cette
commande renvoie void.
Exemple
ceMouvement = member("Univers 3D").motion("Aile")
ceMouvement = member("Univers 3D").motion[7]
put member("séquence").motion.count
-- 2
Voir aussi
duration (3D), map (3D)
move()
Utilisation
-- Syntaxe Lingo
réfObjActeur.move({entPosn, nomDeDistribution})
// Syntaxe JavaScript
réfObjActeur.move({entPosn, nomDeDistribution});
Description
Méthode d’acteur ; déplace un acteur spécifié vers le premier emplacement vide de la distribution
dans laquelle il est inclus ou vers un emplacement spécifié dans une distribution donnée.
434
Chapitre 12 : Méthodes
Pour obtenir les meilleurs résultats, utilisez cette méthode pendant la programmation, et non
pendant l’exécution d’une animation, car le déplacement est en général enregistré avec le fichier.
En général, l’emplacement réel de l’acteur n’affecte pas la plupart des présentations quand
l’utilisateur final les lit. Pour changer le contenu de l’image-objet ou modifier son affichage
pendant la lecture de l’animation, utilisez la propriété member de l’image-objet.
Paramètres
entPosn Facultatif. Nombre entier qui spécifie la position vers laquelle l’acteur est déplacé dans la
distribution nomDeDistribution.
nomDeDistribution
Facultatif. Chaîne qui spécifie le nom de la distribution vers laquelle
l’acteur est déplacé.
Exemple
L’instruction suivante déplace l’acteur Temple vers le premier emplacement vide de la fenêtre
Distribution :
-- Syntaxe Lingo
member("Temple").move()
// Syntaxe JavaScript
member("Temple").move();
L’instruction suivante déplace l’acteur Temple vers l’emplacement 20 de la fenêtre Distribution
Bitmaps :
-- Syntaxe Lingo
member("Temple").move(20, "Bitmaps")
// Syntaxe JavaScript
member("Temple").move(20, "Bitmaps");
Voir aussi
Acteur
moveToBack()
Utilisation
-- Syntaxe Lingo
réfObjFenêtre.moveToBack()
// Syntaxe JavaScript
réfObjFenêtre.moveToBack();
Description
Méthode de fenêtre ; déplace une fenêtre derrière toutes les autres fenêtres.
Paramètres
Aucun.
435
Exemple
Les instructions suivantes placent la première fenêtre de la liste windowList derrière toutes les
autres fenêtres :
-- Syntaxe Lingo
maFenêtre = _player.windowList[1]
maFenêtre.moveToBack()
// Syntaxe JavaScript
var maFenêtre = _player.windowList[1];
maFenêtre.moveToBack();
Si vous connaissez le nom de la fenêtre à déplacer, utilisez la syntaxe suivante :
-- Syntaxe Lingo
window("Fenêtre Démo").moveToBack()
// Syntaxe JavaScript
window("Fenêtre Démo").moveToBack();
Voir aussi
moveToFront(), Fenêtre
moveToFront()
Utilisation
-- Syntaxe Lingo
réfObjFenêtre.moveToFront()
// Syntaxe JavaScript
réfObjFenêtre.moveToFront();
Description
Méthode de fenêtre ; déplace une fenêtre devant toutes les autres fenêtres.
Paramètres
Aucun.
Exemple
Les instructions suivantes placent la première fenêtre de la liste windowList devant toutes les
autres fenêtres :
-- Syntaxe Lingo
maFenêtre = _player.windowList[1]
maFenêtre.moveToFront()
// Syntaxe JavaScript
var maFenêtre = _player.windowList[1];
maFenêtre.moveToFront();
436
Chapitre 12 : Méthodes
Si vous connaissez le nom de la fenêtre à déplacer, utilisez la syntaxe suivante :
-- Syntaxe Lingo
window("Fenêtre Démo").moveToFront()
// Syntaxe JavaScript
window("Fenêtre Démo").moveToFront();
Voir aussi
moveToBack(), Fenêtre
moveVertex()
Utilisation
-- Syntaxe Lingo
réfObjActeur.moveVertex(indexDeSommet, changementX, changementY)
// Syntaxe JavaScript
réfObjActeur.moveVertex(indexDeSommet, changementX, changementY);
Description
Fonction ; place le sommet d’un acteur forme vectorielle à un autre emplacement.
Les coordonnées horizontales et verticales du déplacement sont calculées en fonction de la
position courante du point du sommet. L’emplacement de celui-ci dépend de l’origine de l’acteur
forme vectorielle.
La modification de l’emplacement du sommet affecte la forme de la même manière que si vous
faites glisser le sommet dans l’éditeur.
Paramètres
indexDeSommet
changementX
Requis. Spécifie la position d’index du sommet à déplacer.
Requis. Spécifie la distance sur laquelle le sommet doit être déplacé horizontale-
ment.
changementY
Requis. Spécifie la distance sur laquelle le sommet doit être déplacé verticalement.
Exemple
L’instruction suivante déplace le premier sommet de l’acteur forme vectorielle Archie de 25 pixels
vers la droite et de 10 pixels vers le bas par rapport à sa position actuelle :
-- Syntaxe Lingo
member("Archie").moveVertex(1, 25, 10)
// Syntaxe JavaScript
member("Archie").moveVertex(1, 25, 10);
Voir aussi
addVertex(), deleteVertex(), moveVertexHandle(), originMode, vertexList
437
moveVertexHandle()
Utilisation
-- Syntaxe Lingo
réfObjActeur.moveVertexHandle(indexDeSommet, indexDePoignée, changementX,
changementY)
// Syntaxe JavaScript
réfObjActeur.moveVertexHandle(indexDeSommet, indexDePoignée, changementX,
changementY);
Description
Fonction ; déplace la poignée du sommet d’un acteur de forme vectorielle vers un autre emplacement.
Les coordonnées horizontales et verticales du déplacement sont calculées par rapport à la position
courante de la poignée du sommet. L’emplacement de la poignée du sommet dépend du sommet
qu’elle contrôle.
La modification de l’emplacement de la poignée de contrôle affecte la forme de la même manière
que si vous faites glisser le sommet dans un éditeur.
Paramètres
indexDeSommet
Requis. Spécifie la position d’index du sommet qui contient la poignée à
déplacer.
indexDePoignée
Requis. Spécifie la position d’index de la poignée à déplacer.
changementX Requis. Spécifie la distance sur laquelle vous voulez déplacer la poignée du sommet
horizontalement.
changementY
Requis. Spécifie la distance sur laquelle vous voulez déplacer la poignée du sommet
verticalement.
Exemple
L’instruction suivante déplace la première poignée de contrôle du deuxième sommet de l’acteur
forme vectorielle Archie de 15 pixels vers la droite et de 5 pixels vers le haut :
-- Syntaxe Lingo
moveVertexHandle(member("Archie"), 2, 1, 15, -5)
// Syntaxe JavaScript
moveVertexHandle(member("Archie"), 2, 1, 15, -5)
Voir aussi
addVertex(), deleteVertex(), originMode, vertexList
multiply()
Utilisation
transformation.multiply(transformation2)
Description
Commande 3D ; applique les effets de position, de rotation et de redimensionnement de
transformation2 après la transformation d’origine.
438
Chapitre 12 : Méthodes
Paramètres
transformation2 Requis. Spécifie la transformation qui contient les effets à appliquer à une
autre transformation.
Exemple
L’instruction suivante applique les effets de position, rotation et redimensionnement de la
transformation du modèle Mars à la transformation du modèle Pluton. Cela a le même effet que
de définir Mars comme le parent de Pluton pour une image.
member("Scène").model("Pluton").transform.multiply(member("Scène")\
.model("Mars").transform)
neighbor
Utilisation
member(quelActeur).model(quelModèle).meshdeform.mesh[index].\
face[index].neighbor[index]
Description
Commande 3D ; commande meshDeform qui renvoie une liste de listes décrivant les voisins
d’une face particulière d’une maille à l’opposé du coin de face spécifié par l’index de voisinage
(1,2,3). Si la liste est vide, la face n’a aucun voisin dans cette direction. Si la liste contient plus
d’une liste, la maille est non-manifold. La liste contient généralement une liste unique de quatre
valeurs entières : [indexDeMaille, indexDeFace, indexDeSommet, inverse?].
La valeur indexDeMaille est l’index de la maille contenant la face voisine. La valeur
indexDeFace est l’index de la face voisine dans la maille. La valeur indexDeSommet est l’index des
sommets non partagés de la face voisine. La valeur inverse? indique si l’orientation de la face est
la même (1) ou l’inverse (2) de la face d’origine.
Paramètres
Aucun.
Voir aussi
meshDeform (modificateur)
netAbort
Utilisation
netAbort(URL)
netAbort(IDréseau)
Description
Commande ; annule une opération réseau sans attendre de résultat.
L’utilisation d’un identifiant de réseau constitue la manière la plus efficace d’annuler une
opération réseau. Cet identifiant est renvoyé lorsque vous utilisez une fonction réseau telle que
getNetText() ou postNetText().
439
Dans certains cas, si l’identifiant de réseau n’est pas disponible, vous pouvez utiliser une URL
pour annuler la transmission de données à partir de cette URL. Celle-ci doit être identique à
l’URL utilisée au départ de l’opération réseau. Si le transfert des données est terminé, cette
commande n’a aucun effet.
Paramètres
URL
Requis. Spécifie l’URL à annuler.
IDréseau
Facultatif. Spécifie l’ID de l’opération réseau à annuler.
Exemple
L’instruction suivante passe un identifiant de réseau à netAbort pour annuler une opération
réseau particulière :
-- Syntaxe Lingo
on mouseUp
netAbort(monIDréseau)
end
// Syntaxe JavaScript
function mouseUp() {
netAbort(monIDréseau);
}
Voir aussi
getNetText(), postNetText
netDone()
Utilisation
netDone()
netDone(IDréseau)
Description
Fonction ; indique si une opération de chargement en tâche de fond (telle que getNetText,
preloadNetThing, gotoNetMovie, gotoNetPage ou netTextResult) est terminée ou a été
interrompue par suite d’une erreur du navigateur (TRUE, valeur par défaut) ou si elle est encore
en cours (FALSE).
• Utilisez netDone() pour tester la dernière opération réseau.
• Utilisez netDone(IDréseau) pour tester l’opération réseau identifiée par IDréseau.
La fonction netDone renvoie 0 lorsqu’une opération de chargement en tâche de fond est en cours.
Paramètres
IDréseau
440
Facultatif. Spécifie l’ID de l’opération réseau à tester.
Chapitre 12 : Méthodes
Exemple
Le gestionnaire suivant utilise la fonction netDone pour vérifier si la dernière opération réseau est
terminée. Si l’opération est terminée, le texte renvoyé par netTextResult est affiché dans l’acteur
Affichage du texte.
-- Syntaxe Lingo
on exitFrame
if netDone() = 1 then
member("Affichage du texte").text = netTextResult()
end if
end
// Syntaxe JavaScript
function exitFrame() {
if (netDone() == 1) {
member("Affichage du texte").text = netTextResult();
}
}
Le gestionnaire suivant utilise un identifiant de réseau spécifique comme argument pour que
netDone vérifie l’état d’une opération réseau particulière :
-- Syntaxe Lingo
on exitFrame
-- rester sur cette image jusqu’à la fin de
-- l’opération réseau
global monIDréseau
if netDone(monIDréseau) = FALSE then
go to the frame
end if
end
// Syntaxe JavaScript
function exitFrame() {
// rester sur cette image jusqu’à la fin de l’opération réseau
global monIDréseau;
if (!(netDone(monIDréseau))) {
_movie.go(_movie.frame);
}
}
Voir aussi
getNetText(), netTextResult(), gotoNetMovie, preloadNetThing()
netError()
Utilisation
netError()
netError(IDréseau)
Description
Fonction ; détermine si une erreur s’est produite pendant une opération réseau, et, le cas échéant,
renvoie un numéro d’erreur correspondant à un message d’erreur. Si l’opération s’est déroulée
sans erreur, cette fonction renvoie un code indiquant que tout va bien. Si aucune opération de
chargement en tâche de fond n’a commencé, ou si l’opération est en cours, cette fonction renvoie
une chaîne vide.
441
• Utilisez netError() pour tester la dernière opération réseau.
• Utilisez netError(IDréseau) pour tester l’opération réseau spécifiée par IDréseau.
Plusieurs codes d’erreur peuvent être renvoyés :
0
Tout va bien.
4
Classe MOA incorrecte. Les Xtras requis, réseau ou non, ne sont pas installés
correctement ou ne sont pas installés du tout.
5
Interface MOA incorrecte. Voir 4.
6
URL incorrecte ou classe MOA incorrecte. Les Xtras requis, réseau ou non, ne sont pas
installés correctement ou ne sont pas installés du tout.
20
Erreur interne. Renvoyé par netError() dans le navigateur Netscape si celui-ci a
détecté une erreur de réseau ou une erreur interne.
4146
La connexion n’a pas pu être établie avec l’hôte distant.
4149
Les données fournies par le serveur ont un format inattendu.
4150
Fermeture prématurée et inattendue de la connexion.
4154
L’opération n’a pas pu aboutir par suite du dépassement du temps imparti.
4155
Mémoire insuffisante pour terminer la transaction.
4156
La réponse du protocole à la requête indique une erreur de réponse.
4157
La transaction n’a pas pu être authentifiée.
4159
URL non valide.
4164
Impossible de créer de socket.
4165
L’objet demandé est introuvable (l’URL est peut-être incorrecte).
4166
Echec de proxy générique.
4167
Le transfert a été interrompu volontairement par le client.
4242
Téléchargement annulé par netAbort(url).
4836
Téléchargement annulé ou interrompu pour une raison inconnue, probablement une
erreur du réseau.
Paramètres
IDréseau
Facultatif. Spécifie l’ID de l’opération réseau à tester.
Exemple
L’instruction suivante passe un identifiant de réseau à netError pour vérifier l’état d’erreur d’une
opération réseau spécifique :
-- Syntaxe Lingo
on exitFrame
global monIDréseau
if netError(monIDréseau)<>"OK" then beep
end
442
Chapitre 12 : Méthodes
// Syntaxe JavaScript
function exitFrame() {
global monIDréseau;
if (netError(monIDréseau) != "OK") {
_sound.beep();
}
}
netLastModDate()
Utilisation
netLastModDate()
Description
Fonction ; renvoie la date de la dernière modification de l’en-tête HTTP de l’élément spécifié.
Cette chaîne utilise le format de temps universel (GMT) : Jjj, nn Mmm aaaa hh:mm:ss GMT
(par exemple, Thu, 30 Jan 1997 12:00:00 AM GMT). Les jours et les mois peuvent être écrits en
entier. Cette chaîne est toujours en anglais.
La fonction netLastModDate ne peut être appelée qu’une fois que netDone et netError
rapportent que l’opération s’est terminée avec succès. Dès que l’opération suivante démarre,
l’animation ou la projection Director efface les résultats de l’opération précédente pour
économiser de la mémoire.
La chaîne de date est extraite de l’en-tête HTTP dans le format offert par le serveur. Cependant,
cette chaîne n’est pas toujours fournie et, le cas échéant, netLastModDate renvoie EMPTY.
Paramètres
Aucun.
Exemple
Les instructions suivantes vérifient la date d’un fichier téléchargé depuis Internet :
-- Syntaxe Lingo
if netDone() then
laDate = netLastModDate()
if laDate.char[6..11] <> "30 Jan" then
alert "Ce fichier est périmé."
end if
end if
// Syntaxe JavaScript
if (netDone()) {
laDate = netLastModDate();
if (laDate.char[6..11] != "30 Jan") {
alert("Ce fichier est périmé");
}
}
Voir aussi
netDone(), netError()
443
netMIME()
Utilisation
netMIME()
Description
Fonction ; fournit le type MIME du fichier Internet renvoyé par la dernière opération réseau
(le fichier HTTP ou FTP téléchargé en dernier).
La fonction netMIME ne peut être appelée qu’une fois que netDone et netError rapportent que
l’opération s’est terminée avec succès. Dès que l’opération suivante démarre, l’animation ou la
projection Director efface les résultats de l’opération précédente pour économiser de la mémoire.
Paramètres
Aucun.
Exemple
Le gestionnaire suivant vérifie le type MIME d’un fichier téléchargé depuis Internet et répond en
conséquence :
-- Syntaxe Lingo
on vérifierLopérationRéseau uneURL
if netDone (uneURL) then
set monTypeMime = netMIME()
case monTypeMime of
"image/jpeg": go frame "info jpeg"
"image/gif": go frame "info gif"
"application/x-director": goToNetMovie uneURL
"text/html": goToNetPage uneURL
otherwise: alert "Veuillez choisir un autre fichier."
end case
else
go the frame
end if
end
444
Chapitre 12 : Méthodes
// Syntaxe JavaScript
function vérifierLopérationRéseau(uneURL) {
if (netDone (uneURL)) {
monTypeMime = netMIME();
switch (monTypeMime) {
case "image/jpeg":
_movie.go("Lions");
break;
case "image/gif":
_movie.go("info gif");
break;
case "application/x-director":
goToNetMovie(uneURL);
break;
case "text/html":
goToNetPage(uneURL);
break;
default:
alert("Veuillez choisir un autre fichier.");
}
} else {
_movie.go(_movie.frame);
}
}
Voir aussi
netDone(), netError(), getNetText(), postNetText, preloadNetThing()
netStatus
Utilisation
netStatus chaîneDeMessage
Description
Commande ; affiche la chaîne spécifiée dans la zone d’état de la fenêtre du navigateur.
La commande netStatus ne fonctionne pas dans les projections.
Paramètres
chaîneDeMessage
Requis. Spécifie la chaîne à afficher.
Exemple
L’instruction suivante place la chaîne Test dans la zone d’état du navigateur web dans lequel
l’animation est lue :
-- Syntaxe Lingo
on exitFrame
netStatus "Test"
end
// Syntaxe JavaScript
function exitFrame() {
_movie.netStatus("Test");
}
445
netTextResult()
Utilisation
netTextResult(IDréseau)
netTextResult()
Description
Fonction ; renvoie le texte obtenu par l’opération réseau spécifiée. Si aucun identifiant réseau
n’est spécifié, netTextResult renvoie le résultat de la dernière opération réseau.
Si l’opération réseau spécifiée était getNetText(), le texte renvoyé correspond à celui du fichier
sur le réseau.
Si l’opération réseau spécifiée était postNetText, le résultat correspond à la réponse du serveur.
Dès que l’opération suivante démarre, Director efface les résultats de l’opération précédente pour
économiser de la mémoire.
Lorsqu’une animation est lue sous forme d’applet, cette fonction renvoie les résultats valides des
dernières 10 demandes. Lorsqu’une animation est lue sous forme d’animation avec un contenu
Shockwave, cette fonction ne renvoie que les résultats valides de l’opération getNetText() la plus
récente.
Paramètres
IDréseau
Facultatif. Spécifie l’ID de l’opération réseau qui contient le texte à renvoyer.
Exemple
Le gestionnaire suivant utilise les fonctions netDone et netError pour tester si la dernière
opération réseau s’est terminée avec succès. Si l’opération est terminée, le texte renvoyé par
netTextResult est affiché dans l’acteur Affichage du texte.
-- Syntaxe Lingo
global gIDréseau
on exitFrame
if (netDone(gIDréseau) = TRUE) and (netError(gIDréseau) = "OK") then
member("Affichage du texte").text = netTextResult()
end if
end
// Syntaxe JavaScript
global gIDréseau;
function exitFrame() {
if (netDone(gIDréseau) && (netError(gIDréseau) == "OK")) {
member("Affichage du texte").text = netTextResult();
}
}
Voir aussi
netDone(), netError(), postNetText
446
Chapitre 12 : Méthodes
new()
Utilisation
new(type)
new(type, castLib quelleDistribution)
new(type, member quelActeur of castLib quelleDistribution)
nomDeVariable = new(scriptParent arg1, arg2, ...)
new(script nomDuScriptParent, valeur1, valeur2, ...)
timeout("nom").new(période, #gestionnaire, {, objetCible})
new(xtra "nomDeLxtra")
Description
Fonction ; crée un nouvel acteur, objet enfant, objet de temporisation ou instance d’Xtra, et
permet d’affecter des valeurs de propriétés individuelles aux objets enfants.
Pour les acteurs, le paramètre type sert à définir le type de l’acteur. Les valeurs prédéfinies offertes
correspondent aux différents types d’acteurs : #bitmap, #field, etc. La fonction new permet
également de créer des types d’acteurs Xtra, auxquels vous pouvez attribuer n’importe quel nom.
Vous pouvez également créer un nouvel acteur curseur de couleur en utilisant l’Xtra Custom
Cursor. Utilisez new(#cursor), puis définissez les propriétés de l’acteur obtenu de manière à
pouvoir les utiliser.
Les paramètres facultatifs quelActeur et quelleDistribution spécifient la position de l’acteur
et la fenêtre Distribution dans laquelle il est créé. Si vous ne spécifiez pas de position, l’acteur est
placé dans la première position vide de cette distribution. La fonction new renvoie la position de
l’acteur.
Lorsque l’argument de la fonction new est un script parent, la fonction new crée un objet enfant.
Le script parent doit contenir un gestionnaire on new définissant l’état initial de l’objet enfant ou
la valeur de ses propriétés ; il renvoie la référence me de l’objet enfant.
L’objet enfant possède tous les gestionnaires du script parent. Il utilise les mêmes noms de
variables de propriétés que celles qui sont déclarées dans le script parent, mais peut toutefois avoir
ses propres valeurs pour ces propriétés.
Puisque l’objet enfant est une valeur, il peut être affecté à des variables, placé dans des listes ou
être passé comme paramètre.
Comme avec toute autre variable, vous pouvez utiliser la commande put pour afficher des
informations sur un objet enfant dans la fenêtre Messages.
Lorsque new() est utilisé pour créer un objet de temporisation, la période définit le nombre de
millisecondes séparant les événements de temporisation envoyés par l’objet de temporisation.
La valeur #gestionnaire est un symbole identifiant le gestionnaire qui sera appelé lors de
chaque événement de temporisation. La valeur objetCible identifie le nom de l’objet enfant
contenant la valeur #gestionnaire. Si aucune valeur objetCible n’est définie, la valeur
#gestionnaire est considérée comme étant dans un script d’animation.
Lorsqu’un objet de temporisation est créé, il active son objetCible pour la réception des événements système prepareMovie, startMovie, stopMovie, prepareFrame et exitFrame. Pour en
profiter, l’objetCible doit contenir des gestionnaires pour ces événements. Les événements ne
doivent pas obligatoirement survenir dans l’ordre pour que le reste de l’animation puisse y
accéder.
447
Pour un exemple d’utilisation de new() dans une animation, reportez-vous aux animations Parent
Scripts et Read and Write Text du dossier Learning/Lingo, lui-même inclus dans le dossier de
Director.
Exemple
Pour créer un nouvel acteur bitmap dans le premier emplacement disponible de la distribution,
utilisez la syntaxe suivante :
set nouvelActeur = new(#bitmap)
Une fois cette ligne exécutée, nouvelActeur contient la référence de l’acteur que vous venez de
créer :
put nouvelActeur
-- (member 1 of castLib 1)
Le script startMovie suivant crée un nouvel acteur Flash au moyen de la commande new, définit
la propriété linked de l’acteur nouvellement créé de sorte que ses éléments soient stockés dans un
fichier externe, puis définit la propriété pathName de l’acteur comme emplacement d’une
animation Flash sur le web :
on startMovie
acteurFlash = new(#flash)
member(acteurFlash).pathName = "http://www.uneURL.fr/monFlash.swf"
end
Lorsque l’animation démarre, le gestionnaire suivant crée un nouvel acteur curseur animé en
couleur et stocke son numéro d’acteur dans la variable curseurPersonnalisé. Cette variable sert
à définir la propriété castMemberList de l’acteur qui vient d’être créé et à afficher le nouveau
curseur.
on startmovie
curseurPersonnalisé = new(#cursor)
member(curseurPersonnalisé).castMemberList = [member 1, member 2, member 3]
cursor (member(curseurPersonnalisé))
end
Les instructions du script parent suivantes contiennent un gestionnaire on new servant à créer un
objet enfant. Le script parent est un acteur script appelé Oiseau qui contient ces gestionnaires.
on new me, nomDeLoiseau
return me
end
on voler me
put "Je vole"
end
Dans l’exemple suivant, la première instruction crée un objet enfant à partir du script de
l’exemple précédent et le place dans la variable monOiseau. La seconde instruction fait voler
l’oiseau en appelant le gestionnaire voler du script parent Oiseau :
monOiseau = script("Oiseau").new()
monOiseau.voler()
448
Chapitre 12 : Méthodes
L’instruction suivante crée un autre script parent Oiseau contenant la variable de propriété
vitesse :
property vitesse
on new me, vitesseInitiale
vitesse = vitesseInitiale
return me
end
on voler me
put "Je vole à " & vitesse & "kmh"
end
Les instructions suivantes créent deux objets enfants appelés monOiseau1 et monOiseau2. Les
vitesses suivantes leur sont attribuées : 15 et 25, respectivement. Lorsque le gestionnaire voler
est appelé pour chaque objet enfant, la vitesse de ce dernier s’affiche dans la fenêtre Messages.
monOiseau1 = script("Oiseau").new(15)
monOiseau2 = script("Oiseau").new(25)
monOiseau1.voler()
monOiseau2.voler()
Le message suivant apparaît dans la fenêtre Messages :
-- "Je vole à 15 kmh"
-- "Je vole à 25 kmh"
L’instruction suivante crée un objet de temporisation nommé compteurDintervalle qui
envoie un événement de temporisation au gestionnaire on bipChaqueMinute de l’objet enfant
lecteur1 toutes les 60 secondes :
timeout("compteurDintervalle").new(60000, #bipChaqueMinute, lecteur1)
Voir aussi
on stepFrame, actorList, ancestor, me, type (acteur), timeout()
newCamera
Utilisation
member(quelActeur).newCamera(nomDeNouvelleCaméra)
Description
Commande 3D ; crée une caméra dans un acteur.
Paramètres
nomDeNouvelleCaméra Requis. Spécifie le nom de la nouvelle caméra. Le nom spécifié de la
nouvelle caméra doit être unique dans l’acteur.
Exemple
L’instruction suivante crée une nouvelle caméra appelée Caméra_embarquée.
member("Univers 3D").newCamera("Caméra_embarquée")
449
newCurve()
Utilisation
-- Syntaxe Lingo
réfObjActeur.newCurve(positionDansLaListeDesSommets)
// Syntaxe JavaScript
réfObjActeur.newCurve(positionDansLaListeDesSommets);
Description
Fonction ; ajoute un symbole #newCurve à la liste vertexList de réfObjActeur, qui ajoute une
nouvelle forme à la forme vectorielle. Vous pouvez fractionner une forme existante en appelant
newCurve() positionné au milieu d’une série de sommets.
Paramètres
positionDansLaListeDesSommets
Requis. Indique à quelle position le symbole #newCurve est
ajouté à la vertexList.
Exemple
Les instructions suivantes ajoutent une nouvelle courbe à l’acteur 2 à la troisième position de la
liste des sommets de l’acteur. La seconde ligne de l’exemple remplace le contenu de la courbe 2
par le contenu de la courbe 3.
-- Syntaxe Lingo
member(2).newCurve(3)
member(2).curve[2]=member(2).curve[3]
// Syntaxe JavaScript
member(2).newCurve(3);
member(2).curve[2] = member(2).curve[3];
Voir aussi
curve, vertexList
newGroup
Utilisation
member(quelActeur).newGroup(nomDeNouveauGroupe)
Description
Commande 3D ; crée un groupe et l’ajoute à la palette des groupes.
Paramètres
nomDeNouveauGroupe Requis. Spécifie le nom du nouveau groupe. Le nom du nouveau groupe
doit être unique dans la palette des groupes.
Exemple
L’instruction suivante crée le groupe gbGroupe2 dans l’acteur Scène et une référence à ce groupe
dans la variable ng.
ng = member("Scène").newGroup("gbGroupe2")
450
Chapitre 12 : Méthodes
newLight
Utilisation
member(quelActeur).newLight(nomDeNouvelleLumière, #indicateurDeType)
Description
Commande 3D ; crée une lumière avec un type spécifié et l’ajoute à la palette des lumières.
Paramètres
Requis. Spécifie le nom de la nouvelle lumière. Le nom de la nouvelle
lumière doit être unique dans la palette des lumières.
nomDeNouvelleLumière
indicateurDeType
Requis. Symbole qui spécifie le type de la nouvelle lumière. Les valeurs
correctes sont :
•
•
•
•
est une lumière généralisée dans l’univers 3D.
est une lumière émise dans une direction spécifique.
#point est une source lumineuse similaire à une ampoule.
#spot est un effet de projecteur.
#ambient
#directional
Exemple
L’instruction suivante crée une lumière dans l’acteur Univers 3D. Il s’agit d’une lumière
d’ambiance appelée « lumière ambiante ».
member("Univers 3D").newLight("lumière ambiante", #ambient)
newMember()
Utilisation
-- Syntaxe Lingo
_movie.newMember(symbole)
_movie.newMember(chaîneTypeDacteur)
// Syntaxe JavaScript
_movie.newMember(chaîneTypeDacteur);
Description
Méthode d’animation ; crée un acteur et vous permet d’affecter des valeurs de propriétés
individuelles aux objets enfants.
Pour les nouveaux acteurs, le paramètre symbole ou chaîneTypeDacteur définit le type de
l’acteur. Les valeurs prédéfinies offertes correspondent aux différents types d’acteurs : #bitmap,
#field, etc. La méthode newMember() crée également des types d’acteurs Xtra, auxquels vous
pouvez attribuer n’importe quels noms.
Vous pouvez également créer un nouvel acteur curseur de couleur en utilisant l’Xtra Custom
Cursor. Utilisez newMember(#cursor), puis définissez les propriétés de l’acteur obtenu de
manière à pouvoir les utiliser.
Une fois que la méthode newMember() a été appelée, le nouveau membre est placé dans la
première miniature libre de la distribution.
451
Lorsque l’argument de la fonction new() est un script parent, la fonction new crée un objet
enfant. Le script parent doit contenir un gestionnaire on new définissant l’état initial de l’objet
enfant ou la valeur de ses propriétés ; il renvoie la référence me de l’objet enfant.
L’objet enfant possède tous les gestionnaires du script parent. Il utilise les mêmes noms de
variables de propriétés que celles qui sont déclarées dans le script parent, mais peut toutefois avoir
ses propres valeurs pour ces propriétés.
Puisque l’objet enfant est une valeur, il peut être affecté à des variables, placé dans des listes ou
être passé comme paramètre.
Comme avec toute autre variable, vous pouvez utiliser la méthode put() pour afficher des
informations sur un objet enfant dans la fenêtre Messages.
Lorsque new() est utilisé pour créer un objet de temporisation, la période définit le nombre de
millisecondes séparant les événements de temporisation envoyés par l’objet de temporisation.
La valeur #gestionnaire est un symbole identifiant le gestionnaire qui sera appelé lors de
chaque événement de temporisation. La valeur objetCible identifie le nom de l’objet enfant
contenant la valeur #gestionnaire. Si aucune valeur objetCible n’est définie, la valeur
#gestionnaire est considérée comme étant dans un script d’animation.
Lorsqu’un objet de temporisation est créé, il active son objetCible pour la réception des événements système prepareMovie, startMovie, stopMovie, prepareFrame et exitFrame. Pour en
profiter, l’objetCible doit contenir des gestionnaires pour ces événements. Les événements
ne doivent pas obligatoirement survenir dans l’ordre pour que le reste de l’animation puisse y
accéder.
Pour un exemple d’utilisation de newMember() dans une animation, reportez-vous aux animations Parent Scripts et Read and Write Text du dossier Learning/Lingo, lui-même inclus dans
le dossier de Director.
Paramètres
symbole
(Lingo uniquement) Requis. Symbole qui spécifie le type du nouvel acteur.
chaîneTypeDacteur
Requis. Chaîne qui spécifie le type du nouvel acteur.
Exemple
Les instructions suivantes créent un nouvel acteur bitmap et l’affecte à la variable
nouveauBitmap.
-- Syntaxe Lingo
nouveauBitmap = _movie.newMember(#bitmap) – avec un symbole
nouveauBitmap = _movie.newMember("bitmap") – avec une chaîne
// Syntaxe JavaScript
var nouveauBitmap = _movie.newMember("bitmap");
Voir aussi
Animation, type (acteur)
452
Chapitre 12 : Méthodes
newMesh
Utilisation
member(quelActeur).newMesh(nomDeMaille, nombreDeFaces, nombreDeSommets,
nombreDeNormales,nombreDeCouleurs,nombreDeCoordonnéesDeTexture)
Description
Commande 3D ; crée une ressource de modèle de maille. Après avoir créé une maille, vous devez
au moins définir les valeurs des propriétés vertexList et face[index].vertices de la nouvelle
maille, puis appeler sa commande build() pour générer la géométrie.
Paramètres
nomDeMaille
Requis. Spécifie le nom de la nouvelle ressource de modèle de maille.
nombreDeFaces
Requis. Spécifie le nombre total de triangles devant apparaître dans la maille.
nombreDeSommets Requis. Spécifie le nombre total de sommets utilisés par toutes les faces
(triangulaires). Un sommet peut être partagé par plus d’une face.
nombreDeNormales Facultatif. Spécifie le nombre total de normales. Une normale peut être
partagée par plus d’une face. La normale d’un coin de triangle définit la direction extérieure au
triangle, ce qui affecte l’éclairage de cet angle. Entrez 0 ou ignorez ce paramètre si vous prévoyez
d’utiliser la commande generateNormals() de la maille pour générer les normales.
Facultatif. Spécifie le nombre total de couleurs utilisées par toutes les faces.
Une couleur peut être partagée par plus d’une face. Vous pouvez spécifier une couleur pour
chaque angle de chaque face. Spécifiez les couleurs pour obtenir un dégradé de couleurs
progressif. Entrez 0 ou ignorez ce paramètre pour obtenir la couleur blanche par défaut pour
chaque coin de face.
nombreDeCouleurs
nombreDeCoordonnéesDeTexture Facultatif. Spécifie le nombre total de coordonnées de texture
spécifiées par l’utilisateur utilisées par toutes les faces. Entrez 0 ou ignorez ce paramètre pour
obtenir les coordonnées de texture par défaut générées par un placage planaire. Pour plus
d’informations, consultez la description de #planar dans l’entrée shader.textureWrapMode.
Spécifiez les coordonnées de texture lorsque vous avez besoin de contrôler précisément le placage
des textures sur les faces de la maille.
Exemple
L’exemple suivant crée une ressource de modèle de type #mesh, en spécifie les propriétés, puis
l’utilise pour créer un nouveau modèle. Le processus est décrit dans les explications accompagnant
l’exemple suivant :
La ligne 1 crée une maille contenant 6 faces, composées de 5 sommets et 3 couleurs uniques. Le
nombre de normales et le nombre de coordonnées de textures ne sont pas définis. Les normales
seront créées par la commande generateNormals.
La ligne 2 définit les cinq sommets uniques utilisés par les faces de la maille.
La ligne 3 définit les trois couleurs uniques utilisées par les faces de la maille.
Les lignes 4 à 9 désignent les sommets à utiliser pour les coins de chaque face de la pyramide.
Veuillez noter que l’ordre des sommets suit le sens des aiguilles d’une montre.
GenerateNormals() est basé sur un ordre suivant le sens des aiguilles d’une montre.
453
Les lignes 10 à 15 affectent des couleurs aux coins de chaque face. Les couleurs seront étalées sur
les faces en dégradés.
La ligne 16 crée les normales de Triangle en appelant la commande generateNormals().
La ligne 17 appelle la commande build pour construire la maille.
nm = member("Formes").newMesh("pyramide",6 , 5, 0, 3)
nm.vertexList = [ vector(0,0,0), vector(40,0,0), \
vector(40,0,40), vector(0,0,40), vector(20,50,20) ]
nm.colorList = [ rgb(255,0,0), rgb(0,255,0), rgb(0,0,255) ]
nm.face[1].vertices = [ 4.10.2 ]
nm.face[2].vertices = [ 4.2,3 ]
nm.face[3].vertices = [ 5.20.1 ]
nm.face[4].vertices = [ 5.30.2 ]
nm.face[5].vertices = [ 5.4,3 ]
nm.face[6].vertices = [ 5.10.4 ]
nm.face[1].colors = [3,200.3]
nm.face[2].colors = [3.30.2]
nm.face[3].colors = [1.30.2]
nm.face[4].colors = [1.20.3]
nm.face[5].colors = [1.30.2]
nm.face[6].colors = [1.20.3]
nm.generateNormals(#flat)
nm.build()
nm = member("Formes").newModel("Pyramide1", nm)
Voir aussi
newModelResource
newModel
Utilisation
member( quelActeur ).newModel( nomDeNouveauModèle \
{, quelleRessDeMod } )
Description
Commande 3D ; crée un modèle dans l’acteur référencé. La propriété resource de tous les
nouveaux modèles est définie sur VOID par défaut.
Paramètres
nomDeNouveauModèle
Requis. Spécifie le nom du nouveau modèle. Le nom du nouveau modèle
doit être unique.
quelleRessDeMod
Facultatif. Spécifie la ressource de modèle à utiliser pour créer le modèle.
Exemple
L’instruction suivante crée le modèle Nouvelle maison dans l’acteur Univers 3D.
member("Univers 3D").newModel("Nouvelle maison")
La ressource de modèle pour le nouveau modèle peut également être définie à l’aide du paramètre
facultatif quelleRessDeMod.
member("Univers 3D").newModel("Nouvelle maison", member("Univers \
3D").modelResource("grandeBoîte"))
454
Chapitre 12 : Méthodes
newModelResource
Utilisation
member(quelActeur).newModelResource(nomDeNouvelleRessourceDeModèle\
{ ,#type, #faisantFaceA })
Description
Commande 3D ; crée une ressource de modèle, éventuellement, avec des paramètres type et
faisantFaceA donnés, et l’ajoute à la palette de ressources de modèle.
Si vous ne spécifiez pas le paramètre faisantFaceA, mais que vous spécifiez #box, #sphere,
#particle ou #cylinder comme paramètre type, seules les faces avant seront générées. Si vous
spécifiez #plane, les faces avant et arrière sont créées. Les ressources de modèle de type #plane
ont deux mailles générées (une pour chaque côté), et par conséquent, deux matériaux dans
shaderList.
Une valeur de face #both crée le double de mailles et aussi le double d’entrées de matériaux dans
shaderList. Il y en aura 2 pour les plans et les sphères (respectivement, pour l’intérieur et
l’extérieur du modèle), 12 pour les cubes (6 à l’extérieur, 6 à l’intérieur) et 6 pour les cylindres
(le sommet, la base et les contours extérieur et intérieur).
Paramètres
nomDeNouvelleRessourceDeModèle
Requis. Spécifie le nom de la nouvelle ressource de modèle.
Facultatif. Spécifie le type de primitive de la nouvelle ressource de modèle. Les valeurs
correctes sont :
type
•
•
•
•
•
#plane
#box
#sphere
#cylinder
#particle
faisantFaceA Facultatif. Spécifie la face de la nouvelle ressource de modèle. Les valeurs correctes
sont :
•
•
•
#front
#back
#both
Exemple
Le gestionnaire suivant crée une boîte. La première ligne du gestionnaire crée une ressource de
modèle nommée boîte10. Elle est de type #box et est définie pour que seule sa face arrière soit
présentée. Les trois lignes suivantes définissent les dimensions de boîte10 et la dernière ligne crée
un nouveau modèle qui utilise boîte10 comme ressource de modèle.
on créationDeBoîte
nmr = member("3D").newModelResource("boîte10", #box, #back)
nmr.height = 50
nmr.width = 50
nmr.length = 50
aa = member("3D").newModel("gb5", nmr)
end
455
L’instruction suivante crée une ressource de modèle en forme de boîte, appelée
« boîteAchapeaux4 ».
member("Etagère").newModelResource("boîteAchapeaux4", #box)
Voir aussi
primitives
newMotion()
Utilisation
member(quelActeur).newMotion(nom)
Description
Commande 3D ; crée un mouvement dans un acteur référencé et renvoie une référence au
nouveau mouvement. Un nouveau mouvement peut être utilisé pour combiner plusieurs
mouvements existants dans la liste des mouvements de l’acteur, au moyen de la commande
map().
Paramètres
nom Requis. Spécifie le nom du nouveau mouvement. Le nom du nouveau mouvement doit être
unique dans l’acteur référencé.
Exemple
L’instruction suivante crée un mouvement dans l’acteur 1, courseEtOndulation, qui est utilisé
pour combiner les mouvements de course et d’ondulation provenant de la liste des mouvements
de l’acteur :
courseEtOndulation = member(1).newMotion("courseEtOndulation")
courseEtOndulation.map("course", "bassin")
courseEtOndulation.map("ondulation", "épaule")
newObject()
Utilisation
-- Syntaxe Lingo
réfObjImageObjet.newObject(typeDobjet {, arg1, arg2 ....})
// Syntaxe JavaScript
réfObjImageObjet.newObject(typeDobjet {, arg1, arg2 ....});
Description
Commande d’image-objet Flash ; crée un objet ActionScript du type spécifié.
La syntaxe suivante crée un objet dans une image-objet Flash :
réfDimageObjetFlash.newObject("typeDobjet" {, arg1, arg2 ....})
La syntaxe suivante crée un objet global :
newObject("typeDobjet" {, arg1, arg2 ....})
456
Chapitre 12 : Méthodes
Remarque : Si vous n’avez pas importé d’acteur Flash, vous devrez ajouter manuellement l’Xtra
Flash Asset à la liste des Xtras de votre animation pour permettre aux commandes Flash globales de
fonctionner correctement dans Shockwave Player et dans les projections. Vous pouvez ajouter les
Xtras à la liste des Xtras en choisissant Modification > Animation > Xtras. Pour plus d’informations sur
la gestion des Xtras pour les animations distribuées, consultez les rubriques Utilisation de Director
dans le panneau d'aide de Director.
Paramètres
typeDobjet
Requis. Spécifie le type de l’objet à créer.
arg1, arg2, ... Facultatif. Spécifie les arguments d’initialisation nécessaires à l’objet. Chaque
argument doit être séparé des autres par une virgule.
Exemple
Cette instruction définit la variable tObjetDeConnexionLocale sur une référence à un nouvel
objet LocalConnection dans l’animation Flash, au niveau de l’image-objet 3 :
-- Syntaxe Lingo
tObjetDeConnexionLocale = sprite(3).newObject("LocalConnection")
// Syntaxe JavaScript
var tObjetDeConnexionLocale = sprite(3).newObject("LocalConnection");
L’instruction suivante définit la variable tObjetTableau sur une référence à un nouvel objet
Tableau dans l’animation Flash, au niveau de l’image-objet 3. Le tableau contient les 3 nombres
entiers : 23, 34 et 19.
-- Syntaxe Lingo
tObjetTableau = sprite(3).newObject("Tableau",23,34,19)
// Syntaxe JavaScript
var tObjetTableau = sprite(3).newObject("Tableau",23,34,19);
Voir aussi
setCallback(), clearAsObjects()
newShader
Utilisation
member(quelActeur).newShader(nomDeNouveauMatériau, #typeDeMatériau)
Description
Commande 3D ; crée un matériau du type spécifié dans la liste des matériaux de l’acteur référencé
et renvoie une référence au nouveau matériau.
Chaque type de matériau possède un groupe de propriétés qui lui sont spécifiques, en plus des
propriétés de matériau #standard. Toutefois, même si vous pouvez attribuer n’importe quelle
propriété de matériau #standard à un matériau d’un autre type, il est possible que la propriété
n’ait aucun effet visible. C’est ce qui se produit lorsque la propriété #standard est appliquée, car
elle remplace la nature du type de matériau. Par exemple, la propriété de matériau standard
diffuseLightMap est ignorée par les matériaux du type #engraver, #newsprint et #painter.
457
Paramètres
Requis. Spécifie le nom du nouveau matériau. Le nom du nouveau
matériau doit être unique dans la liste des matériaux.
nomDeNouveauMatériau
typeDeMatériau Requis. Symbole qui détermine le style dans lequel le matériau est appliqué.
Les valeurs correctes sont :
• Les matériaux #standard sont photoréalistes et ont les propriétés suivantes : ambient, blend,
blendConstant, blendConstantList, blendFunction, blendFunctionList, blendSource,
blendSourceList, diffuse, diffuseLightMap, emissive, flat, glossMap, ilk, name,
region, renderStyle, silhouettes, specular, specularLightMap, texture,
textureMode, textureModeList, textureRepeat, textureRepeatList,
textureTransform, textureTransformList, transparent, useDiffuseWithTexture,
wrapTransform et wrapTransformList.
• Les matériaux #painter sont estompés, donnent l’apparence d’une peinture et ont, en plus de
toutes les propriétés #standard, les propriétés suivantes : colorSteps, hilightPercentage,
hilightStrength, name, shadowPercentage, shadowStrength et style.
• Les matériaux #engraver sont striés, donnent l’apparence d’une gravure et ont, en plus
•
de toutes les propriétés #standard, les propriétés suivantes : brightness, density, name
et rotation.
Les matériaux #newsprint sont en pointillés, donnent l’apparence d’une reproduction
de journal et ont, en plus de toutes les propriétés #standard, les propriétés suivantes :
brightness, density et name.
Exemple
L’instruction suivante crée le matériau #painter nouveauPeintre.
nouveauPeintre = member("Univers 3D").newShader("nouveauPeintre",#painter)
Voir aussi
shadowPercentage
newTexture
Utilisation
member(quelActeur).newTexture(nomDeNouvelleTexture \
{,#indicateurDeType, référenceDobjetSource})
Description
Commande 3D ; crée une texture dans la palette des textures de l’acteur référencé et renvoie une
référence à la nouvelle texture. Les textures d’acteur ne fonctionnent que lorsque vous spécifiez
l’acteur dans le constructeur newTexture.
Paramètres
Requis. Spécifie le nom de la nouvelle texture. Le nom de la nouvelle
texture doit être unique dans la palette de textures de l’acteur référencé.
nomDeNouvelleTexture
458
Chapitre 12 : Méthodes
Facultatif. Spécifie le type de la nouvelle texture. Si ce paramètre est omis,
la nouvelle texture est créée sans type spécifique. Les valeurs correctes sont :
indicateurDeType
•
•
#fromCastMember
(un acteur)
(un objet image Lingo)
#fromImageObject
référenceDobjetSource Facultatif. Spécifie une référence à l’acteur ou à l’objet image Lingo
source. Si ce paramètre est omis, la nouvelle texture est créée à partir d’aucune source spécifique.
référenceDobjetSource doit faire référence à un acteur si indicateurDeType est défini sur
#fromCastMember et à un objet image Lingo si indicateurDeType est défini sur
#fromImageObject.
Exemple
La première ligne de cette instruction crée une texture nommée Gazon 02 à partir de l’acteur 5 de
la distribution 1. La seconde ligne crée une texture vierge appelée Vierge.
member("Univers 3D").newTexture("Gazon \
02",#fromCastMember,member(5,1))
member("Univers 3D").newTexture("Vierge")
normalize
Utilisation
normalize(vecteur)
vecteur.normalize()
Description
Commande 3D ; normalise un vecteur en divisant les composants x, y et z par la magnitude du
vecteur. Les vecteurs normalisés ont toujours une magnitude de 1.
Paramètres
Aucun.
Exemple
L’instruction suivante indique la valeur du vecteur monVecteur avant et après la normalisation.
monVecteur = vector(-209.9019, 1737.5126, 0.0000)
monVecteur.normalize()
put monVecteur
-- vector( -0.1199, 0.9928, 0.0000 )
put monVecteur.magnitude
-- 1.0000
L’instruction suivante indique la valeur du vecteur ceVecteur avant et après la normalisation.
ceVecteur = vector(-50.0000, 0.0000, 0.0000)
normalize(ceVecteur)
put ceVecteur
-- vector( 0.0000, -1.0000, 0.0000 )
Voir aussi
getNormalized, randomVector(), magnitude
459
nothing
Utilisation
nothing
Description
Commande ; n’a aucun effet. Cette commande est pratique pour clarifier une instruction
if...then. Une instruction imbriquée if...then...else ne contenant aucune commande
explicite après la clause else peut nécessiter l’utilisation de else nothing, afin d’empêcher
Lingo d’interpréter la clause else comme faisant partie de la clause if qui la précède.
Paramètres
Aucun.
Exemple
L’instruction imbriquée if...then...else du gestionnaire suivant utilise la commande
nothing à la suite de la clause else de l’instruction :
-- Syntaxe Lingo
on mouseDown
if the clickOn = 1 then
if sprite(1).moveableSprite = TRUE then
member("Notice").text = "Faites glisser la balle"
else nothing
else member("Notice").text = "Cliquez à nouveau"
end if
end
// Syntaxe JavaScript
function mouseDown() {
if (_mouse.clickOn == 1) {
if (sprite(1).moveableSprite) {
member("Notice").text = "Faites glisser la balle";
} else {
// do nothing
}
} else {
member("Notice").text = "Cliquez à nouveau"
}
}
Avec le gestionnaire suivant, l’animation n’évolue pas tant que l’utilisateur appuie sur le bouton
de la souris :
-- Syntaxe Lingo
on mouseDown
repeat while the stillDown
nothing
end repeat
end mouseDown
460
Chapitre 12 : Méthodes
// Syntaxe JavaScript
function mouseDown() {
do {
// do nothing
} while _mouse.stillDown;
}
Voir aussi
if
nudge()
Utilisation
-- Syntaxe Lingo
réfObjImageObjet.nudge(#direction)
// Syntaxe JavaScript
réfObjImageObjet.nudge(#direction);
Description
Commande QuickTime VR ; déplace la perspective de l’image-objet QuickTime VR spécifiée
dans la direction spécifiée.
Une poussée vers la droite entraîne un déplacement de l’image de l’image-objet vers la gauche.
La commande nudge ne renvoie pas de valeur.
Paramètres
direction
Requis. Spécifie la direction du déplacement de la perspective. Les valeurs correctes
sont :
•
•
•
•
•
•
•
•
#down
#downLeft
#downRight
#left
#right
#up
#upLeft
#upRight
Exemple
Le gestionnaire suivant entraîne le déplacement vers la gauche de la perspective de l’image-objet
QuickTime VR pendant que le pointeur de la souris est positionné sur l’image-objet.
-- Syntaxe Lingo
on mouseDown me
repeat while the stillDown
sprite(1).nudge(#left)
end repeat
end
461
// Syntaxe JavaScript
function mouseDown() {
do {
sprite(1).nudge(#left);
} while _mouse.stillDown;
}
numToChar()
Utilisation
numToChar(expressionEntière)
Description
Fonction ; affiche une chaîne contenant le caractère dont le code ASCII est la valeur d’une
expression spécifiée. Elle est utile pour interpréter les données de sources externes qui sont
présentées sous forme de nombres plutôt que sous forme de caractères.
Les valeurs ASCII allant jusqu’à 127 sont standard sur tous les ordinateurs. Les valeurs
supérieures ou égales à 128 font référence à des caractères différents sur différents ordinateurs.
Paramètres
expressionEntière
Requis. Spécifie le nombre ASCII dont le caractère correspondant est
renvoyé.
Exemple
L’instruction suivante affiche dans la fenêtre Messages le caractère dont le code ASCII est 65 :
put numToChar(65)
Le résultat est la lettre A.
Le gestionnaire suivant supprime tous les caractères non alphabétiques d’une chaîne quelconque
et ne renvoie que des majuscules :
-- Syntaxe Lingo
on ForcerDesMajuscules saisie
sortie = EMPTY
num = length(saisie)
repeat with i = 1 to num
leCodeASCII = charToNum(saisie.char[i])
if leCodeASCII = min(max(96, leCodeASCII), 123) then
leCodeASCII = leCodeASCII - 32
if leCodeASCII = min(max(63, leCodeASCII), 91) then
put numToChar(leCodeASCII) after sortie
end if
end if
end repeat
return sortie
end
462
Chapitre 12 : Méthodes
// Syntaxe JavaScript
function ForcerDesMajuscules(saisie) {
sortie = "";
num = saisie.length;
for (i=1;i<=num;i++) {
leCodeASCII = saisie.char[i].charToNum();
if (leCodeASCII == min(max(96, leCodeASCII), 123) {
leCodeASCII = leCodeASCII - 32;
if (leCodeASCII == min(max(63, leCodeASCII), 91) {
sortie = sortie + leCodeASCII.numToChar();
}
}
}
return sortie;
}
Voir aussi
charToNum()
objectP()
Utilisation
objectP(expression)
Description
Fonction ; indique si une expression spécifiée est un objet créé par un script parent, un Xtra ou
une fenêtre (TRUE) ou non (FALSE).
Le P dans objectP signifie prédicat.
Il est judicieux d’utiliser objectP pour déterminer les éléments en cours d’utilisation lors de la
création d’objets par des scripts parents ou des instances d’Xtra.
Pour un exemple d’utilisation de objectP() dans une animation, reportez-vous à l’animation
Read and Write Text du dossier Learning/Lingo, lui-même inclus dans le dossier de Director.
Paramètres
expression
Requis. Spécifie l’expression à tester.
Exemple
L’instruction suivante vérifie si un objet est affecté à la variable globale gBaseDeDonnées et, dans
la négative, en affecte un. Cette vérification s’utilise généralement lorsque vous effectuez des
initialisations au début d’une animation ou d’une section qui ne doit pas être répétée.
-- Syntaxe Lingo
if objectP(gBaseDeDonnées) then
nothing
else
gBaseDeDonnées = script("Contrôleur de base de données").new()
end if
463
// Syntaxe JavaScript
if (objectP(BaseDeDonnées)) {
// do nothing
} else {
gBaseDeDonnées = script("Contrôleur de base de données").new();
}
Voir aussi
floatP(), ilk(), integerP(), stringP(), symbolP()
offset() (fonction de chaîne)
Utilisation
offset(expressionChaîne1, expressionChaîne2)
Description
Fonction ; renvoie un nombre entier indiquant la position du premier caractère d’une chaîne
dans une autre chaîne. Cette fonction renvoie 0 si la première chaîne est introuvable dans la
seconde chaîne. Lingo considère les espaces comme des caractères dans les deux chaînes.
Sur Macintosh, la comparaison des chaînes ne tient pas compte de la casse. Ainsi, Lingo considère
a et Å comme identiques sur Macintosh.
Paramètres
expressionChaîne1
Requis. Spécifie la sous-chaîne à rechercher dans expressionChaîne2.
expressionChaîne2
Requis. Spécifie la chaîne qui contient la sous-chaîne expressionChaîne1.
Exemple
L’instruction suivante affiche dans la fenêtre Messages la position du début de la chaîne media
dans la chaîne Macromedia :
put offset("media","Macromedia")
Le résultat est 6.
L’instruction suivante affiche dans la fenêtre Messages la position du début de la chaîne Micro
dans la chaîne Macromedia :
put offset("Micro", "Macromedia")
Le résultat est 0 car « Macromedia » ne contient pas la chaîne « Micro ».
464
Chapitre 12 : Méthodes
Le gestionnaire suivant recherche toutes les instances de la chaîne représentée par
chaîneAtrouver dans la chaîne représentée par saisie, puis les remplace par la chaîne
représentée par chaîneAinsérer.
-- Syntaxe Lingo
on ChercherEtRemplacer saisie, chaîneAtrouver, chaîneAinsérer
sortie = ""
Longueur = chaîneAtrouver.length - 1
repeat saisie input contains chaîneAtrouver
currOffset = offset(chaîneAtrouver, saisie)
sortie = sortie & saisie.char [1..currOffset]
delete the last char of sortie
sortie = sortie & chaîneAinsérer
delete input.char [1.. (currOffset + Longueur)]
end repeat
set sortie = sortie & saisie
return sortie
end
// Syntaxe JavaScript
function ChercherEtRemplacer (saisie, chaîneAtrouver, chaîneAinsérer) {
sortie = "";
Longueur = chaîneAtrouver.length - 1;
do {
currOffset = offset(chaîneAtrouver, saisie);
sortie = sortie + saisie.char [0..currOffset];
sortie = sortie.substr(0,sortie.length-2);
sortie = sortie + chaîneAinsérer;
saisie = saisie.substr(currOffset+Longueur,saisie.length);
} while (saisie.indexOf(chaîneAtrouver) >= 0);
sortie = sortie + saisie;
return sortie;
}
Voir aussi
chars(), length(), contains, starts
offset() (fonction de rectangle)
Utilisation
rectangle.offset(changementHorizontal, changementVertical)
offset (rectangle, changementHorizontal, changementVertical)
Description
Fonction ; produit un rectangle décalé par rapport au rectangle spécifié par rectangle.
Paramètres
changementHorizontal Requis. Spécifie le décalage horizontal, en pixels. Lorsque
changementHorizontal est supérieur à 0, le décalage se produit vers la droite de la scène ;
lorsque changementVertical est inférieur à 0, le décalage se produit vers la gauche de la scène.
changementVertical Requis. Spécifie le décalage vertical, en pixels. Lorsque
changementVertical est supérieur à 0, le décalage se produit vers le bas de la scène ; lorsque
changementHorizontal est inférieur à 0, le décalage se produit vers le haut de la scène.
465
Exemple
Le gestionnaire suivant déplace l’image-objet 1 de cinq pixels vers la droite et de cinq pixels vers le
bas.
-- Syntaxe Lingo
on mouvementDiagonal
nouveauRect=sprite(1).rect.offset(5, 5)
sprite(1).rect=nouveauRect
end
// Syntaxe JavaScript
function diagonalMove() {
nouveauRect = sprite(1).rect.offset(5,5);
sprite(1).rect = nouveauRect;
}
open() (lecteur)
Utilisation
-- Syntaxe Lingo
_player.open({chaîneCheminDeDoc,} chaîneCheminDapplication)
// Syntaxe JavaScript
_player.open({chaîneCheminDeDoc,} chaîneCheminDapplication);
Description
Méthode de lecteur ; ouvre une application spécifiée et, éventuellement, un fichier spécifié en
même temps que l’application.
Si chaîneCheminDeDoc ou chaîneCheminDapplication se trouvent dans un autre dossier que
l’animation courante, vous devez spécifier le chemin d’accès complet du ou des fichiers.
L’ordinateur doit avoir assez de mémoire pour exécuter simultanément Director et d’autres
applications.
Il s’agit d’une méthode très simple pour ouvrir une application ou un document au sein d’une
application. Pour d’autres contrôles, consultez les options disponibles dans les Xtras fournis par
d’autres développeurs.
Paramètres
chaîneCheminDeDoc Facultatif. Chaîne qui spécifie le document à ouvrir en même temps que
l’application spécifiée par chaîneCheminDapplication.
chaîneCheminDapplication
466
Chapitre 12 : Méthodes
Requis. Chaîne qui spécifie le chemin de l’application à ouvrir.
Exemple
L’instruction suivante ouvre l’application TextEdit, qui se trouve dans le dossier Applications sur
le disque dur (Macintosh), ainsi que le document Synopsis :
-- Syntaxe Lingo
_player.open("Synopsis", "HD:Applications:TextEdit")
// Syntaxe JavaScript
_player.open("Synopsis", "HD:Applications:TextEdit");
Voir aussi
Lecteur
open() (fenêtre)
Utilisation
-- Syntaxe Lingo
réfObjFenêtre.open()
// Syntaxe JavaScript
réfObjFenêtre.open();
Description
Méthode de fenêtre ; ouvre une fenêtre et la place devant toutes les autres fenêtres.
Si aucune animation n’est affectée à la fenêtre sur laquelle la méthode open() est appelée, la boîte
de dialogue d’ouverture de fichier s’affiche.
Si la référence à l’objet fenêtre réfObjFenêtre est remplacée par le nom de fichier d’une
animation, la fenêtre utilise le nom de fichier comme nom de fenêtre. Mais vous devez alors
affecter une animation à la fenêtre avec la propriété fileName de la fenêtre.
Si la référence à l’objet fenêtre réfObjFenêtre est remplacée par un nom de fenêtre, la fenêtre
prend ce nom. Mais vous devez alors affecter une animation à la fenêtre avec la propriété
fileName de la fenêtre.
Pour ouvrir une fenêtre qui utilise une animation provenant d’une adresse URL, téléchargez le
fichier sur votre disque local à l’aide de la commande downloadNetThing, puis utilisez-le depuis
votre disque local. Cette procédure minimise les problèmes d’attente pendant le téléchargement.
Lorsque vous utilisez une animation locale, chargez au moins la première image de l’animation
avec preloadMovie() avant d’appeler open(). Cette procédure réduit les risques de retard liés au
chargement des animations.
L’ouverture d’une animation dans une fenêtre n’est pas encore supportée pour la lecture dans un
navigateur web.
Paramètres
Aucun.
467
Exemple
L’instruction suivante ouvre la fenêtre Tableau de commande et la place au premier plan :
-- Syntaxe Lingo
window("Tableau de commande").open()
// Syntaxe JavaScript
window("Tableau de commande").open();
Voir aussi
close(), downloadNetThing, fileName (fenêtre), preLoadMovie(), Fenêtre
openFile()
Utilisation
-- Syntaxe Lingo
réfObjFileio.openFile(chaîneNomDeFichier, entMode)
// Syntaxe JavaScript
réfObjFileio.openFile(chaîneNomDeFichier, entMode)
Description
Méthode de Fileio ; ouvre un fichier spécifié avec un mode spécifié.
Paramètres
chaîneNomDeFichier
Requis. Chaîne qui spécifie le chemin complet et le nom du fichier à
ouvrir.
entMode
Requis. Nombre entier qui spécifie le mode du fichier. Les valeurs correctes sont :
• 0—Lecture/écriture
• 1—Lecture seule
• 2—Ecriture
Voir aussi
Fileio
openXlib
Utilisation
openXlib quelFichier
Description
Commande ; ouvre un fichier Xlibrary spécifié.
Il est recommandé de fermer tout fichier ouvert dès que vous n’en avez plus besoin. La commande
openXlib n’a aucun effet sur un fichier ouvert.
La commande openXlib ne supporte pas les URL comme références de fichiers.
Les fichiers Xlibrary contiennent des Xtras. A la différence de openResFile, openXlib met ces
Xtras à la disposition de Director.
Lorsque vous ouvrez un Xtra de programmation avec openXlib, utilisez closeXlib pour le
fermer lorsque Director a fini de l’utiliser.
468
Chapitre 12 : Méthodes
Sous Windows, l’extension .dll est facultative.
Remarque : Cette commande n’est pas prise en charge dans Shockwave Player.
Paramètres
quelFichier Requis. Spécifie le fichier Xlibrary à ouvrir. Si le fichier n’est pas dans le dossier de
l’animation courante, quelFichier doit inclure le chemin.
Exemple
L’instruction suivante ouvre le fichier Xlibrary Vidéodisque :
openXlib "Xlibrary Vidéodisque"
L’instruction suivante ouvre le fichier Xlibrary Xtras, situé dans un dossier différent de celui de
l’animation courante :
openXlib "Mon disque:Nouveautés:Transporter Xtras"
Voir aussi
closeXlib, interface()
param()
Utilisation
param(positionDeParamètre)
Description
Fonction ; renvoie la valeur d’un paramètre transmis à un gestionnaire.
Cette fonction peut s’utiliser pour déterminer le type d’un paramètre particulier afin d’éviter les
erreurs dans un gestionnaire.
Paramètres
positionDeParamètre
Requis. Spécifie la position du paramètre dans les arguments transmis au
gestionnaire.
Exemple
Le gestionnaire suivant accepte un nombre quelconque d’arguments, fait le total du nombre
transmis en paramètres, puis renvoie la somme :
-- Syntaxe Lingo
on ajouterLesNombres
somme = 0
repeat with numDeParamCourant = 1 to the paramCount
somme = somme + param(numDeParamCourant)
end repeat
return somme
end
469
// Syntaxe JavaScript
function ajouterLesNombres() {
somme = 0
for (numDeParamCourant=1;numDeParamCourant<=paramCount;numDeParamCourant++)
{
somme = somme + param(numDeParamCourant);
}
return somme;
}
Vous l’utilisez en transmettant les valeurs à ajouter :
put ajouterLesNombres(3, 4, 5, 6)
-- 18
put ajouterLesNombres(5, 5)
-- 10
Voir aussi
getAt, param(), paramCount(), return (mot-clé)
paramCount()
Utilisation
the paramCount
Description
Fonction ; indique le nombre de paramètres transmis au gestionnaire courant.
Paramètres
Aucun.
Exemple
L’instruction suivante définit la variable compteur en fonction du nombre de paramètres
transmis au gestionnaire courant :
set compteur = the paramCount
parseString()
Utilisation
objetDanalyse.parseString(chaîneAanalyser)
Description
Fonction ; utilisée pour analyser un document XML déjà disponible pour une animation
Director. Le premier paramètre est la variable contenant l’objet d’anamyse. La valeur renvoyée
est <VOID> en cas de succès de l’opération ou un code d’erreur en cas d’échec. L’échec est généralement dû à un problème au niveau de la syntaxe ou de la structure XML. Une fois l’opération
terminée, l’objet d’analyse contient les données XML analysées.
L’analyse du code XML d’une URL requiert l’utilisation de la commande parseURL().
Paramètres
chaîneAanalyser
470
Requis. Spécifie la chaîne de données XML à analyser.
Chapitre 12 : Méthodes
Exemple
L’instruction suivante analyse les données XML de l’acteur texte texteXML. Une fois l’opération
terminée, la variable gObjetDanalyse contient les données XML analysées.
codeErreur = gObjetDanalyse.parseString(member("texteXML"))
Voir aussi
getError() (XML), parseURL()
parseURL()
Utilisation
objetDanalyse.parseURL(chaîneURL {,#gestionnaireAappelerAlaFin} {,
objetContenantLeGestionnaire})
Description
Fonction ; analyse un document XML résidant à une adresse Internet externe. Le premier
paramètre est l’objet d’analyse contenant une instance de l’Xtra XMLParser.
Cette fonction renvoie un résultat immédiat et l’adresse URL complète peut donc ne pas être
encore analysée. Il est important d’utiliser la fonction doneParsing() avec parseURL() afin
d’être averti(e) de la fin de l’opération d’analyse.
Cette opération étant asynchrone (et pouvant prendre un certain temps), vous pouvez utiliser des
paramètres facultatifs permettant d’appeler un gestionnaire spécifique à la fin de l’opération.
La valeur renvoyée est VOID en cas de succès de l’opération ou un code d’erreur en cas d’échec.
L’analyse du code XML local requiert l’utilisation de la commande parseString().
Paramètres
chaîneURL
Requis. Spécifie l’URL réelle où résident les données XML.
gestionnaireAappelerAlaFin
Facultatif. Spécifie le nom du gestionnaire à exécuter une fois
l’analyse de l’URL terminée.
objetContenantLeGestionnaire Facultatif. Spécifie le nom de l’objet script contenant le
gestionnaire gestionnaireAappelerAlaFin. Si ce paramètre est omis, le gestionnaire est
supposé être un gestionnaire d’animation.
Exemple
L’instruction suivante analyse le fichier sample.xml de monEntreprise.fr. Utilisez la fonction
doneParsing() pour déterminer à quel moment l’opération d’analyse est terminée.
codeErreur = gObjetDanalyse.parseURL("http://www.monEntreprise.fr/
exemple.xml")
L’instruction Lingo suivante analyse le fichier exemple.xml et appelle le gestionnaire on
analyseTerminée. Aucun objet script n’étant donné avec la fonction doneParsing(), le
gestionnaire on analyseTerminée est considéré comme étant dans un script de l’animation.
codeErreur = gObjetDanalyse.parseURL("http://www.monEntreprise.fr/
exemple.xml", #analyseTerminée)
471
Le script de l’animation contient le gestionnaire on analyseTerminée :
on analyseTerminée
global gObjetDanalyse
if voidP(gObjetDanalyse.getError()) then
put "Analyse réussie"
else
put "Erreur d’analyse :"
put "
" & gObjetDanalyse.getError()
end if
end
L’instruction Lingo suivante analyse le document exemple.xml qui se trouve sur
www.monEntreprise.fr et appelle le gestionnaire on analyseTerminée de l’objet script
objetTest, qui est un enfant du script parent scriptTest :
objetDanalyse = new(xtra "XMLParser")
objetTest = new(script "scriptTest", objetDanalyse)
codeErreur = gObjetDanalyse.parseURL("http://www.monEntreprise.fr/
exemple.xml", #analyseTerminée, objetTest)
Le script parent scriptTest est le suivant :
property monObjetDanalyse
on new me, objetDanalyse
monObjetDanalyse = objetDanalyse
end
on analyseTerminée me
if voidP(monObjetDanalyse.getError()) then
put "Analyse réussie"
else
put "Erreur d’analyse :"
put "
" & monObjetDanalyse.getError()
end if
end
Voir aussi
getError() (XML), parseString()
pass
Utilisation
pass
Description
Commande ; transmet un message d’événement à la position suivante dans la hiérarchie des
messages et déclenche l’exécution de plusieurs gestionnaires pour un événement donné.
La commande pass passe à la position suivante dès son exécution. Aucun élément suivant la
commande pass dans le gestionnaire n’est exécuté.
Par défaut, un message d’événement s’arrête à la première position contenant un gestionnaire
pour l’événement, généralement au niveau de l’image-objet.
L’inclusion de la commande pass dans un gestionnaire entraîne la transmission de l’événement à
d’autres objets dans la hiérarchie, même si le gestionnaire pourrait autrement intercepter
l’événement.
472
Chapitre 12 : Méthodes
Paramètres
Aucun.
Exemple
Le gestionnaire suivant détermine les touches enfoncées et autorise leur transmission à l’imageobjet texte modifiable s’il s’agit de caractères valides :
-- Syntaxe Lingo
on keyDown me
caractèresAdmis = "1234567890"
if caractèresAdmis contains the key then
pass
else
beep
end if
end
// Syntaxe JavaScript
function keyDown() {
caractèresAdmis = "1234567890";
if (caractèresAdmis.indexOf(_key.key) >= 0) {
pass();
} else {
_sound.beep();
}
}
Voir aussi
stopEvent()
pasteClipBoardInto()
Utilisation
-- Syntaxe Lingo
réfObjActeur.pasteClipBoardInto()
// Syntaxe JavaScript
réfObjActeur.pasteClipBoardInto();
Description
Méthode d’acteur ; colle le contenu du Presse-papiers dans un acteur spécifié et efface l’acteur
existant.
Vous pouvez coller tout élément dont le format peut être utilisé par Director pour un acteur.
Lorsque vous copiez une chaîne à partir d’une autre application, son format n’est pas conservé.
Cette méthode est un moyen pratique de copier dans la fenêtre Distribution des objets provenant
d’autres animations et d’autres applications. Les acteurs copiés devant être conservés en RAM,
évitez d’utiliser cette commande pendant la lecture dans les situations où la mémoire arrive à
épuisement.
Lorsque vous utilisez cette méthode dans Shockwave Player ou dans l’environnement auteur
et avec des projections dont la propriété safePlayer a la valeur TRUE, une boîte de dialogue
d’avertissement s’affiche pour permettre à l’utilisateur d’annuler l’opération de collage.
473
Paramètres
Aucun.
Exemple
L’instruction suivante colle le contenu du Presse-papiers dans l’acteur bitmap Temple :
-- Syntaxe Lingo
member("Temple").pasteClipBoardInto()
// Syntaxe JavaScript
member("Temple").pasteClipBoardInto();
Voir aussi
Acteur, safePlayer
pause() (DVD)
Utilisation
-- Syntaxe Lingo
réfObjDvd.pause()
// Syntaxe JavaScript
réfObjDvd.pause();
Description
Méthode de DVD ; met en pause la lecture.
Paramètres
Aucun.
Voir aussi
DVD
pause() (piste audio)
Utilisation
-- Syntaxe Lingo
réfObjPisteAudio.pause()
// Syntaxe JavaScript
réfObjPisteAudio.pause();
Description
Méthode de piste audio ; interrompt la lecture du son courant dans une piste audio.
Une méthode play() subséquente entraînera la reprise de la lecture.
Paramètres
Aucun.
474
Chapitre 12 : Méthodes
Exemple
L’instruction suivante met en pause la lecture de l’acteur son lu dans la piste audio 1 :
-- Syntaxe Lingo
sound(1).pause()
// Syntaxe JavaScript
sound(1).pause();
Voir aussi
breakLoop(), play() (piste audio), playNext() (piste audio), queue(), rewind()
(piste audio), Piste audio, stop() (piste audio)
pause() (3D)
Utilisation
member(quelActeur).model(quelModèle).bonesPlayer.pause()
member(quelActeur).model(quelModèle).keyframePlayer.pause()
Description
Commande de modificateur 3D #keyframePlayer et #bonesPlayer ; stoppe le mouvement du
modèle en cours d’exécution. Utilisez la commande play() pour que le mouvement reprenne son
cours.
Lorsque le mouvement d’un modèle est arrêté à l’aide de cette commande, la propriété
bonesPlayer.playing du modèle prend la valeur FALSE.
Paramètres
Aucun.
Exemple
L’instruction suivante met l’animation courante du modèle Fourmi3 en pause.
member("ScèneDePiqueNique").model("Fourmi3").bonesplayer.pause()
Voir aussi
play() (3D), playing (3D), playlist
pause() (RealMedia, SWA, Windows Media)
Utilisation
-- Syntaxe Lingo
réfObjActeurOuImageObjet.pause()
// Syntaxe JavaScript
réfObjActeurOuImageObjet.pause();
Description
Méthode d’image-objet ou d’acteur RealMedia et Windows Media ; interrompt la lecture du flux
multimédia.
La valeur de mediaStatus devient #paused.
475
L’appel de cette méthode, lors de la lecture du flux RealMedia ou Windows Media, ne modifie
pas la propriété currentTime et n’efface pas le contenu de la mémoire tampon. En revanche, elle
permet aux commandes play suivantes de reprendre la lecture sans devoir remettre le flux
RealMedia en tampon.
Paramètres
Aucun.
Exemple
Les exemples suivants arrêtent la lecture de l’image-objet 2 ou de l’acteur Real.
-- Syntaxe Lingo
sprite(2).pause()
member("Real").pause()
// Syntaxe JavaScript
sprite(2).pause();
member("Real").pause();
Voir aussi
mediaStatus (RealMedia, Windows Media), play() (RealMedia, SWA, Windows
Media), seek(), stop() (RealMedia, SWA, Windows Media)
perpendicularTo
Utilisation
vecteur1.perpendicularTo(vecteur2)
Description
Commande 3D de vecteur ; renvoie un vecteur perpendiculaire au vecteur d’origine et à un
second vecteur. Cette commande équivaut à la commande de vecteur crossProduct.
Paramètres
vecteur2
Requis. Spécifie le second vecteur.
Exemple
Dans l’exemple suivant, pos1 est un vecteur sur l’axe des x et pos2 est un vecteur sur l’axe des y.
La valeur renvoyée par pos1.perpendicularTo(pos2) est vector( 0.0000, 0.0000,
1.00000e4 ). Les deux dernières lignes de l’exemple indiquent le vecteur perpendiculaire à pos1
et pos2.
pos1 = vector(100, 0, 0)
pos2 = vector(0, 100, 0)
put pos1.perpendicularTo(pos2)
-- vector( 0.0000, 0.0000, 1.00000e4 )
Voir aussi
crossProduct(), cross
476
Chapitre 12 : Méthodes
pictureP()
Utilisation
-- Syntaxe Lingo
pictureP(valeurDimage)
// Syntaxe JavaScript
pictureP(valeurDimage);
Description
Fonction ; indique si l’état de la propriété picture de l’acteur spécifié est TRUE ou FALSE.
Etant donné que pictureP ne vérifie pas directement si une image est associée à un acteur, vous
devez le faire en vérifiant la propriété picture de l’acteur.
Paramètres
valeurDimage
Requis. Spécifie une référence à l’image d’un acteur.
Exemple
La première instruction affecte la valeur de la propriété picture de l’acteur Temple, qui est un
bitmap, à la variable valeurDimage. La seconde vérifie si Temple est une image en vérifiant la
valeur affectée à valeurDimage.
-- Syntaxe Lingo
valeurDimage = member("Temple").picture
put pictureP(valeurDimage)
// Syntaxe JavaScript
var valeurDimage = member("Temple").picture;
put(pictureP(valeurDimage));
Le résultat est 1, équivalent numérique de TRUE.
play() (3D)
Utilisation
member(quelActeur).model(quelModèle).bonesPlayer.play()
member(quelActeur).model(quelModèle).keyframePlayer.play()
member(quelActeur).model(quelModèle).bonesPlayer.\
play(nomDeMouvement {, enBoucle, positionInitiale, positionFinale, échelle,
décalage})
member(quelActeur).model(quelModèle).keyframePlayer.\
play(nomDeMouvement {, enBoucle, positionInitiale, positionFinale, échelle,
décalage})
Description
Commande 3D #keyframePlayer et #bonesPlayer ; entraîne ou reprend l’exécution d’un
mouvement.
Lorsque le mouvement d’un modèle est démarré ou redémarré à l’aide de cette commande, la
propriété bonesPlayer.playing du modèle prend la valeur TRUE.
Utilisez play() sans paramètre pour reprendre l’exécution d’un mouvement qui a été arrêté à
l’aide de la commande pause().
477
L’utilisation de la commande play() pour démarrer un mouvement insère le mouvement au
début de la liste de lecture du modificateur. Si cela interrompt la lecture d’un autre mouvement,
le mouvement interrompu reste dans la liste de lecture et est positionné après le mouvement qui
vient d’être démarré. Lorsque le mouvement qui vient d’être démarré se termine (s’il n’est pas en
boucle) ou que la commande playNext() est émise, la lecture du mouvement interrompu
recommence là où elle s’était arrêtée.
Paramètres
Requis. Spécifie le nom du mouvement à exécuter. Lorsque nomDeMouvement
est le seul paramètre transmis à play(), le mouvement est exécuté une fois par le modèle du
début à la fin, à la cadence définie par la propriété playRate du modificateur.
nomDeMouvement
enBoucle
Facultatif. Spécifie si le mouvement est lu une seule fois (FALSE) ou continuellement
(TRUE).
positionInitiale Facultatif. Ce paramètre est mesuré en millisecondes, à partir du début du
mouvement. Lorsque enBoucle a pour valeur TRUE, la première itération de la boucle commence
à décalage et se termine à positionFinale, avec toutes les répétitions suivantes du mouvement
démarrant à positionInitiale et se terminant à positionFinale.
positionFinale Facultatif. Ce paramètre est mesuré en millisecondes, à partir du début du
mouvement. Lorsque enBoucle a pour valeur FALSE, le mouvement démarre à la position
décalage et se termine à la positionFinale. Lorsque enBoucle a pour valeur TRUE, la première
itération de la boucle commence à décalage et se termine à positionFinale, avec toutes les
répétitions suivantes démarrant à positionInitiale et se terminant à positionFinale.
Donnez à positionFinale la valeur -1 si le mouvement doit être lu jusqu’à la fin.
cadenceDeLecture Facultatif. Spécifie la cadence réelle de la lecture du mouvement. La valeur
du paramètre cadenceDeLecture est multipliée par la propriété playRate du modificateur
#keyframePlayer ou #bonesPlayer du modèle pour déterminer la cadence réelle de la lecture
du mouvement.
décalage Facultatif. Ce paramètre est mesuré en millisecondes, à partir du début du mouvement.
Lorsque enBoucle a pour valeur FALSE, le mouvement démarre à la position décalage et se
termine à la positionFinale. Lorsque enBoucle a pour valeur TRUE, la première itération de la
boucle commence à décalage et se termine à positionFinale, avec toutes les répétitions
suivantes démarrant à positionInitiale et se terminant à positionFinale. Vous pouvez
également donner au paramètre décalage la valeur #synchronized pour démarrer le
mouvement à la même position, par rapport à la durée, que l’animation courante.
Exemple
La commande suivante entraîne le modèle Marcheur à lire le mouvement Chute. Après la lecture
de ce mouvement, le modèle reprendra la lecture de tout autre mouvement précédemment
interrompu.
sprite(1).member.model("Marcheur").bonesPlayer.play("Chute", 0, \
0, -1, 1, 0)
478
Chapitre 12 : Méthodes
La commande suivante entraîne le modèle Marcheur à lire le mouvement coupDenvoi. Si
Marcheur est en train d’exécuter un mouvement, il sera interrompu par le mouvement
coupDenvoi dont une section sera jouée en boucle. La première itération de la boucle démarrera
2000 millisecondes à compter du début du mouvement. Toutes les itérations suivantes de la
boucle démarreront à 1000 millisecondes du début de coupDenvoi et se termineront à 5000
millisecondes du début de coupDenvoi. La cadence de lecture sera égale à trois fois la propriété
playRate du modificateur bonesPlayer du modèle.
sprite(1).member.model("Marcheur").bonesPlayer.play("coupDenvoi", 1, \
1000, 5000, 3, 2000)
Voir aussi
queue() (3D), playNext() (3D), playRate (3D), playlist, pause() (3D),
removeLast(), playing (3D)
play() (DVD)
Utilisation
-- Syntaxe Lingo
réfObjDvd.play()
réfObjDvd.play(titreDébut, chapitreDébut, titreFin, chapitreFin)
réfObjDvd.play(listePositionsDeDébut, listePositionsDeFin)
// Syntaxe JavaScript
réfObjDvd.play();
réfObjDvd.play(titreDébut, chapitreDébut, titreFin, chapitreFin);
réfObjDvd.play(listePositionsDeDébut, listePositionsDeFin);
Description
Méthode de DVD ; commence ou reprend la lecture.
En l’absence de paramètres, cette méthode reprend la lecture au début d’un disque ou, si la lecture
a été arrêtée, à la valeur spécifiée par la propriété . La lecture se poursuit jusqu’à la valeur spécifiée
par la propriété stopTimeList, si elle a été définie.
Avec les paramètres titreDébut, chapitreDébut, titreFin et chapitreFin, cette méthode
commence la lecture à un titre et un chapitre donnés. La lecture continue jusqu’aux paramètres
titreFin et chapitreFin, s’ils sont définis.
Avec les paramètres listePositionsDeDébut et listePositionsDeFin, cette méthode lit la
valeur spécifiée par le paramètre listePositionsDeDébut jusqu’à la valeur spécifiée par le
paramètre listePositionsDeFin.
Les formats de liste suivants sont utilisés pour listePositionsDeDébut et
listePositionsDeFin :
[#title:1, #chapter:1, #hours:0, #minutes:1, #seconds:1]
or
[#title:1, #hours:0, #minutes:1, #seconds:1]
Cette méthode renvoie la valeur 0 en cas de réussite.
479
Paramètres
titreDébut Requis si la lecture commence au niveau d’un titre et d’un chapitre donnés. Nombre
entier qui spécifie le titre contenant le chapitre à lire. Ce paramètre remplacera la propriété de
l’acteur.
Requis si la lecture commence au niveau d’un titre et d’un chapitre donnés.
Nombre entier qui spécifie le chapitre à lire. Ce paramètre remplacera la propriété de l’acteur.
chapitreDébut
titreFin Requis si la lecture doit s’arrêter au niveau d’un titre et d’un chapitre donnés. Nombre
entier qui spécifie le titre auquel la lecture s’arrêtera. Ce paramètre remplacera la propriété de
l’acteur.
chapitreFin Requis si la lecture doit s’arrêter au niveau d’un titre et d’un chapitre donnés.
Nombre entier qui spécifie le chapitre à lire. Ce paramètre remplacera la propriété de l’acteur.
listePositionsDeDébut Requis si la lecture commence à une position donnée. Liste de
propriétés qui spécifie la position à laquelle la lecture commence. Ce paramètre remplacera la
propriété de l’acteur.
Requis si la lecture commence à une position donnée. Liste de propriétés
qui spécifie la position à laquelle la lecture s’arrête. Ce paramètre remplacera la propriété de
l’acteur.
listePositionsDeFin
Exemple
Cette instruction reprend la lecture d’une image-objet en pause :
-- Syntaxe Lingo
member(12).play()
// Syntaxe JavaScript
member(12).play();
Ces instructions commencent la lecture au chapitre 2 du titre 1 et l’arrêtent au chapitre 4 :
member(15).play([#title:1, #chapter:2], [#title:1, #chapter:4])
or
member(15).play(1,2,1,4)
Cette instruction commence la lecture au niveau de la 10ème seconde du chapitre 2 et l’arrête à la
17ème seconde :
member(15).play([#title:2, #seconds:10], [#title:2, #seconds:17])
Voir aussi
DVD, startTimeList, stopTimeList
480
Chapitre 12 : Méthodes
play() (piste audio)
Utilisation
-- Syntaxe Lingo
réfObjPisteAudio.play()
réfObjPisteAudio.play(réfObjActeur)
réfObjPisteAudio.play(listeDesPropriétés)
// Syntaxe JavaScript
réfObjPisteAudio.play();
réfObjPisteAudio.play(réfObjActeur);
réfObjPisteAudio.play(listeDesPropriétés);
Description
Méthode de piste audio ; commence la lecture des sons mis en file d’attente sur une piste audio ou
met en file d’attente et commence de lire un acteur donné.
Les acteurs son mettent un certain temps à se charger en mémoire RAM avant que la lecture
ne puisse commencer. Il est conseillé de placer les sons en file d’attente avec queue() avant
d’entamer leur lecture et d’utiliser ensuite la première forme de cette méthode. La seconde forme
ne tire pas parti du préchargement accompli à l’aide de la commande queue().
L’utilisation d’une liste de propriétés facultative permet de définir les paramètres de lecture exacts
d’un son.
Pour un exemple d’utilisation de queue() dans une animation, reportez-vous à l’animation
Sound Control du dossier Learning/Lingo, lui-même inclus dans le dossier de Director.
Paramètres
réfObjActeur Requis si vous lisez un acteur son spécifique. Référence à l’objet acteur à mettre en
file d’attente et à lire.
Requis si vous spécifiez des paramètres de lecture pour un son. Liste de
propriétés qui spécifie les paramètres de lecture exacts pour le son. La définition de ces propriétés
est facultative :
listeDesPropriétés
Propriété
Description
#member
L’acteur à placer en file d’attente. Cette propriété doit être spécifiée. Toutes les
autres sont facultatives.
#startTime
Position temporelle de départ de la lecture du son, en millisecondes. La valeur par
défaut est le début du son. Pour plus d’informations, consultez startTime.
#endTime
Position temporelle de fin de la lecture du son, en millisecondes. La valeur par
défaut est la fin du son. Pour plus d’informations, consultez endTime.
#loopCount
Nombre de répétitions d’une boucle défini avec #loopStartTime et #loopEndTime.
La valeur par défaut est 1. Voir loopCount.
#loopStartTime
Position temporelle de départ de la boucle, en millisecondes. Pour plus
d’informations, consultez loopStartTime.
481
Propriété
Description
#loopEndTime
Position temporelle de fin de la boucle, en millisecondes. Pour plus
d’informations, consultez loopEndTime.
#preloadTime
Quantité de son à placer en mémoire tampon avant la lecture, en millisecondes.
Pour plus d’informations, consultez preloadTime.
Exemple
L’instruction suivante lit l’acteur son Intro sur la piste audio 1 :
-- Syntaxe Lingo
sound(1).play(member("Intro"))
// Syntaxe JavaScript
sound(1).play(member("Intro"));
L’instruction suivante exécute la lecture de l’acteur Crédits sur la piste audio 2. La lecture
commence à la quatrième seconde du son et se termine à la quinzième seconde. La section
comprise entre 10,5 et 14 secondes exécute une lecture en boucle à 6 reprises.
-- Syntaxe Lingo
sound(2).play([#member:member("Crédits"), #startTime:4000, \
#endTime:15000, #loopCount:6, #loopStartTime:10500, #loopEndTime:14000])
// Syntaxe JavaScript
sound(2).play(propList("member",member("Crédits"), "startTime",4000,
"endTime",15000, "loopCount",6, "loopStartTime",10500,
"loopEndTime",14000));
Voir aussi
endTime, loopCount, loopEndTime, loopStartTime, pause() (piste audio),
preLoadTime, queue(), Piste audio, startTime, stop() (piste audio)
play() (RealMedia, SWA, Windows Media)
Utilisation
-- Syntaxe Lingo
réfObjWindowsMedia.play()
réfObjRealMedia.play()
// Syntaxe JavaScript
réfObjWindowsMedia.play();
réfObjRealMedia.play();
Description
Méthode d’acteur ou d’image-objet Windows Media ou RealMedia ; lit l’acteur Windows Media
ou RealMedia ou lit l’image-objet sur la scène.
Pour les acteurs, seul le son est rendu s’il est présent dans l’animation. Si l’acteur est déjà en cours
de lecture, cette méthode n’a aucun effet.
Paramètres
Aucun.
482
Chapitre 12 : Méthodes
Exemple
Les exemples suivants démarrent le processus de lecture en flux continu de l’image-objet 2 et de
l’acteur Real.
-- Syntaxe Lingo
sprite(2).play()
member("Real").play()
// Syntaxe JavaScript
sprite(2).play();
member("Real").play();
Voir aussi
RealMedia, Windows Media
playFile()
Utilisation
-- Syntaxe Lingo
réfObjPisteAudio.playFile(chaîneCheminDeFichier)
// Syntaxe JavaScript
réfObjPisteAudio.playFile(chaîneCheminDeFichier);
Description
Méthode de piste audio ; lit le son AIFF, SWA, AU ou WAV dans une piste audio.
Pour que le son soit lu correctement, l’Xtra MIX qui convient doit être accessible à l’animation
(il est généralement placé dans le dossier des Xtras de l’application).
Lorsque le fichier audio ne se trouve pas dans le même dossier que l’animation,
chaîneCheminDeFichier doit indiquer son chemin d’accès complet.
Pour lire des sons obtenus à partir d’une adresse URL, il est judicieux d’utiliser la commande
downloadNetThing() ou preloadNetThing() pour télécharger d’abord le fichier sur le disque
local. Vous éviterez ainsi les problèmes pouvant se produire en attente de téléchargement.
La méthode playFile() lit les fichiers en flux continu à partir du disque dur au lieu de le faire
depuis la mémoire vive. Par conséquent, l'utilisation de la mathode playFile() pendant la
lecture d'une vidéo numérique ou le chargement d'acteurs en mémoire peut occasionner des
conflits, l'ordinateur tentant de lire simultanément deux emplacements du disque.
Paramètres
chaîneCheminDeFichier Requis. Chaîne qui spécifie le nom du fichier à lire. Lorsque le
fichier audio ne se trouve pas dans le même dossier que l’animation en cours de lecture,
chaîneCheminDeFichier doit indiquer son chemin d'accès complet.
Exemple
L’instruction suivante lit le fichier Tonnerre dans la piste 1 :
-- Syntaxe Lingo
sound(1).playFile("Tonnerre.wav")
// Syntaxe JavaScript
sound(1).playFile("Tonnerre.wav");
483
L’instruction suivante lit le fichier Tonnerre dans la piste 3 :
-- Syntaxe Lingo
sound(3).playFile(_movie.path & "Tonnerre.wav")
// Syntaxe JavaScript
sound(3).playFile(_movie.path + "Tonnerre.wav");
Voir aussi
play() (piste audio), Piste audio, stop() (piste audio)
playFromToTime()
Utilisation
-- Syntaxe Lingo
réfObjWindowsMedia.playFromToTime(entPositionInitiale, entPositionFinale)
// Syntaxe JavaScript
réfObjWindowsMedia.playFromToTime(entPositionInitiale, entPositionFinale);
Description
Méthode d’image-objet Windows Media. Démarre la lecture à une position de départ spécifiée et
l’interrompt à une position de fin spécifiée.
Paramètres
entPositionInitiale Requis. Nombre entier qui spécifie la position, en millisecondes, à partir
de laquelle la lecture commence.
entPositionFinale
Requis. Nombre entier qui spécifie la position, en millisecondes, à laquelle
la lecture s’arrête.
Exemple
Cette instruction spécifie que l’image-objet intitulée Vidéo doit être lue du repère des 30 secondes
au repère des 40 secondes.
-- Syntaxe Lingo
sprite("Vidéo").playFromToTime(30000, 40000)
// Syntaxe JavaScript
sprite("Vidéo").playFromToTime(30000, 40000);
Voir aussi
Windows Media
484
Chapitre 12 : Méthodes
playNext() (piste audio)
Utilisation
-- Syntaxe Lingo
réfObjPisteAudio.playNext()
// Syntaxe JavaScript
réfObjPisteAudio.playNext();
Description
Méthode de piste audio ; entraîne l’interruption immédiate de la lecture du son sur la piste audio
concernée et entame la lecture du son suivant placé en file d’attente.
Si la file d’attente ne contient pas d’autres sons, la lecture du son est simplement stoppée.
Paramètres
Aucun.
Exemple
L’instruction suivante lit le son suivant placé en file d’attente dans la piste audio 2.
-- Syntaxe Lingo
sound(2).playNext()
// Syntaxe JavaScript
sound(2).playNext();
Voir aussi
pause() (piste audio), play() (piste audio), Piste audio,stop() (piste audio)
playNext() (3D)
Utilisation
member(quelActeur).model(quelModèle).bonesPlayer.playNext()
member(quelActeur).model(quelModèle).keyframePlayer.playNext()
Description
Commande 3D de modificateur #keyframePlayer et #bonesPlayer ; démarre la lecture du
mouvement suivant dans la liste de lecture du modificateur #keyframePlayer ou #bonesPlayer
du modèle. Le mouvement en cours de lecture, qui est la première entrée de la liste de lecture, est
interrompu et retiré de la liste.
Si la fusion des mouvements est activée et qu’au moins deux mouvements sont présents dans la
liste de lecture, la fusion du mouvement courant avec le suivant dans la liste de lecture commencera avec l’appel de playNext().
Exemple
L’instruction suivante interrompt le mouvement actuellement exécuté par le modèle 1 et démarre
la lecture du mouvement suivant dans la liste de lecture :
member("scène").model[1].bonesPlayer.playnext()
Voir aussi
blend (3D), playlist
485
playerParentalLevel()
Utilisation
-- Syntaxe Lingo
réfObjDvd.playerParentalLevel()
// Syntaxe JavaScript
réfObjDvd.playerParentalLevel();
Description
Méthode de DVD ; renvoie le niveau parental du lecteur.
Les niveaux parentaux possibles sont compris entre 1 et 8.
Paramètres
Aucun.
Voir aussi
DVD
point()
Utilisation
-- Syntaxe Lingo
point(entH, entV)
// Syntaxe JavaScript
point(entH, entV);
Description
Fonction du niveau supérieur et type de données. Renvoie un point avec des coordonnées
horizontale et verticale spécifiées.
Un point a une propriété locH et une propriété locV.
Les coordonnées d’un point peuvent être modifiées par des opérations arithmétiques avec Lingo
uniquement. Par exemple, les deux points suivants peuvent être ajoutés ensemble avec Lingo,
mais NaN est renvoyé avec la syntaxe JavaScript :
-- Lingo
pointA = point(10,10)
pointB = point(5,5)
put(pointA + pointB)
-- point(15,15)
// Syntaxe JavaScript
var pointA = point(10,10);
var pointB = point(5,5);
trace(pointA + pointB);
// NaN
Pour un exemple d’utilisation de point() dans une animation, reportez-vous aux animations
Imaging et Vector Shapes du dossier Learning/Lingo, lui-même inclus dans le dossier de Director.
486
Chapitre 12 : Méthodes
Paramètres
entH
Requis. Entier qui spécifie la coordonnée horizontale du point.
entV
Requis. Entier qui spécifie la coordonnée verticale du point.
Exemple
L’instruction suivante définit la variable dernièrePosition au point (250, 400) :
-- Syntaxe Lingo
dernièrePosition = point(250, 400)
// Syntaxe JavaScript
var dernièrePosition = point(250, 400);
L’instruction suivante ajoute 5 pixels à la coordonnée horizontale du point affecté à la variable
monPoint :
-- Syntaxe Lingo
monPoint.locH = monPoint.locH + 5
// Syntaxe JavaScript
monPoint.locH = monPoint.locH + 5;
En Lingo uniquement, les instructions suivantes définissent les coordonnées sur la scène d’une
image-objet comme mouseH et mouseV plus 10 pixels. Ces deux instructions sont équivalentes.
-- Syntaxe Lingo
sprite(_mouse.clickOn).loc = point(_mouse.mouseH, _mouse.mouseV) \
+ point(10, 10)
sprite(_mouse.clickOn).loc = _mouse.mouseLoc + 10
Voir aussi
locH, locV
pointAt
Utilisation
member(quelActeur).model(quelModèle).pointAt\
(positionDuVecteur{, vecteurVertical})
member(quelActeur).camera(quelleCaméra).pointAt\
(positionDuVecteur{, vecteurVertical})
member(quelActeur).light(quelleLumière).pointAt\
(positionDuVecteur{, vecteurVertical})
member(quelActeur).group(quelGroupe).pointAt\
(positionDuVecteur{, vecteurVertical})
Description
Commande 3D ; fait pivoter l’objet référencé pour que son vecteur horizontal pointe vers une
position relative à l’univers spécifiée, puis fait pivoter l’objet référencé pour que son vecteur
vertical pointe dans la direction indiquée par un vecteur relatif spécifié.
Le vecteur vertical et le vecteur horizontal de l’objet sont définis par la propriété
pointAtOrientation de l’objet.
487
Paramètres
Requis. Spécifie la position relative à l’univers. Cette valeur peut également
être une référence de nœud.
positionDuVecteur
vecteurVertical Facultatif. Spécifie un vecteur relatif à l’univers qui indique comment le
vecteur vertical de l’objet devrait être orienté. Si ce paramètre n’est pas spécifié, pointAt utilise
par défaut l’axe des y de l’univers comme vecteur vertical recommandé. Si vous essayez de diriger
l’objet pour que son vecteur horizontal soit parallèle à l’axe des y de l’univers, l’axe des x de
l’univers sera utilisé comme vecteur vertical recommandé. La direction horizontale de l’objet et
la direction spécifiée par vecteurVertical n’ont pas besoin d’être perpendiculaires, car cette
commande n’utilise que le paramètre vecteurVertical comme vecteur de recommandation.
Exemple
L’exemple suivant dirige trois objets vers le modèle Mars : la caméra camMars, la lumière Spot
et le modèle Pistolet.
posDansCetUnivers = member("Scène").model("Mars").worldPosition
member("Scène").camera("camMars").pointAt(posDansCetUnivers)
member("Scène").light("Spot").pointAt(posDansCetUnivers)
member("Scène").model("Pistolet").pointAt(posDansCetUnivers, \
vector(0,0,45))
Si vous utilisez un redimensionnement non uniforme et un pointAtOrientation personnalisé
sur le même nœud (tel qu’un modèle), l’appel de pointAt entraînera probablement un redimensionnement non uniforme inattendu. Cela s’explique par l’ordre dans lequel le redimensionnement non uniforme et la rotation utilisés pour orienter correctement le nœud sont appliqués.
Pour remédier à ce problème, effectuez l’une des opérations suivantes :
• Evitez d’utiliser un redimensionnement non uniforme et une valeur pointAtOrientation qui
n’est pas celle définie par défaut sur le même nœud.
• Supprimez votre propriété d’échelle avant d’utiliser pointAt, puis appliquez-la ensuite à
nouveau.
Par exemple :
scale = nœud.transform.scale
nœud.scale = vector( 1, 1, 1 )
nœud.pointAt(vector(0, 0, 0)) -- pointAtOrientation autre que défaut
nœud.transform.scale = scale
Voir aussi
pointAtOrientation
488
Chapitre 12 : Méthodes
pointInHyperlink()
Utilisation
-- Syntaxe Lingo
réfObjImageObjet.pointInHyperlink(point)
// Syntaxe JavaScript
réfObjImageObjet.pointInHyperlink(point);
Description
Fonction d’image-objet texte ; renvoie TRUE ou FALSE selon que le point spécifié est ou non dans
un hyperlien de l’image-objet texte. En règle générale, le point est la position du curseur. Cela est
utile pour définir des curseurs personnalisés.
Paramètres
point
Requis. Spécifie le point à tester.
Voir aussi
cursor(), mouseLoc
pointToChar()
Utilisation
-- Syntaxe Lingo
réfObjImageObjet.pointToChar(pointAConvertir)
// Syntaxe JavaScript
réfObjImageObjet.pointToChar(pointAConvertir);
Description
Fonction ; renvoie un nombre entier représentant la position du caractère situé dans l’image-objet
texte ou champ à une coordonnée d’écran spécifiée ou renvoie -1 si le point n’est pas dans le texte.
Cette fonction permet de déterminer le caractère sous le curseur.
Paramètres
pointAconvertir
Requis. Spécifie la coordonnée d’écran à tester.
Exemple
Les instructions suivantes affichent le numéro du caractère cliqué, ainsi que la lettre, dans la
fenêtre Messages :
-- Syntaxe Lingo
property spriteNum
on mouseDown me
pointCliqué = _mouse.mouseLoc
acteurCourant = sprite(spriteNum).member
numDuCaractère = sprite(spriteNum).pointToChar(pointCliqué)
caractère = acteurCourant.char[numDuCaractère]
put("Caractère sélectionné" && numDuCaractère & ", lettre" && caractère)
end
489
// Syntaxe JavaScript
function mouseDown() {
var pointCliqué = _mouse.mouseLoc;
var acteurCourant = sprite(this.spriteNum).member;
var numDuCaractère = sprite(this.spriteNum).pointToChar(pointCliqué);
var caractère = acteurCourant.getProp("char", numDuCaractère);
put ("Caractère sélectionné " + numDuCaractère + ", lettre " + caractère);
}
Voir aussi
mouseLoc, pointToWord(), pointToItem(), pointToLine(), pointToParagraph()
pointToItem()
Utilisation
-- Syntaxe Lingo
réfObjImageObjet.pointToItem(pointAConvertir)
// Syntaxe JavaScript
réfObjImageObjet.pointToItem(pointAConvertir);
Description
Fonction ; renvoie un nombre entier représentant la position de l’élément situé dans l’image-objet
texte ou champ à une coordonnée d’écran spécifiée ou renvoie -1 si le point n’est pas dans le texte.
Les éléments sont séparés par la propriété itemDelimiter, qui est par défaut une virgule.
Cette fonction permet de déterminer l’élément sous le curseur.
Paramètres
pointAconvertir
Requis. Spécifie la coordonnée d’écran à tester.
Exemple
Les instructions suivantes affichent le numéro de l’élément cliqué, ainsi que son texte, dans la
fenêtre Messages :
-- Syntaxe Lingo
property spriteNum
on mouseDown me
pointCliqué = _mouse.mouseLoc
acteurCourant = sprite(spriteNum).member
numéroDélément = sprite(spriteNum).pointToItem(pointCliqué)
texteDélément = acteurCourant.item[numéroDélément]
put("Elément cliqué" && numéroDélément & ", le texte" && texteDélément)
end
490
Chapitre 12 : Méthodes
// Syntaxe JavaScript
function mouseDown() {
var pointCliqué = _mouse.mouseLoc;
var acteurCourant = sprite(this.spriteNum).member;
var numéroDélément = sprite(this.spriteNum).pointToItem(pointCliqué);
var texteDélément = acteurCourant.getProp("item" ,numéroDélément);
trace("Elément cliqué " + numéroDélément + ", le texte" + texteDélément);
}
Voir aussi
itemDelimiter, mouseLoc, pointToChar(), pointToWord(), pointToItem(),
pointToLine(), pointToParagraph()
pointToLine()
Utilisation
-- Syntaxe Lingo
réfObjImageObjet.pointToLine(pointAConvertir)
// Syntaxe JavaScript
réfObjImageObjet.pointToLine(pointAConvertir);
Description
Fonction ; renvoie un nombre entier représentant la position de la ligne dans l’image-objet texte
ou champ à une coordonnée d’écran spécifiée ou renvoie -1 si le point n’est pas dans le texte. Les
lignes sont séparées par des retours chariot dans l’acteur texte ou champ.
Cette fonction permet de déterminer la ligne sous le curseur.
Paramètres
pointAconvertir
Requis. Spécifie la coordonnée d’écran à tester.
Exemple
Les instructions suivantes affichent le numéro de la ligne cliquée, ainsi que son texte, dans la
fenêtre Messages :
-- Syntaxe Lingo
property spriteNum
on mouseDown me
pointCliqué = _mouse.mouseLoc
acteurCourant = sprite(spriteNum).member
numDeLigne = sprite(spriteNum).pointToLine(pointCliqué)
texteDeLigne = acteurCourant.line[numDeLigne]
put("Ligne cliquée" && numDeLigne & ", le texte" && texteDeLigne)
end
491
// Syntaxe JavaScript
function mouseDown() {
var pointCliqué = _mouse.mouseLoc;
var acteurCourant = sprite(this.spriteNum).member;
var numDeLigne = sprite(this.spriteNum).pointToLine(pointCliqué);
var texteDeLigne = acteurCourant.getProp("line", numDeLigne);
put("Ligne cliquée" + numDeLigne + ", le texte" + texteDeLigne);
}
Voir aussi
itemDelimiter, mouseLoc, pointToChar(), pointToWord(), pointToItem(),
pointToLine(), pointToParagraph()
pointToParagraph()
Utilisation
-- Syntaxe Lingo
réfObjImageObjet.pointToParagraph(PointAConvertir)
// Syntaxe JavaScript
réfObjImageObjet.pointToParagraph(PointAConvertir);
Description
Fonction ; renvoie un nombre entier représentant le numéro du paragraphe situé dans l’imageobjet texte ou champ à une coordonnée d’écran spécifiée ou renvoie -1 si le point n’est pas dans
le texte. Les paragraphes sont séparés par des retours chariot dans un bloc de texte.
Cette fonction permet de déterminer le paragraphe sous le curseur.
Paramètres
pointAconvertir
Requis. Spécifie la coordonnée d’écran à tester.
Exemple
Les instructions suivantes affichent le numéro du paragraphe cliqué, ainsi que son texte, dans la
fenêtre Messages :
-- Syntaxe Lingo
property spriteNum
on mouseDown me
pointCliqué = _mouse.mouseLoc
acteurCourant = sprite(spriteNum).member
numDeParagraphe = sprite(spriteNum).pointToParagraph(pointCliqué)
texteDuParagraphe = acteurCourant.paragraph[numDeParagraphe]
put("Paragraphe cliqué" && numDeParagraphe & ", le texte" &&
texteDuParagraphe)
end
492
Chapitre 12 : Méthodes
// Syntaxe JavaScript
function mouseDown() {
var pointCliqué = _mouse.mouseLoc;
var acteurCourant = sprite(this.spriteNum).member;
var numDeParagraphe = sprite(this.spriteNum).pointToParagraph(pointCliqué);
var texteDuParagraphe= acteurCourant.getProp("paragraph", numDeParagraphe);
trace("Paragraphe cliqué " + numDeParagraphe + ", le texte" +
texteDuParagraphe);
}
Voir aussi
itemDelimiter, mouseLoc, pointToChar(), pointToWord(), pointToItem(),
pointToLine()
pointToWord()
Utilisation
-- Syntaxe Lingo
réfObjImageObjet.pointToWord(pointAConvertir)
// Syntaxe JavaScript
réfObjImageObjet.pointToWord(pointAConvertir);
Description
Fonction ; renvoie un nombre entier représentant le numéro du mot situé dans l’image-objet
texte ou champ à une coordonnée d’écran spécifiée ou renvoie -1 si le point n’est pas dans le texte.
Les mots sont séparés par des espaces dans un bloc de texte.
Cette fonction permet de déterminer le mot sous le curseur.
Paramètres
pointAconvertir
Requis. Spécifie la coordonnée d’écran à tester.
Exemple
Les instructions suivantes affichent le numéro du mot cliqué, ainsi que son texte, dans la fenêtre
Messages :
-- Syntaxe Lingo
property spriteNum
on mouseDown me
pointCliqué = _mouse.mouseLoc
acteurCourant = sprite(spriteNum).member
numDuMot = sprite(spriteNum).pointToWord(pointCliqué)
texteDuMot = acteurCourant.word[numDuMot]
put("Mot cliqué" && numDuMot & ", le texte" && texteDuMot)
end
493
// Syntaxe JavaScript
function mouseDown(me) {
var pointCliqué = _mouse.mouseLoc;
var acteurCourant = sprite(this.spriteNum).member;
var numDuMot = sprite(this.spriteNum).pointToWord(pointCliqué);
var texteDuMot = acteurCourant.getProp("word", numDuMot);
trace("Mot cliqué" + numDuMot + ", le texte" + texteDuMot);
}
Voir aussi
itemDelimiter, mouseLoc, pointToChar(), pointToItem(), pointToLine(),
pointToParagraph()
postNetText
Utilisation
postNetText(url, listeDePropriétés {,chaîneOSduServeur}
{,chaîneJeuCarServeur})
postNetText(url, textePosté {,chaîneOSduServeur} {,chaîneJeuCarServeur})
Description
Commande ; envoie une requête POST à une URL (une URL HTTP) avec des données spécifiées.
Cette commande est similaire à getNetText(). Comme pour getNetText(), la réponse du
serveur est renvoyée via netTextResult(IDRéseau) une fois que netDone(IDRéseau) reçoit la
valeur 1 et si netError(IDRéseau) a la valeur 0 ou OK.
Les arguments facultatifs peuvent être omis quelle que soit leur position.
Cette commande possède en outre un avantage supplémentaire par rapport à getNetText() :
en effet, une requête postNetText() peut être arbitrairement longue, alors que la longueur de la
requête getNetText() est limitée à celle d’une adresse URL (1 Ko ou 4 Ko, selon le navigateur
web).
Remarque : Si vous utilisez postNetText pour afficher des données dans un domaine différent de
celui dans lequel l’animation est lue, une alerte de sécurité est déclenchée lors de la lecture dans
Shockwave Player.
Pour un exemple d’utilisation de postNetText dans une animation, reportez-vous à l’animation
Forms and Post du dossier Learning/Lingo, lui-même inclus dans le dossier de Director.
Paramètres
url
Requis. Spécifie l’URL à laquelle la requête POST doit être envoyée.
ou TextePosté Requis. Spécifie les données à envoyer avec la demande.
Lorsqu’une liste de propriétés est utilisée à la place d’une chaîne, les informations sont envoyées
avec METHOD=POST, de la même manière qu’un navigateur web affiche un formulaire HTML.
Cette procédure facilite la construction et l’affichage des données d’un formulaire dans un titre
Director. Les noms des propriétés correspondent aux noms des champs du formulaire HTML
et leurs valeurs à celles des champs.
listeDePropriétés
La liste de propriétés peut utiliser des chaînes ou des symboles comme noms de propriétés. Si un
symbole est utilisé, il est automatiquement converti en chaîne sans le signe # du début. De même,
les valeurs numériques sont converties en chaînes si elles sont utilisées comme valeur d’une
propriété.
494
Chapitre 12 : Méthodes
Remarque : Si la forme secondaire est utilisée (une chaîne remplace la liste de propriétés), la chaîne
textePosté est envoyée au serveur sous forme de requête HTTP POST en utilisant le type mime
text/plain. Bien que pratique dans certaines applications, cette méthode n’est pas compatible avec
l’affichage de formulaires HTML.
chaîneOSduServeur Facultatif. La valeur par défaut est UNIX, mais ce paramètre peut prendre la
valeur Windows ou Mac et convertit les retours chariot de l’argument listeDePropriétés dans le
format utilisé par le serveur afin d’éviter toute confusion. Pour la plupart des applications, ce
paramètre n’est pas nécessaire, les ruptures de ligne n’étant généralement pas utilisées dans les
réponses de formulaires.
Facultatif. Ce paramère ne s’applique que si l’utilisateur travaille sur un
système Shift-JIS (japonais). Ses valeurs possibles sont JIS, EUC, ASCII et AUTO. Les données
envoyées sont converties de Shift-JIS dans le jeu de caractères désigné. Les données renvoyées sont
traitées de la même façon qu’avec getNetText() (converties du jeu de caractères nommé à ShiftJIS). Si AUTO est utilisé, les données affichées dans le jeu de caractères local ne sont pas converties ;
les résultats renvoyés par le serveur sont convertis comme pour getNetText(). "ASCII" est la
valeur par défaut si chaîneJeuCarServeur est omis. ASCII n’offre aucune conversion pour
l’envoi ou les résultats.
chaîneJeuCarServeur
Exemple
L’instruction suivante omet le paramètre chaîneJeuCarServeur :
IDréseau = postNetText("www.dom.fr\baseDeDonnées.cgi", "Jean Martin", "Win")
L’exemple suivant génère un formulaire à partir des champs de saisie de l’utilisateur pour son
prénom et son nom, ainsi qu’un score. Notez que chaîneOSduServeur et
chaîneJeuCarServeur ont été omis :
nom = member("Nom").text
prénom = member("Prénom").text
score = member("Score").text
listeInfos = ["Prénom":prénom, "Nom":nom, "Score":score]
IDréseau = postNetText("www.mondomaine.fr\baseUtilisateurs.cgi", listeInfos)
Voir aussi
getNetText(), netTextResult(), netDone(), netError()
power()
Utilisation
power(base, exposant)
Description
Fonction mathématique ; calcule la valeur d’un nombre déterminé qui est élevé à une puissance
donnée.
Paramètres
base
Requis. Spécifie le numéro de base.
exposant
Requis. Spécifie la valeur de l’exposant.
495
Exemple
L’instruction suivante donne à la variable vRésultat la valeur du cube de 4 :
set vRésultat = power(4,3)
preLoad() (acteur)
Utilisation
-- Syntaxe Lingo
réfObjActeur.preLoad({réfObjDernierActeur})
// Syntaxe JavaScript
réfObjActeur.preLoad({réfObjDernierActeur});
Description
Méthode d’acteur ; précharge un acteur ou une plage d’acteurs en mémoire et arrête le
préchargement lorsque la mémoire est pleine ou lorsque tous les acteurs spécifiés ont été
préchargés.
En l’absence du paramètre réfObjDernierActeur, preLoad() précharge tous les acteurs utilisés
depuis l’image courante jusqu’à la dernière image d’une animation.
Paramètres
réfObjDernierActeur Facultatif. Référence au dernier acteur d’une plage d’acteurs qui est
chargé en mémoire. Le premier acteur de la plage est spécifié par réfObjActeur.
Exemple
L’instruction suivante indique dans la fenêtre Messages si l’animation QuickTime Chaise
pivotante peut être préchargée en mémoire :
-- Syntaxe Lingo
put(member("Chaise pivotante").preload())
// Syntaxe JavaScript
put(member("Chaise pivotante").preload());
Le gestionnaire startMovie suivant définit un acteur animation Flash pour une lecture en flux
continu puis définit sa propriété bufferSize :
-- Syntaxe Lingo
on startMovie
member("Démo Flash").preload = FALSE
member("Démo Flash").bufferSize = 65536
end
// Syntaxe JavaScript
function startMovie() {
member("Démo Flash").preload = false;
member("Démo Flash").bufferSize = 65536;
}
Voir aussi
Acteur
496
Chapitre 12 : Méthodes
preLoad() (animation)
Utilisation
-- Syntaxe Lingo
_movie.preLoad({nomOuNumDimage})
_movie.preLoad(nomOuNumDimageInitiale, nomOuNumDimageFinale)
// Syntaxe JavaScript
_movie.preLoad({nomOuNumDimage});
_movie.preLoad(nomOuNumDimageInitiale, nomOuNumDimageFinale);
Description
Méthode d’animation ; précharge en mémoire des acteurs de l’image ou de la plage d’images
spécifiée et s’arrête lorsque la mémoire disponible est saturée ou que tous les acteurs spécifiés
ont été préchargés, comme suit :
• En l’absence d’arguments, cette méthode précharge tous les acteurs utilisés depuis l’image
•
•
courante jusqu’à la dernière image d’une animation.
Si un seul argument est fourni (nomOuNumDimage), la méthode précharge tous les acteurs
utilisés dans la plage d’images depuis l’image courante jusqu’à l’image nomOuNumDimage,
comme spécifié par le numéro ou le nom de l’image.
Si deux arguments sont fournis (nomOuNumDimageInitiale et nomOuNumDimageFinale) la
méthode précharge tous les acteurs utilisés dans la plage d’images depuis l’image
nomOuNumDimageInitiale jusqu’à l’image nomOuNumDimageFinale, comme spécifié par le
numéro ou le nom de l’image.
La méthode preLoad() renvoie aussi le numéro de la dernière image qu’il a été possible de
charger. Pour obtenir cette valeur, utilisez la fonction result().
Paramètres
nomOuNumDimage Facultatif. Chaîne qui spécifie l’image à précharger ou nombre entier qui
spécifie son numéro.
nomOuNumDimageInitiale Requis si vous préchargez une plage d’images. Chaîne qui spécifie le
nom du libellé de la première image dans la plage d’images à précharger ou nombre entier qui
spécifie le numéro de cette image.
Requis si vous préchargez une plage d’images. Chaîne qui spécifie le
nom du libellé de la dernière image dans la plage d’images à précharger ou nombre entier qui
spécifie le numéro de cette image.
nomOuNumDimageFinale
Exemple
L’instruction suivante précharge les acteurs utilisés depuis l’image courante jusqu’à l’image
contenant le repère suivant :
-- Syntaxe Lingo
_movie.preLoad(_movie.marker(1))
// Syntaxe JavaScript
_movie.preLoad(_movie.marker(1));
497
L’instruction suivante précharge les acteurs utilisés de l’image 10 à l’image 50 :
-- Syntaxe Lingo
_movie.preLoad(10, 50)
// Syntaxe JavaScript
_movie.preLoad(10, 50);
Voir aussi
Animation, result
preLoadBuffer()
Utilisation
-- Syntaxe Lingo
réfObjActeur.preLoadBuffer()
// Syntaxe JavaScript
réfObjActeur.preLoadBuffer();
Description
Commande ; précharge une partie d’un fichier Shockwave Audio (SWA) spécifié en mémoire.
La quantité préchargée est déterminée par la propriété preLoadTime. Cette commande ne
fonctionne que si l’acteur SWA est arrêté.
Une fois la commande preLoadBuffer réussie, la propriété d’acteur state est égale à 2.
La plupart des propriétés des acteurs SWA ne peuvent être testées qu’après la réussite complète
de la commande preLoadBuffer. Ces propriétés sont : cuePointNames, cuePointTimes,
currentTime, duration, percentPlayed, percentStreamed, bitRate, sampleRate et
numChannels.
Paramètres
Aucun.
Exemple
L’instruction suivante charge l’acteur Jacques Brel en mémoire :
-- Syntaxe Lingo
member("Jacques Brel").preLoadBuffer()
// Syntaxe JavaScript
member("Jacques Brel").preLoadBuffer();
Voir aussi
preLoadTime
498
Chapitre 12 : Méthodes
preLoadMember()
Utilisation
-- Syntaxe Lingo
_movie.preLoadMember({réfObjActeur})
_movie.preLoadMember(nomOuNumDacteurInitial, nomOuNumDacteurFinal)
// Syntaxe JavaScript
_movie.preLoadMember({réfObjActeur});
_movie.preLoadMember(nomOuNumDacteurInitial, nomOuNumDacteurFinal);
Description
Méthode d’animation ; précharge les acteurs et arrête le préchargement lorsque la mémoire est
saturée ou que tous les acteurs spécifiés ont été préchargés.
Cette méthode renvoie le numéro du dernier acteur qu’il a été possible de charger. Pour obtenir
cette valeur, utilisez la fonction result().
En l’absence d’arguments, preLoadMember() précharge tous les acteurs de l’animation.
Si l’argument réfObjActeur est fourni, preLoadMember() ne précharge que cet acteur. Si
réfObjActeur est un nombre entier, il n’est fait référence qu’à la première distribution. Si
réfObjActeur est une chaîne, le premier acteur dont le nom correspond à la chaîne est utilisé.
Si les deux arguments (nomOuNumDacteurInitial et nomOuNumDacteurFinal) sont fournis,
précharge tous les acteurs dans la plage spécifiée par les noms ou numéros des
acteurs.
preLoadMember()
Paramètres
réfObjActeur
Facultatif. Référence à l’acteur à précharger.
nomOuNumDacteurInitial Requis si vous préchargez une plage d’acteurs. Chaîne ou nombre
entier qui spécifie le premier acteur de la plage d’acteurs à précharger.
nomOuNumDacteurFinal Requis si vous préchargez une plage d’acteurs. Chaîne ou nombre entier
qui spécifie le dernier acteur de la plage d’acteurs à précharger.
Voir aussi
Animation, preLoad() (acteur), result
preLoadMovie()
Utilisation
-- Syntaxe Lingo
_movie.preLoadMovie(chaîneNomDanimation)
// Syntaxe JavaScript
_movie.preLoadMovie(chaîneNomDanimation);
Description
Méthode d’animation ; précharge les données et les acteurs associés à la première image de
l’animation spécifiée. Le préchargement d’une animation permet de la faire démarrer plus
rapidement avec les méthodes go() ou play().
499
Si vous devez précharger des acteurs depuis une adresse URL, utilisez preloadNetThing() pour
charger les acteurs directement dans la mémoire cache ou downloadNetThing() pour charger
une animation sur un disque local, à partir duquel vous pouvez alors la charger en mémoire,
de façon à réduire le temps de téléchargement.
Paramètres
chaîneNomDanimation
Requis. Chaîne qui spécifie le nom de l’animation à précharger.
Exemple
L’instruction suivante précharge l’animation Introduction, qui est située dans le même dossier
que l’animation courante :
-- Syntaxe Lingo
_movie.preLoadMovie("Introduction")
// Syntaxe JavaScript
_movie.preLoadMovie("Introduction");
Voir aussi
downloadNetThing, go(), Animation, preloadNetThing()
preloadNetThing()
Utilisation
preloadNetThing (url)
Description
Fonction ; précharge un fichier depuis Internet dans la mémoire cache locale afin de le rendre
utilisable par la suite sans perte de temps inhérente au téléchargement. La valeur renvoyée est un
identifiant réseau à utiliser pour suivre le déroulement de l’opération.
La fonction preloadNetThing() télécharge le fichier pendant la lecture de l’animation courante.
Utilisez netDone() pour vérifier si le téléchargement est terminé.
Un élément téléchargé peut être immédiatement affiché, car il est lu à partir de la mémoire cache
locale et non à partir du réseau.
Bien que de nombreuses opérations réseau puissent être actives au même moment, l’exécution de
plus de quatre opérations simultanées réduit considérablement les performances.
La taille de la mémoire cache et l’option de vérification des documents des préférences d’un
navigateur web n’affectent pas le comportement de la commande preloadNetThing.
La fonction preloadNetThing() n’analyse pas les liens d’un fichier Director. En conséquence,
même si un fichier Director est lié aux fichiers de distribution et aux fichiers graphiques,
preloadNetThing() ne télécharge que le fichier Director. Vous devez toujours précharger
séparément les autres objets liés.
Paramètres
url Requis. Spécifie le nom d’un fichier Internet valide tel qu’une animation Director, un
graphique ou l’adresse d’un serveur FTP.
500
Chapitre 12 : Méthodes
Exemple
L’instruction suivante utilise preloadNetThing() et renvoie l’ID réseau pour l’opération :
set monIDréseau = preloadNetThing("http://www.votreServeur.fr/pageDeMenu/
monAnimation.dir")
Une fois le téléchargement terminé, vous pouvez naviguer jusqu’à l’animation avec la même
adresse URL. L’animation sera lue depuis la mémoire cache, et non depuis l’adresse URL,
puisqu’elle est chargée.
Voir aussi
netDone()
preMultiply
Utilisation
transformation1.preMultiply(transformation2)
Description
Commande 3D de transformation ; modifie une transformation en appliquant les effets de
positionnement, de rotation et de redimensionnement d’une autre transformation.
Si transformation2 décrit une rotation de 90° autour de l’axe des x et que transformation1
décrit une translation de 100 unités sur l’axe des y,
transformation1.multiply(transformation2) modifie cette transformation pour lui faire
décrire une translation suivie d’une rotation. L’instruction
transformation1.preMultiply(transformation2) modifie cette transformation pour lui
faire décrire une rotation suivie d’une translation. L’effet obtenu est l’inversement de l’ordre des
opérations.
Paramètres
transformation2 Requis. Spécifie la transformation à partir de laquelle les effets sont préappliqués à une autre transformation.
Exemple
L’instruction suivante exécute un calcul qui applique la transformation du modèle Mars à la
transformation du modèle Pluton :
member("scène").model("Pluton").transform.preMultiply\
(member("scène").model("Mars").transform)
501
preRotate
Utilisation
référenceDeTransformation.preRotate( angleX, angleY, angleZ )
référenceDeTransformation.preRotate(vecteur)
référenceDeTransformation.preRotate( vecteurDePosition, vecteurDeDirection, \
angle )
member( quelActeur ).nœud.transform.preRotate( angleX, \
angleY, angleZ )
member( quelActeur ).nœud.transform.preRotate( vecteur )
member( quelActeur ).nœud.transform.preRotate\
( vecteurDePosition, vecteurDeDirection, angle )
Description
Commande 3D de transformation ; applique une rotation avant les décalages de position,
rotation et d’échelle de la transformation. La rotation peut être spécifiée sous la forme d’un
ensemble de trois angles, chacun desquels spécifiant l’angle de rotation autour des trois axes
correspondants. Ces angles peuvent être spécifiés de façon explicite sous la forme angleX, angleY
et angleZ, ou au moyen d’un vecteur, dans lequel les composants x, y et z correspondent,
respectivement, à la rotation autour de l’axe des x, des y et des z.
La rotation peut également être spécifiée comme une rotation autour d’un axe arbitraire. Cet axe
est défini dans l’espace par vecteurDePosition et vecteurDeDirection. Le degré de rotation
autour de cet axe est spécifié par angle.
nœud
peut être une référence à un modèle, un groupe, une lumière ou une caméra.
Paramètres
angleX Requis si vous appliquez une rotation avec les axes des x, des y et des z. Spécifie l’angle de
rotation autour de l’axe des x.
angleY Requis si vous appliquez une rotation avec les axes des x, des y et des z. Spécifie l’angle de
rotation autour de l’axe des y.
angleZ Requis si vous appliquez une rotation avec les axes des x, des y et des z. Spécifie l’angle de
rotation autour de l’axe des z.
vecteur Requis si vous appliquez une rotation avec un vecteur. Spécifie le vecteur dont les angles
sont utilisés dans la rotation.
Requis si vous appliquez une rotation autour d’un axe arbitraire. Spécifie le
décalage de la position.
vecteurDePosition
vecteurDeDirection Requis si vous appliquez une rotation autour d’un axe arbitraire. Spécifie
le décalage de la direction.
Requis si vous appliquez une rotation autour d’un axe arbitraire. Spécifie le degré de
rotation autour d’un axe arbitraire.
angle
502
Chapitre 12 : Méthodes
Exemple
L’instruction suivante effectue une rotation de 20° sur chaque axe. Dans la mesure où la propriété
transform du modèle correspond à ses décalages de position, rotation et redimensionnement par
rapport à son parent et que preRotate applique la modification d’orientation avant tout effet
existant de la propriété transform de ce modèle, ce dernier subira une rotation sur place plutôt
qu’autour de son parent.
member("Scène").model("bip01").transform.preRotate(20, 20, 20)
L’instruction précédente équivaut à la suivante :
member("Scène").model("bip01").rotate(20,20,20).
preRotate() n’est généralement utile qu’avec les variables de transformation. Cette ligne fera
orbiter la caméra autour du point (100, 0, 0) dans l’espace, de 180° autour de l’axe des y.
t = transform()
t.position = member("scène").camera[1].transform.position
t.preRotate(vector(100, 0, 0), vector(0, 1, 0), 180)
member("scène").camera[1].transform = t
Voir aussi
rotate
preScale()
Utilisation
référenceDeTransformation.preScale(échelleX , échelleY , échelleZ)
référenceDeTransformation.preScale(vecteur)
member( quelActeur ).nœud.transform.preScale( échelleX, \
échelleY, échelleZ )
member( quelActeur ).nœud.transform.preScale( vecteur )
Description
Commande 3D de transformation ; applique une échelle avant d’appliquer les effets de position,
de rotation et de redimensionnement existants de la transformation en question.
nœud
peut être une référence à un modèle, un groupe, une lumière ou une caméra.
Paramètres
échelleX Requis si vous appliquez une échelle avec les axes des x, des y et des z. Spécifie l’échelle
sur l’axe des x.
échelleY Requis si vous appliquez une échelle avec les axes des x, des y et des z. Spécifie l’échelle
sur l’axe des y.
échelleZ Requis si vous appliquez une échelle avec les axes des x, des y et des z. Spécifie l’échelle
sur l’axe des z.
vecteur Requis si vous appliquez une échelle avec un vecteur. Spécifie le vecteur qui contient
l’échelle à appliquer.
503
Exemple
La ligne 1 du code Lingo suivant crée un double de la transformation de Lune1. N’oubliez pas
qu’on accède à la propriété de transformation d’un modèle par référence.
La ligne 2 applique une échelle à cette transformation avant tout effet existant de position ou de
rotation. Supposez que la transformation représente le décalage de position et l’orbite de rotation
de Lune1 par rapport à sa planète parent. Supposez également que le parent de Lune2 est le même
que celui de Lune1. Si nous utilisions ici scale() au lieu de preScale(), Lune2 serait placé deux
fois plus loin et tournerait autour de la planète deux fois plus que Lune1. Cela s’explique par le
fait que le redimensionnement serait appliqué aux décalages de position et de rotation existants de
la transformation. L’utilisation de preScale() appliquera la modification de taille sans affecter
les décalages de position et de rotation existants.
La ligne 3 applique une rotation supplémentaire de 180° autour de l’axe des x de la planète. Cela
placera Lune2 du côté opposé à l’orbite de Lune1. Veuillez noter qu’avec preRotate(), Lune2
serait resté à la même place que Lune1 et aurait été pivoté de 180° autour de son propre axe des x.
La ligne 4 affecte cette nouvelle transformation à Lune2.
t = member("scène").model("Lune1").transform.duplicate()
t.preScale(2,2,2)
t.rotate(180,0,0)
member("scène").model("Lune2").transform = t
preTranslate()
Utilisation
référenceDeTransformation.preTranslate( incrémentX, incrémentY, \
incrémentZ )
référenceDeTransformation.preTranslate(vecteur)
member( quelActeur ).nœud.transform.preTranslate\
(incrémentX, incrémentY, incrémentZ)
member( quelActeur ).nœud.transform.preTranslate( vecteur )
Description
Commande 3D de transformation ; applique une translation avant les décalages de position,
rotation et d’échelle de la transformation. La translation peut être spécifiée sous la forme d’un jeu
de trois incréments le long des trois axes correspondants. Ces incréments peuvent être spécifiés
explicitement sous la forme incrémentX, incrémentY et incrémentZ, ou par un vecteur, dont le
composant x correspond à la translation sur l’axe des x, y sur l’axe des y et z sur l’axe des y.
A la suite d’une série de transformations, réalisées dans l’ordre suivant, l’origine locale du modèle
se trouvera à (0, 0, -100), si le parent du modèle est l’univers :
model.transform.identity()
model.transform.rotate(0, 90, 0)
model.transform.preTranslate(100, 0, 0)
Si translate() avait été utilisée à la place de preTranslate(), l’origine locale du modèle aurait
été (100, 0, 0) et le modèle aurait été pivoté de 90° autour de son propre axe des y. L’instruction
model.transform.pretranslate(x, y, z) est équivalente à model.translate(x, y, z). La
propriété preTranslate() n’est généralement utile qu’avec les variables de transformation plutôt
qu’avec les références model.transform.
504
Chapitre 12 : Méthodes
Paramètres
Requis si vous appliquez une transition avec les axes des x, des y et des z. Spécifie la
translation autour de l’axe des x.
incrémentX
Requis si vous appliquez une transition avec les axes des x, des y et des z. Spécifie la
translation autour de l’axe des y.
incrémentY
Requis si vous appliquez une transition avec les axes des x, des y et des z. Spécifie la
translation autour de l’axe des z.
incrémentZ
Requis si vous appliquez une translation avec un vecteur. Spécifie le vecteur à utiliser
dans la translation.
vecteur
Exemple
t = transform()
t.transform.identity()
t.transform.rotate(0, 90, 0)
t.transform.preTranslate(100, 0, 0)
gbModèle = member("Scène").model("Mars")
gbModel.transform = t
put gbModèle.transform.position
-- vector(0.0000, 1.0000, 0.0000)
print()
Utilisation
-- Syntaxe Lingo
réfObjImageObjet.print({nomDeCible, #printingBounds})
// Syntaxe JavaScript
réfObjImageObjet.print({nomDeCible, #printingBounds});
Description
Commande ; appelle la commande ActionScript print correspondante, qui a fait son apparition
avec Flash 5. Toutes les images de l’animation Flash identifiées par #p sont imprimées. Si aucune
image individuelle n’a été libellée, toute l’animation est imprimée.
L’impression d’animations Flash étant une opération relativement complexe, il est recommandé
de lire la section consacrée à l’impression dans la documentation de Flash avant d’utiliser cette
fonction d’image-objet.
Paramètres
Facultatif. Spécifie le nom de l’animation ou du clip d'animation cible à imprimer.
Si ce paramètre est omis (si la cible a la valeur 0), l’animation Flash principale est imprimée.
nomDeCible
printingBounds Facultatif. Spécifie les options d’impression des limites. Si ce paramètre est
omis, les limites de la cible sont utilisées. S’il est spécifié, printingBounds doit avoir l’une des
valeurs suivantes :
•
•
#bframe. Avec #bframe, les limites d’impression de chaque image sont modifiées en fonction
de l’image à imprimer.
#bmax. Avec #bmax, les limites d’impression forment un cadre virtuel de dimensions
suffisantes pour contenir toutes les images à imprimer.
505
printAsBitmap()
Utilisation
-- Syntaxe Lingo
réfObjImageObjet.printAsBitmap({nomDeCible, #printingBounds})
// Syntaxe JavaScript
réfObjImageObjet.printAsBitmap({nomDeCible, #printingBounds});
Description
Commande d’image-objet Flash ; fonctionne comme la commande print, mais uniquement
avec des images-objets Flash. Cependant, la commande printAsBitmap peut être utilisée pour
imprimer des objets contenant des informations alpha.
printFrom()
Utilisation
-- Syntaxe Lingo
_movie.printFrom(nomOuNumDimageInitiale {, nomOuNumDimageFinale, redux})
// Syntaxe JavaScript
_movie.printFrom(nomOuNumDimageInitiale {, nomOuNumDimageFinale, redux});
Description
Méthode d’animation ; imprime tout le contenu de chaque image de la scène, que l’image soit
sélectionnée ou non, à partir de l’image spécifiée par nomOuNumDimageInitiale. Vous pouvez,
si vous le voulez, indiquer nomOuNumDimageFinale et la valeur de réduction (redux) : 100 %,
50 % ou 25 %.
L’image en cours d’impression n’a pas besoin d’être affichée. Cette commande imprime toujours
en orientation portrait (verticale) et à une résolution de 72 points par pouce, en transformant en
bitmaps tout le contenu de l’écran (ce qui peut parfois réduire la qualité du texte) ; de plus, elle
ignore les paramètres de format d’impression. Pour augmenter la souplesse de l’impression depuis
Director, consultez l’Xtra PrintOMatic Lite, qui se trouve sur le disque d’installation.
Paramètres
nomOuNumDimageInitiale
Requis. Chaîne ou numéro qui spécifie le nom ou le numéro de la
première image à imprimer.
Facultatif. Chaîne ou numéro qui spécifie le nom ou le numéro de la
dernière image à imprimer.
nomOuNumDimageFinale
redux Facultatif. Nombre entier qui spécifie la valeur de la réduction. Les valeurs correctes sont
100, 50 et 25.
Exemple
L’instruction suivante imprime le contenu de la scène à l’image 1 :
-- Syntaxe Lingo
_movie.printFrom(1)
// Syntaxe JavaScript
_movie.printFrom(1);
506
Chapitre 12 : Méthodes
L'instruction suivante imprime le contenu de la scène dans chaque image de l’image 10 à l'image
25. La valeur de réduction est de 50 %.
-- Syntaxe Lingo
_movie.printFrom(10, 25, 50)
// Syntaxe JavaScript
_movie.printFrom(10, 25, 50);
Voir aussi
Animation
propList()
Utilisation
-- Syntaxe Lingo
propList()
[:]
propList(chaîne1, valeur1, chaîne2, valeur2, ...)
propList(#symbole1, valeur1, #symbole2, valeur2, ...)
[#symbole1:valeur1, #symbole2:valeur2, ...]
// Syntaxe JavaScript
propList();
propList(chaîne1, valeur1, chaîne2, valeur2, ...);
Description
Fonction du niveau supérieur ; crée une liste de propriétés dont chaque élément est constitué
d’une paire nom/valeur.
Lorsque vous créez une liste en utilisant la syntaxe propList() ou [:] (Lingo uniquement), avec
ou sans paramètres, les valeurs de la liste sont indexées à partir de 1.
La longueur maximale d’une ligne de script exécutable est de 256 caractères. Il n’est pas possible
de créer des listes de propriétés importantes avec propList(). Pour créer une liste de propriétés
contenant une grande quantité de données, mettez les données entre crochets ([]), placez-les dans
un champ, puis affectez le champ à une variable. Le contenu de cette variable deviendra une liste
des données.
Paramètres
chaîne1, chaîne2, ...
Facultatif. Chaînes qui spécifient les parties nom des éléments inclus
dans la liste.
valeur1, valeur2, ... Facultatif. Valeurs qui spécifient les parties valeur des éléments inclus
dans la liste.
#symbole1, #symbole2, ... (Lingo uniquement) Facultatif. Symboles qui représentent les
parties nom des éléments inclus dans la liste.
507
Exemple
Cette instruction crée une liste de propriétés avec diverses propriétés et valeurs, puis affiche les
diverses valeurs de propriétés dans la fenêtre Messages :
-- Syntaxe Lingo
-- avec propList()
colorList = propList(#top,"rouge", #sides,"bleu", #bottom,"vert")
-- avec des crochets
colorList = [#top:"rouge", #sides:"bleu", #bottom:"vert"]
put(colorList.top) -- "rouge"
put(colorList.sides) -- "bleu"
put(colorList.bottom) -- "vert"
// Syntaxe JavaScript
var colorList = propList("top","rouge", "sides","bleu", "bottom","vert");
put(colorList.top) // rouge
put(colorList.sides) // bleu
put(colorList.bottom) // vert
Voir aussi
list()
proxyServer
Utilisation
proxyServer typeDeServeur, "adresseIP", numDePort
proxyServer()
Description
Commande ; définit les valeurs d’un serveur proxy FTP ou http.
En l’absence de paramètres, proxyServer() renvoie les réglages d’un serveur proxy FTP ou
HTTP.
Paramètres
typeDeServeur
#ftp ou #http.
Facultatif. Symbole qui spécifie le type du serveur proxy. La valeur peut être
adresseIP
Facultatif. Chaîne qui spécifie l’adresse IP.
numDePort
Facultatif. Nombre entier qui spécifie le numéro du port.
Exemple
L’instruction suivante établit un serveur proxy HTTP à l’adresse IP 197.65.208.157 avec
le port 5 :
proxyServer #http,"197.65.208.157",5
L’instruction suivante renvoie le numéro de port d’un serveur proxy HTTP :
put proxyServer(#http,#port)
Si aucun type de serveur n’est spécifié, la fonction renvoie 1.
L’instruction suivante renvoie la chaîne de l’adresse IP d’un serveur proxy HTTP :
put proxyServer(#http)
508
Chapitre 12 : Méthodes
L’instruction suivante désactive un serveur proxy FTP :
proxyServer #ftp,#stop
ptToHotSpotID()
Utilisation
-- Syntaxe Lingo
réfObjImageObjet.ptToHotSpotID(point)
// Syntaxe JavaScript
réfObjImageObjet.ptToHotSpotID(point);
Description
Fonction QuickTime VR ; renvoie l’identifiant de la zone référencée (si elle existe) présent au
point spécifié. S’il n’existe pas de zone référencée, la fonction renvoie 0.
Paramètres
point
Requis. Spécifie le point à tester.
puppetPalette()
Utilisation
-- Syntaxe Lingo
_movie.puppetPalette(palette {, vitesse} {, images})
// Syntaxe JavaScript
_movie.puppetPalette(palette {, vitesse} {, images});
Description
Méthode d’animation ; asservit la piste des palettes et permet au script d’avoir priorité sur les
paramètres de la piste des palettes du scénario, ainsi que d’affecter des palettes à l’animation.
La méthode puppetPalette() définit comme palette courante l’acteur palette spécifié par
palette. Si palette est une chaîne, celle-ci spécifie le nom d’acteur de la palette. Si palette est
un nombre entier, celui-ci spécifie le numéro d’acteur de la palette.
Pour optimiser les résultats, utilisez la méthode puppetPalette() avant de passer à l’image sur
laquelle l’effet se produira, afin que Director puisse établir une correspondance avec la palette
voulue avant de dessiner l’image suivante.
Vous pouvez faire apparaître progressivement la palette en remplaçant vitesse par un nombre
entier compris entre 1 (la plus lente) et 60 (la plus rapide). Vous pouvez aussi faire apparaître
progressivement la palette sur plusieurs images en remplaçant images par un nombre entier
correspondant au nombre d’images.
Une palette asservie reste active jusqu’à ce que vous la désactiviez avec la syntaxe
_movie.puppetPalette(0). Aucune autre modification de palette ne sera apportée dans le
scénario lorsque la palette asservie est active.
Remarque : Le navigateur web contrôle la palette pour toute la page web. Ainsi, Shockwave Player
utilise toujours la palette du navigateur.
509
Paramètres
palette
Requis. Chaîne ou numéro qui spécifie le nom ou le numéro de la nouvelle palette.
vitesse Facultatif. Nombre entier qui spécifie la vitesse d’un fondu. Les valeurs correctes sont
comprises entre 1 et 60.
images Facultatif. Nombre entier qui spécifie le nombre d’images correspondant au déroulement
du fondu.
Exemple
L’instruction suivante fait d’Arc-en-ciel la palette de l’animation :
-- Syntaxe Lingo
_movie.puppetPalette("Arc-en-ciel")
// Syntaxe JavaScript
_movie.puppetPalette("Arc-en-ciel");
L’instruction suivante fait de Niveaux de gris la palette de l’animation. La transition à la palette
Niveaux de gris se fait pendant un laps de temps de 15, et sur 20 images.
-- Syntaxe Lingo
_movie.puppetPalette("Arc-en-ciel", 15, 20)
// Syntaxe JavaScript
_movie.puppetPalette("Arc-en-ciel", 15, 20);
Voir aussi
Animation
puppetSprite()
Utilisation
-- Syntaxe Lingo
_movie.puppetSprite(entNumDimageObjet, bool)
// Syntaxe JavaScript
_movie.puppetSprite(entNumDimageObjet, bool);
Description
Méthode d’animation ; détermine si une piste d’image-objet est un esclave contrôlé par script
(TRUE) ou si, n’étant pas un esclave, elle est sous le contrôle du scénario (FALSE).
Tant que la tête de lecture reste dans la même image-objet, le fait de désactiver l’asservissement de
la piste d’image-objet au moyen de la syntaxe puppetSprite(entNumDimageObjet, FALSE) rend
à l’image-objet les propriétés définies dans le scénario.
Les propriétés initiales de la piste d’image-objet sont celles de la piste au moment de l’exécution
de la méthode puppetSprite(). Vous pouvez utiliser des scripts pour modifier les propriétés
d’image-objet comme suit :
• Si une piste d’image-objet est asservie, toute modification apportée par un script aux propriétés
d’image-objet de la piste reste en vigueur une fois la tête de lecture sortie de l’image-objet.
• Si une piste d’image-objet n’est pas asservie, toute modification apportée par un script à
l’image-objet ne dure que jusqu’à la fin de l’image-objet courante.
510
Chapitre 12 : Méthodes
La piste doit contenir une image-objet lorsque vous utilisez la méthode puppetSprite().
Le fait d’asservir la piste d’image-objet vous permet de contrôler par des scripts de nombreuses
propriétés d’image-objet, telles que member, locH et width, une fois la tête de lecture sortie de
l’image-objet.
Utilisez la syntaxe puppetSprite(entNumDimageObjet, FALSE) pour rendre le contrôle au
scénario lorsque vous avez fini de contrôler une piste d’image-objet avec des scripts et pour éviter
les résultats imprévisibles qui peuvent se produire lorsque la tête de lecture se trouve dans des
images non destinées à être asservies.
Remarque : La version 6 de Director a introduit l’asservissement automatique qui, dans la plupart
des cas, évite d’avoir à asservir explicitement une image-objet. Le contrôle explicite est toujours utile
pour conserver le contrôle complet du contenu d’une piste, même après la fin de la lecture d’une
plage d’images-objets.
Paramètres
entNumDimageObjet
Requis. Nombre entier qui spécifie la piste d’image-objet à tester.
bool Requis. Valeur booléenne qui
(TRUE) ou par le scénario (FALSE).
spécifie si une piste d’image-objet contrôlée par des scripts
Exemple
L’instruction suivante asservit l’image-objet de la piste 15 :
-- Syntaxe Lingo
_movie.puppetSprite(15, TRUE)
// Syntaxe JavaScript
_movie.puppetSprite(15, true);
L’instruction suivante libère de son état d’asservissement l’image-objet de la piste numéro i + 1 :
-- Syntaxe Lingo
_movie.puppetSprite(i + 1, FALSE)
// Syntaxe JavaScript
_movie.puppetSprite(i + 1, false);
Voir aussi
makeScriptedSprite(), Animation, Piste d’image-objet
puppetTempo()
Utilisation
-- Syntaxe Lingo
_movie.puppetTempo(entCadence)
// Syntaxe JavaScript
_movie.puppetTempo(entCadence);
Description
Méthode d’animation ; asservit la piste des cadences et règle la cadence sur le nombre d’images
spécifié.
Lorsque la piste des cadences est asservie, les scripts peuvent être prioritaires sur le paramètre de
cadence du scénario et modifier la cadence de l’animation.
511
Il n’est pas nécessaire de désactiver la cadence esclave pour que les modifications ultérieurement
apportées à la cadence dans le scénario prennent effet.
Remarque : Bien que la limite théorique des cadences d’image soit de 30 000 ips (images par
seconde) avec la méthode puppetTempo(), une telle cadence ne serait possible qu’avec très peu
d’animation et une machine très puissante.
Paramètres
entCadence
Requis. Nombre entier qui spécifie la cadence.
Exemple
L’instruction suivante fixe la cadence de l’animation à 30 images par seconde :
-- Syntaxe Lingo
_movie.puppetTempo(30)
// Syntaxe JavaScript
_movie.puppetTempo(30);
L’instruction suivante augmente l’ancienne cadence de l’animation de 10 images par seconde :
-- Syntaxe Lingo
_movie.puppetTempo(ancienneCadence + 10)
// Syntaxe JavaScript
_movie.puppetTempo(ancienneCadence + 10);
Voir aussi
Animation
puppetTransition()
Utilisation
-- Syntaxe Lingo
_movie.puppetTransition(réfObjActeur)
_movie.puppetTransition(ent {, durée} {, taille} {, zone})
// Syntaxe JavaScript
_movie.puppetTransition(réfObjActeur);
_movie.puppetTransition(ent {, durée} {, taille} {, zone});
Description
Méthode d’animation ; exécute la transition spécifiée entre l’image courante et la suivante.
Pour utiliser un acteur Xtra de transition, utilisez la syntaxe
puppetTransition(réfObjActeur).
512
Chapitre 12 : Méthodes
Pour utiliser une transition Director intégrée, remplacez ent par l’une des valeurs du tableau
suivant. Remplacez durée par le nombre de quarts de secondes utilisés pour effectuer la
transition. La valeur minimum est 0 ; la valeur maximum est 120 (30 secondes). Remplacez
taille par le nombre de pixels dans chaque bloc de la transition. La valeur minimum est 1 ; la
valeur maximum est 128. Plus les blocs sont petits, plus la transition se fait en douceur, mais plus
elle est lente.
Code
Transition
Code
Transition
01
Balayage vers la droite
27
Rangées aléatoires
02
Balayage vers la gauche
28
Colonnes aléatoires
03
Balayage vers le bas
29
Recouvrir vers le bas
04
Balayage vers le haut
30
Recouvrir vers le bas à gauche
05
Centre vers les bords,
horizontal
31
Recouvrir vers le bas à droite
06
Bords vers centre,
horizontal
32
Recouvrir vers la gauche
07
Centre vers les bords,
vertical
33
Recouvrir vers la droite
08
Bords vers centre, vertical
34
Recouvrir vers le haut
09
Centre vers les bords, carré
35
Recouvrir vers le haut à gauche
10
Bords vers centre, carré
36
Recouvrir vers le haut à droite
11
Pousser vers la gauche
37
Stores vénitiens
12
Pousser vers la droite
38
Damier
13
Pousser vers le bas
39
Bandes vers la gauche en bas
14
Pousser vers le haut
40
Bandes vers la droite en bas
15
Révéler vers le haut
41
Bandes vers le bas à gauche
16
Révéler vers le haut à droite 42
Bandes vers le haut à gauche
17
Révéler vers la droite
43
Bandes vers le bas à droite
18
Révéler vers le bas à droite
44
Bandes vers le haut à droite
19
Révéler vers le bas
45
Bandes vers la gauche sur le dessus
20
Révéler vers le bas à gauche 46
Bandes vers la droite sur le dessus
21
Révéler vers la gauche
47
Zoom ouvert
22
Révéler vers le haut à
gauche
48
Zoom fermé
23
Fondu, pixels rapides*
49
Stores verticaux
24
Fondu, rectangles carrés
50
Fondu, bits rapides*
513
Code
Transition
Code
Transition
25
Fondu, carrés
d’encadrement
51
Fondu, pixels*
26
Fondu, motifs
52
Fondu, bits*
Les transitions identifiées par un astérisque (*) ne fonctionnent pas sur les moniteurs 32 bits.
Il n’y a pas de lien direct entre une faible valeur de durée et une transition rapide. La vitesse réelle
de la transition dépend de la relation entre taille et durée. Par exemple, si taille a une valeur
de 1 pixel, la transition prend plus de temps, quelle que soit la valeur de durée, car cette opération
représente un travail intense de l’ordinateur. Pour accélérer les transitions, augmentez la taille des
blocs au lieu de réduire la durée.
Remplacez zone par une valeur qui détermine si la transition se produit uniquement dans la zone
modifiée (TRUE) ou sur toute la scène (FALSE, par défaut). La variable zone est une zone dans
laquelle les images-objets ont changé.
Paramètres
réfObjActeur Requis si vous utilisez un acteur Xtra de transition. Référence à l’acteur Xtra à
utiliser en tant que transition.
ent Requis si vous utilisez une transition intégrée à Director. Nombre entier qui spécifie le
numéro de la transition à utiliser.
Facultatif. Nombre entier qui spécifie le nombre de quarts de secondes utilisés pour
effectuer la transition. Les valeurs correctes sont comprises entre 0 et 120.
durée
taille Facultatif. Nombre entier qui spécifie le nombre de pixels dans chaque bloc de la
transition. Les valeurs correctes sont comprises entre 1 et 128.
Facultatif. Valeur booléenne qui détermine si la transition se produit uniquement dans la
zone modifiée (TRUE) ou sur toute la scène (FALSE).
zone
Exemple
L’instruction suivante effectue une transition de type balayage vers la droite. Comme aucune
valeur n’est spécifiée pour zone, la transition se produit sur toute la scène, qui correspond au
choix par défaut.
-- Syntaxe Lingo
_movie.puppetTransition(1)
// Syntaxe JavaScript
_movie.puppetTransition(1);
L’instruction suivante effectue une transition sur toute la scène, de type balayage vers la gauche,
d’une durée d’une seconde, la taille de blocs étant de 20 :
-- Syntaxe Lingo
_movie.puppetTransition(2, 4, 20, FALSE)
// Syntaxe JavaScript
_movie.puppetTransition(2, 4, 20, false);
Voir aussi
Animation
514
Chapitre 12 : Méthodes
put()
Utilisation
-- Syntaxe Lingo
put(valeur)
// Syntaxe JavaScript
put(valeur);
Description
Fonction du niveau supérieur ; évalue une expression et affiche le résultat dans la fenêtre
Messages.
La fonctionnalité de cette méthode est identique à celle de la méthode trace() du niveau
supérieur, disponible à la fois pour Lingo et la syntaxe JavaScript.
Cette méthode peut servir d’outil de débogage pour suivre la valeur des variables au cours de la
lecture d’une animation.
Paramètres
valeur
Requis. Expression à évaluer.
Exemple
L’instruction suivante affiche l’heure dans la fenêtre Messages :
-- Syntaxe Lingo
put(_system.time())
// Syntaxe JavaScript
put(_system.time());
L’instruction suivante affiche la valeur affectée à la variable Devis dans la fenêtre Messages :
-- Syntaxe Lingo
bid = "Dubois"
put(bid) -- "Dubois"
// Syntaxe JavaScript
var bid = "Dubois";
put(bid); // Dubois
Voir aussi
trace()
qtRegisterAccessKey()
Utilisation
-- Syntaaxe Lingo
qtRegisterAccessKey(chaîneDeCatégorie, chaîneClé)
// Syntaxe JavaScript
qtRegisterAccessKey(chaîneDeCatégorie, chaîneClé);
Description
Commande ; permet l’enregistrement d’une clé pour un média QuickTime chiffré.
La clé agit au niveau applicatif et non au niveau système. Une fois que l’application annule
l’enregistrement de la clé ou se ferme, le média n’est plus accessible.
515
Remarque : Pour raisons de sécurité, il est impossible d’afficher la liste de toutes les clés
enregistrées.
Voir aussi
qtUnRegisterAccessKey()
qtUnRegisterAccessKey()
Utilisation
-- Syntaxe Lingo
qtUnRegisterAccessKey(chaîneDeCatégorie, chaîneClé)
// Syntaxe JavaScript
qtUnRegisterAccessKey(chaîneDeCatégorie, chaîneClé);
Description
Commande ; permet d’annuler l’enregistrement d’une clé pour un média QuickTime chiffré.
La clé agit au niveau applicatif et non au niveau système. Une fois l’enregistrement de la clé
annulé par l’application, seules les animations chiffrées avec cette clé peuvent toujours être lues.
Les autres médias ne sont plus accessibles.
Voir aussi
qtRegisterAccessKey()
queue()
Utilisation
-- Syntaxe Lingo
réfObjPisteAudio.queue(réfObjActeur)
réfObjPisteAudio.queue(listeDesPropriétés)
// Syntaxe JavaScript
réfObjPisteAudio.queue(réfObjActeur);
réfObjPisteAudio.queue(listeDesPropriétés);
Description
Méthode de piste audio ; ajoute un acteur son à la file d’attente d’une piste audio.
Dès qu’un son est placé en file d’attente, il peut être lu immédiatement à l’aide de la méthode
play(). Ceci s’explique par le fait que Director précharge une certaine partie de chaque son placé
en file d’attente, pour éviter les délais d’attente entre la méthode play() et le début de la lecture.
Cette proportion du son préchargée s’élève par défaut à 1 500 millisecondes. Ce paramètre peut
être modifié en passant une liste des propriétés contenant un ou plusieurs paramètres, par
l’intermédiaire de la méthode queue(). Ces paramètres peuvent également être passés avec la
méthode setPlayList().
Pour un exemple d’utilisation de queue() dans une animation, reportez-vous à l’animation
Sound Control du dossier Learning/Lingo, lui-même inclus dans le dossier de Director.
Paramètres
réfObjActeur
Requis si vous spécifiez un acteur son. Référence à l’acteur son à placer en file
d’attente.
516
Chapitre 12 : Méthodes
listeDesPropriétés Requis si vous passez une liste de propriétés comme paramètres. Liste de
propriétés qui s’applique à l’acteur son à placer en file d’attente. Ces propriétés sont :
Propriété
Description
#member
L’acteur à placer en file d’attente. Cette propriété doit être spécifiée. Toutes les
autres sont facultatives.
#startTime
Position temporelle de départ de la lecture du son, en millisecondes. La valeur par
défaut est le début du son. Pour plus d’informations, consultez startTime.
#endTime
Position temporelle de fin de la lecture du son, en millisecondes. La valeur par
défaut est la fin du son. Pour plus d’informations, consultez endTime.
#loopCount
Nombre de répétitions d’une boucle défini avec #loopStartTime et #loopEndTime.
La valeur par défaut est 1. Voir loopCount.
#loopStartTime
Position temporelle de départ de la boucle, en millisecondes. Pour plus
d’informations, consultez loopStartTime.
#loopEndTime
Position temporelle de fin de la boucle, en millisecondes. Pour plus
d’informations, consultez loopEndTime.
#preloadTime
Quantité de son à placer en mémoire tampon avant la lecture, en millisecondes.
Pour plus d’informations, consultez preloadTime.
Exemple
Le gestionnaire suivant place en file d’attente et lit deux sons. Le premier son, l’acteur Carillons,
est lu dans son intégralité. Le second son, l’acteur Intro, est lu à partir du point 3 secondes,
exécute cinq lectures en boucle successives, du point 8 secondes au point 8,9 secondes, et s’arrête
au point 10 secondes.
-- Syntaxe Lingo
on playMusic
sound(2).queue(member("Carillon"))
sound(2).queue([#member:member("intro"), #startTime:3000, \
#endTime:10000, #loopCount:5, #loopStartTime:8000, #loopEndTime:8900])
sound(2).play()
end playMusic
// Syntaxe JavaScript
function playMusic() {
sound(2).queue(member("Carillon"))
sound(2).queue(propList("member",member("intro"), "startTime",3000,
"endTime",10000, "loopCount",5, "loopStartTime",8000, "loopEndTime",8900));
sound(2).play();
}
Voir aussi
endTime, loopCount, loopEndTime, loopStartTime, pause() (piste audio), play()
(piste audio), preLoadTime, setPlayList(), Piste audio, startTime, stop()
(piste audio)
517
queue() (3D)
Utilisation
member(quelActeur).model(quelModèle).bonesPlayer.queue\
(nomDeMouvement {, enBoucle, positionInitiale, positionFinale, échelle,
décalage})
member(quelActeur).model(quelModèle).keyframePlayer.\
queue(nomDeMouvement {, enBoucle, positionInitiale, positionFinale, échelle,
décalage})
Description
Commande 3D de modificateur keyframePlayer et bonesPlayer ; ajoute le mouvement
spécifié à la fin de la propriété playList du modificateur. Le mouvement est exécuté par le
modèle lorsque tous les mouvements qui le précèdent dans la liste de lecture ont été lus.
Paramètres
nomDeMouvement
enBoucle
Requis. Spécifie le nom du mouvement à ajouter.
Facultatif. Spécifie si le mouvement est lu une seule fois (FALSE) ou continuellement
(TRUE).
positionInitiale Facultatif. Ce paramètre est mesuré en millisecondes, à partir du début du
mouvement. Lorsque enBoucle a pour valeur FALSE, le mouvement démarre à la position
décalage et se termine à la positionFinale. Lorsque enBoucle a pour valeur TRUE, la première
itération de la boucle démarre à décalage et se termine à positionFinale. Toutes les répétitions
suivantes démarrent à positionInitiale et se terminent à positionFinale.
positionFinale Facultatif. Ce paramètre est mesuré en millisecondes, à partir du début du
mouvement. Lorsque enBoucle a pour valeur FALSE, le mouvement démarre à la position
décalage et se termine à la positionFinale. Lorsque enBoucle a pour valeur TRUE, la première
itération de la boucle démarre à décalage et se termine à positionFinale. Toutes les répétitions
suivantes démarrent à positionInitiale et se terminent à positionFinale. Donnez à
positionFinale la valeur -1 si le mouvement doit être lu jusqu’à la fin.
échelle Facultatif. Spécifie la cadence réelle de la lecture du mouvement. La valeur du paramètre
échelle est multipliée par la propriété playRate du modificateur #keyframePlayer ou
#bonesPlayer du modèle pour déterminer la cadence réelle de la lecture du mouvement.
décalage Facultatif. Ce paramètre est mesuré en millisecondes, à partir du début du mouvement.
Lorsque enBoucle a pour valeur FALSE, le mouvement démarre à la position décalage et se
termine à la positionFinale. Lorsque enBoucle a pour valeur TRUE, la première itération de la
boucle démarre à décalage et se termine à positionFinale. Toutes les répétitions suivantes
démarrent à positionInitiale et se terminent à positionFinale.
Exemple
La commande suivante ajoute le mouvement Chute à la fin de la liste de lecture bonesPlayer du
modèle Marcheur. Lorsque tous les mouvements précédant Chute dans la liste de lecture ont été
exécutés, Chute est lu une fois du début à la fin.
sprite(1).member.model("Marcheur").bonesPlayer.queue\
("Chute", 0, 0, -1, 1, 0)
518
Chapitre 12 : Méthodes
La commande suivante ajoute le mouvement coupDenvoi à la fin de la liste de lecture
bonesPlayer du modèle Marcheur. Lorsque tous les mouvements précédant coupDenvoi dans
la liste de lecture ont été exécutés, une section de coupDenvoi est lue en boucle. La première
itération de la boucle démarrera 2000 millisecondes à compter du début du mouvement. Toutes
les itérations suivantes de la boucle démarreront à 1000 millisecondes du début de coupDenvoi
et se termineront à 5000 millisecondes du début de coupDenvoi. La cadence de lecture sera égale
à trois fois la propriété playRate du modificateur bonesPlayer du modèle.
sprite(1).member.model("Marcheur").bonesPlayer.queue("coupDenvoi", 1, \
1000, 5000, 3, 2000)
Voir aussi
play() (3D), playNext() (3D), playRate (3D)
quickTimeVersion()
Utilisation
-- Syntaxe Lingo
quickTimeVersion()
// Syntaxe JavaScript
quickTimeVersion();
Description
Fonction ; renvoie une valeur à virgule flottante identifiant la version de QuickTime installée et
remplace la fonction QuickTimePresent précédente.
Si plusieurs versions de QuickTime 3.0 (ou plus récent) sont installées sous Windows,
quickTimeVersion() renvoie le numéro de version le plus récent. Si une version antérieure à
QuickTime 3.0 est installée, quickTimeVersion() renvoie le numéro de version 2.1.2, quelle
que soit la version installée.
Paramètres
Aucun.
Exemple
L’instruction suivante utilise quickTimeVersion() pour afficher la version de QuickTime
courante dans la fenêtre Messages :
-- Syntaxe Lingo
put(quickTimeVersion())
// Syntaxe JavaScript
put(quickTimeVersion());
519
quit()
Utilisation
-- Syntaxe Lingo
_player.quit()
// Syntaxe JavaScript
_player.quit();
Description
Méthode de lecteur ; permet de quitter Director ou une projection et de passer au bureau de
Windows ou au Finder du Macintosh.
Paramètres
Aucun.
Exemple
L’instruction suivante ordonne à l’ordinateur de quitter Director ou la projection et de passer
au bureau de Windows ou au Finder du Macintosh lorsque l’utilisateur appuie sur Ctrl+Q
(Windows) ou sur Cmd+Q (Macintosh) :
-- Syntaxe Lingo
if (_key.key = "q" and _key.commandDown) then
_player.quit()
end if
// Syntaxe JavaScript
if (_key.key == "q" && _key.commandDown) {
_player.quit();
}
Voir aussi
Lecteur
ramNeeded()
Utilisation
-- Syntaxe Lingo
_movie.ramNeeded(entImageInitiale, entImageFinale)
// Syntaxe JavaScript
_movie.ramNeeded(entImageInitiale, entImageFinale);
Description
Méthode d’animation ; détermine la mémoire requise, en octets, pour afficher une plage
d’images. Par exemple, vous pouvez tester la taille d’images contenant des illustrations en mode
32 bits : si la valeur de ramNeeded() est supérieure à celle de freeBytes(), utilisez des images
contenant des illustrations en mode 8 bits et divisez par 1 024 pour convertir les octets en kilooctets.
520
Chapitre 12 : Méthodes
Paramètres
entImageInitiale
Requis. Nombre entier qui spécifie le numéro de la première image de la
plage.
entImageFinale
Requis. Nombre entier qui spécifie le numéro de la dernière image de la plage.
Exemple
L’instruction suivante affecte à la variable tailleDimage le nombre d’octets requis pour afficher
les images 100 à 125 de l’animation :
-- Syntaxe Lingo
tailleDimage = _movie.ramNeeded(100, 125)
// Syntaxe JavaScript
var tailleDimage = _movie.ramNeeded(100, 125);
L’instruction suivante détermine si la mémoire requise pour afficher les images 100 à 125 excède
la mémoire disponible et, le cas échéant, passe à la section utilisant des acteurs qui possèdent un
nombre de couleurs inférieur :
-- Syntaxe Lingo
if (_movie.ramNeeded(100, 125) > _system.freeBytes) then
_movie.go("8 bits")
end if
// Syntaxe JavaScript
if (_movie.ramNeeded(100, 125) > _system.freeBytes) {
_movie.go("8 bits");
}
Voir aussi
freeBytes(), Animation
random()
Utilisation
-- Syntaxe Lingo
random(expressionEntière)
// Syntaxe JavaScript
random(expressionEntière);
Description
Fonction du niveau supérieur ; renvoie un nombre entier aléatoire dans la plage comprise entre 1
et une valeur spécifiée. Cette fonction peut s’utiliser pour modifier les valeurs d’une animation et
peut servir notamment à faire varier les trajectoires dans les jeux, à affecter des nombres aléatoires
ou à changer la couleur ou la position des images-objets.
Pour définir un ensemble de nombres aléatoires de façon qu’ils commencent par un nombre autre
que 1, soustrayez la quantité appropriée de la fonction random(). Par exemple, l’expression
random(n + 1) - 1 utilise une plage allant de 0 au nombre n.
Paramètres
expressionEntière
Requis. Spécifie la valeur maximum du nombre aléatoire.
521
Exemple
L’instruction suivante affecte des valeurs aléatoires à la variable dés :
-- Syntaxe Lingo
dés = (random(6) + random(6))
// Syntaxe JavaScript
var dés = (random(6) + random(6));
L’instruction suivante modifie de façon aléatoire la couleur de premier plan de l’image-objet 10 :
-- Syntaxe Lingo
sprite(10).foreColor = (random(256) - 1)
// Syntaxe JavaScript
sprite(10).foreColor = (random(256) - 1);
Le gestionnaire suivant choisit de manière aléatoire lequel des deux segments de l’animation va
être lu :
-- Syntaxe Lingo
on sélectionDeScène
if (random(2) = 2) then
_movie.go("11a")
else
_movie.go("11b")
end if
end
// Syntaxe JavaScript
function sélectionDeScène() {
if (random(2) == 1) {
_movie.go("11a");
} else {
_movie.go("11b");
}
}
L’instruction suivante produit un multiple aléatoire de cinq compris entre 5 et 100 :
-- Syntaxe Lingo
score = (5 * random(20))
// Syntaxe JavaScript
var score = (5 * random(20));
randomVector()
Utilisation
-- Syntaxe Lingo
randomVector()
// Syntaxe JavaScript
randomVector();
Description
Fonction du niveau supérieur ; renvoie un vecteur unitaire qui décrit un point choisi de manière
aléatoire à la surface d’une sphère unitaire.
522
Chapitre 12 : Méthodes
Cette fonction diffère de vector(random(10)/10.0, random(10)/10.0, random(10)/10.0,)
dans la mesure où vous êtes assuré que le vecteur résultant de l’utilisation de randomVector()
sera un vecteur unitaire.
Un vecteur unitaire a toujours une longueur égale à un.
Paramètres
Aucun.
Exemple
Les instructions suivantes créent et affichent deux vecteurs unitaires définis de manière aléatoire
dans la fenêtre Messages :
-- Syntaxe Lingo
vec1 = randomVector()
vec2 = randomVector()
put(vec1 & RETURN & vec2)
// Syntaxe
var vec1 =
var vec2 =
put(vec1 +
JavaScript
randomVector();
randomVector();
"\n" + vec2);
Voir aussi
vector()
randomVector
Utilisation
randomVector()
Description
Commande 3D ; renvoie un vecteur unitaire qui décrit un point choisi de manière aléatoire à
la surface d’une sphère unitaire. Cette méthode diffère de vector( random(10)/10.0,
random(10)/10.0, random(10)/10.0) dans la mesure où il est sûr que le vecteur résultant sera
un vecteur unitaire.
Paramètres
Aucun.
Exemple
Les instructions suivantes créent et affichent deux vecteurs unitaires définis de manière aléatoire
dans la fenêtre Messages :
vec = randomVector()
put vec
-- vector( -0.1155, 0.9833, -0.1408 )
vec2 = randomVector()
put vec2
-- vector( 0.0042, 0.8767, 0.4810 )
Voir aussi
getNormalized, generateNormals(), normalize
523
rawNew()
Utilisation
scriptParent.rawNew()
rawNew(scriptParent)
Description
Fonction ; crée un objet enfant à partir d’un script parent sans appeler son gestionnaire on new.
Cela permet la création d’objets enfants sans initialiser leurs propriétés. Cette fonction s’avère
particulièrement pratique lors de la création d’un grand nombre d’objets enfants pour une
utilisation ultérieure. Pour initialiser les propriétés de l’un de ces objets enfants bruts, appelez
son gestionnaire on new.
Paramètres
Aucun.
Exemple
L’instruction suivante crée un objet enfant appelé voitureRouge à partir du script parent
ScriptParentDeVoiture, sans initialiser ses propriétés :
voitureRouge = script("ScriptParentDeVoiture").rawNew()
L’instruction suivante initialise les propriétés de l’objet enfant voitureRouge :
voitureRouge.new()
Voir aussi
new(), script()
readChar()
Utilisation
-- Syntaxe Lingo
réfObjFileio.readChar()
// Syntaxe JavaScript
réfObjFileio.readChar();
Description
Méthode de Fileio ; lit le prochain caractère d’un fichier et renvoie son code ASCII.
Vous devez d’abord ouvrir un fichier en appelant openFile() avant d’utiliser readChar() pour
lire un caractère.
Paramètres
Aucun.
Voir aussi
Fileio, openFile()
524
Chapitre 12 : Méthodes
readFile()
Utilisation
-- Syntaxe Lingo
réfObjFileio.readFile()
// Syntaxe JavaScript
réfObjFileio.readFile();
Description
Méthode de Fileio ; lit la position courante à la fin d’un fichier spécifié et renvoie le résultat sous
forme d’une chaîne.
Vous devez d’abord ouvrir un fichier en appelant openFile() avant d’utiliser readFile() pour
lire un fichier.
Paramètres
Aucun.
Voir aussi
Fileio, openFile()
readLine()
Utilisation
-- Syntaxe Lingo
réfObjFileio.readLine()
// Syntaxe JavaScript
réfObjFileio.readLine();
Description
Méthode de Fileio ; lit la ligne suivante d’un fichier, y compris le RETURN, et la renvoie sous
forme d’une chaîne.
Vous devez d’abord ouvrir un fichier en appelant openFile() avant d’utiliser readLine() pour
lire une ligne.
Paramètres
Aucun.
Voir aussi
Fileio, openFile()
525
readToken()
Utilisation
-- Syntaxe Lingo
réfObjFileio.readToken(chaîneSauter, chaîneCouper)
// Syntaxe JavaScript
réfObjFileio.readToken(chaîneSauter, chaîneCouper);
Description
Méthode de Fileio ; lit le jeton suivant et le renvoie sous forme d’une chaîne.
Vous devez d’abord ouvrir un fichier en appelant openFile() avant d’utiliser readToken() pour
lire un jeton.
Paramètres
chaîneSauter Requis. Chaîne qui spécifie l’ensemble de caractères après lequel le jeton
commence. La chaîne chaîneSauter n’est pas incluse dans la chaîne renvoyée.
Requis. Chaîne qui spécifie l’ensemble de caractères avant lequel le jeton se
termine. La chaîne chaîneCouper n’est pas incluse dans la chaîne renvoyée.
chaîneCouper
Voir aussi
Fileio, openFile()
readWord()
Utilisation
-- Syntaxe Lingo
réfObjFileio.readWord()
// Syntaxe JavaScript
réfObjFileio.readWord();
Description
Méthode de Fileio ; lit le mot suivant d’un fichier et le renvoie sous forme d’une chaîne.
Vous devez d’abord ouvrir un fichier en appelant openFile() avant d’utiliser readWord() pour
lire un mot.
Paramètres
Aucun.
Voir aussi
Fileio, openFile()
526
Chapitre 12 : Méthodes
realPlayerNativeAudio()
Utilisation
-- Syntaxe Lingo
realPlayerNativeAudio()
// Syntaxe JavaScript
realPlayerNativeAudio();
Description
Fonction RealMedia ; permet d’obtenir ou de définir un indicateur global déterminant si la
portion audio de l’acteur RealMedia est traitée par RealPlayer (TRUE) ou par Director (FALSE).
Cette fonction renvoie la valeur précédente de l’indicateur.
Pour être efficace, cet indicateur doit être défini avant le premier chargement de RealPlayer (lors
de la rencontre du premier acteur RealMedia dans le scénario ou de la première référence Lingo
à un acteur RealMedia). Toute modification apportée à cet indicateur après le chargement de
RealPlayer sera ignorée. Cet indicateur devrait être exécuté dans un gestionnaire d’événement
prepareMovie d’un script d’animation. Cet indicateur est défini pour la session entière (à partir
du moment ou le Shockwave Player est chargé jusqu’à sa fermeture et son redémarrage), et non
uniquement pour la durée de l’animation courante.
Par défaut, cet indicateur est défini sur FALSE et le traitement audio est lancé par Director, ce
qui permet de définir la propriété soundChannel et d’utiliser les méthodes et propriétés audio
standard de Lingo pour le traitement du flux audio d’une image-objet RealMedia, par exemple le
mixage d’un élément RealAudio avec d’autres composants audio de Director. Si cet indicateur est
défini sur TRUE, le contrôle Lingo de la piste audio n’est pas réalisé et le son est traité par
RealPlayer.
Paramètres
Aucun.
Exemple
Le code suivant indique que la fonction realPlayerNativeAudio() a pour valeur FALSE, ce qui
signifie que l’audio de l’acteur RealMedia sera traitée par Director.
-- Syntaxe Lingo
put(realPlayerNativeAudio())
-- 0
// Syntaxe JavaScript
trace(realPlayerNativeAudio());
// 0
527
Le code suivant donne à la fonction realPlayerNativeAudio() la valeur TRUE, ce qui signifie
que l’audio du flux RealMedia sera traité par RealPlayer et que le contrôle du code sur la piste
audio ne sera pas pris en compte.
-- Syntaxe Lingo
realPlayerNativeAudio(TRUE)
// Syntaxe JavaScript
realPlayerNativeAudio(1);
Voir aussi
soundChannel (RealMedia)
realPlayerPromptToInstall()
Utilisation
-- Syntaxe Lingo
realPlayerPromptToInstall()
// Syntaxe JavaScript
realPlayerPromptToInstall();
Description
Fonction RealMedia ; permet d’obtenir ou de définir un indicateur global déterminant si la
détection automatique et les alertes de RealPlayer 8 sont activées (TRUE) ou non (FALSE).
Par défaut, cette fonction est définie sur TRUE, ce qui signifie que si les utilisateurs ne disposent
pas de la version 8 de RealPlayer et tentent de charger une animation contenant RealMedia, un
message s’affiche automatiquement pour leur demander s’ils veulent accéder au site web de
RealNetworks et installer RealPlayer. Vous pouvez définir cet indicateur sur FALSE si vous
souhaitez créer votre propre système de détection et d’alerte à l’aide de la fonction
realPlayerVersion(), page 529, et de code personnalisé. Si cet indicateur est défini sur FALSE
et qu’un autre système de détection et d’alerte n’est pas mis en place, les utilisateurs non équipés
de RealPlayer pourront charger des animations contenant des acteurs RealMedia, mais les imagesobjets RealMedia n’apparaîtront pas.
Cette fonction détecte la version de RealPlayer installée sur le système de l’utilisateur pour
déterminer si RealPlayer 8 est installé. Sous Windows, les numéros de version 6.0.8.132 ou
supérieure indiquent que RealPlayer 8 est installé. Sur Macintosh, les composants de base de
RealPlayer de version 6.0.7.1001 ou supérieure indiquent que RealPlayer 8 est installé.
Cet indicateur devrait être exécuté dans un gestionnaire d’événement prepareMovie d’un script
d’animation.
Cette fonction renvoie la valeur précédente de l’indicateur.
Paramètres
Aucun.
528
Chapitre 12 : Méthodes
Exemple
Le code suivant indique que la fonction realPlayerPromptToInstall() a pour valeur TRUE, ce
qui signifie que les utilisateurs qui ne possèdent pas RealPlayer seront invités à l’installer.
-- Syntaxe Lingo
put(realPlayerPromptToInstall()) -- 1
// Syntaxe JavaScript
-- Syntaxe Lingo
trace(realPlayerPromptToInstall()); // 1
Le code suivant donne à la fonction realPlayerPromptToInstall() la valeur FALSE, ce qui
signifie que les utilisateurs ne seront pas invités à installer RealPlayer à moins que vous n’ayez créé
un système de détection et d’alerte.
-- Syntaxe Lingo
realPlayerPromptToInstall(FALSE)
// Syntaxe JavaScript
realPlayerPromptToInstall(0);
realPlayerVersion()
Utilisation
-- Syntaxe Lingo
realPlayerVersion()
// Syntaxe JavaScript
realPlayerVersion();
Description
Fonction RealMedia ; renvoie une chaîne identifiant le numéro de version du logiciel RealPlayer
installé sur le système de l’utilisateur, ou une chaîne vide si RealPlayer n’est pas installé.
RealPlayer 8 ou une version ultérieure doit être installé sur votre ordinateur pour visualiser des
animations Director intégrant du contenu RealMedia. Sous Windows, les numéros de version
6.0.8.132 ou supérieure indiquent que RealPlayer 8 est installé. Sur Macintosh, les composants
de base de RealPlayer de version 6.0.7.1001 ou supérieure indiquent que RealPlayer 8 est installé.
L’objectif de cette fonction est de permettre la création de votre propre système de détection et
d’alerte RealPlayer, si vous ne souhaitez pas utiliser celui qui est fourni par la fonction
realPlayerPromptToInstall(), page 528.
Si vous choisissez de créer votre propre système de détection et d’alerte à l’aide de la fonction
effectuez les opérations suivantes :
realPlayerVersion(),
• Appelez realPlayerPromptToInstall(FALSE) (par défaut, cette fonction est définie sur
TRUE)
•
avant la référence des acteurs RealMedia dans Lingo ou leur apparition dans le scénario.
Cette fonction devrait être définie dans un gestionnaire d’événements prepareMovie d’un
script d’animation.
Utilisez la propriété système xtraList pour vérifier si l’Xtra pour RealMedia (RealMedia
Asset.x32) est répertorié dans la liste des Xtras de la boîte de dialogue Xtras de l’animation. La
fonction realPlayerVersion() ne fonctionne pas si l’Xtra pour RealMedia est absent.
Le numéro de version renvoyé par cette fonction est identique au numéro de version que vous
pouvez afficher dans RealPlayer.
529
Pour afficher le numéro de version de RealPlayer sous Windows :
1 Démarrez RealPlayer.
2 Choisissez A propos de RealPlayer dans le menu Aide.
Dans la fenêtre qui s’affiche, le numéro de version apparaît dans la partie supérieure de l’écran,
au niveau de la seconde ligne.
Pour afficher le numéro de version de RealPlayer sur Macintosh :
1 Démarrez RealPlayer.
2 Choisissez A propos de RealPlayer dans le menu Pomme.
La boîte de dialogue A propos de RealPlayer apparaît. Ignorez le numéro de version indiqué
dans la seconde ligne, dans la partie supérieure de l’écran ; il est incorrect.
3 Cliquez sur le bouton d’infos sur la version.
La boîte de dialogue d’informations de version de RealPlayer s’affiche.
4 Sélectionnez Composants de base de RealPlayer dans la liste des composants installés.
Le numéro de version affiché pour le composant de base de RealPlayer (par exemple,
6.0.8.1649) est identique à celui qui est renvoyé par realPlayerVersion().
Paramètres
Aucun.
Exemple
Le code suivant indique que le numéro de version de RealPlayer installé sur le système est
6.0.9.357.
-- Syntaxe Lingo
put(realPlayerVersion())
// Syntaxe JavaScript
put(realPlayerVersion());
recordFont
Utilisation
recordFont(quelActeur, police {[,type]} {,[tailleDesBitmaps]}
{,sousEnsembleDeCaractères} {, nouveauNom})
Description
Commande ; inclut une police TrueType ou Type 1 comme acteur. Une fois incluses, ces polices
sont disponibles à l’auteur tout comme les autres polices installées sur le système.
Vous devez créer un acteur police vide à l’aide de la commande new() avant d’utiliser
recordFont.
La commande crée une police shockée dans quelActeur en utilisant la police nommée dans le
paramètre police. La valeur renvoyée par la commande indique si l’opération a réussi. La valeur
zéro indique que l’opération a réussi.
530
Chapitre 12 : Méthodes
Paramètres
police
Requis. Spécifie le nom de la police d’origine à enregistrer.
type Facultatif. Spécifie une liste de symboles indiquant le type de la police d’origine. Les valeurs
possibles sont #plain, #bold, #italic. Si vous ne définissez aucune valeur pour ce paramètre,
c’est #plain qui sera utilisé par défaut.
Facultatif. Spécifie une liste d’entiers définissant les tailles pour lesquelles les
bitmaps doivent être enregistrés. Ce paramètre peut être vide. Si vous omettez ce paramètre,
aucun bitmap n’est généré. Ces bitmaps donnent généralement de meilleurs résultats pour les
petites tailles (inférieures à 14 points), mais occupent plus de mémoire.
tailleDesBitmaps
sousEnsembleDeCaractères Facultatif. Spécifie une chaîne de caractères à encoder. Seuls les
caractères spécifiés seront disponibles dans la police. Si ce paramètre est omis, tous les caractères
sont encodés. Si seuls certains caractères sont codés mais qu’un caractère non codé est utilisé, ce
caractère apparaît comme une case vide.
nouveauNom
Facultatif. Spécifie la chaîne utilisée comme nom de l’acteur police nouvellement
enregistré.
Exemple
L’instruction suivante crée une police shockée simple n’utilisant que les deux arguments pour
l’acteur et la police à enregistrer :
monNouvelActeurPolice = new(#font)
recordFont(monNouvelActeurPolice, "Module lunaire")
L’instruction suivante spécifie les tailles de bitmaps à générer et les caractères pour lesquels les
données de police doivent être créées :
monNouvelActeurPolice = new(#font)
recordfont(monNouvelActeur,"Module lunaire", [], [14, 18, 45], "Nom du
meilleur score du jeu Module lunaire")
Remarque : recordFont resynthétisant les données de la police au lieu de les utiliser directement, la
distribution des polices shockées n’est soumise à aucune restriction légale.
Voir aussi
newMember()
rect()
Utilisation
-- Syntaxe Lingo
rect(entGauche, entHaut, entDroite, entBas)
// Syntaxe JavaScript
rect(entGauche, entHaut, entDroite, entBas);
Description
Fonction du niveau supérieur ; définit un rectangle.
Vous pouvez exécuter des opérations arithmétiques sur les rectangles en Lingo et avec la syntaxe
JavaScript. Si vous ajoutez une seule valeur à un rectangle, Lingo et la syntaxe JavaScript
l’ajoutent à chaque élément du rectangle.
531
Vous pouvez faire référence aux composants de rectangles avec les syntaxes de liste ou de
propriétés. Par exemple, les affectations suivantes définissent largeurMonRect1 et
largeurMonRect2 sur 50:
// Syntaxe JavaScript
var monRect = rect(40,30,90,70);
var largeurMonRect1 = monRect.right - monRect.left; // 50
var largeurMonRect2 = monRect[3] - monRect[1]; // 50
Pour un exemple d’utilisation de rect() dans une animation, reportez-vous à l’animation
Imaging du dossier Learning/Lingo, lui-même inclus dans le dossier de Director.
Paramètres
Requis. Nombre entier qui spécifie le nombre de pixels entre le côté gauche du rectangle et le bord gauche de la scène.
entGauche
entHaut Requis. Nombre entier qui spécifie le nombre de pixels entre le côté supérieur du rectangle et le bord supérieur de la scène.
entDroite Requis. Nombre entier qui spécifie le nombre de pixels entre le côté droit du rectangle
et le bord droit de la scène.
entBas Requis. Nombre entier qui spécifie le nombre de pixels entre le côté inférieur du rectangle
et le bord inférieur de la scène.
Exemple
L’instruction suivante définit la variable nouvelleZone comme un rectangle dont le côté gauche
est placé à 100, le haut à 150, le côté droit à 300 et le bas à 400 pixels :
-- Syntaxe Lingo
nouvelleZone = rect(100, 150, 300, 400)
// Syntaxe JavaScript
var nouvelleZone = rect(100, 150, 300, 400);
En Lingo uniquement, l’instruction suivante définit la variable nouvelleZone comme un
rectangle défini par les points premierPoint et deuxièmePoint.
-- Syntaxe Lingo
premierPoint = point(100, 150)
deuxièmePoint = point(300, 400)
nouvelleZone = rect(premierPoint, deuxièmePoint)
En Lingo uniquement, les instructions suivantes ajoutent et soustraient des valeurs aux
rectangles :
-- Syntaxe Lingo
put(rect(0, 0, 100, 100) + rect(30, 55, 120, 95)) -- rect(30, 55, 220, 195)
put(rect(0, 0, 100, 100) -rect(30, 55, 120, 95)) -- rect(-30, -55, -20, 5)
En Lingo uniquement, l’instruction suivante ajoute 80 à chaque coordonnée d’un rectangle :
-- Syntaxe Lingo
put(rect(60, 40, 120, 200) + 80) -- rect(140, 120, 200, 280)
532
Chapitre 12 : Méthodes
En Lingo uniquement, l’instruction suivante divise chaque coordonnée d’un rectangle par 3 :
-- Syntaxe Lingo
put(rect(60, 40, 120, 200) / 3) -- rect(20, 13, 40, 66)
Voir aussi
point(), quad
registerForEvent()
Utilisation
member(quelActeur).registerForEvent(nomDévénement, \
nomDeGestionnaire, objetScript {, début, période, répétitions})
Description
Commande 3D ; déclare le gestionnaire spécifié comme étant celui à appeler lorsque l’événement
spécifié se produit à l’intérieur de l’acteur spécifié.
Les descriptions de paramètres suivantes s’appliquent aux deux commandes
registerForEvent() et registerScript().
Remarque : Vous pouvez associer l’enregistrement d’un script à un nœud particulier plutôt qu’à un
acteur, à l’aide de la commande registerScript().
Paramètres
Requis. Spécifie le nom de l’événement. Il peut s’agir de l’un des événements
prédéfinis suivants ou d’un événement personnalisé défini par vous :
nomDévénement
•
•
•
•
•
•
est un événement de collision.
#collideWith est un événement de collision impliquant ce modèle. La commande
setCollisionCallback() est un raccourci de la commande registerScript() pour
l’événement #collideWith.
#animationStarted et #animationEnded sont des événements de notification utilisés à la
lecture ou à l’arrêt d’une animation de segments ou d’images-clés. Le gestionnaire reçoit
trois arguments : nomDévénement, mouvement et position. L’argument nomDévénement a
pour valeur #animationStarted ou #animationEnded. L’argument mouvement est le nom
du mouvement démarré ou arrêté, position étant la position actuelle du mouvement.
Pour les animations en boucle, l’événement #animationStarted n’est émis que pour la
première boucle, pas pour les suivantes. Cet événement est envoyé au début de la fusion entre
deux animations.
Lorsqu’une série d’animations est placée en file d’attente pour le modèle et que la propriété
autoBlend de l’animation a pour valeur TRUE, l’événement #animationEnded peut se
produire avant la fin apparente d’un mouvement donné. En effet, la propriété autoBlend
peut encore donner une impression de mouvement alors que l’animation s’est terminée
comme prévu.
#timeMS est un événement horaire. Le premier événement #timeMS a eu lieu lorsque le
nombre de millisecondes spécifié dans le paramètre début s’est écoulé après l’appel de
registerForEvent. Le paramètre période détermine le nombre de millisecondes entre les
événements #timeMS lorsque la valeur des répétitions est supérieure à 0. Si la valeur des
répétitions est 0, l’événement #timeMS se produit indéfiniment.
#collideAny
533
nomDeGestionnaire Requis. Spécifie le nom du gestionnaire qui sera appelé lorsque l’événement
nomDévénement surviendra ; ce gestionnaire se trouve dans l’objet de script indiqué par
objetScript. Le gestionnaire reçoit les arguments suivants :
•
•
•
•
•
est toujours 0.
est le temps (en millisecondes) écoulé depuis le dernier événement #timeMS.
time est le nombre de millisecondes écoulées depuis le premier événement #timeMS.
Par exemple, avec trois itérations d’une période de 500 ms, la première itération sera 0,
la deuxième sera 500 et la troisième sera 1000.
duration est le nombre total de millisecondes écoulées entre l’appel registerForEvent et
le dernier événement #timeMS. Par exemple, avec cinq itérations d’une période de 500 ms,
la durée est 2500 ms. Pour les tâches avec des itérations illimitées, la durée est 0.
systemTime est la durée absolue, en millisecondes, depuis le début de l’animation Director.
type
delta
objetScript Requis. Spécifie l’objet de script qui contient le gestionnaire nomDeGestionnaire.
Si 0 est spécifié pour objetScript, c’est le premier gestionnaire d’événement portant le nom
donné qui est appelé.
début Facultatif. Spécifie le nombre de millisecondes écoulées
registerForEvent() et le premier événement #timeMS.
entre l’appel de
période Facultatif. Spécifie le nombre de millisecondes entre des événements #timeMS lorsque la
valeur de répétitions est supérieure à 0.
répétitions
répétitions
Facultatif. Spécifie le nombre de répétitions pour l’événement #timeMS. Si
a une valeur égalele à 0, l’événement #timeMS se produit indéfiniment.
Exemple
L’instruction suivante enregistre le gestionnaire d’événement promptUser détecté dans un script
d’animation pour un appel à deux reprises, à un intervalle de cinq secondes :
member("Scène").registerForEvent(#timeMS, #promptUser, 0, \
5000, 5000, 2)
L’instruction suivante enregistre le gestionnaire d’événement promptUser détecté dans un script
d’animation pour un appel à chaque fois qu’une collision a lieu au sein de l’acteur Scène :
member("Scène").registerForEvent(#collideAny, #promptUser, 0)
L’instruction suivante déclare que le gestionnaire on promptUser du même script que celui qui
contient la commande registerForEvent doit être appelé lorsqu’un objet entre en collision avec
le modèle Pluton dans l’acteur nommé Scène :
member("Scène").registerForEvent(#collideWith, #promptUser, me, \
member("Scène").model("Pluton"))
Voir aussi
setCollisionCallback(), registerScript(), play() (3D), playNext() (3D),
autoblend, blendTime, sendEvent, unregisterAllEvents
534
Chapitre 12 : Méthodes
registerScript()
Utilisation
member(quelActeur).model(quelModèle).registerScript(nomDévénement, \
nomDeGestionnaire, objetScript {, début, période, répétitions})
member(quelActeur).camera(quelleCaméra).registerScript(nomDévénement, \
nomDeGestionnaire, objetScript {, début, période, répétitions})
member(quelActeur).light(quelleLumière).registerScript(nomDévénement, \
nomDeGestionnaire, objetScript {, début, période, répétitions})
member(quelActeur).group(quelGroupe).registerScript(nomDévénement, \
nomDeGestionnaire, objetScript {, début, période, répétitions})
Description
Commande 3D ; enregistre le gestionnaire spécifié comme devant être appelé lorsque l’événement
spécifié se produit pour le nœud référencé.
Les descriptions de paramètres suivantes s’appliquent aux deux commandes
registerForEvent() et registerScript().
Paramètres
Requis. Spécifie le nom de l’événement. Il peut s’agir de l’un des événements
prédéfinis suivants ou d’un événement personnalisé défini par vous :
nomDévénement
•
•
•
•
est un événement de collision.
#collideWith est un événement de collision impliquant ce modèle. La commande
setCollisionCallback() est un raccourci de la commande registerScript() pour
l’événement #collideWith.
#animationStarted et #animationEnded sont des événements de notification utilisés à la
lecture ou à l’arrêt d’une animation de segments ou d’images-clés. Le gestionnaire reçoit trois
arguments : nomDévénement, mouvement et position. L’argument nomDévénement a pour
valeur #animationStarted ou #animationEnded. L’argument mouvement est le nom du
mouvement démarré ou arrêté, position étant la position actuelle du mouvement.
Pour les animations en boucle, l’événement #animationStarted n’est émis que pour la
première boucle, pas pour les suivantes. Cet événement est envoyé au début de la fusion entre
deux animations.
Lorsqu’une série d’animations est placée en file d’attente pour le modèle et que la propriété
autoBlend de l’animation a pour valeur TRUE, l’événement #animationEnded peut se
produire avant la fin apparente d’un mouvement donné. En effet, la propriété autoBlend peut
encore donner une impression de mouvement alors que l’animation s’est terminée comme
prévu.
#timeMS est un événement horaire. Le premier événement #timeMS a eu lieu lorsque le
nombre de millisecondes spécifié dans le paramètre début s’est écoulé après l’appel de
registerForEvent. Le paramètre période détermine le nombre de millisecondes entre les
événements #timeMS lorsque la valeur des répétitions est supérieure à 0. Si la valeur des
répétitions est 0, l’événement #timeMS se produit indéfiniment.
#collideAny
535
nomDeGestionnaire Requis. Spécifie le nom du gestionnaire qui sera appelé lorsque l’événement
nomDévénement surviendra ; ce gestionnaire se trouve dans l’objet de script indiqué par
objetScript. Le gestionnaire reçoit les arguments suivants :
•
•
•
•
•
est toujours 0.
est le temps (en millisecondes) écoulé depuis le dernier événement #timeMS.
time est le nombre de millisecondes écoulées depuis le premier événement #timeMS.
Par exemple, avec trois itérations d’une période de 500 ms, la première itération sera 0,
la deuxième sera 500 et la troisième sera 1000.
duration est le nombre total de millisecondes écoulées entre l’appel registerForEvent et
le dernier événement #timeMS. Par exemple, avec cinq itérations d’une période de 500 ms,
la durée est 2500 ms. Pour les tâches avec des itérations illimitées, la durée est 0.
systemTime est la durée absolue, en millisecondes, depuis le début de l’animation Director.
type
delta
objetScript Requis. Spécifie l’objet de script qui contient le gestionnaire nomDeGestionnaire.
Si 0 est spécifié pour objetScript, c’est le premier gestionnaire d’événement portant le nom
donné qui est appelé.
début Facultatif. Spécifie le nombre de millisecondes écoulées
registerForEvent() et le premier événement #timeMS
entre l’appel de
Facultatif. Spécifie le nombre de millisecondes entre des événements #timeMS lorsque
la valeur de répétitions est supérieure à 0.
période
répétitions
répétitions
Facultatif. Spécifie le nombre de répétitions pour l’événement #timeMS. Si
a une valeur égalele à 0, l’événement #timeMS se produit indéfiniment.
Exemple
L’instruction suivante enregistre le gestionnaire d’événement messageReçu, situé dans un script
d’animation à appeler lorsque le modèle Lecteur reçoit l’événement personnalisé #message défini
par l’utilisateur :
member("Scène").model("Lecteur").registerScript(#message, \
#messageReçu, 0)
L’instruction suivante enregistre le gestionnaire d’événement réponseCollision, situé dans le
même script que la commande registerScript à appeler chaque fois qu’une collision se produit
entre le modèle Lecteur et tout autre modèle utilisant le modificateur #collision :
member("Scène").model("Lecteur").registerScript(#collideWith, \
#réponseCollision, me)
Voir aussi
registerForEvent(), sendEvent, setCollisionCallback()
removeBackdrop
Utilisation
member(quelActeur).camera(quelleCaméra).removeBackdrop(index)
Description
Commande 3D ; supprime le fond situé à une position spécifiée de la liste des fonds de la caméra.
536
Chapitre 12 : Méthodes
Paramètres
index
Requis. Spécifie la position d’index du fond à supprimer de la liste des fonds.
Exemple
L’instruction suivante retire le troisième fond de la liste des fonds de la caméra 1 de l’acteur
nommé Scène. Le fond disparaîtra de la scène si des images-objets utilisent actuellement cette
caméra.
member("Scène").camera[1].removeBackdrop(3)
removeFromWorld
Utilisation
member(quelActeur).model(quelModèle).removeFromWorld()
member(quelActeur).light(quelleLumière).removeFromWorld()
member(quelActeur).camera(quelleCaméra).removeFromWorld()
member(quelActeur).group(quelGroupe).removeFromWorld()
Description
Commande 3D ; pour les modèles, les lumières, les caméras ou les groupes dont la hiérarchie
amont se termine dans l’univers, cette commande donne une valeur nulle aux parents et les retire
de l’univers.
Pour les objets dont la hiérarchie amont ne se termine pas dans l’univers, cette commande n’a
aucun effet.
Paramètres
Aucun.
Exemple
La commande suivante retire le modèle gbCyl de l’univers 3D de l’acteur Scène.
member("Scène").model("gbCyl").removeFromWorld()
removeLast()
member(quelActeur).model(quelModèle).bonesPlayer.removeLast()
member(quelActeur).model(quelModèle).keyframePlayer.\
removeLast()
Description
Commande de modificateur 3D keyframePlayer et bonesPlayer ; supprime le dernier
mouvement de la liste de lecture du modificateur.
Paramètres
Aucun.
Exemple
L’instruction suivante retire le dernier mouvement de la liste de lecture du modificateur
bonesPlayer pour le modèle Marcheur.
member("MonUnivers").model("Marcheur").bonesPlayer.removelast()
537
removeModifier
Utilisation
member(quelActeur).model(quelModèle).removeModifier.\
(#quelModificateur)
Description
Commande 3D ; supprime le modificateur spécifié du modèle spécifié.
Cette commande renvoie TRUE si elle est exécutée avec succès et FALSE si #quelModificateur
n’est pas un modificateur valide ou si le modificateur n’est pas associé au modèle.
Paramètres
quelModificateur
Requis. Spécifie le modificateur à supprimer.
Exemple
L’instruction suivante retire le modificateur #toon du modèle Boîte.
member("formes").model("Boîte").removeModifier(#toon)
Voir aussi
addModifier, modifier, modifier[], modifiers
removeOverlay
Utilisation
member(quelActeur).camera(quelleCaméra).removeOverlay(index)
Description
Commande 3D ; retire le recouvrement situé à une position spécifiée de la liste des recouvrements
de la caméra.
Paramètres
index
Requis. Spécifie la position d’index du recouvrement dans la liste des recouvrements.
Exemple
L’instruction suivante retire le premier recouvrement de la liste de recouvrements de la caméra de
l’image-objet 5. Le recouvrement disparaîtra de la scène.
sprite(5).camera.removeOverlay(1)
Voir aussi
overlay
538
Chapitre 12 : Méthodes
removeScriptedSprite()
Utilisation
-- Syntaxe Lingo
réfObjPisteDimageObjet.removeScriptedSprite()
// Syntaxe JavaScript
réfObjPisteDimageObjet.removeScriptedSprite();
Description
Méthode de piste d’image-objet ; bascule de nouveau le contrôle d’une piste d'image-objet du
script vers le scénario.
Paramètres
Aucun.
Exemple
L’instruction suivante supprime l’image-objet scriptée de la piste des images-objets 5 :
-- Syntaxe Lingo
channel(5).removeScriptedSprite()
// Syntaxe JavaScript
channel(5).removeScriptedSprite();
Voir aussi
makeScriptedSprite(), Piste d’image-objet
resetWorld
Utilisation
member(quelActeur).resetWorld()
member(quelActeurTexte).resetWorld()
Description
Commande 3D ; redonne aux propriétés de l’acteur 3D référencé les valeurs enregistrées lorsque
l’acteur a été mis en mémoire pour la première fois. La propriété state de l’acteur doit avoir la
valeur 0 (déchargé), 4 (média chargé) ou -1 (erreur) avant que cette commande ne puisse être
utilisée afin d’éviter une erreur de script.
Cette commande diffère de revertToWorldDefaults dans la mesure où les valeurs utilisées
reflètent l’état de l’acteur au moment où il a été mis en mémoire pour la première fois, plutôt
qu’au moment où il a été créé.
Paramètres
Aucun.
539
Exemple
L’instruction suivante redonne aux propriétés de l’acteur Scène les valeurs utilisées lorsque l’acteur
a été mis en mémoire pour la première fois.
member("Scène").resetWorld()
Voir aussi
revertToWorldDefaults
resolveA
Utilisation
collisionData.resolveA(bRésolution)
Description
Méthode 3D de collision ; annule le comportement de collision défini par la propriété
collision.resolve pour collisionData.modelA. N’appelez cette fonction que si vous
souhaitez remplacer le comportement défini pour modelA à l’aide de collision.resolve.
Paramètres
Requis. Indique si la collision est résolue pour modelA. Si bRésolution est TRUE,
la collision est résolue pour modelA ; si bRésolution est FALSE, la collision n’est pas résolue pour
modelA.
bRésolution
Voir aussi
collisionData, registerScript(), resolve, modelA, setCollisionCallback()
resolveB
Utilisation
collisionData.resolveB(bRésolution)
Description
Méthode 3D de collision ; annule le comportement de collision défini par la propriété
collision.resolve pour collisionData.modelB. N’appelez cette fonction que si vous
souhaitez remplacer le comportement défini pour modelB à l’aide de collision.resolve.
Paramètres
bRésolution Requis. Indique si la collision est résolue pour modelB. Si bRésolution est TRUE,
la collision est résolue pour modelB ; si bRésolution est FALSE, la collision n’est pas résolue pour
modelB.
Voir aussi
collisionData, resolve, registerScript(), modelB, setCollisionCallback()
540
Chapitre 12 : Méthodes
restart()
Utilisation
-- Syntaxe Lingo
_system.restart()
// Syntaxe JavaScript
_system.restart();
Description
Méthode du système ; ferme toutes les applications ouvertes et redémarre l’ordinateur.
Paramètres
Aucun.
Exemple
L’instruction suivante redémarre l’ordinateur lorsque l’utilisateur appuie sur la combinaison de
touches Cmd+R (Macintosh) ou Ctrl+R (Windows) :
-- Syntaxe Lingo
if (_key.key = "r" and _key.commandDown) then
_system.restart()
end if
// Syntaxe JavaScript
if (_key.key = "r" && _key.commandDown) {
_system.restart();
}
Voir aussi
Système
restore()
Utilisation
-- Syntaxe Lingo
réfObjFenêtre.restore()
// Syntaxe JavaScript
réfObjFenêtre.restore();
Description
Méthode de fenêtre ; restaure une fenêtre lorsqu’elle a été agrandie.
Utilisez cette méthode lorsque vous créez des barres de titre personnalisées pour des animations
dans une fenêtre (MIAW).
Paramètres
Aucun.
541
Exemple
Cette instruction rétablit la fenêtre agrandie intitulée Tableau de commande :
-- Syntaxe Lingo
window("Tableau de commande").restore()
// Syntaxe JavaScript
window("Tableau de commande").restore();
Voir aussi
maximize(), Fenêtre
result
Utilisation
the result
Description
Fonction ; affiche la valeur de l’expression renvoyée par le dernier gestionnaire exécuté.
La fonction result sert notamment à obtenir des valeurs provenant d’animations lues dans des
fenêtres et à suivre l’évolution de Lingo en affichant les résultats des gestionnaires dans la fenêtre
Messages pendant la lecture de l’animation.
Pour renvoyer le résultat d'un gestionnaire, affectez ce résultat à une variable, puis vérifiez la
valeur de cette dernière. Utilisez une instruction telle que set myVariable = fonction(), où
fonction() est le nom d'une fonction spécifique.
Paramètres
Aucun.
Exemple
Le gestionnaire suivant renvoie un résultat aléatoire de deux dés :
on lancerLesDés
return random(6) + random(6)
end
Dans l’exemple suivant, les deux instructions
lancerLesDés
dés = the result
sont équivalentes à l’instruction suivante :
set dés = lancerLesDés()
L’instruction set dés = lancerLesDés n’appelle pas le gestionnaire car il n’existe aucune
parenthèse après lancerLesDés ; lancerLesDés est considéré comme une référence de variable.
Voir aussi
return (mot-clé)
542
Chapitre 12 : Méthodes
resume()
Utilisation
-- Syntaxe Lingo
animGifSpriteRef.resume()
// Syntaxe JavaScript
animGifSpriteRef.resume();
Description
Méthode de GIF animé ; reprend la lecture de l’image-objet à partir de l’image suivant celle sur
laquelle elle est arrêtée. Cette commande n’a aucun effet si l’image-objet GIF animé n’est pas en
pause.
Paramètres
Aucun.
Voir aussi
rewind() (GIF animé, Flash)
returnToTitle()
Utilisation
-- Syntaxe Lingo
réfObjDvd.returnToTitle()
// Syntaxe JavaScript
réfObjDvd.returnToTitle();
Description
Méthode DVD ; reprend la lecture après l'affichage d'un menu.
Paramètres
Aucun.
Exemple
Cette instruction reprend la lecture après l'affichage d'un menu :
-- Lingo syntax
member(1).returnToTitle()
// JavaScript syntax
member(1).returnToTitle();
Voir aussi
DVD
543
revertToWorldDefaults
Utilisation
member(quelActeur).revertToWorldDefaults()
Description
Commande 3D ; redonne aux propriétés de l’acteur 3D spécifié les valeurs enregistrées lorsque
l’acteur a été créé. La propriété state de l’acteur doit avoir la valeur 4 (chargé) ou -1 (erreur)
avant que cette commande ne puisse être utilisée afin d’éviter une erreur de script.
Cette commande diffère de resetWorld dans la mesure où les valeurs utilisées reflètent l’état de
l’acteur lorsqu’il a été créé plutôt que lorsqu’il a été mis en mémoire pour la première fois.
Paramètres
Aucun.
Exemple
L’instruction suivante redonne aux propriétés de l’acteur Scène les valeurs enregistrées lorsque
l’acteur a été créé.
member("Scène").revertToWorldDefaults()
Voir aussi
resetWorld
rewind() (piste audio)
Utilisation
-- Syntaxe Lingo
réfObjPisteAudio.rewind()
// Syntaxe JavaScript
réfObjPisteAudio.rewind();
Description
Méthode de piste audio ; interrompt la lecture du son courant et la redémarre à sa position de
départ startTime.
Si le son est en pause, il reste en pause, avec la propriété currentTime définie sur la position de
départ startTime.
Paramètres
Aucun.
544
Chapitre 12 : Méthodes
Exemple
L’instruction suivante relance la lecture de l’acteur son dans la piste audio 1 depuis le début.
-- Syntaxe Lingo
sound(1).rewind()
// Syntaxe JavaScript
sound(1).rewind();
Voir aussi
Piste audio, startTime
rewind() (Windows Media)
Utilisation
-- Syntaxe Lingo
réfObjWindowsMedia.rewind()
// Syntaxe JavaScript
réfObjWindowsMedia.rewind();
Description
Méthode d’acteur ou d’image-objet Windows Media. Rembobine l’animation jusqu’à la première
image d’un acteur ou d’une image-objet Windows Media.
Cette méthode, lorsqu’elle est appelée, n’a aucun effet sur la propriété mediaStatus.
Paramètres
Aucun.
Voir aussi
mediaStatus (RealMedia, Windows Media), Windows Media
rewind() (GIF animé, Flash)
Utilisation
-- Syntaxe Lingo
animGifSpriteRef.rewind()
// Syntaxe JavaScript
animGifSpriteRef.rewind();
Description
Commande ; renvoie une image-objet animation Flash ou GIF animé à l’image 1 lorsque l’imageobjet est arrêtée ou en cours de lecture.
Paramètres
Aucun.
545
Exemple
Le script d’image suivant détermine si l’image-objet animation Flash dans laquelle le comportement était placé est en cours de lecture et, le cas échéant, continue la boucle dans la même image.
Lorsque l’animation est terminée, l’image-objet la rembobine (si bien que la première image de
l’animation apparaît sur la scène) et permet à la tête de lecture de passer à l’image suivante.
-- Syntaxe Lingo
property spriteNum
on exitFrame
if sprite(spriteNum).playing then
_movie.go(_movie.frame)
else
sprite(spriteNum).rewind()
_movie.updatestage()
end if
end
// Syntaxe JavaScript
function exitFrame() {
var plg = sprite(this.spriteNum).playing;
if (plg = 1) {
_movie.go(_movie.frame);
} else {
sprite(this.spriteNum).rewind();
_movie.updatestage();
}
}
rollOver()
Utilisation
-- Syntaxe Lingo
_movie.rollOver({intSpriteNum})
// Syntaxe JavaScript
_movie.rollOver({intSpriteNum});
Description
Méthode d’animation ; indique si le pointeur (curseur) se trouve sur le rectangle délimitant
l’image-objet spécifiée (TRUE ou 1) ou non (FALSE ou 0).
La méthode rollOver(), généralement utilisée dans les scripts d’images, est utile pour créer des
gestionnaires qui exécutent une action lorsque l’utilisateur place le pointeur sur une image-objet
spécifique.
Si l’utilisateur continue à déplacer la souris, la valeur de ()rollOver peut changer pendant qu’un
script exécute un gestionnaire et peut donner lieu à un comportement inattendu. Vous pouvez
vous assurer qu’un gestionnaire utilise une valeur de survol constante en affectant rollOver() à
une variable au moment de son démarrage.
Lorsque le pointeur survole une zone de la scène où apparaissait précédemment une image-objet,
rollOver() se produit encore et indique que l'image-objet est toujours présente. Pour éviter ce
problème, évitez d’effectuer des survols sur ces emplacements ou placez l’image-objet au-dessus de
la barre de menus avant de la supprimer.
546
Chapitre 12 : Méthodes
Paramètres
intSpriteNum
Facultatif. Nombre entier qui spécifie le numéro de l’image-objet.
Exemple
L’instruction suivante change le contenu de l’acteur champ Message en « C’est bien là » lorsque le
curseur se trouve sur l’image-objet 6 :
-- Syntaxe Lingo
if (_movie.rollOver(6)) then
member("Message").text = "C’est bien là."
end if
// Syntaxe JavaScript
if (_movie.rollOver(6)) {
member("Message").text = "C’est bien là.";
}
Le gestionnaire suivant positionne la tête de lecture sur d’autres images lorsque le curseur se
trouve sur certaines images-objets de la scène. Il affecte d’abord la valeur rollOver à une variable.
Cela permet au gestionnaire d’utiliser la valeur rollOver en vigueur au démarrage du survol, que
l’utilisateur continue à déplacer la souris ou non.
-- Syntaxe Lingo
on exitFrame
imageObjetCourante = _movie.rollOver()
case imageObjetCourante of
1: _movie.go("Gauche")
2: _movie.go("Milieu")
3: _movie.go("Droite")
end case
end exitFrame
// Syntaxe JavaScript
function exitFrame() {
var imageObjetCourante = _movie.rollOver();
switch (imageObjetCourante) {
cas 1 : _movie.go("Gauche");
break;
cas 2 : _movie.go("Milieu");
break;
cas 3 : _movie.go("Droite");
break;
}
}
Voir aussi
Animation
547
rootMenu()
Utilisation
-- Syntaxe Lingo
réfObjDvd.rootMenu()
// Syntaxe JavaScript
réfObjDvd.rootMenu();
Description
Méthode de DVD ; affiche le menu racine.
Paramètres
Aucun.
Voir aussi
DVD
rotate
Utilisation
member(quelActeur).node(quelNœud).rotate(angleX, angleY, \
angleZ {, parRapportA})
member(quelActeur).node(quelNœud).rotate(vecteurDeRotation \
{, parRapportA})
member(quelActeur).node(quelNœud).rotate(position, axe, \
angle {, parRapportA})
transformation.rotate(angleX, angleY, angleZ {, parRapportA})
transformation.rotate(vecteurDeRotation {, parRapportA})
transformation.rotate(position, axe, angle {, parRapportA})
Description
Commande 3D ; applique une rotation après les décalages de position, de rotation et d’échelle de
l’objet de transformation d’un nœud ou d’un objet de transformation directement référencé. La
rotation doit être spécifiée sous la forme d’un ensemble de trois angles, chacun desquels spécifiant
l’angle de rotation autour des trois axes correspondants. Ces angles peuvent être spécifiés de façon
explicite sous la forme angleX, angleY et angleZ, ou au moyen d’un vecteurDeRotation, où le
composant x du vecteur correspond à la rotation autour de l’axe des x, y autour de l’axe des y et z
autour de l’axe des z. La rotation peut également être spécifiée autour d’un axe arbitraire passant
par un point de l’espace.
Paramètres
angleX Requis si vous appliquez une rotation avec les axes des x, des y et des z. Spécifie l’angle de
rotation autour de l’axe des x.
angleY Requis si vous appliquez une rotation avec les axes des x, des y et des z. Spécifie l’angle de
rotation autour de l’axe des y.
angleZ Requis si vous appliquez une rotation avec les axes des x, des y et des z. Spécifie l’angle de
rotation autour de l’axe des z.
Requis si vous appliquez une rotation avec un vecteur. Spécifie le vecteur
qui contient les angles à appliquer.
vecteurDeRotation
548
Chapitre 12 : Méthodes
Requis si vous appliquez une rotation autour d’un axe arbitraire qui passe par un point
dans l’espace. Spécifie la position dans l’espace.
angle
axe Requis si vous appliquez une rotation autour d’un axe arbitraire qui passe par un point dans
l’espace. Spécifie l’axe qui passe par la position position spécifiée.
Requis si vous appliquez une rotation autour d’un axe arbitraire qui passe par un point
dans l’espace. Spécifie l’angle de rotation autour de l’axe axis.
position
parRapportA Facultatif. Spécifie les axes du système de coordonnées utilisés pour appliquer les
changements de rotation voulus. Le paramètre parRapportA peut avoir les valeurs suivantes :
•
•
•
•
applique les incréments en fonction du système de coordonnées local du nœud (les axes
des x, des y et des z spécifiés pour le modèle au cours de la programmation). Cette valeur est
utilisée comme valeur par défaut si vous utilisez la commande rotate avec une référence de
nœud et que le paramètre parRapportA n’est pas spécifié.
#parent applique les incréments par rapport au système de coordonnées du parent du nœud.
Cette valeur est utilisée comme valeur par défaut si vous utilisez la commande rotate avec une
référence de transformation et que le paramètre parRapportA n’est pas spécifié.
#world applique les incréments par rapport au système de coordonnées de l’univers. Lorsque le
parent d’un modèle est l’univers, ceci est équivalent à l’utilisation de #parent.
référenceDeNœud permet de spécifier un nœud servant de base à la rotation, la commande
appliquant les incréments en fonction du système de coordonnées du nœud spécifié.
#self
Exemple
L’exemple suivant fait d’abord pivoter le modèle Lune autour de son propre axe des z (en le
faisant pivoter sur place), puis le fait pivoter autour de son nœud parent, le modèle Terre (ce qui
entraîne le déplacement du modèle Lune en orbite autour du modèle Terre).
member("Scène").model("Lune").rotate(0,0,15)
member("Scène").model("Lune").rotate(vector(0, 0, 5),
member("Scène").model("Lune"))
L’exemple suivant fait pivoter le modèle Balle autour d’une position de l’espace occupée par le
modèle Bâton. L’effet obtenu est le déplacement du modèle Balle en orbite autour du modèle
Bâton dans le plan xy.
posBâton = member("Scène 3D").model("Bâton").worldPosition
member("Scène 3D").model("Balle").rotate(posBaton, vector(0,0,1), \
5, #world)
Voir aussi
pointAt, preRotate, rotation (transformation), rotation (matériau de gravure),
rotation (fond et recouvrement), preScale(), transform (propriété)
runMode
Utilisation
the runMode
Description
Fonction ; renvoie une chaîne indiquant le mode de lecture de l’animation. Les valeurs possibles
sont :
•
Author
– L’animation est lue dans Director.
549
•
•
– L’animation est lue en tant que projection.
BrowserPlugin – L’animation est lue en tant que module Shockwave Player ou autre
environnement de programmation tel que LiveConnect ou ActiveX.
Projector
Le moyen le plus sûr de tester des valeurs particulières de cette propriété est d’utiliser l’opérateur
contains. Cela évite les erreurs et permet les correspondances partielles.
Paramètres
Aucun.
Exemple
L’instruction suivante détermine si des paramètres externes sont disponibles et, le cas échéant, les
obtient :
-- Syntaxe Lingo
if the runMode contains "Plugin" then
-- décoder le paramètre embed
if externalParamName(swURL) = swURL then
put externalParamValue(swURL) into maVariable
end if
end if
// Syntaxe JavaScript
if (_movie.runMode.indexOf("Plugin") >=0) {
// décoder le paramètre embed
if (externalParamName(swURL) == swURL) {
maVariable = externalParamValue (swURL);
}
}
Voir aussi
environmentPropList, platform
save castLib
Utilisation
castLib(quelleDistribution).save()
save castLib quelleDistribution {,nomDuChemin&nomDeNouveauFichier}
Description
Commande ; enregistre les modifications apportées à l’acteur dans son fichier d’origine ou dans
un nouveau fichier. Les opérations ou les références ultérieures à la distribution utilisent l’acteur
enregistré.
Cette commande ne fonctionne pas avec les fichiers compressés.
La commande save CastLib ne prend pas en charge les adresses URL comme références de
fichier.
Paramètres
Facultatif. Spécifie le chemin d’accès et le nom du fichier
dans lequel vous voulez enregistrer les modifications. Si ce paramètre est omis, l’acteur d’origine
doit être lié.
nomDuChemin&nomDeNouveauFichier
550
Chapitre 12 : Méthodes
Exemple
L’instruction suivante demande à Director d’enregistrer la version révisée de la distribution
Boutons dans le nouveau fichier BoutonsActualisés au sein du même dossier :
castLib("Boutons").save(the moviePath & "BoutonsActualisés.cst")
Voir aussi
@ (chemin d’accès)
saveMovie()
Utilisation
-- Syntaxe Lingo
_movie.saveMovie({chaîneCheminDeFichier})
// Syntaxe JavaScript
_movie.saveMovie({chaîneCheminDeFichier});
Description
Méthode d’animation ; enregistre l’animation courante.
Le fait d’inclure le paramètre chaîneCheminDeFichier facultatif permet d’enregistrer
l’animation dans le fichier spécifié. Cette commande ne fonctionne pas avec les fichiers
compressés. Le nom du fichier spécifié doit comprendre l’extension .dir.
La commande saveMovie() ne supporte pas les adresses URL comme références de fichier.
Paramètres
chaîneCheminDeFichier Facultatif. Chaîne qui spécifie le chemin d’accès et le nom du fichier
dans lequel l’animation est enregistrée.
Exemple
L’instruction suivante enregistre l’animation courante dans le fichier MiseAjour :
-- Syntaxe Lingo
_movie.saveMovie(_movie.path & "MiseAjour.dir")
// Syntaxe JavaScript
_movie.saveMovie(_movie.path + "MiseAjour.dir");
Voir aussi
Animation
551
scale (commande)
Utilisation
member(quelActeur).node(quelNœud).scale(échelleX, échelleY, \
échelleZ)
member(quelActeur).node(quelNœud).scale(échelleUnifome)
transformation.scale(échelleX, échelleY, échelleZ)
transformation.scale(échelleUniforme)
Description
Commande 3D de transformation ; applique un redimensionnement après les décalages de position, de rotation et d’échelle courants d’une transformation d’un nœud référencé ou de la transformation directement référencée. Le redimensionnement doit être spécifié soit comme un
groupe de trois redimensionnements individuels des axes correspondants, soit comme un redimensionnement unique à appliquer à tous les axes. Vous pouvez spécifier un redimensionnement
individuel à l’aide des paramètres échelleX, échelleY et échelleZ, ou spécifier une valeur pour
un redimensionnement uniforme à l’aide du paramètre échelleUniforme.
Un nœud peut être un objet de caméra, groupe, lumière ou modèle. L’utilisation de la commande
scale ajuste la propriété transform.scale du nœud référencé, mais n’a aucun effet visuel sur les
lumières ou les caméras car elles ne contiennent pas de géométrie.
Les valeurs du redimensionnement doivent être supérieures à zéro.
Paramètres
échelleX
Requis si vous spécifiez trois redimensionnements. Spécifie l’échelle sur l’axe des x.
échelleY
Requis si vous spécifiez trois redimensionnements. Spécifie l’échelle sur l’axe des y.
échelleZ
Requis si vous spécifiez trois redimensionnements. Spécifie l’échelle sur l’axe des z.
échelleUnifome Requis si vous spécifiez un seul redimensionnement, uniforme. Spécifie le
redimensionnement uniforme.
Exemple
L’exemple suivant affiche d’abord la propriété transform.scale du modèle Lune,
redimensionne ensuite le modèle à l’aide de la commande scale, puis affiche la valeur
transform.scale résultante.
put member("Scène").model("Lune").transform.scale
-- vector( 1.0000, 1.0000, 1.0000 )
member("Scène").model("Lune").scale(2.0,1.0,0.5)
put member("Scène").model("Lune").transform.scale
-- vector( 2.0000, 1.0000, 0.5000 )
L’instruction suivante redimensionne le modèle nommé Pluton de façon uniforme sur les trois
axes selon la valeur 0.5, ce qui réduit de moitié la taille du modèle affiché.
member("Scène").model("Pluton").scale(0.5)
L’instruction suivante redimensionne le modèle Pluton de façon non uniforme, en le modifiant
sur l’axe des z mais pas sur celui des x ou des y.
member("Scène").model("Pluton").scale(0.0, 0.0, 0.5)
Voir aussi
transform (propriété), preScale(), scale (transformation)
552
Chapitre 12 : Méthodes
script()
Utilisation
-- Syntaxe Lingo
script(nomOuNumDacteur {, nomOuNumDeDistribution})
// Syntaxe JavaScript
script(nomOuNumDacteur {, nomOuNumDeDistribution});
Description
Fonction du niveau supérieur ; crée une référence à un acteur donné qui contient un script et,
éventuellement, spécifie la distribution qui contient l’acteur.
Une erreur est renvoyée si l’acteur donné ne contient aucun script ou s’il n’existe pas.
Paramètres
nomOuNumDacteur Requis. Chaîne qui spécifie le nom de l’acteur contenant un script ou nombre
entier qui spécifie la position d’index de cet acteur contenant le script.
nomOuNumDeDistribution Facultatif. Chaîne qui spécifie le nom de la distribution contenant
l’acteur nomOuNumDacteur ou nombre entier qui spécifie la position d’index de la distribution
contenant l’acteur nomOuNumDacteur. Si ce paramètre est omis, script() lance la recherche dans
la première distribution.
Exemple
En Lingo uniquement, les instructions suivantes vérifient si un objet enfant est une instance du
script parent Fourmi :
-- Syntaxe Lingo
if (objetInsecte.script = script("Fourmi")) then
objetInsecte.attaque()
end if
Cette instruction affecte la variable acteurAction à l’acteur de script Actions :
-- Syntaxe Lingo
acteurAction = script("Actions")
// Syntaxe JavaScript
var acteurAction = script("Actions");
scrollByLine()
Utilisation
-- Syntaxe Lingo
réfObjActeur.scrollByLine(quantité)
// Syntaxe JavaScript
réfObjActeur.scrollByLine(quantité);
Description
Commande ; fait défiler l’acteur champ ou texte spécifié vers le haut ou le bas du nombre de
lignes spécifié. Les lignes sont définies comme des lignes séparées par des retours chariot ou par
des retours à la ligne automatiques.
553
Paramètres
quantité Requis. Spécifie le nombre de lignes à faire défiler. Lorsque quantité a une valeur
positive, le champ défile vers le bas. Lorsque quantité a une valeur négative, le champ défile vers
le haut.
Exemple
L’instruction suivante fait défiler l’acteur champ Nouvelles du jour de cinq lignes vers le bas :
-- Syntaxe Lingo
member("Nouvelles du jour").scrollbyline(5)
// Syntaxe JavaScript
member("Nouvelles du jour").scrollbyline(5);
L’instruction suivante fait défiler l’acteur champ Nouvelles du jour de cinq lignes vers le haut :
-- Syntaxe Lingo
member("Nouvelles du jour").scrollByLine(-5)
// Syntaxe JavaScript
member("Nouvelles du jour").scrollByLine(-5);
scrollByPage()
Utilisation
-- Syntaxe Lingo
réfObjActeur.scrollByPage(quantité)
// Syntaxe JavaScript
réfObjActeur.scrollByPage(quantité);
Description
Commande ; fait défiler l’acteur champ ou texte spécifié vers le haut ou le bas d’un nombre de
pages spécifié. Une page correspond au nombre de lignes de texte visibles à l’écran.
Paramètres
quantité Requis. Spécifie le nombre de pages à faire défiler. Lorsque quantité a une valeur
positive, le champ défile vers le bas. Lorsque quantité a une valeur négative, le champ défile vers
le haut.
Exemple
L’instruction suivante fait défiler l’acteur champ Nouvelles du jour d’une page vers le bas :
-- Syntaxe Lingo
member("Nouvelles du jour").scrollbypage(1)
// Syntaxe JavaScript
member("Nouvelles du jour").scrollbypage(1);
554
Chapitre 12 : Méthodes
L’instruction suivante fait défiler l’acteur champ Nouvelles du jour d’une page vers le haut :
-- Syntaxe Lingo
member("Nouvelles du jour").scrollbypage(-1)
// Syntaxe JavaScript
member("Nouvelles du jour").scrollbypage(-1);
Voir aussi
scrollTop
seek()
Utilisation
-- Syntaxe Lingo
réfObjActeurOuImageObjet.seek(millisecondes)
// Syntaxe JavaScript
réfObjActeurOuImageObjet.seek(millisecondes);
Description
Méthode d’acteur ou d’image-objet RealMedia ; change l’emplacement de lecture du flux
multimédia et sélectionne l’emplacement spécifié par le nombre de millisecondes écoulées depuis
le début du flux. La valeur mediaStatus devient généralement #seeking, puis #buffering.
Vous pouvez utiliser cette méthode pour initialiser la lecture à des points autres que le début
du flux RealMedia, ou pour avancer ou reculer dans le flux. Le nombre entier spécifié dans
millisecondes correspond au nombre de millisecondes écoulées depuis le début du flux.
Ainsi, pour reculer, vous devez spécifier un nombre inférieur de millisecondes, et non un
nombre négatif.
Si la commande seek est appelée lorsque mediaStatus a pour valeur #paused, le flux repasse
en mémoire tampon et revient à la valeur #paused au nouvel emplacement spécifié par seek.
Si seek est appelé lorsque mediaStatus a pour valeur #playing, le flux repasse en tampon et sa
lecture démarre automatiquement au nouvel emplacement du flux. Si seek est appelé lorsque
mediaStatus a pour valeur #closed, rien ne se passe.
Si vous tentez de lancer une recherche au-delà de la valeur duration du flux, l’argument entier
spécifié est ajouté à la plage à partir de 0 pour la durée du flux. Vous ne pouvez pas accéder
directement à une image-objet RealMedia qui est en cours de lecture en flux continu.
L’instruction x.seek(n) est identique à l’instruction x.currentTime = n ; dans les deux cas,
le flux sera replacé en mémoire tampon.
Paramètres
millisecondes
Requis. Un nombre entier spécifiant le nombre de millisecondes à partir du
début du flux.
555
Exemple
Les exemples suivants définissent la position de lecture actuelle du flux sur 10 000 millisecondes
(10 secondes) :
-- Syntaxe Lingo
sprite(2).seek(10000)
member("Real").seek(10000)
// Syntaxe JavaScript
sprite(2).seek(10000);
member("Real").seek(10000);
Voir aussi
duration (RealMedia, SWA), currentTime (RealMedia), play() (RealMedia, SWA,
Windows Media), pause() (RealMedia, SWA, Windows Media), stop() (RealMedia,
SWA, Windows Media), mediaStatus (RealMedia, Windows Media)
selectAtLoc()
Utilisation
-- Syntaxe Lingo
réfObjDvd.selectAtLoc(point(x, y))
// Syntaxe JavaScript
réfObjDvd.selectAtLoc(point(x, y));
Description
Méthode de DVD ; déclenche le bouton sous un point spécifié.
Cette méthode a la même fonctionnalité qu’un clic de souris sur un bouton.
Paramètres
point(x, y)
Requis. Point qui spécifie l’emplacement sous lequel un bouton est déclenché.
Exemple
Cette instruction déclenche le bouton sous un point spécifié :
-- Syntaxe Lingo
member(10).selectAtLoc(point(50, 75))
// Syntaxe JavaScript
member(10).selectAtLoc(point(50, 75));
Voir aussi
DVD
556
Chapitre 12 : Méthodes
selectButton()
Utilisation
-- Syntaxe Lingo
réfObjDvd.selectButton(entBouton)
// Syntaxe JavaScript
réfObjDvd.selectButton(entBouton);
Description
Méthode de DVD ; sélectionne un bouton spécifié.
Cette méthode renvoie TRUE (1) en cas de réussite.
Paramètres
entBouton
Requis. Nombre entier qui spécifie le bouton à sélectionner.
Exemple
Cette instruction sélectionne le bouton 5 :
-- Syntaxe Lingo
sprite(11).selectButton(5)
// Syntaxe JavaScript
sprite(11).selectButton(5);
Voir aussi
DVD
selectButtonRelative()
Utilisation
-- Syntaxe Lingo
réfObjDvd.selectButtonRelative(direction)
// Syntaxe JavaScript
réfObjDvd.selectButtonRelative(direction);
Description
Méthode de DVD ; sélectionne un bouton par rapport à la position du bouton courant dans le
menu.
Paramètres
Requis. Symbole (Lingo) ou chaîne (syntaxe JavaScript) qui spécifie la direction du
déplacement par rapport à la position du bouton courant. Les valeurs correctes sont left et
right.
direction
557
Exemple
Cette instruction spécifie le bouton qui se trouve à gauche du bouton actuel :
-- Syntaxe Lingo
sprite(12).member.selectButtonRelative(#left)
// Syntaxe JavaScript
sprite(12).member.selectButtonRelative("left");
Voir aussi
DVD
selection() (fonction)
Utilisation
the selection
Description
Fonction ; renvoie une chaîne de caractères contenant la partie sélectionnée du champ modifiable
courant. Elle permet notamment de tester la sélection faite par l’utilisateur dans un champ.
La fonction selection indique uniquement la chaîne de caractères sélectionnée ; vous ne pouvez
pas utiliser selection pour sélectionner une chaîne de caractères.
Paramètres
Aucun.
Exemple
L’instruction suivante vérifie si des caractères sont sélectionnés et, à défaut, affiche le message
d’alerte « Veuillez sélectionner un mot. » :
if the selection = EMPTY then alert "Veuillez sélectionner un mot."
Voir aussi
selStart, selEnd
sendAllSprites()
Utilisation
-- Syntaxe Lingo
_movie.sendAllSprites(chaîneMessageDévénement {, args})
// Syntaxe JavaScript
_movie.sendAllSprites(chaîneMessageDévénement {, args});
Description
Méthode d’animation ; envoie un message d’événement personnalisé à toutes les images-objets, et
pas seulement à l’image-objet impliquée dans l’événement. Comme tout autre message, celui-ci
est envoyé à chaque script associé à l’image-objet, à moins que la méthode stopEvent() ne soit
utilisée.
558
Chapitre 12 : Méthodes
Pour de meilleurs résultats, n’envoyez le message qu’aux images-objets capables de le gérer
correctement par le biais de la méthode sendSprite(). Aucune erreur ne se produira si le
message est envoyé à toutes les images-objets, mais cela nuira néanmoins à la performance. La
présence d’un gestionnaire identique dans un comportement donné et pour des images-objets
différentes risquant également de poser des problèmes, il est important d’utiliser des noms
uniques pour les messages qui seront diffusés, ceci afin d’éviter tout conflit éventuel.
Une fois le message passé à tous les comportements, l’événement suit la hiérarchie de messages
classique: script d’acteur, script d’image, puis script d’animation.
Lorsque vous utilisez la méthode sendAllSprites(), effectuez les opérations suivantes :
• Remplacez chaîneMessageDévénement par le message.
• Remplacez arguments par tout argument devant être envoyé avec le message.
Si aucune image-objet ne possède de comportement associé contenant le gestionnaire donné,
sendAllSprites() renvoie la valeur FALSE.
Paramètres
chaîneMessageDévénement
Requis. Chaîne qui spécifie le message à envoyer à toutes les images-
objets.
args
Facultatif. Argument ou arguments à envoyer avec le message.
Exemple
Le gestionnaire suivant envoie le message personnalisé
toutesLesImagesObjetsDoiventAugmenterLeCompteur
et l’argument 2 à toutes les images-
objets lorsque l’utilisateur clique avec la souris :
-- Syntaxe Lingo
on mouseDown me
_movie.sendAllSprites(#toutesLesImagesObjetsDoiventAugmenterLeCompteur, 2)
end
// Syntaxe JavaScript
function mouseDown() {
_movie.sendAllSprites("toutesLesImagesObjetsDoiventAugmenterLeCompteur",
2);
}
Voir aussi
Animation, sendSprite(), stopEvent()
sendEvent
Utilisation
member(quelActeur).sendEvent(#nomDévénement, arg1, arg2,...)
Description
Commande 3D ; envoie un événement et un nombre arbitraire d’arguments à tous
les scripts enregistrés pour recevoir l'événement. Utilisez registerForEvent() ou
setCollisionCallback() pour enregistrer les scripts pour les événements.
559
Paramètres
nomDévénement
Requis. Spécifie le nom de l’événement à envoyer.
arg1, arg2, ...
nomDévénement.
Requis. Un ou plusieurs arguments qui sont envoyés avec l’événement
Exemple
La première ligne de cet exemple crée une instance d’un script parent appelé "Testeur".
La seconde ligne définit le gestionnaire de l’instance de script, sautPluton, comme gestionnaire
à appeler lorsque l’événement #saut est envoyé. La troisième ligne définit le gestionnaire d’un
script d’animation sautMars comme un autre gestionnaire à appeler lorsque l’événement #saut
est envoyé. La quatrième ligne envoie l’événement #saut. Le gestionnaire #sautMars d’un script
d’animation et le gestionnaire #sautPluton sont appelés, ainsi que tout autre gestionnaire enregistré pour l’événement #saut. Une valeur d’instance de script de 0 indique que vous enregistrez
le gestionnaire d’un script d’animation, par opposition au gestionnaire d’une instance de comportement ou de l’enfant d’un script parent.
t = new (script "Testeur")
member("Scène").registerForEvent(#saut, #sautPluton, t)
member("Scène").registerForEvent(#saut, #sautMars, 0)
member("Scène").sendEvent(#saut)
Voir aussi
registerScript(), registerForEvent(), setCollisionCallback()
sendSprite()
Utilisation
-- Syntaxe Lingo
_movie.sendSprite(nomOuNumDimageObjet, événement {, args})
// Syntaxe JavaScript
_movie.sendSprite(nomOuNumDimageObjet, événement {, args});
Description
Méthode d’animation ; envoie un message à tous les scripts associés à une image-objet spécifiée.
Les messages envoyés à l’aide de sendSprite() sont envoyés à chacun des scripts associés à
l’image-objet. Ces messages suivent ensuite la hiérarchie de messages classique : script d’acteur,
script d’image et script d’animation.
Si l’image-objet donnée ne possède pas de comportement associé contenant le gestionnaire
donné, sendSprite() renvoie la valeur FALSE.
Paramètres
nomOuNumDimageObjet Requis. Chaîne ou nombre entier qui spécifie le nom ou le numéro de
l’image-objet qui recevra l’événement.
événement
Requis. Symbole ou chaîne qui spécifie l’événement à envoyer à l’image-objet
spécifiée.
args
560
Facultatif. Argument ou arguments à envoyer avec le message.
Chapitre 12 : Méthodes
Exemple
Le gestionnaire suivant envoie le message personnalisé augmenterLeCompteur et l’argument 2 à
l’image-objet 1 lorsque l’utilisateur clique avec la souris :
-- Syntaxe Lingo
on mouseDown me
_movie.sendSprite(1, #augmenterLeCompteur, 2)
end
// Syntaxe JavaScript
function mouseDown() {
_movie.sendSprite(1, "augmenterLeCompteur", 2);
}
Voir aussi
Animation
setAlpha()
Utilisation
objetImage.setAlpha(niveauAlpha)
objetImage.setAlpha(objetImageAlpha)
Description
Fonction ; donne à la couche alpha d’une image-objet un niveauAlpha plat ou un
objetImageAlpha existant. Le niveauAlpha doit être un nombre compris entre 0 et 255.
Des valeurs inférieures font apparaître l’image plus transparente. Des valeurs supérieures
font apparaître l’image plus opaque. La valeur 255 a le même effet que la valeur 0. Pour
que le niveauAlpha puisse prendre effet, la propriété useAlpha() de l’image-objet doit être
définie sur TRUE.
L’objet image doit être de 32 bits. Si vous spécifiez un objet image alpha, il doit être de 8 bits.
Les deux images doivent avoir les mêmes dimensions. Si ces conditions ne sont pas remplies,
setAlpha() n’a aucun effet et renvoie la valeur FALSE. La fonction renvoie TRUE si elle réussit.
Exemple
L’instruction Lingo suivante rend l’image de l’acteur bitmap Premier plan opaque et désactive
simultanément la couche alpha. Cette méthode est efficace pour supprimer la couche alpha d’une
image :
member("Premier plan").image.setAlpha(255)
member("Premier plan").image.useAlpha = FALSE
L’instruction Lingo suivante récupère la couche alpha de l’acteur Lever de soleil et la place dans la
couche alpha de l’acteur Coucher de soleil :
alphaTemp = member("Lever de soleil").image.extractAlpha()
member("Coucher de soleil").image.setAlpha(alphaTemp)
Voir aussi
useAlpha, extractAlpha()
561
setaProp
Utilisation
setaProp list, propriétéDeListe, nouvelleValeur
setaProp (objetEnfant, propriétéDeListe, nouvelleValeur)
liste.propriétéDeListe = nouvelleValeur
liste[propriétéDeListe] = nouvelleValeur
objetEnfant.propriétéDeListe = nouvelleValeur
Description
Commande ; remplace la valeur affectée à propriétéDeListe par la valeur spécifiée par
nouvelleValeur. La commande setaProp fonctionne uniquement avec des listes de propriétés
et des objets enfants. L’utilisation de setaProp avec une liste linéaire produit une erreur de script.
• Pour les listes de propriétés, setaProp remplace une propriété dans la liste spécifiée par liste.
•
•
Lorsque la propriété ne se trouve pas déjà dans la liste, le code ajoute la nouvelle propriété et sa
valeur.
Pour les objets enfants, setaProp remplace une propriété de l’objet enfant. Lorsque la
propriété ne se trouve pas déjà dans l’objet, le code ajoute la nouvelle propriété et sa valeur.
La commande setaProp peut également définir des propriétés ancestor.
Paramètres
Requis. Symbole (Lingo uniquement) ou chaîne qui spécifie le nom de la
propriété dont la valeur change.
propriétéDeListe
nouvelleValeur
Requis. Nouvelle valeur de la propriété propriétéDeListe.
Exemple
Les instructions suivantes créent une liste de propriétés, puis ajoutent l’élément #c:10 à la liste :
nouvelleListe = [#a:1, #b:5]
put nouvelleListe
-- [#a:1, #b:5]
setaProp nouvelleListe, #c, 10
put nouvelleListe
L’opérateur point permet de modifier la valeur de propriété d’une propriété figurant déjà dans
une liste sans utiliser setaProp :
nouvelleListe = [#a:1, #b:5]
put nouvelleListe
-- [#a:1, #b:5]
nouvelleListe.b = 99
put nouvelleListe
-- [#a:1, #b:99]
Remarque : Pour pouvoir utiliser l’opérateur point en vue de manipuler une propriété, la propriété doit
déjà exister dans la liste, dans l’objet enfant ou dans le comportement.
Voir aussi
ancestor, property, . (opérateur point)
562
Chapitre 12 : Méthodes
setAt
Utilisation
setAt liste, numéroDordre, valeur
liste[numéroDordre] = valeur
Description
Commande ; remplace l’élément spécifié par numéroDordre par la valeur spécifiée par valeur
dans la liste spécifiée par liste. Lorsque numéroDordre est supérieur au nombre d’éléments
d’une liste de propriétés, la commande setAt renvoie une erreur de script. Lorsque
numéroDordre est supérieur au nombre d’éléments d’une liste linéaire, Director insère des
entrées vierges dans la liste pour ajouter le nombre d’emplacements spécifiés par numéroDordre.
Exemple
Le gestionnaire suivant affecte un nom à la liste [12, 34, 6, 7, 45], remplace le quatrième élément
de la liste par la valeur 10, puis affiche le résultat dans la fenêtre Messages :
on enterFrame
set vNombres = [12, 34, 6, 7, 45]
setAt vNombres, 4, 10
put vNombres
end enterFrame
Lorsque le gestionnaire est exécuté, la fenêtre Messages affiche le message suivant :
[12, 34, 6, 10, 45]
La même opération peut être exécutée en utilisant des crochets d’accès de la manière suivante :
on enterFrame
set vNombres = [12, 34, 6, 7, 45]
vNombres[4] = 10
put vNombres
end enterFrame
Lorsque le gestionnaire est exécuté, la fenêtre Messages affiche le message suivant :
[12, 34, 6, 10, 45]
Voir aussi
[ ] (crochets d’accès)
563
setCallback()
Utilisation
-- Syntaxe Lingo
réfObjImageObjet.setCallback(objetAS, nomDévénAS, #gestLingo, \
objetLingo)
// Syntaxe JavaScript
réfObjImageObjet.setCallback(objetAS, nomDévénAS, symbol(gestLingo),
objetLingo);
Description
Commande Flash ; cette commande peut être utilisée en tant qu’image-objet ou comme méthode
globale pour définir un appel de gestionnaire Lingo pour un événement particulier généré par
l’objet spécifié. Lorsque ActionScript déclenche l’événement dans l’objet, cet événement est
redirigé vers le gestionnaire Lingo spécifié, avec tous les arguments transmis avec l’événement.
Si l’objet ActionScript a été initialement créé dans une image-objet Flash, utilisez la syntaxe
réfDimageObjetFlash. Si l’objet a été créé globalement, utilisez la syntaxe globale.
Remarque : Si vous n’avez pas importé d’acteur Flash, vous devrez ajouter manuellement l’Xtra
Flash à la liste des Xtras de votre animation pour permettre aux objets Flash globaux de fonctionner
correctement. Vous pouvez ajouter les Xtras à la liste des Xtras en choisissant Modification >
Animation > Xtras. Pour plus d’informations sur la gestion des Xtras pour les animations distribuées,
consultez les rubriques Utilisation de Director dans le panneau d'aide de Director.
Paramètres
objetAS
Requis. Spécifie l’objet ActionScript qui contient l’événement nomDévénAS.
nomDévénAS
gestLingo
Requis. Spécifie l’événement ActionScript qui est survenu.
Requis. Spécifie le gestionnaire Lingo qui prend en charge l’événement nomDévénAS.
objetLingo
Requis. Spécifie l’objet script Lingo qui contient le gestionnaire gestLingo.
Exemple
L’instruction suivante définit l’appel du gestionnaire Lingo appelé monOnStatus dans l’objet de
script Lingo me lorsqu’un événement onStatus est généré par l’objet ActionScript
tObjetConnexionLocale dans l’animation Flash, au niveau de l’image-objet 3 :
-- Syntaxe Lingo
sprite(3).setCallback(tObjetConnexionLocale, "onStatus", #monOnStatus, me)
// Syntaxe JavaScript
sprite(3).setCallback(tObjetConnexionLocale, "onStatus",
symbol("monOnStatus"), me);
564
Chapitre 12 : Méthodes
Les instructions suivantes créent un nouvel objet XML global, ainsi qu’un gestionnaire d’appel
qui analyse les données XML à leur arrivée. La troisième ligne entraîne le chargement d’un fichier
XML. Le gestionnaire d’appel est inclus.
-- Syntaxe Lingo
gXMLCB = newObject("XML")
setCallback( gXMLCB, "onDonnées", #donnéesTrouvées, 0 )
gXMLCB.load( "monFichier.xml" )
-- gestionnaire d’appel appelé lors de l’arrivée des données xml
on donnéesTrouvées me, obj, source
obj.parseXML(source)
obj.loaded = 1
obj.onload(TRUE)
end donnéesTrouvées
// Syntaxe JavaScript
gXMLCB = newObject("XML");
setCallback( gXMLCB, "onDonnées", symbol("donnéesTrouvées"), 0 );
gXMLCB.load( "monFichier.xml" );
// gestionnaire d’appel appelé lors de l’arrivée des données xml
function donnéesTrouvées(me, obj, source) {
obj.parseXML(source);
obj.loaded = 1;
obj.onload(1);
}
Voir aussi
newObject(), clearAsObjects()
setCollisionCallback()
Utilisation
member(quelActeur).model(quelModèle).collision.\
setCollisionCallback (#nomDeGestionnaire, instanceDeScript)
Description
Commande de collision 3D ; enregistre un gestionnaire spécifié, dans une instance de script
donnée, à appeler lorsque quelModèle est impliqué dans une collision.
Cette commande ne fonctionne que si la propriété collision.enabled du modèle a pour valeur
TRUE. Le comportement par défaut est déterminé par la valeur de collision.resolve, que vous
pouvez remplacer en utilisant les commandes collision.resolveA et/ou
collision.resolveB. N’utilisez pas la commande updateStage dans le gestionnaire spécifié.
Cette commande est une alternative plus courte à la commande registerScript pour les
collisions, et le résultat n’est globalement pas différent. Cette commande peut être envisagée pour
exécuter une petite partie de la fonctionnalité de la commande registerScript.
Paramètres
nomDeGestionnaire
Requis. Spécifie le gestionnaire appelé lorsqu’un modèle est impliqué dans
une collision.
instanceDeScript Requis.
nomDeGestionnaire.
Spécifie l’instance de script qui contient le gestionnaire spécifié par
565
Exemple
L’instruction suivante entraîne l’appel du gestionnaire #rebond de l’acteur scriptDeCollision
lorsque le modèle Sphère entre en collision avec un autre modèle.
member("Univers 3D").model("Sphère").collision.\
setCollisionCallback\
(#rebond, member("scriptDeCollision"))
Voir aussi
collisionData, collision (modificateur), resolve, resolveA, resolveB,
registerForEvent(), registerScript(), sendEvent
setFilterMask()
Utilisation
-- Syntaxe Lingo
réfObjFileio.setFilterMask(chaîneMasque)
// Syntaxe JavaScript
réfObjFileio.setFilterMask(chaîneMasque);
Description
Méthode de Fileio ; définit le masque de filtrage pour le champ Type d’une boîte de dialogue pour
spécifier le type des fichiers affichés à l’ouverture de la boîte de dialogue.
Paramètres
chaîneMasque
Requis. Chaîne qui spécifie le masque de filtrage.
Voir aussi
Fileio
setFinderInfo()
Utilisation
-- Syntaxe Lingo
réfObjFileio.setFinderInfo(chaîneAttrs)
// Syntaxe JavaScript
réfObjFileio.setFinderInfo(chaîneAttrs)
Description
Méthode de Fileio (Macintosh uniquement) ; définit les informations du Finder pour un fichier
ouvert.
Paramètres
chaîneAttrs
Requis. Chaîne qui spécifie les informations du Finder.
Voir aussi
Fileio
566
Chapitre 12 : Méthodes
setFlashProperty()
Utilisation
-- Syntaxe Lingo
réfObjImageObjet.setFlashProperty(nomDeCible, #propriété, nouvelleValeur)
// Syntaxe JavaScript
réfObjImageObjet.setFlashProperty(nomDeCible, symbol(propriété),
nouvelleValeur);
Description
Fonction ; permet à Lingo d’invoquer la fonction script d’action Flash setProperty() dans
l’image-objet Flash donnée. Utilisez la fonction setFlashProperty() pour définir les propriétés
des propriétés des clips ou des niveaux dans une animation Flash. Cette fonction est similaire à la
définition des propriétés d’images-objets dans Director.
Pour définir une propriété globale de l’image-objet Flash, passez une ligne vide comme
les propriétés Flash globales suivantes : #focusRect et
nomDeCible. Vous pouvez définir
#spriteSoundBufferTime.
Consultez la documentation de Flash pour plus d’informations sur ces propriétés.
Paramètres
nomDeCible Requis. Spécifie le nom du clip ou du niveau de l’animation dont vous souhaitez
définir la propriété dans l’image-objet Flash donnée.
propriété Requis. Spécifie le nom de la propriété à définir. Vous pouvez définir les propriétés
suivantes : #posX, #posY, #scaleX, #scaleY, #visible, #rotate, #alpha et #name.
nouvelleValeur
Requis. Spécifie la nouvelle valeur.
Exemple
L’instruction suivante définit la valeur de la propriété #rotate du clip Etoile dans l’acteur Flash
de l’image-objet 3 sur 180.
-- Syntaxe Lingo
sprite(3).setFlashProperty("Etoile", #rotate, 180)
// Syntaxe JavaScript
sprite(3).setFlashProperty("Etoile", symbol("rotate"), 180);
Voir aussi
getFlashProperty()
567
setNewLineConversion()
Utilisation
-- Syntaxe Lingo
réfObjFileio.setNewLineConversion(entActivéDésactivé)
// Syntaxe JavaScript
réfObjFileio.setNewLineConversion(entActivéDésactivé)
Description
Méthode de Fileio (Macintosh uniquement) ; spécifie si la conversion automatique des caractères
de changement de ligne est activée ou désactivée.
Paramètres
Requis. Nombre entier qui spécifie si la conversion automatique est
activée ou désactivée. Les valeurs correctes incluent 0 (désactivé) et 1 (activé).
entActivéDésactivé
Voir aussi
Fileio
setPixel()
Utilisation
-- Syntaxe Lingo
réfObjImage.setPixel(x, y, objOuEntierCouleur)
réfObjImage.setPixel(point(x, y), objOuEntierCouleur)
// Syntaxe JavaScript
réfObjImage.setPixel(x, y, objOuEntierCouleur);
réfObjImage.setPixel(point(x, y), objOuEntierCouleur);
Description
Méthode d’image. Définit la valeur de couleur du pixel à un point spécifié dans une image
donnée.
Si vous définissez un grand nombre de pixels sur la couleur d’un autre pixel à l’aide de
getPixel(), il est plus rapide de les définir en tant que nombres entiers.
Pour obtenir des performances maximales avec les objets couleur, utilisez un objet couleur
indexée pour les images 8 bits (ou d’une qualité inférieure) et un objet couleur RVB pour des
images 16 bits (ou d’une qualité supérieure).
Cette méthode renvoie FALSE si le pixel spécifié se trouve en dehors de l'image spécifiée.
Pour un exemple d’utilisation de cette méthode dans une animation, reportez-vous à l’animation
Imaging du dossier Learning/Lingo, lui-même inclus dans le dossier de Director.
Paramètres
x Requis si vous spécifiez un pixel avec des coordonnées x et y. Entier qui spécifie la coordonnée x
du pixel.
y1 Requis si vous spécifiez un
y du pixel.
point(x, y)
568
pixel avec des coordonnées x et y. Entier qui spécifie la coordonnée
Requis si vous spécifiez un pixel en utilisant un point. Point qui spécifie le pixel.
Chapitre 12 : Méthodes
objOuEntierCouleur Requis si vous définissez la couleur sur un objet couleur ou un nombre
entier. Référence à un objet couleur qui spécifie la couleur du pixel ou nombre entier qui spécifie
la valeur de couleur du pixel.
Exemple
L’instruction Lingo suivante dessine une ligne noire horizontale de 50 pixels, de gauche à droite,
dans l’acteur 5 :
Voir aussi
color(), draw(), fill(), getPixel(), image()
setPlayList()
Utilisation
-- Syntaxe Lingo
réfObjPisteAudio.setPlayList(listeLinéaireDeListesDePropriétés)
// Syntaxe JavaScript
réfObjPisteAudio.setPlayList(listeLinéaireDeListesDePropriétés);
Description
Méthode de piste audio ; définit ou réinitialise la liste de lecture d’une piste audio.
Cette méthode est pratique pour placer plusieurs sons en file d’attente en une seule opération.
Pour un exemple d’utilisation de setPlaylist() dans une animation, reportez-vous à
l’animation Sound Control du dossier Learning/Lingo, lui-même inclus dans le dossier de
Director.
Paramètres
listeLinéaireDeListesDePropriétés Requis. Liste linéaire de listes de propriétés qui spécifie
les paramètres d’une liste de lecture. Vous pouvez définir ces paramètres pour chaque son à placer
en file d’attente :
Propriété
Description
#member
L’acteur à placer en file d’attente. Cette propriété doit être spécifiée. Toutes les
autres sont facultatives.
#startTime
Position temporelle de départ de la lecture du son, en millisecondes. La valeur
par défaut est le début du son. Pour plus d’informations, consultez startTime.
#endTime
Position temporelle de fin de la lecture du son, en millisecondes. La valeur par
défaut est la fin du son. Pour plus d’informations, consultez endTime.
#loopCount
Nombre de répétitions d’une boucle défini avec #loopStartTime et #loopEndTime.
La valeur par défaut est 1. Voir loopCount.
#loopStartTime
Position temporelle de départ de la boucle, en millisecondes. Pour plus
d’informations, consultez loopStartTime.
#loopEndTime
Position temporelle de fin de la boucle, en millisecondes. Pour plus
d’informations, consultez loopEndTime.
#preloadTime
Quantité de son à placer en mémoire tampon avant la lecture, en millisecondes.
Pour plus d’informations, consultez preloadTime.
569
Exemple
Le gestionnaire suivant place en file d’attente et lit l’acteur son Intro, à partir du point 3 secondes,
exécute cinq lectures en boucle successives, du point 8 secondes au point 8,9 secondes, et s’arrête
au point 10 secondes ;
-- Syntaxe Lingo
on playMusic
sound(2).queue([#member:member("intro"), #startTime:3000, \
#endTime:10000, #loopCount:5, #loopStartTime:8000, #loopEndTime:8900])
sound(2).play()
end playMusic
// Syntaxe JavaScript
function playMusic() {
sound(2).queue(propList("member",member("Intro"),
"startTime",3000, "endTime",10000, "loopCount",5, "loopStartTime",8000,
"loopEndTime",8900));
sound(2).play();
}
Voir aussi
endTime, getPlayList(), loopCount, loopEndTime, loopStartTime, Acteur, member,
preLoadTime, queue(), Piste audio, startTime
setPosition()
Utilisation
-- Syntaxe Lingo
réfObjFileio.setPosition(entPosition)
// Syntaxe JavaScript
réfObjFileio.setPosition(entPosition);
Description
Méthode de Fileio ; définit la position d’un fichier.
Paramètres
entPosition
Requis. Nombre entier qui spécifie la nouvelle position du fichier.
Voir aussi
Fileio
setPref()
Utilisation
-- Syntaxe Lingo
_player.setPref(chaîneNomDePréf, chaîneDePréf)
// Syntaxe JavaScript
_player.setPref(chaîneNomDePréf, chaîneDePréf);
Description
Méthode de lecteur ; écrit une chaîne donnée dans un fichier spécifié sur le disque local de
l’ordinateur. Le fichier est un fichier texte standard.
570
Chapitre 12 : Méthodes
Après l’exécution de la méthode setPref(), si l’animation est lue dans un navigateur, un dossier
nommé Prefs est créé à l’intérieur du dossier Plug-In Support. La méthode setPref() ne peut
écrire que dans ce dossier.
Si l’animation est lue dans une projection ou dans Director, un dossier est créé dans le même
dossier que l’application. Le dossier est appelé Prefs.
N’utilisez pas cette méthode pour écrire sur un média en lecture seule. Selon la plate-forme et
la version du système d’exploitation utilisé, vous pourriez rencontrer des erreurs ou autres
problèmes.
Dans un navigateur, les données écrites par setPref() ne sont pas confidentielles. Toute
animation avec un contenu Shockwave est en mesure de lire ces informations et de les télécharger
vers un serveur. Les informations confidentielles ne doivent donc pas être stockées à l’aide de la
commande setPref().
Sous Windows, la méthode setPref() échoue si l’utilisateur dispose de droits d’accès restreints.
Pour un exemple d’utilisation de setPref() dans une animation, reportez-vous à l’animation
Read and Write Text du dossier Learning/Lingo, lui-même inclus dans le dossier de Director.
Paramètres
chaîneNomDePréf Requis. Chaîne qui spécifie le fichier dans lequel les données seront enregistrées. Le paramètre chaîneNomDePréf doit être un nom de fichier valide. Pour vous assurer de sa
validité sur toutes les plates-formes, n’utilisez pas plus de huit caractères alphanumériques dans ce
nom de fichier.
chaîneDePréf
Requis. Chaîne qui spécifie le texte à écrire dans le fichier chaîneNomDePréf.
Exemple
Le gestionnaire suivant enregistre le contenu de l’acteur champ Saisie dans un fichier nommé
PréfsActuelles :
-- Syntaxe Lingo
on mouseUp me
_player.setPref("PréfsActuelles", member("Saisie").text)
end
// Syntaxe JavaScript
function mouseUp() {
_player.setPref("PréfsActuelles", member("Saisie").text);
}
Voir aussi
getPref(), Lecteur
571
setProp
Utilisation
setProp liste, propriété, nouvelleValeur
liste.propriétéDeListe = nouvelleValeur
liste[propriétéDeListe] = nouvelleValeur
Description
Commande ; dans une liste, remplace la valeur affectée à une propriété spécifiée par une nouvelle
valeur. Si la liste ne contient pas la propriété spécifiée, setProp renvoie une erreur de script.
La commande setProp fonctionne uniquement avec les listes de propriétés. L’utilisation de
avec une liste linéaire produit une erreur de script.
setProp
Cette commande est similaire à la commande setaProp, sauf que setProp renvoie une erreur
lorsque la propriété ne se trouve pas dans la liste.
Paramètres
Requis. Symbole (Lingo uniquement) ou chaîne qui spécifie la propriété dont la
valeur est remplacée par nouvelleValeur.
propriété
nouvelleValeur
Requis. Nouvelle valeur de la propriété spécifiée par propriété.
Exemple
L’instruction suivante fait passer à 11 la valeur affectée à la propriété âge de la liste de
propriétés x :
setProp x, #âge, 11
L’opérateur point permet de modifier la valeur de propriété d’une propriété figurant déjà dans
une liste, tout comme ci-dessus :
x.âge = 11
Voir aussi
setaProp
setScriptList()
Utilisation
réfDimageObjet.setScriptList(listeDeScripts)
sprite(quelleImageObjet).setScriptList(listeDeScripts)
Description
Cette commande définit la liste scriptList de l’image-objet donnée. La liste scriptList
indique les scripts attachés à l’image-objet, ainsi que les paramètres de chaque propriété de script.
La définition de cette liste permet de modifier les paramètres attachés à une image-objet ou de
modifier les propriétés de comportement.
La liste prend la forme suivante :
[ [ (quelActeurComportement), " [ #prop1: valeur, #prop2: valeur, . . . ] ",
[(quelActeurComportement), " [ #prop1: valeur, #prop2: valeur, . . . ] " ] ]
572
Chapitre 12 : Méthodes
Cette commande ne peut pas être utilisée pendant la création du scénario. Utilisez
setScriptList() pour les images-objets ajoutées pendant l’enregistrement du scénario
après la session d’enregistrement du scénario.
Paramètres
listeDeScripts
Requis. Spécifie la liste de scripts pour une image-objet donnée.
Voir aussi
scriptList, value(), string()
settingsPanel()
Utilisation
-- Syntaxe Lingo
réfObjImageObjet.settingsPanel({entierIndexPanneau})
// Syntaxe JavaScript
réfObjImageObjet.settingsPanel({entierIndexPanneau});
Description
Commande d’image-objet Flash ; invoque la boîte de dialogue des paramètres de Flash, à
l’index de panneau indiqué. Il s’agit de la même boîte de dialogue qui est accessible en cliquant
du bouton droit (Windows) ou en cliquant avec la touche Ctrl enfoncée (Macintosh) sur une
animation Flash lue dans un navigateur.
La boîte de dialogue des paramètres ne s’affiche pas si les dimensions du rectangle de l’imageobjet Flash ne peuvent s’y adapter.
Si vous souhaitez émuler le lecteur Flash en appelant la boîte de dialogue des paramètres
lorsque l’utilisateur clique du bouton droit (Windows) ou clique avec la touche Ctrl enfoncée
(Macintosh), vous pouvez utiliser cette commande dans un gestionnaire mouseDown qui teste la
propriété rightMouseDown ou controlDown.
Pour émuler Flash Player en activant la boîte de dialogue des paramètres dans une animation
Director exécutée dans un navigateur, vous devez d’abord désactiver le menu contextuel
Shockwave Player, auquel vous accédez avec un clic sur le bouton droit (Windows) ou en
cliquant avec la touche Ctrl enfoncée (Macintosh) dans une animation avec un contenu
Shockwave lue dans un navigateur. Pour plus d’informations sur la désactivation de ce menu,
consultez les rubriques Utilisation de Director dans le panneau d'aide de Director.
Paramètres
entierIndexPanneau Facultatif. Spécifie quel panneau doit être activé à l’ouverture de la boîte
de dialogue. Les valeurs correctes sont 0, 1, 2 ou 3. Toutes les quatre ouvrent la boîte de dialogue,
la valeur 0 affichant l’onglet Contrôle de l’accès, la valeur 1 l’onglet Enregistrement local, la
valeur 2 l’onglet Microphone et la valeur 3 l’onglet Caméra. L’index de panneau par défaut est 0.
573
Exemple
L’instruction suivante ouvre le panneau des paramètres de Flash, qui présente l’onglet
Enregistrement local :
-- Syntaxe Lingo
sprite(3).settingsPanel(1)
// Syntaxe JavaScript
sprite(3).settingsPanel(1);
Voir aussi
on mouseDown (gestionnaire d’événement), rightMouseDown, controlDown
setPref()
Utilisation
-- Syntaxe Lingo
_player.setPref(chaîneNomDePréf, chaîneDePréf)
// Syntaxe JavaScript
_player.setPref(chaîneNomDePréf, chaîneDePréf);
Description
Méthode de lecteur ; écrit la chaîne spécifiée par chaîneDePréf dans le fichier spécifié par
chaîneNomDePréf sur le disque local de l’ordinateur.
L’argument chaîneNomDePréf doit correspondre à un nom de fichier valide. Pour vous assurer de
sa validité sur toutes les plates-formes, n’utilisez pas plus de huit caractères alphanumériques dans
ce nom de fichier.
Après l’exécution de la méthode setPref, si l’animation est lue dans un navigateur, un dossier
nommé Prefs est créé à l’intérieur du dossier Plug-In Support. La méthode setPref() ne peut
écrire que dans ce dossier.
Si l’animation est lue dans une projection ou dans Director, un dossier est créé dans le même
dossier que l’application. Le dossier est appelé Prefs.
N’utilisez pas cette méthode pour écrire sur un média en lecture seule. Selon la plate-forme et
la version du système d’exploitation utilisé, vous pourriez rencontrer des erreurs ou autres
problèmes.
Cette méthode n’exécute pas de manipulation complexe sur les données de la chaîne ou son
formatage. Toute opération de formatage ou autre manipulation doit être effectuée parallèlement
à getPref() ; les données peuvent ensuite être traitées en mémoire et inscrites dans l’ancien
fichier par le biais de setPref().
Dans un navigateur, les données écrites par setPref() ne sont pas confidentielles. Toute
animation avec un contenu Shockwave est en mesure de lire ces informations et de les télécharger
vers un serveur. Les informations confidentielles ne doivent donc pas être stockées à l’aide de la
commande setPref().
Sous Windows, la commande setPref() échoue si l’utilisateur dispose de droits d’accès
restreints.
Pour un exemple d’utilisation de setPref() dans une animation, reportez-vous à l’animation
Read and Write Text du dossier Learning/Lingo, lui-même inclus dans le dossier de Director.
574
Chapitre 12 : Méthodes
Paramètres
chaîneNomDePréf Requis. Chaîne qui spécifie le nom du fichier
chaîneDePréf est écrite. Le fichier est un fichier texte standard.
chaîneDePréf
dans lequel la chaîne
Requis. Chaîne à écrire dans le fichier spécifié par chaîneNomDePréf.
Exemple
Le gestionnaire suivant enregistre le contenu de l’acteur champ Saisie dans un fichier nommé
PréfsActuelles :
Voir aussi
getPref(), Lecteur
setTrackEnabled()
Utilisation
-- Syntaxe Lingo
réfObjImageObjet.setTrackEnabled(quellePiste, trueOrFalse)
// Syntaxe JavaScript
réfObjImageObjet.setTrackEnabled(quellePiste, trueOrFalse);
Description
Commande ; définit si la lecture de la piste spécifiée d’une vidéo numérique est activée.
• Si setTrackEnabled a la valeur TRUE, la piste indiquée est activée et lue.
• Si setTrackEnabled a la valeur FALSE, la piste indiquée est désactivée et n’est pas lue. Pour
les vidéos numériques, cela signifie qu’elles ne seront plus mises à jour à l’écran.
Pour tester si une piste est déjà activée, testez la propriété d’image-objet trackEnabled.
Paramètres
quellePiste
Requis. Spécifie la piste à tester.
trueOuFalse
(FALSE).
Requis. Spécifie si la piste dans la vidéo numérique est activée (TRUE) ou non
Exemple
L’instruction suivante active la piste 3 de la vidéo numérique affectée à la piste d’image-objet 8 :
-- Syntaxe Lingo
sprite(8).setTrackEnabled(3, TRUE)
// Syntaxe JavaScript
sprite(8).setTrackEnabled(3, 1);
Voir aussi
trackEnabled
575
setVariable()
Utilisation
-- Syntaxe Lingo
réfObjImageObjet.setVariable(nomDeVariable, nouvelleValeur)
// Syntaxe JavaScript
réfObjImageObjet.setVariable(nomDeVariable, nouvelleValeur);
Description
Fonction ; définit la valeur de la variable spécifiée dans l’image-objet donnée. Les variables Flash
ont été introduites dans la version 4 de Flash.
Paramètres
nomDeVariable
Requis. Spécifie le nom de la variable.
nouvelleValeur
Requis. Saisissez la nouvelle valeur de la variable.
Exemple
Les instructions suivantes définissent la valeur de la variable URLcourante dans l’acteur Flash,
au niveau de l’image-objet 3. La nouvelle valeur de la variable URLcourante sera « http://
www.macromedia.com/fr/software/flash/ ».
-- Syntaxe Lingo
sprite(3).setVariable("URLCourante", \
"http://www.macromedia.com/fr/software/flash/")
// Syntaxe JavaScript
sprite(3).setVariable("URLCourante",
"http://www.macromedia.com/fr/software/flash/");
Voir aussi
hitTest(), getVariable()
shader()
Utilisation
member(quelActeur).shader(quelMatériau)
member(quelActeur).shader[index]
member(quelActeur).model(quelModèle).shader
member(quelActeur).modelResource(quelleRessDeMod).\
face[index].shader
Description
Propriété 3D d’élément, de modèle et de face ; objet utilisé pour définir l’apparence de la surface
du modèle. Le matériau est la « peau » qui entoure la ressource de modèle utilisée par le modèle.
Le matériau même n’est pas une image. Le composant visible d’un matériau est créé avec un
maximum de huit couches de textures. Ces huit couches de texture ont été créées à partir
d’acteurs bitmap ou d’objets image dans Director ou importées avec des modèles de programmes
de modélisation 3D. Pour plus d’informations, consultez texture.
Tout modèle dispose d’une liste linéaire de matériaux appelée shaderList. Le nombre d’entrées
de la liste est égal au nombre de mailles de la ressource utilisée par le modèle. Un seul matériau
peut être appliqué à chaque maille.
576
Chapitre 12 : Méthodes
L’acteur 3D a un matériau par défaut nommé DefaultShader, qui ne peut pas être supprimé. Ce
matériau est utilisé lorsque aucun matériau n’est affecté à un modèle et lorsqu’un matériau utilisé
par un modèle est supprimé.
La syntaxe member(quelActeur).model(quelModèle).shader donne accès au premier matériau de la liste des matériaux du modèle et est équivalent à member(quelActeur).
model(quelModèle).shaderList[1].
Les matériaux sont créés et supprimés avec les commandes newShader() et deleteShader().
Les matériaux sont enregistrés dans la palette des matériaux de l’acteur 3D. Ils peuvent être
référencés par nom (quelMatériau) ou par index de palette (indexDeMatériau). Un matériau
peut être utilisé par n’importe quel nombre de modèles. Les modifications apportées à un
matériau apparaissent dans tous les modèles qui l’utilisent.
Il existe quatre types de matériaux :
Les matériaux #standard présentent leurs textures de façon réaliste.
Les matériaux #painter, #engraver et #newsprint stylisent leurs textures pour qu’elles aient
l’apparence d’une peinture, d’une gravure ou d’un journal. Ils ont des propriétés spéciales en plus
des propriétés de matériau #standard.
Les matériaux utilisés par les faces individuelles des primitives #mesh peuvent être définis à
l'aide de la syntaxe member(quelActeur).modelResource(quelleRessDeMod).
face[index].shader. Pour modifier cette propriété, il est nécessaire d’appeler la commande
build().
Exemple
L’instruction suivante affecte le matériau surfaceDuMur à la propriété de matériau du modèle
Mur.
member("Pièce").model("Mur").shader = \
member("Pièce").shader("surfaceDuMur")
Voir aussi
shaderList, newShader, deleteShader, face[ ], texture()
showLocals()
Utilisation
-- Syntaxe Lingo
showLocals()
Description
Fonction du niveau supérieur (Lingo uniquement) ; affiche toutes les variables locales dans la
fenêtre Messages. Elle n’est utile que dans les gestionnaires ou les scripts parents contenant des
variables locales à afficher. Toutes les variables utilisées dans la fenêtre Messages sont automatiquement globales.
Les variables locales des gestionnaires sont supprimées après l’exécution de ces derniers. L’insertion de l’instruction showLocals() dans un gestionnaire a pour effet d’afficher les variables locales de ce gestionnaire dans la fenêtre Messages.
Cette commande est pratique pour déboguer les scripts.
577
Paramètres
Aucun.
Voir aussi
clearGlobals(), global, showGlobals()
showProps()
Utilisation
-- Syntaxe Lingo
réfObjActeurOuImageObjet.showProps()
// Syntaxe JavaScript
réfObjActeurOuImageObjet.showProps();
Description
Commande ; affiche une liste des paramètres de propriétés actuels d’une animation Flash, d’un
acteur vectoriel ou d’un son en cours de lecture dans la fenêtre Messages. Cette commande n’est
utile que pour la programmation et ne fonctionne pas dans les projections ou les animations avec
un contenu Shockwave.
Paramètres
Aucun.
Exemple
Le gestionnaire suivant accepte le nom d’une distribution comme paramètre, recherche les acteurs
animation Flash de cette distribution et affiche le nom, le numéro et les propriétés de l’acteur
dans la fenêtre Messages :
-- Syntaxe Lingo
on AfficherPropDistribution(quelleDistribution)
repeat with i = 1 to castLib(quelleDistribution).member.count
typeDeDistribution = member(i, quelleDistribution).type
if (typeDeDistribution = #flash) OR (typeDeDistribution = #vectorShape)
then
put typeDeDistribution&&"acteur" && i & " :" && member(i,
quelleDistribution).name
put RETURN
member(i ,quelleDistribution).showProps()
end if
end repeat
end
578
Chapitre 12 : Méthodes
// Syntaxe JavaScript
function AfficherPropDistribution(quelleDistribution) {
i = 1;
while( i < (castLib(quelleDistribution).member.count) +1 ) {
typeDeDistribution = member(i, quelleDistribution).type;
if ((typeDeDistribution = "flash") || (typeDeDistribution =
"vectorShape")) {
trace (typeDeDistribution + " acteur " + i + ": " + member(i,
quelleDistribution).name) + \n;
member(i ,quelleDistribution).showProps();
i++;
}
}
}
Voir aussi
queue(), setPlayList()
showGlobals()
Utilisation
-- Syntaxe Lingo
_global.showGlobals()
// Syntaxe JavaScript
_global.showGlobals();
Paramètres
Aucun.
Description
Méthode globale ; affiche toutes les variables globales dans la fenêtre Messages.
Cette méthode est pratique pour déboguer les scripts.
Exemple
L’instruction suivante affiche toutes les variables globales dans la fenêtre Messages :
-- Syntaxe Lingo
on mouseDown
_global.showGlobals()
end
// Syntaxe JavaScript
function mouseDown() {
_global.showGlobals();
}
Voir aussi
Global
579
shutDown()
Utilisation
-- Syntaxe Lingo
_system.shutDown()
// Syntaxe JavaScript
_system.shutDown();
Description
Méthode du système ; ferme toutes les applications ouvertes et éteint l’ordinateur.
Paramètres
Aucun.
Exemple
L’instruction suivante vérifie si l’utilisateur a utilisé le raccourci clavier Ctrl-S (Windows) ou
Cmd-S (Macintosh) et, le cas échéant, éteint l’ordinateur :
Voir aussi
Système
sin()
Utilisation
sin(angle)
Description
Fonction mathématique (Lingo uniquement) ; calcule le sinus de l’angle spécifié. Celui-ci doit
être exprimé en radians sous forme de nombre à virgule flottante.
Dans la syntaxe JavaScript, utilisez la fonction sin() de l’objet Math.
Paramètres
angle
Requis. Spécifie l’angle.
Exemple
L’instruction suivante calcule le sinus de pi/2 :
put sin (PI/2.0)
-- 1
Voir aussi
PI
580
Chapitre 12 : Méthodes
sort
Utilisation
liste.sort()
sort liste
Description
Commande ; trie les éléments d’une liste par ordre alphabétique.
• S’il s’agit d’une liste linéaire, elle est triée par valeurs.
• S’il s’agit d’une liste de propriétés, elle est triée alphabétiquement par propriété.
Une fois que la liste est triée, elle le reste, même si vous ajoutez des variables avec la
commande add.
Paramètres
Aucun.
Exemple
L’instruction suivante trie la liste Valeurs qui consiste en [#a: 1, #d: 2, #c: 3], par ordre
alphabétique. Le résultat apparaît sous l’instruction.
put Valeurs
-- [#a: 1, #d: 2, #c: 3]
Valeurs.sort()
put Valeurs
-- [#a: 1, #c: 3, #d: 2]
sound()
Utilisation
-- Syntaxe Lingo
sound(entPisteAudio)
// Syntaxe JavaScript
sound(entPisteAudio);
Description
Fonction du niveau supérieur ; renvoie une référence à une piste audio spécifiée.
La fonctionnalité de cette méthode est identique à celle de la méthode channel() de l’objet Son.
Paramètres
entPisteAudio
Requis. Nombre entier qui spécifie la piste audio à référencer.
581
Exemple
L’exemple suivant affecte la piste audio 1 à une variable music et lit un son.
-- Syntaxe Lingo
music = sound(1)
music.play(member("valse1"))
// Syntaxe JavaScript
var music = sound(1);
music.play(member("valse1"));
Voir aussi
channel() (audio), Piste audio
sprite()
Utilisation
-- Syntaxe Lingo
sprite(nomOuNum)
// Syntaxe JavaScript
sprite(nomOuNum);
Description
Fonction du niveau supérieur ; renvoie une référence à une image-objet donnée dans le scénario.
Si le scénario ne contient pas cette image-objet, la fonction renvoie une chaîne vide.
Paramètres
nomOuNum
Requis. Chaîne ou nombre entier qui spécifie le nom ou la position d’index de l’image-
objet.
Exemple
Cette instruction affecte la variable cetteImageObjet à l’image-objet Grotte :
-- Syntaxe Lingo
cetteImageObjet = sprite("Grotte")
// Syntaxe JavaScript
var cetteImageObjet = sprite("Grotte");
Voir aussi
Piste d’image-objet
spriteSpaceToWorldSpace
Utilisation
sprite(quelleImageObjet).camera.spriteSpaceToWorldSpace(emplacement)
sprite(quelleImageObjet).camera(index).spriteSpaceToWorldSpace(emplacement)
Description
Commande 3D ; renvoie une position d’univers située sur le plan de projection de la caméra
spécifiée, qui correspond à un emplacement dans l’image-objet référencée.
582
Chapitre 12 : Méthodes
Le plan de projection est défini par les axes des x et y de la caméra, et sa distance devant la caméra
est telle qu’un pixel représente une unité de mesure d’univers. C’est ce plan de projection qui est
utilisé pour l’affichage de l’image-objet sur la scène.
La forme camera.spriteSpaceToWorldSpace() de cette commande est un raccourci de
camera(1).spriteSpaceToWorldSpace().
Toutes les caméras utilisées par l’image-objet référencée répondront à la commande
comme si leur rectangle d’affichage était de la même taille que
l’image-objet.
spriteSpaceToWorldSpace
Paramètres
emplacement Requis. Spécifie l’emplacement dans l’image-objet référencée. Cet emplacement
doit être un point relatif au coin supérieur gauche de l’image-objet.
Exemple
L’instruction suivante indique que le point (50, 50) de l’image-objet 5 équivaut à
vector(1993.6699, 52.0773, 2263.7446) sur le plan de projection de la caméra de l’imageobjet 5.
put sprite(5).camera.spriteSpaceToWorldSpace(point(50, 50))
-- vector( -1993.6699, 52.0773, 2263.7446 )
Voir aussi
worldSpaceToSpriteSpace, rect (caméra), camera
sqrt()
Utilisation
sqrt(nombre)
the sqrt of nombre
Description
Fonction mathématique (Lingo uniquement) ; renvoie la racine carrée d’un nombre spécifié.
La valeur doit être un nombre décimal supérieur à 0. Les valeurs négatives renvoient la valeur 0.
Dans la syntaxe JavaScript, utilisez la fonction sqrt() de l’objet Math.
Paramètres
nombre Requis. Spécifie la valeur numérique. Il peut s’agir soit d’un nombre à virgule flottante
soit d’un nombre entier arrondi au nombre entier le plus proche.
Exemple
L’instruction suivante affiche la racine carrée de 3.0 dans la fenêtre Messages :
put sqrt(3.0)
-- 1.7321
583
L'instruction suivante affiche la racine carrée de 3 dans la fenêtre Messages :
put sqrt(3)
-- 2
Voir aussi
floatPrecision
stageBottom
Utilisation
the stageBottom
Description
Fonction ; utilisée conjointement à stageLeft, stageRight et stageTop, indique la position de
la scène sur le bureau. Elle renvoie la coordonnée verticale du bord inférieur de la scène, par
rapport au coin supérieur gauche de l’écran principal. La hauteur de la scène en pixels est
déterminée par la formule the stageBottom - the stageTop.
Lorsque l’animation est lue en tant qu’applet, la propriété stageBottom correspond à la hauteur
de cet applet en pixels.
Cette fonction peut être testée, mais pas définie.
Paramètres
Aucun.
Exemple
Les instructions suivantes placent l’image-objet 3 à une distance de 50 pixels à partir du bord
inférieur de la scène :
hauteurDeLaScène = the stageBottom - the stageTop
sprite(3).locV = hauteurDeLaScène - 50
Les coordonnées des images-objets sont exprimées par rapport au coin supérieur gauche de la
scène. Pour plus d'informations, consultez les rubriques Utilisation de Director dans le panneau
d'aide de Director.
Voir aussi
stageLeft, stageRight, stageTop, locH, locV
stageLeft
Utilisation
the stageLeft
Description
Fonction ; utilisée conjointement à stageRight, stageTop et stageBottom, indique la position
de la scène sur le bureau. Elle renvoie la coordonnée horizontale gauche de la scène, par rapport
au coin supérieur gauche de l’écran principal. Lorsque le bord de la scène coïncide avec le côté
gauche de l’écran principal, cette coordonnée est 0.
584
Chapitre 12 : Méthodes
Lorsque l’animation est lue sous forme d’applet, la propriété stageLeft est 0, qui correspond à
l’emplacement du côté gauche de l’applet.
Cette propriété peut être testée, mais pas définie.
Les coordonnées des images-objets sont exprimées par rapport au coin supérieur gauche de la
scène.
Paramètres
Aucun.
Exemple
L’instruction suivante vérifie si le bord gauche de la scène dépasse le bord gauche de l’écran et, le
cas échéant, appelle le gestionnaire aGaucheDuMoniteur :
if the stageLeft < 0 then aGaucheDuMoniteur
Voir aussi
stageBottom, stageRight, stageTop, locH, locV
stageRight
Utilisation
the stageRight
Description
Fonction ; utilisée conjointement à stageLeft, stageTop et stageBottom, indique la position
de la scène sur le bureau. Elle renvoie la coordonnée horizontale droite de la scène, par rapport au
coin supérieur gauche de l’écran principal. La largeur de la scène en pixels est déterminée par la
formule the stageRight - the stageLeft.
Lorsque l’animation est lue sous forme d’applet, la propriété stageRight est la largeur de
l’applet, en pixels.
Cette fonction peut être testée, mais pas définie.
Les coordonnées des images-objets sont exprimées par rapport au coin supérieur gauche de la
scène.
Paramètres
Aucun.
Exemple
Les deux instructions suivantes placent l’image-objet 3 à une distance de 50 pixels du bord droit
de la scène :
largeurDeLaScène = the stageRight - the stageLeft
sprite(3).locH = largeurDeLaScène - 50
Voir aussi
stageLeft, stageBottom, stageTop, locH, locV
585
stageToFlash()
Utilisation
-- Syntaxe Lingo
réfObjImageObjet.stageToFlash(pointDeLaScèneDeDirector)
// Syntaxe JavaScript
réfObjImageObjet.stageToFlash(pointDeLaScèneDeDirector);
Description
Fonction ; renvoie la coordonnée d’une animation Flash correspondant à une coordonnée
spécifiée sur la scène de Director. Cette fonction accepte la coordonnée de la scène Director et
renvoie la coordonnée de l’animation Flash sous la forme de valeurs de point Director : par
exemple, point (300,300).
Les coordonnées de l’animation Flash sont mesurées en pixels d’animation Flash, déterminés par
la taille d’origine de l’animation lorsqu’elle a été créée dans Flash. Le point (0,0) d’une animation
Flash est toujours placé dans son coin supérieur gauche. La propriété originPoint de l’acteur
n’intervient pas dans le calcul des coordonnées d’une animation, mais seulement pour la rotation
et la mise à l’échelle.
La fonction stageToFlash() et la fonction flashToStage() correspondante sont pratiques
pour déterminer la coordonnée d’une animation Flash se trouvant à une coordonnée spécifique
de la scène Director. Pour Flash et Director, le point (0,0) est le coin supérieur gauche de la scène
Flash ou Director. Ces coordonnées peuvent ne pas coïncider sur la scène Director si une imageobjet Flash est étirée, mise à l’échelle ou a pivoté.
Paramètres
pointDeLaScèneDeDirector
Requis. Spécifie le point sur la scène Director.
Exemple
Le gestionnaire suivant vérifie si la souris (dont l’emplacement est suivi dans les coordonnées de la
scène Director) est placée sur une coordonnée spécifique (130,10) dans une image-objet
animation Flash placée dans la piste 5. Si la souris est placée sur cette coordonnée, le script
interrompt l’animation Flash.
-- Syntaxe Lingo
on checkFlashRollover
if (sprite(5).stageToFlash(point(_mouse.mouseH, _mouse.mouseV)) =
point(130,10) then
sprite(5).stop()
end if
end
// Syntaxe JavaScript
function checkFlashRollover() {
var stf = sprite(5).stageToFlash(point(_mouse.mouseH,_mouse.mouseV));
if (stf = point(130,10)) {
sprite(5).stop();
}
}
Voir aussi
flashToStage()
586
Chapitre 12 : Méthodes
stageTop
Utilisation
the stageTop
Description
Fonction ; utilisée conjointement à stageBottom, stageLeft et stageRight, indique la position
de la scène sur le bureau. Elle renvoie la coordonnée verticale supérieure de la scène par rapport au
coin supérieur gauche de l’écran principal. Si la scène est dans le coin supérieur gauche de l’écran
principal, cette coordonnée est 0.
Lorsque l’animation est lue en tant qu’applet, la valeur de la propriété stageTop est toujours zéro,
l’emplacement du bord supérieur de l’applet.
Cette fonction peut être testée, mais pas définie.
Les coordonnées des images-objets sont exprimées par rapport au coin supérieur gauche de la
scène.
Paramètres
Aucun.
Exemple
L’instruction suivante vérifie si le bord supérieur de la scène dépasse le bord supérieur de l’écran
et, le cas échéant, appelle le gestionnaire débordementEnHaut :
if the stageTop < 0 then débordementEnHaut
Voir aussi
stageLeft, stageRight, stageBottom, locH, locV
status()
Utilisation
-- Syntaxe Lingo
réfObjFileio.status()
// Syntaxe JavaScript
réfObjFileio.status();
Description
Méthode de Fileio ; renvoie le code d’erreur de la dernière méthode appelée.
Paramètres
Aucun.
Voir aussi
Fileio
587
stop() (DVD)
Utilisation
-- Syntaxe Lingo
réfObjDvd.stop()
// Syntaxe JavaScript
réfObjDvd.stop();
Description
Méthode de DVD ; arrête la lecture.
Cette méthode renvoie TRUE (1) en cas de réussite.
Paramètres
Aucun.
Voir aussi
DVD
stop() (piste audio)
Utilisation
-- Syntaxe Lingo
réfObjPisteAudio.stop()
// Syntaxe JavaScript
réfObjPisteAudio.stop();
Description
Méthode de piste audio ; arrête le son qui est en cours de lecture sur une piste audio.
L’émission d’une méthode play() commence la lecture du premier son encore présent dans la file
d’attente de la piste audio donnée.
Pour un exemple d’utilisation de stop() dans une animation, reportez-vous à l’animation Sound
Control du dossier Learning/Lingo, lui-même inclus dans le dossier de Director.
Paramètres
Aucun.
Exemple
L’instruction suivante arrête la lecture de l’acteur son en cours de lecture dans la piste audio 1 :
-- Syntaxe Lingo
sound(1).stop()
// Syntaxe JavaScript
sound(1).stop();
Voir aussi
getPlayList(), pause() (piste audio), play() (piste audio), playNext() (piste
audio), rewind() (piste audio), Piste audio
588
Chapitre 12 : Méthodes
stop() (Flash)
Utilisation
-- Syntaxe Lingo
réfObjImageObjet.stop()
// Syntaxe JavaScript
réfObjImageObjet.stop();
Description
Commande Flash ; interrompt une image-objet animation Flash lue dans l’image courante.
Paramètres
Aucun.
Exemple
Le script d’image suivant interrompt les images de l’animation Flash lues dans les pistes 5 à 10 :
-- Syntaxe Lingo
on enterFrame
repeat with i = 5 to 10
sprite(i).stop()
end repeat
end
// Syntaxe JavaScript
function enterFrame() {
var i = 5;
while (i < 11) {
sprite(i).stop();
i++;
}
}
Voir aussi
hold()
stop() (RealMedia, SWA, Windows Media)
Utilisation
-- Syntaxe Lingo
réfObjWindowsMedia.stop()
réfObjRealMedia.stop()
// Syntaxe JavaScript
réfObjWindowsMedia.stop();
réfObjRealMedia.stop();
Description
Méthode d’acteur ou d’image-objet Windows Media ou RealMedia. Arrête la lecture d’un acteur
ou d’une image-objet Windows Media ou RealMedia.
Paramètres
Aucun.
589
Exemple
Les exemples suivants arrêtent la lecture de l’image-objet 2 et de l’acteur Real :
-- Syntaxe Lingo
sprite(2).stop()
member("Real").stop()
// Syntaxe JavaScript
sprite(2).stop();
member("Real").stop();
Voir aussi
RealMedia, Windows Media
stopEvent()
Utilisation
-- Syntaxe Lingo
_movie.stopEvent()
// Syntaxe JavaScript
_movie.stopEvent();
Description
Méthode d’animation ; empêche les scripts de passer un message d’événement aux emplacements
suivants dans la hiérarchie de messages.
Cette méthode s’applique également aux scripts d’images-objets.
Utilisez la méthode stopEvent() pour arrêter le message dans un gestionnaire d’événement
principal ou un script d’image-objet, et rendre ainsi le message non disponible pour les scripts
d’images-objets suivants.
Par défaut, les messages sont d’abord mis à la disposition d’un gestionnaire d’événement principal
(s’il existe), puis à celle de tous les scripts associés à une image-objet impliquée dans l’événement.
Si plusieurs scripts sont associés à l’image-objet, le message est mis à la disposition de tous les
scripts de l’image-objet. Si aucun script d’image-objet ne répond au message, celui-ci passe à un
script d’acteur, puis à un script d’image et enfin à un script d’animation.
La méthode stopEvent() ne s’applique qu’à l’événement courant en cours de traitement. Elle
n’affecte pas les événements futurs. La commande stopEvent() ne s’applique qu’aux gestionnaires d’événements principaux, aux gestionnaires appelés par des gestionnaires d’événements
principaux ou à plusieurs scripts d’images-objets. Elle n’a aucun effet ailleurs.
Paramètres
Aucun.
590
Chapitre 12 : Méthodes
Exemple
L’instruction suivante montre l’événement mouseUp interrompu dans un comportement lorsque
la variable globale totalGénéral est égale à 500 :
-- Syntaxe Lingo
global totalGénéral
on mouseUp me
if (totalGénéral = 500) then
_movie.stopEvent()
end if
end
// Syntaxe JavaScript
_global.totalGénéral;
function mouseUp() {
if (_global.totalGénéral == 500) {
_movie.stopEvent();
}
}
Les autres comportements ou les scripts ultérieurs sur l’image-objet ne reçoivent pas l’événement
s’il est interrompu de cette manière.
Voir aussi
Animation
stream()
Utilisation
-- Syntaxe Lingo
réfObjActeur.stream(nombreDoctets)
// Syntaxe JavaScript
réfObjActeur.stream(nombreDoctets);
Description
Commande ; permet de faire passer manuellement en mémoire une partie d’un acteur animation
Flash spécifié.
La commande stream renvoie le nombre d’octets réellement chargés. En fonction d’un ensemble
de conditions variées (telles que la vitesse du réseau ou la disponibilité des données requises), le
nombre d’octets réellement chargés peut être inférieur au nombre d’octets requis.
Vous pouvez toujours utiliser la commande stream pour un acteur, quelle que soit sa propriété
streamMode.
Paramètres
nombreDoctets Facultatif. Nombre entier qui spécifie combien d’octets à lire en flux continu. Si
vous omettez le paramètre nombreDoctets, Director essaie de lire le nombre d’octets défini par la
propriété bufferSize de l’acteur.
591
Exemple
Le script d’image suivant vérifie si un acteur animation Flash liée a été complètement chargé en
mémoire en contrôlant sa propriété percentStreamed. Si l’acteur n’est pas chargé en mémoire à
cent pour cent, le script tente de charger 32 000 octets de l’animation en mémoire.
Le script enregistre également le nombre réel d’octets chargés dans une variable intitulée
Si le nombre d’octets chargés ne correspond pas au nombre d’octets requis, le
script met à jour un acteur texte pour indiquer le nombre d’octets réellement reçus. Le script
contraint la tête de lecture à passer en boucle dans l’image courante jusqu’à ce que l’acteur soit
complètement chargé en mémoire.
octetsReçus.
-- Syntaxe Lingo
on exitFrame
if member(10).percentStreamed < 100 then
octetsReçus = member(10).stream(32000)
if octetsReçus < 32000 then
member("Ligne de message").text = "Reçus :" && octetsReçus \
&& "sur les 32 000 demandés."
_movie.updateStage()
else
member("Ligne de message").text = "Les 32 000 octets ont été reçus."
end if
_movie.go(_movie.frame)
end if
end
// Syntaxe JavaScript
function exitFrame() {
var pctStm = member(10).percentStreamed;
if (pctStm < 100) {
var octetsReçus = member(10).stream(32000);
if (octetsReçus < 32000) {
member("Ligne de message").text = "Reçus :" + octetsReçus + " sur les
32 000 demandés.";
_movie.updateStage();
} else {
member("Ligne de message").text = "Les 32 000 octets ont été reçus.";
}
_movie.go(_movie.frame);
}
}
string()
Utilisation
string(expression)
Description
Fonction ; convertit en chaîne un nombre entier, un nombre à virgule flottante, une référence
d’objet, une liste, un symbole ou toute autre expression n’existant pas sous la forme d’une chaîne.
Paramètres
expression
592
Requis. Expression à convertir en chaîne.
Chapitre 12 : Méthodes
Exemple
L’instruction suivante additionne 2.0 + 2.5 et insère le résultat dans l’acteur champ Total :
member("Total").text = string(2.0 + 2.5)
L’instruction suivante convertit le symbole #rouge en une chaîne et l’insère dans l’acteur champ
Couleur :
member("Couleur").text = string(#rouge)
Voir aussi
value(), stringP(), float(), integer(), symbol()
stringP()
Utilisation
stringP(expression)
Description
Fonction ; détermine si une expression est une chaîne (TRUE) ou non (FALSE).
Le P de stringP signifie prédicat.
Paramètres
expression
Requis. Expression à tester.
Exemple
L’instruction suivante vérifie si 3 est une chaîne :
put stringP("3")
Le résultat est 1, équivalent numérique de TRUE.
L’instruction suivante vérifie si le nombre à virgule flottante 3,0 est une chaîne :
put stringP(3.0)
Puisque 3,0 est un nombre à virgule flottante et non une chaîne, le résultat est 0, équivalent
numérique de FALSE.
Voir aussi
floatP(), ilk(), integerP(), objectP(), symbolP()
subPictureType()
Utilisation
-- Syntaxe Lingo
réfObjDvd.subPictureType(entFlux)
// Syntaxe JavaScript
réfObjDvd.subPictureType(entFlux);
Description
Méthode de DVD ; spécifie le type d’un flux de sous-images donné.
593
Cette méthode peut renvoyer les valeurs suivantes :
Symbole
Description
#unknown
Le type de sous-image est inconnu.
#Language
La sous-image inclut un contenu lié à la langue, par exemple, des sous-titres ou
d’autres textes.
#Other
La sous-image inclut un contenu non lié à la langue, par exemple, une balle qui
rebondit entre les titres d’un karaoké.
Paramètres
entFlux
Requis. Nombre entier qui spécifie le flux à tester.
Exemple
Cette instruction renvoie le type de sous-image du flux 2 :
-- Syntaxe Lingo
sprite(12).member.subPictureType(2)
// Syntaxe JavaScript
sprite(12).member.subPictureType(2);
Voir aussi
DVD
substituteFont
Utilisation
TextMemberRef.substituteFont(policeDorigine, nouvellePolice)
substituteFont(réfDacteurTexte, policeDorigine, nouvellePolice)
Description
Commande d’acteur texte ; remplace toutes les instances d’une police par une autre police dans
un acteur texte.
Paramètres
policeDorigine
Requis. Police à remplacer.
nouvellePolice
Requis. La nouvelle police remplace la police spécifiée par policeDorigine.
Exemple
Le script suivant vérifie si la police Bonneville est disponible dans un acteur texte et, dans la
négative, la remplace par Arial :
-- Syntaxe Lingo
property spriteNum
on beginSprite me
acteurCourant = sprite(spriteNum).member
if acteurCourant.missingFonts contains "Bonneville" then
acteurCourant.substituteFont("Bonneville", "Arial")
end if
end
594
Chapitre 12 : Méthodes
// Syntaxe JavaScript
function beginSprite() {
acteurCourant = sprite(spriteNum).member;
if (acteurCourant.missingFonts contains "Bonneville") { //vérifier la
syntaxe
acteurCourant.substituteFont("Bonneville", "Arial");
}
}
Voir aussi
missingFonts
swing()
Utilisation
-- Syntaxe Lingo
réfObjImageObjet.swing(pan, inclin, champDeVue, vitesseDeMouv)
// Syntaxe JavaScript
réfObjImageObjet.swing(pan, inclin, champDeVue, vitesseDeMouv);
Description
Fonction d’image-objet QuickTime VR ; déplace une image-objet QuickTime 3 contenant un
panoramique autour de nouveaux réglages de vue. Cette fonction produit un effet de travelling
régulier.
réfObjImageObjet
désigne le numéro de l’image-objet contenant l’acteur QuickTime VR.
Cette fonction renvoie immédiatement une valeur, mais l’image-objet continue de changer de
vue jusqu’à ce que la vue finale soit atteinte. La durée requise pour arriver aux paramètres finaux
varie en fonction du type d’ordinateur, de la taille du rectangle de l’image-objet, du codage des
couleurs et d’autres paramètres affectant la performance.
Pour vérifier si le mouvement est terminé, vérifiez si la propriété pan de l’image-objet est arrivée à
la valeur finale.
Paramètres
pan
Requis. Spécifie la nouvelle position panoramique, en degrés.
inclin
Requis. Spécifie la nouvelle inclinaison, en degrés.
champDeVue
Requis. Spécifie le nouveau champ de vue, en degrés.
Requis. Spécifie la vitesse à laquelle le mouvement doit s’effectuer. Les valeurs
correctes sont comprises entre 1 (lent) et 10 (rapide).
vitesseDeMouv
595
Exemple
Ceci permet d’ajuster graduellement l’affichage de l’image-objet QuickTime VR dans une
position panoramique de 300°, une inclinaison de -15° et un champ de vue de 40°.
-- Syntaxe Lingo
sprite(1).swing(300, -15, 40, 1)
// Syntaxe JavaScript
sprite(1).swing(300, -15, 40, 1);
Voir aussi
pan (propriété QTVR)
symbol()
Utilisation
-- Syntaxe Lingo
symbol(valeurDeChaîne)
// Syntaxe JavaScript
symbol(valeurDeChaîne);
Description
Fonction du niveau supérieur ; prend une chaîne et renvoie un symbole.
Paramètres
valeurDeChaîne
Requis. Chaîne à convertir en symbole.
Exemple
L’instruction suivante affiche le symbole #bonjour :
-- Syntaxe Lingo
put(symbol("bonjour"))
// Syntaxe JavaScript
put(symbol("bonjour"));
L’instruction suivante affiche le symbole #auRevoir :
-- Syntaxe Lingo
x = "auRevoir"
put(symbol(x))
// Syntaxe JavaScript
var x = "auRevoir";
put(symbol(x));
Voir aussi
value(), string()
596
Chapitre 12 : Méthodes
symbolP()
Utilisation
expression.symbolP
symbolP(expression)
Description
Fonction ; détermine si une expression spécifiée est un symbole (TRUE) ou non (FALSE).
Le P de symbolP signifie prédicat.
Paramètres
expression
Requis. Spécifie l’expression à tester.
Exemple
L’instruction suivante vérifie si la variable maVariable est un symbole :
put maVariable.symbolP
Voir aussi
ilk()
tan()
Utilisation
tan(angle)
Description
Fonction mathématique ; renvoie la tangente de l’angle spécifié exprimée en radians sous forme
de nombre à virgule flottante.
Dans la syntaxe JavaScript, utilisez la fonction tan() de l’objet Math.
Paramètres
angle
Requis. Spécifie l’angle à partir duquel une tangente est calculée.
Exemple
La fonction suivante renvoie la tangente de pi/4 :
tan (PI/4.0) = 1
Le symbole π ne peut pas être utilisé dans une expression Lingo.
Voir aussi
PI
597
tellStreamStatus()
Utilisation
tellStreamStatus(booléenActivéOuDésactivé)
Description
Fonction ; active (TRUE) ou désactive (FALSE) le rapport de l’état de la lecture en flux continu.
La forme tellStreamStatus() détermine l’état du gestionnaire.
Lorsque streamStatusHandler a la valeur TRUE, l’activité de lecture en flux continu sur
Internet provoque des appels périodiques du script de l’animation, déclenchant le gestionnaire
streamStatusHandler. Le gestionnaire est alors exécuté, Director remplissant automatiquement
les paramètres avec des informations concernant l’évolution des téléchargements.
Paramètres
booléenActivéOuDésactivé
Facultatif. Spécifie l’état du gestionnaire.
Exemple
Le gestionnaire on prepareMovie suivant active le gestionnaire on streamStatus au démarrage
de l’animation :
-- Syntaxe Lingo
on prepareMovie
tellStreamStatus(TRUE)
end
// Syntaxe JavaScript
function prepareMovie() {
tellStreamStatus(TRUE);
}
L’instruction suivante détermine l’état du gestionnaire d’état de la lecture en flux continu :
-- Syntaxe Lingo
on mouseDown
put tellStreamStatus()
end
// Syntaxe JavaScript
function mouseDown() {
put(tellStreamStatus());
}
Voir aussi
on streamStatus
598

Manuels associés