MACROMEDIA DIRECTOR MX-DICTIONNAIRE LINGO Manuel du propriétaire
Ajouter à Mes manuels800 Des pages
▼
Scroll to page 2
of
800
Dictionnaire Lingo Macromedia Director MX 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, Lingo, Live Effects, Macromedia, Macromedia M Logo & Design, Macromedia Contribute, Macromedia Flash, Macromedia Xres, Macromind, Macromind Action, MAGIC, Mediamaker, Object Authoring, Power Applets, Priority Access, Roundtrip HTML, Scriptlets, SoundEdit, ShockRave, Shockmachine, Shockwave, 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. Ce guide 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 n’implique pas son soutien, accord ou responsabilité quant au contenu des sites. Limite de garantie et de responsabilité Apple Apple Computer, inc. n’offre aucune garantie, exprès ou implicite, concernant ce logiciel, sa capacité à être commercialisé ou à répondre à un besoin particulier. L’exclusion des garanties implicites est interdite par certains pays, états ou provinces. L’exclusion énoncée ci-dessus peut ne pas s’appliquer à votre cas particulier. Cette garantie vous assure des droits spécifiques. D’autres droits variant d’un pays à l’autre peuvent également vous être accordés. Copyright © 2002 Macromedia, Inc. Tous droits réservés. La copie, photocopie, reproduction, traduction ou conversion de ce manuel, 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. Des mentions spécifiques aux autres marques et/ou termes et conditions supplémentaires sont publiées sur http://www.macromedia.com/go/thirdparty/. Référence ZDR90M200F Remerciements Rédaction : Jay Armstrong, George Brown, Stephanie Gowin et Tim Statler Révision : Rosana Francescato, Mary Ferguson, Mary Kraemer et Noreen Maher Gestion du projet : Stuart Manning Production : Chris Basmajian, Caroline Branch, John Francis et Patrice O’Neill Multimédia : Aaron Begley et Benjamin Salles Chef de projet Localisation : Yuko Yagi Localisation : Gwenhaël Jacq, Masayo Noda, Florian de Joannès Première édition : mars 2003 Macromedia, Inc. 600 Townsend St. San Francisco, CA 94103 Etats-Unis CHAPITRE 1 Lingo par fonction Ce chapitre contient la liste des différentes fonctions de Macromedia Director MX et des éléments Lingo qui peuvent être utilisés pour les implémenter. Accessibilité Les termes suivants servent à rendre les animations accessibles : Texte en voix voiceCount() voiceSet() voiceGet() voiceSetPitch() voiceGetPitch() voiceSetRate() voiceGetRate() voiceSetVolume() voiceGetVolume() voiceSpeak() voiceInitialize() voiceState() voicePause() voiceStop() voiceResume() voiceWordPos() Navigation avec le clavier autoTab selection (propriété de distribution) hilite (commande) selectedText keyboardFocusSprite selEnd selection (propriété d’acteur texte) selStart selection() (fonction) 3 Acteurs Les termes de cette section sont utilisés avec les acteurs. Création d’acteurs Utilisez importFileInto et new() pour créer des acteurs. Programmation Utilisez duplicate member, erase member et pasteClipBoardInto pour manipuler des acteurs pendant la programmation. Acteurs graphiques Les termes suivants sont utilisés pour vérifier et définir les images associées aux acteurs graphiques : center palette crop (propriété d’acteur) picture (propriété d’acteur) depth pictureP() media regPoint Propriétés d’acteurs générales Les termes suivants sont utilisés pour vérifier et définir des propriétés d’acteurs : fileName (propriété d’acteur) number (propriété d’acteur) media preLoadMode modified type (propriété d’acteur) name (propriété d’acteur) URL Dimensions des acteurs graphiques Utilisez height, rect (acteur) et width pour vérifier et définir les dimensions des acteurs graphiques. Animation Les termes suivants sont utilisés pour créer des séquences animées avec Lingo : 4 blend locV ink member (propriété d’image-objet) loc regPoint locH tweened Chapitre 1 Animations Les termes de cette section sont utilisés pour gérer les animations. Arrêt des animations Les termes suivants sont utilisés pour arrêter ou fermer une animation ou une projection : exitLock quit halt restart pauseState shutDown Informations sur les animations Les termes suivants sont utilisés pour obtenir des informations sur une animation et son environnement : environment moviePath lastFrame number (propriété système) movie runMode movieFileFreeSize safePlayer movieFileSize version movieName movieFileVersion Contrôle de la source Les termes suivants sont utilisés pour gérer les projets Director sur lesquels plusieurs personnes travaillent : comments creationDate modifiedBy modifiedDate linkAs() seconds Enregistrement des animations Utilisez saveMovie et updateMovieEnabled pour enregistrer les modifications d’une animation. Vérification des erreurs Utilisez l’événement alertHook pour afficher des messages d’alerte décrivant des erreurs dans une projection. Evénements dans les animations Utilisez les gestionnaires d’événements on prepareMovie, on startMovie et on stopMovie contenant le code Lingo que vous souhaitez exécuter en réponse aux événements se produisant dans les animations. Lingo par fonction 5 Animations dans une fenêtre Les termes de cette section sont utilisés avec les animations dans une fenêtre. Evénements des animations dans une fenêtre Utilisez les gestionnaires d’événements suivants contenant le code Lingo que vous souhaitez exécuter en réponse aux événements des animations dans une fenêtre : activeCastLib on openWindow on closeWindow on resizeWindow on moveWindow on zoomWindow Ouverture et fermeture d’animations dans une fenêtre Les termes suivants sont utilisés pour ouvrir et fermer des fenêtres : close window open window forget windowList Apparence des fenêtres Les termes suivants sont utilisés pour vérifier et définir l’apparence de la fenêtre d’une animation : drawRect sourceRect fileName (propriété de fenêtre) tell frontWindow title modal titleVisible moveToBack visible (propriété de fenêtre) moveToFront windowPresent() name (propriété de fenêtre) windowType rect (fenêtre) appMinimize Communication entre différentes animations Utilisez la commande tell pour envoyer des messages entre différentes animations. 6 Chapitre 1 Bitmaps Les termes de cette section sont utilisés avec les bitmaps. Propriétés des bitmaps Les termes suivants sont utilisés pour vérifier et définir les propriétés des bitmaps : alphaThreshold foreColor backColor palette blend picture (propriété d’acteur) depth pictureP() dither rect (acteur) trimWhiteSpace (propriété) imageCompression imageQuality movieImageCompression movieImageQuality Couche alpha Les termes suivants sont utilisés pour contrôler les effets de couche alpha : alphaThreshold dither depth useAlpha createMask() createMatte() extractAlpha() setAlpha() Objets image Les termes suivants sont utilisés pour vérifier et contrôler les objets image : copyPixels() fill() crop() (commande d’objet image) image draw() image() duplicate() (fonction d’image) rect (image) getPixel() setPixel() Boutons Consultez Boutons et cases à cocher dans la section Interface. Cadence Utilisez la commande puppetTempo pour contrôler la cadence d’une animation. Lingo par fonction 7 Comportements Les termes de cette section sont utilisés pour créer des comportements et les utiliser pendant la lecture d’une animation. Création de comportements Les termes suivants sont utilisés pour créer des comportements et en définir les paramètres dans la boîte de dialogue Paramètres : ancestor on getBehaviorDescription on runPropertyDialog on getPropertyDescriptionList on getBehaviorTooltip property on isOKToAttach Envoi de messages aux comportements Les commandes suivantes sont utilisées pour envoyer des messages aux comportements associés aux images-objets : call sendSprite callAncestor sendAllSprites Identification des comportements Les termes suivants sont utilisés pour identifier les comportements associés aux images-objets : currentSpriteNum scriptInstanceList me spriteNum Distributions Les termes de cette section sont utilisés avec les distributions. Chargement des distributions Utilisez preLoadMode pour vérifier et définir le moment auquel Director précharge une distribution. Propriétés des distributions Les termes suivants sont utilisés pour spécifier les propriétés des distributions : castLib number (propriété de distribution) fileName (propriété de distribution) number (propriété système) name (propriété de distribution) 8 Chapitre 1 Gestion des distributions Les termes suivants sont utilisés pour gérer les distributions : activeCastLib number of members duplicate member pasteClipBoardInto erase member save castLib findEmpty() selection (propriété de distribution) move member Interface Les termes Lingo de cette section sont utilisés avec les éléments d’interface. Menus Les termes suivants sont utilisés pour créer des menus : enabled name (propriété d’élément de menu) installMenu number (éléments de menu) menu number (menus) name (propriété de menu) script Boutons et cases à cocher Les termes suivants sont utilisés pour spécifier des boutons et des cases à cocher : alert checkBoxType buttonStyle checkMark buttonType hilite (propriété d’acteur) checkBoxAccess Esclaves Les termes suivants sont utilisés pour contrôler la propriété puppet des pistes d’effets et des images-objets : puppet puppetTempo puppetPalette puppetTransition puppetSound updateStage puppetSprite Lingo par fonction 9 Evénements Utilisez les gestionnaires d’événements suivants avec le code Lingo devant être exécuté lorsqu’un événement spécifique se produit : activeCastLib on moveWindow close window on mouseWithin on cuePassed open window on deactivateWindow on prepareFrame on enterFrame on prepareMovie on EvalScript on resizeWindow on exitFrame on mouseUpOutside on idle on rightMouseDown (gestionnaire d’événement) on keyDown on rightMouseUp (gestionnaire d’événement) on keyUp on startMovie on mouseDown (gestionnaire d’événement) on stepFrame on mouseEnter on streamStatus on mouseLeave on timeOut on mouseUp (gestionnaire d’événement) on zoomWindow on stopMovie on beginSprite on endSprite on hyperlinkClicked Utilisez les commandes pass et stopEvent pour annuler l’ordre dans lequel Director envoie les messages. Fichiers externes Les termes de cette section sont utilisés avec les fichiers externes. Chemins et noms de fichiers Les termes suivants sont utilisés pour vérifier et définir les chemins et noms de fichiers : @ (chemin d’accès) getNthFileNameInFolder() applicationPath moviePath fileName (propriété de distribution) searchCurrentFolder fileName (propriété d’acteur) URL Obtention de médias externes Les termes suivants sont utilisés pour obtenir des médias externes : downloadNetThing importFileInto 10 Chapitre 1 preloadNetThing() Gestion des fichiers externes Les termes suivants sont utilisés pour gérer les fichiers externes : closeXlib showXlib open sound playFile openXlib Flash Les termes suivants sont utilisés avec les acteurs Flash : actionsEnabled originV broadcastProps pathName (propriété d’animation) bufferSize pausedAtStart (Flash, vidéo numérique) buttonsEnabled percentStreamed bytesStreamed play callFrame() playBackMode centerRegPoint playing clearError posterFrame clickMode print() defaultRect printAsBitmap() defaultRectMode quality directToStage rewind sprite endTellTarget(). Consultez tellTarget() rotation eventPassMode scale findLabel() scaleMode fixedRate on sendXML flashRect setCallback() flashToStage() settingsPanel() frame() (fonction) setFlashProperty() frame (propriété d’image-objet) setVariable() frameCount showProps() frameRate sound frameReady() the soundMixMedia getError() sourceFileName getFlashProperty() stageToFlash() getFrameLabel() state (Flash, SWA) getVariable() static goToFrame stop (Flash) Lingo par fonction 11 hitTest() stream hold streamMode imageEnabled streamSize linked tellTarget() loop (mot-clé) URL mouseOverButton viewH newObject() viewPoint obeyScoreRotation viewScale originH viewV originMode volume (propriété d’acteur) originPoint Les termes suivants sont utilisés avec les objets Flash globaux, qui n’ont pas besoin d’un acteur Flash : clearAsObjects() setCallback() newObject() Formes Utilisez les termes Lingo suivants avec les formes : filled pattern lineDirection shapeType lineSize Formes vectorielles Les termes suivants sont utilisés avec les formes vectorielles : 12 addVertex gradientType antiAlias imageEnabled backgroundColor moveVertex() broadcastProps moveVertexHandle() centerRegPoint originH closed originMode defaultRect originPoint defaultRectMode originV deleteVertex() rotation directToStage scale endColor scaleMode fillColor showProps() Chapitre 1 fillCycles skew fillDirection static fillMode strokeColor fillOffset strokeWidth fillScale vertexList flashRect viewPoint flipH viewScale flipV viewV curve newCurve() regPointVertex GIF animés Les termes suivants sont utilisés avec les GIF animés : directToStage pause (lecture d’animation) frameRate playBackMode linked resume sprite moviePath rewind sprite Images Les termes Lingo de cette section vous permettent de travailler avec des images. Evénements images Utilisez les gestionnaires d’événements on enterFrame, on exitFrame et on prepareFrame avec le code Lingo qui doit être exécuté lorsque des événements spécifiques se produisent dans une image. Propriétés d’images Utilisez les termes Lingo suivants pour vérifier et définir les propriétés d’images : frameLabel frameTempo framePalette frameTransition frameScript label() frameSound1 labelList frameSound2 marker() the markerList Lingo par fonction 13 Images-objets Les termes Lingo de cette section sont utilisés pour travailler avec les images-objets. Evénements d’images-objets Utilisez les gestionnaires d’événements on beginSprite et on endSprite pour contenir des instructions Lingo que vous souhaitez exécuter lorsqu’une image-objet commence ou se termine. Affectation d’acteurs aux images-objets Utilisez castLibNum, member (propriété d’image-objet) ou memberNum pour spécifier l’acteur associé à une image-objet. Rotation des images-objets Utilisez la propriété d’image-objet rotation pour faire pivoter les images-objets. Glissement d’images-objets Les termes suivants sont utilisés pour définir comment l’utilisateur pourra faire glisser les imagesobjets : constrainH() moveableSprite constrainV() sprite...intersects constraint sprite...within Images-objets et Lingo Les termes suivants sont utilisés pour gérer la façon dont Lingo contrôle les images-objets : puppetSprite spriteNum puppet sendSprite scriptNum sendAllSprites scriptInstanceList Dessin d’images-objets sur la scène Les termes suivants sont utilisés pour contrôler la façon dont Director dessine les images-objets sur la scène : blend skew flipH trails flipV tweened ink updateStage quad visible (propriété d’image-objet) rotation 14 Chapitre 1 Dimensions des images-objets Les termes suivants sont utilisés pour vérifier et définir la taille du rectangle de délimitation des images-objets : bottom right height top left width quad zoomBox Vous pouvez également manipuler le rectangle de délimitation d’une image-objet avec les termes Lingo utilisés avec les rectangles. Pour plus d’informations, consultez Points et rectangles. Emplacement des images-objets Utilisez les propriétés d’image-objet loc, locH et locV pour vérifier et définir l’emplacement des images-objets. Couleur des images-objets Les termes suivants sont utilisés pour vérifier et définir la couleur d’une image-objet : backColor color (propriété d’image-objet et d’acteur) bgColor foreColor Interaction avec la souris Les termes de cette section sont utilisés avec le code Lingo se référant à l’utilisation de la souris. Clics de la souris Les termes suivants sont utilisés pour détecter ce que l’utilisateur fait avec la souris : clickOn mouseLine doubleClick mouseLoc emulateMultiButtonMouse mouseMember lastClick() mouseOverButton lastEvent() on mouseUp (gestionnaire d’événement) lastRoll mouseV mouseChar mouseWord on mouseDown (gestionnaire d’événement) on rightMouseDown (gestionnaire d’événement) mouseH on rightMouseUp (gestionnaire d’événement) mouseItem rollOver() mouseLevel stillDown Lingo par fonction 15 Evénements souris Les termes suivants sont utilisés pour définir les gestionnaires qui répondent à la souris : mouseDownScript on mouseUp (gestionnaire d’événement) mouseUpScript on mouseUpOutside on mouseDown (gestionnaire d’événement) on mouseWithin on mouseEnter on rightMouseDown (gestionnaire d’événement) on mouseLeave on rightMouseUp (gestionnaire d’événement) Contrôle du curseur Utilisez cursor (commande), cursor (propriété d’image-objet) et cursorSize pour contrôler le curseur. Lingo Les termes Lingo de cette section sont des éléments importants du langage de programmation Lingo que vous utilisez lors de la rédaction de scripts. Valeurs booléennes Les termes suivants sont utilisés pour vérifier si une condition existe : • • • • FALSE (0 TRUE (1 est l’équivalent numérique de FALSE). est l’équivalent numérique de TRUE). not or Contrôle des scripts Les termes suivants sont utilisés pour contrôler l’exécution des scripts : abort pass do result exit scriptsEnabled halt scriptText nothing stopEvent Structures du code Utilisez if pour créer des instructions if..then. Utilisez case, end case et otherwise dans les instructions de cas. Les termes suivants sont utilisés avec les boucles de répétition : end repeat repeat with exit repeat repeat with...down to next repeat repeat with...in list repeat while 16 Chapitre 1 Eléments de syntaxe Les termes suivants sont utilisés dans la syntaxe de Lingo : # (symbole) member (mot-clé) " (chaîne) of ¬ (symbole de continuation) or -- (séparateur de commentaires) property () (parenthèses) sprite castLib the end window global Lingo réseau Les termes de cette section sont utilisés avec les opérations réseau. Téléchargement et lecture en flux continu des médias Les termes suivants sont utilisés pour récupérer des médias ou les télécharger en flux continu depuis le réseau : downloadNetThing (pour les projections et la programmation uniquement) gotoNetPage getNetText() postNetText gotoNetMovie preloadNetThing() Vérification de la disponibilité des médias Utilisez frameReady() et mediaReady pour vérifier si le téléchargement d’un média spécifique est terminé. Utilisation des opérations réseau Les termes suivants sont utilisés pour vérifier la progression d’une opération réseau ou obtenir des informations sur les médias du réseau : getStreamStatus() netMIME() getLatestNetID netTextResult() netAbort on streamStatus netDone() proxyServer netError() tellStreamStatus() netPresent URLEncode netLastModDate() Lingo par fonction 17 Travail avec l’ordinateur local Les termes suivants sont utilisés pour travailler avec l’ordinateur de l’utilisateur : browserName() clearCache (pour les projections et la programmation uniquement) cacheDocVerify() (pour les projections et la programmation uniquement) getPref() cacheSize() (pour les projections et la programmation uniquement) setPref Navigateurs web Utilisez on EvalScript, externalEvent et netStatus pour l’interactivité avec les navigateurs web. Pour plus d’informations sur la rédaction de scripts pour navigateurs web au moyen de langages de programmation tels que JavaScript, consultez Publication d’animations Shockwave sur le centre de support de Director, à www.macromedia.com/support/director/internet.html. Accès aux paramètres des balises EMBED et OBJECT Utilisez externalParamCount(), externalParamName() et externalParamValue() pour accéder aux paramètres des balises EMBED et OBJECT. Listes Les termes de cette section sont utilisés avec les listes. Création de listes Utilisez [ ] (liste), duplicate() (fonction de liste) ou list() pour créer une liste. Ajout d’éléments aux listes Les termes suivants sont utilisés pour ajouter des éléments à une liste : [ ] (crochets d’accès) addVertex add append addVertex Suppression d’éléments des listes Les termes suivants sont utilisés pour supprimer des éléments d’une liste : 18 deleteAll deleteOne deleteAt deleteProp Chapitre 1 Récupération de valeurs d’une liste Les termes suivants sont utilisés pour récupérer des valeurs d’une liste : [ ] (crochets d’accès) getOne() deleteProp getPos() deleteProp getProp() getLast() getPropAt() Obtention d’informations sur les listes Les termes suivants sont utilisés pour obtenir des informations sur des listes : count() max() findPos min findPosNear param() ilk() paramCount() listP() Définition des valeurs d’une liste Les termes suivants sont utilisés pour définir les valeurs d’une liste : [ ] (crochets d’accès) setAt setaProp setProp Mémoire Les termes de cette section sont utilisés pour déterminer la mémoire exigée et contrôler le moment auquel les acteurs sont chargés, ou purgés, de la mémoire. Evénements d’attente Utilisez le gestionnaire d’événement on idle avec le code Lingo qui doit être exécuté lorsque l’animation est en période d’inactivité. Chargement en période d’inactivité Les termes suivants sont utilisés pour contrôler le chargement des acteurs en période d’inactivité : cancelIdleLoad idleLoadPeriod finishIdleLoad idleLoadTag idleHandlerPeriod idleReadChunkSize idleLoadDone() netThrottleTicks Lingo par fonction 19 Préchargement et interrogation des médias Les termes suivants sont utilisés pour charger des médias en mémoire et vérifier s’ils sont disponibles : frameReady() preloadNetThing() loaded preLoadMember mediaReady preLoadMovie preLoad (commande) preLoadRAM preLoad (propriété d’acteur) purgePriority preLoadBuffer member unLoad preLoadEventAbort unLoadMember preLoadMode unloadMovie Mémoire disponible Les termes suivants sont utilisés pour vérifier la quantité de mémoire disponible : freeBlock() movieFileFreeSize freeBytes() movieFileSize memorySize Exigences en mémoire Utilisez ramNeeded() et size pour déterminer la quantité de mémoire qu’exige un acteur ou une série d’images. Menus Consultez Menus dans la section Eléments d’interface. Messages, fenêtre Les termes suivants sont utilisés dans la fenêtre Messages : put traceLoad showXlib traceLogFile trace appMinimize Moniteur Utilisez colorDepth, deskTopRectList et switchColorDepth pour vérifier et contrôler le moniteur. 20 Chapitre 1 Navigation Les termes suivants sont utilisés pour passer à différents endroits de l’animation : delay goToFrame go gotoNetMovie go loop gotoNetPage go next play go previous play done Nombres aléatoires Utilisez random() et randomSeed pour créer des nombres aléatoires. Opérateurs Les termes de cette section représentent les opérateurs offerts par Lingo. Opérateurs mathématiques Les termes suivants sont utilisés dans les instructions mathématiques : * (multiplication) <> (différent de) / (division) > (supérieur à) + (addition) > = (supérieur ou égal à) - (signe moins) < (inférieur à) = (signal égal à) <= (inférieur ou égal à) Opérateurs de comparaison Utilisez and, not et or pour comparer des expressions. Ordinateur et système d’exploitation Les termes suivants sont utilisés pour vérifier et contrôler les fonctions de l’ordinateur : beep freeBlock() beepOn freeBytes() cpuHogTicks maxInteger emulateMultiButtonMouse multiSound floatPrecision romanLingo Contrôle du système d’exploitation Utilisez restart et shutDown pour contrôler le système d’exploitation. Lingo par fonction 21 Palettes et couleurs Les termes suivants sont utilisés pour vérifier et définir les palettes des animations et des acteurs : color() paletteMapping depth puppetPalette palette rgb() Points et rectangles Les termes suivants sont utilisés pour vérifier et définir les points et les rectangles. inflate quad inside() rect (caméra) intersect() rect (image-objet) map() sourceRect offset() (fonction de rectangle) union() point() Pour plus d’informations sur les termes Lingo contrôlant le rectangle de délimitation des imagesobjets, consultez Dimensions des images-objets. Projections Les termes suivants sont utilisés avec les projections : alertHook platform environment runMode editShortCutsEnabled Scénario Les termes suivants sont utilisés avec le scénario. Propriétés du scénario Utilisez lastFrame, score et scoreSelection pour travailler avec le scénario. Création du scénario Les termes suivants sont utilisés pour créer du contenu dans le scénario à partir de Lingo : 22 beginRecording scoreSelection clearFrame scriptNum deleteFrame scriptType duplicateFrame tweened endRecording updateFrame Chapitre 1 insertFrame updateLock scoreColor Scène Les termes suivants sont utilisés pour contrôler la scène et déterminer sa taille et son emplacement : centerStage stageColor fixStageSize stageLeft picture (propriété de fenêtre) stageRight stage stageTop stageBottom updateStage Scripts parents Les termes suivants sont utilisés avec les scripts parents et les objets enfants : actorList property ancestor on stepFrame new() handler() handlers() rawNew() Serveur multiutilisateur Les utilisateurs de Director MX devraient utiliser Macromedia Flash Communication Server MX pour les opérations de communication entre les animations Director et les serveurs d’applications. Pour plus d’informations sur l’utilisation de Flash Communication Server MX, consultez Utilisation de Flash Communication Server MX dans le mode d’emploi de Director. Shockwave Audio Les termes suivants sont utilisés pour vérifier, charger en flux continu et lire les sons Shockwave Audio : bitRate play member bitsPerSample preLoadBuffer member copyrightInfo preLoadTime duration sampleRate getError() soundChannel (SWA) getErrorString() state (Flash, SWA) numChannels stop member pause (lecture d’animation) streamName percentPlayed URL percentStreamed volume (propriété d’acteur) Lingo par fonction 23 Son Les termes de cette section sont utilisés pour lire les sons. Informations sur les sons Les termes suivants sont utilisés pour obtenir des informations sur un son : channelCount soundEnabled sound volume (propriété d’image-objet) soundBusy() isBusy() sampleCount status Lecture des sons Les termes suivants sont utilisés pour contrôler la lecture du son : puppetSound sound fadeOut sound close sound playFile sound fadeIn sound stop breakLoop() elapsedTime endTime fadeIn() fadeOut() fadeTo() getPlaylist() setPlaylist() loopCount loopEndTime loopStartTime loopsRemaining member (propriété audio) pan (propriété audio) pause() (lecture audio) playNext() queue() rewind() stop() (audio) play() (audio) Son RealMedia Pour plus d’informations, consultez Vidéo numérique. Synchronisation des médias Les termes suivants sont utilisés pour synchroniser l’animation et le son : cuePointNames on cuePassed cuePointTimes isPastCuePoint() mostRecentCuePoint 24 Chapitre 1 Temps Les termes de cette section sont utilisés avec le temps. Date et heure actuelles Les termes suivants sont utilisés pour déterminer la date et l’heure actuelles : abbr, abbrev, abbreviated short date() (horloge du système) systemDate long Mesure du temps Les termes suivants sont utilisés pour mesurer le temps dans une animation : framesToHMS() ticks HMStoFrames() time() milliseconds timer startTimer Temporisations Les termes suivants sont utilisés avec les temporisations : timeoutKeyDown timeoutMouse timeoutLapsed timeoutPlay timeoutLength timeoutScript name (propriété de temporisation) period persistent target time() timeout() timeoutHandler timeoutList Texte Les termes de cette section sont utilisés avec le texte, les chaînes et les champs. Manipulation des chaînes Les termes suivants sont utilisés pour manipuler les chaînes : & (opérateur de concaténation) put...before && (opérateur de concaténation) put...into delete string() hilite (propriété d’acteur) stringP() put...after text Lingo par fonction 25 Expressions de sous-chaînes Les termes suivants sont utilisés pour identifier les sous-chaînes de texte : char...of number (mots) chars() offset() (fonction de chaîne) contains paragraph EMPTY ref item...of selection (propriété d’acteur texte) itemDelimiter selectedText last() selEnd (champs uniquement) length() selStart (champs uniquement) line...of string() number (caractères) stringP() number (éléments) value() number (lignes) word...of Texte modifiable Utilisez la propriété editable pour spécifier si le texte est modifiable ou non. Polices Shockwave Les termes suivants sont utilisés pour inclure les polices Shockwave avec le texte téléchargé : recordFont bitmapSizes originalFont characterSet Formatage des caractères Les termes suivants sont utilisés pour formater le texte : backColor fontf bgColor fontSize charSpacing fontStyle color() foreColor dropShadow Formatage des paragraphes Les termes suivants sont utilisés pour formater les paragraphes : 26 alignment rightIndent bottomSpacing tabCount firstIndent tabs fixedLineSpace top (3D) Chapitre 1 leftIndent wordWrap margin Propriétés des acteurs texte Les termes suivants sont utilisés avec le contenu entier d’un acteur texte : antiAlias kerning antiAliasThreshold kerningThreshold autoTab picture (propriété d’acteur) HTML RTF Les termes Lingo utilisés avec les expressions de sous-chaînes peuvent également être utilisés avec le texte des acteurs texte. Position du pointeur de la souris dans le texte Les termes suivants sont utilisés pour détecter l’endroit du texte auquel se trouve le pointeur de la souris : pointInHyperlink() pointToParagraph() pointToChar() pointToWord() pointToItem() Zones de texte des acteurs champ Les termes suivants sont utilisés pour créer la zone de texte d’un acteur champ : border lineHeight() (fonction) boxType lineHeight (propriété d’acteur) lineCount pageHeight Texte défilant Les termes suivants sont utilisés avec le texte défilant : linePosToLocV() scrollByLine locToCharPos() scrollByPage locVToLinePos() scrollTop Constantes Les termes suivants sont utilisés avec les constantes : BACKSPACE RETURN (constante) EMPTY VOID ENTER Lingo par fonction 27 Touches Les termes Lingo de cette section sont liés à l’utilisation du clavier. Identification des touches Les termes suivants sont utilisés pour identifier les touches : charToNum() keyPressed() commandDown mouseChar controlDown numToChar() key() optionDown keyCode() shiftDown Interaction avec le clavier Utilisez keyPressed(), lastEvent() et lastKey pour détecter ce que l’utilisateur tape avec le clavier. Evénements clavier Les termes suivants sont utilisés pour définir les gestionnaires qui répondent à l’enfoncement des touches du clavier : on keyDown keyDownScript on keyUp keyUpScript flushInputEvents Transitions Les termes suivants sont utilisés avec les transitions : changeArea puppetTransition chunkSize transitionType duration Types de données Les termes suivants sont utilisés pour spécifier des types de données : 28 # (symbole) string() float() stringP() floatP() symbol() integer() symbolP() integerP() VOID objectP() voidP() Chapitre 1 Variables Les termes de cette section sont utilisés pour créer et modifier des variables : Création de variables Les termes suivants sont utilisés pour créer des variables : = (signal égal à) property global Test et modification des variables Les termes suivants sont utilisés pour vérifier et modifier les valeurs affectées aux variables : = (signal égal à) put clearGlobals set...to, set...= globals showGlobals ilk() showLocals Vidéo numérique Les termes suivants sont utilisés avec la vidéo numérique AVI et QuickTime : controller trackNextSampleTime digitalVideoTimeScale trackPreviousKeyTime digitalVideoType trackPreviousSampleTime directToStage trackStartTime (propriété d’image-objet) duration trackStartTime (propriété d’acteur) frameRate trackStopTime (propriété d’image-objet) loop (propriété d’acteur) trackStopTime (propriété d’acteur) movieRate trackText movieTime trackType (propriété d’acteur) pausedAtStart (Flash, vidéo numérique) trackType (propriété d’image-objet) quickTimeVersion() trackCount (propriété d’acteur) timeScale trackCount (propriété d’image-objet) trackEnabled video (QuickTime, AVI) trackNextKeyTime videoForWindowsPresent QuickTime Les termes suivants sont utilisés avec QuickTime : enableHotSpot nodeType fieldOfView nudge getHotSpotRect() pan (propriété QTVR) Lingo par fonction 29 hotSpotExitCallback ptToHotSpotID() hotSpotEnterCallback quickTimeVersion() invertMask rotation isVRMovie scale loopBounds swing() mask staticQuality motionQuality tilt mouseLevel translation node triggerCallback nodeEnterCallback warpMode nodeExitCallback Vidéo RealMedia Les termes suivants sont utilisés avec la vidéo RealMedia : audio (RealMedia) play currentTime (RealMedia) realPlayerNativeAudio() displayRealLogo realPlayerPromptToInstall() duration (RealMedia) realPlayerVersion() image (RealMedia) seek lastError soundChannel (RealMedia) mediaStatus state (RealMedia) password stop (RealMedia) pause (RealMedia) userName (RealMedia) pausedAtStart (RealMedia) video (RealMedia) percentBuffered XML Les termes Lingo suivants sont utilisés pour l’analyse XML dans Director. 30 attributeName ignoreWhiteSpace() attributeValue makeList() child (XML) makeSubList() count() name (propriété XML) doneParsing() parseString() getError() (XML) parseURL() Chapitre 1 Xtras Les termes suivants sont utilisés avec les Xtras : movieXtraList xtra name (propriété système) xtraList number of xtras xtras Lingo par fonction 31 32 Chapitre 1 CHAPITRE 2 Lingo 3D par fonction Ce chapitre contient la liste des différentes fonctions 3D de Macromedia Director MX et des éléments Lingo qui peuvent être utilisés pour les implémenter. Animation Les termes suivants sont utilisés avec l’animation 3D. Consultez également les listes de termes utilisés avec les modificateurs de lecteur de segments et d’images-clés. animationEnabled pause() (3D) autoblend play() (3D) blendTime playing (3D) cloneMotionFromCastmember playlist count playNext() (3D) currentLoopState playRate currentTime (3D) positionReset deleteMotion queue() (3D) lockTranslation removeLast() motion rotationReset name type (mouvement) newMotion() Anti-aliasing Les termes suivants sont utilisés avec l’anti-aliasing : antiAliasingEnabled antiAliasingSupported Brouillard Les termes suivants sont utilisés avec le brouillard : color (brouillard) far (brouillard) decayMode fog enabled (brouillard) near (brouillard) 33 Calculs vectoriels Les termes suivants sont utilisés pour effectuer des opérations mathématiques : angleBetween getNormalized axisAngle magnitude cross normalize crossProduct() randomVector distanceTo() vector() dot() x (propriété de vecteur) dotProduct() y (propriété de vecteur) duplicate z (propriété de vecteur) Caméras Les termes suivants sont utilisés pour contrôler les caméras et leurs propriétés : addCamera orthoHeight addToWorld pointAt autoCameraPosition pointAtOrientation boundingSphere position (transformation) camera projection cameraCount() projectionAngle cameraPosition rect (caméra) cameraRotation removeFromWorld clone rootNode cloneDeep rotate count scale (transformation) deleteCamera transform (propriété) fieldOfView (3D) translate hither userData isInWorld() worldPosition name yon newCamera 34 Chapitre 2 Création et suppression d’objets Les termes suivants sont utilisés pour créer et supprimer des objets : add (texture 3D) deleteShader addBackdrop deleteTexture addModifier duplicate addOverlay insertBackdrop addToWorld insertOverlay camera newLight child newMesh clone newModel cloneDeep newModelResource cloneModelFromCastmember newMotion() cloneMotionFromCastmember newShader deleteCamera newTexture deleteGroup removeModifier deleteLight removeBackdrop deleteModel removeFromWorld deleteModelResource removeOverlay deleteMotion Détection des collisions Les termes suivants sont utilisés pour détecter et répondre aux collisions entre modèles : collision (modificateur) pointOfContact collisionData registerForEvent() collisionNormal registerScript() enabled (collision) resolve immovable resolveA mode (collision) resolveB modelA setCollisionCallback() modelB Lingo 3D par fonction 35 Divers clearAtRender resetWorld clearValue revertToWorldDefaults directToStage sendEvent loadFile() setCollisionCallback() registerForEvent() unregisterAllEvents registerScript() revertToWorldDefaults Fonds et recouvrements Les termes suivants sont utilisés pour manipuler les fonds et les recouvrements des acteurs 3D : addBackdrop regPoint (3D) addOverlay removeBackdrop blend (3D) removeOverlay count rotation (fond et recouvrement) insertBackdrop scale (fond et recouvrement) insertOverlay source loc (fond et recouvrement) Groupes Les termes suivants sont utilisés avec les groupes : addChild newGroup addToWorld pointAt boundingSphere pointAtOrientation child position (transformation) clone removeFromWorld cloneDeep rotate count scale (transformation) deleteGroup transform (propriété) group translate isInWorld() userData name worldPosition Images-objets (3D) Les termes suivants sont utilisés pour contrôler les propriétés des images-objets 3D : rect (caméra) 36 Chapitre 2 registerForEvent() Lecture en flux continu Les termes suivants sont utilisés pour contrôler la lecture en flux continu des acteurs 3D : bytesStreamed (3D) state (3D) preLoad (3D) streamSize (3D) Lumières Les termes suivants sont utilisés pour contrôler les lumières et leurs propriétés : addToWorld pointAt ambientColor pointAtOrientation attenuation position (transformation) boundingSphere removeFromWorld color (lumière) rotate count scale (transformation) clone specular (lumière) cloneDeep spotAngle deleteLight spotDecay directionalColor transform (propriété) directionalPreset translate isInWorld() type (lumière) light userData name worldPosition newLight Matériaux Les termes suivants sont utilisés avec les matériaux : ambient renderStyle blend (3D) shadowPercentage blendConstant shaderList blendConstantList shadowPercentage blendFunction shadowStrength blendFunctionList silhouettes blendSource specular (matériau) blendSourceList specularColor count specularLightMap deleteShader style diffuse textureMode Lingo 3D par fonction 37 diffuseColor textureModeList diffuseLightMap textureRepeat emissive textureRepeatList flat textureTransform glossMap textureTransformList name transparent newShader type (matériau) renderStyle useDiffuseWithTexture region wrapTransformList reflectivity Matériau #engraver Les termes suivants sont utilisés avec le matériau #engraver : density rotation (matériau de gravure) brightness Matériau #newsprint Les termes suivants sont utilisés avec le matériau #newsprint : density brightness Matériau #painter Les termes suivants sont utilisés avec le matériau #painter : colorSteps shadowPercentage highlightPercentage shadowStrength highlightStrength style Modèles Les termes suivants sont utilisés avec les modèles 3D : 38 addToWorld position (transformation) boundingSphere removeFromWorld clone renderStyle cloneDeep resource cloneModelFromCastmember rotate count scale (transformation) deleteModel shadowPercentage Chapitre 2 isInWorld() shaderList model transform (propriété) modifier translate name userData newModel visibility pointAt worldPosition pointAtOrientation Modificateurs Les termes suivants sont pratiques pour appliquer des modificateurs aux modèles et ressources de modèles. Consultez le nom des différents modificateurs pour afficher une liste des termes correspondants. addModifier modifiers count removeModifier modifier Modificateur #inker Les termes suivants sont utilisés pour contrôler le modificateur #inker : boundary lineColor creaseAngle lineOffset creases silhouettes inker (modificateur) useLineOffset Modificateur #toon Les termes suivants sont utilisés pour contrôler le modificateur #toon : boundary lineOffset colorSteps shadowPercentage creaseAngle shadowStrength creases silhouettes highlightPercentage style highlightStrength toon (modificateur) lineColor useLineOffset Modificateur de déformation de maille Les termes suivants sont utilisés pour contrôler le modificateur de déformation de maille : add (texture 3D) normalList face textureCoordinateList Lingo 3D par fonction 39 mesh (propriété) textureLayer meshDeform (modificateur) vertexList (déformation de maille) neighbor Modificateur de fractionnement de surface Les termes suivants sont utilisés pour contrôler la fonction de fractionnement de surface : depth (3D) sds (modificateur) enabled (sds) subdivision error tension Modificateur de lecteur d’images-clés Les termes suivants sont utilisés pour contrôler le modificateur de lecteur d’images-clés : autoblend playing (3D) blendFactor playlist blendTime playNext() (3D) count playRate currentLoopState positionReset currentTime (3D) queue() (3D) keyframePlayer (modificateur) removeLast() lockTranslation rootLock pause() (3D) rotationReset play() (3D) update Modificateur de lecteur de segments Les termes suivants sont utilisés pour contrôler le modificateur de lecteur de segments : autoblend blendTime playing (3D) bonesPlayer (modificateur) playlist count playNext() (3D) currentTime (3D) playRate getBoneID queue() (3D) currentLoopState removeLast() getWorldTransform() rootLock lockTranslation rotationReset positionReset transform (propriété) pause() (3D) 40 play() (3D) Chapitre 2 Modificateur de niveau de détail Les termes suivants sont utilisés pour contrôler la fonction de niveau de détail : auto level bias lod (modificateur) Nœuds Les termes suivants sont utilisés pour gérer les nœuds. Un nœud est un objet de l’univers, tel que les lumières, caméras, modèles et groupes. addToWorld isInWorld() clone name cloneDeep removeFromWorld count userData Nœuds parents et enfants Les termes suivants sont utilisés pour contrôler les relations parents-enfants entre modèles : addChild count child parent Prélèvement Pour plus d’informations, consultez Sélection de modèles. Primitives Les sections suivantes contiennent les termes utilisés pour chaque type de primitive. Utilisez la propriété primitives pour déterminer les types de primitives supportés par le moteur de rendu 3D courant. Boîtes Les termes suivants sont utilisés pour contrôler les propriétés des boîtes 3D : back length (3D) bottom (3D) lengthVertices front right (3D) height (3D) top (3D) heightVertices width (3D) left (3D) widthVertices Lingo 3D par fonction 41 Cylindres Les termes suivants sont utilisés pour contrôler les propriétés des cylindres 3D : bottomCap resolution bottomRadius state (3D) endAngle topCap height (3D) topRadius numSegments Mailles Les termes suivants sont utilisés pour contrôler les propriétés des mailles 3D : build() normalList colorList shadowPercentage count textureCoordinateList face textureCoordinates generateNormals() vertexList (déformation de maille) newMesh Systèmes de particules Les termes suivants sont utilisés pour contrôler les propriétés des systèmes de particules 3D : angle minSpeed blendRange mode (émetteur) colorRange numParticles direction path distribution pathStrength drag region gravity sizeRange (avec début et fin) lifetime texture loop (émetteur) tweenMode maxSpeed wind Plans Les termes suivants sont utilisés pour contrôler les propriétés des plans 3D : 42 length (3D) width (3D) lengthVertices widthVertices Chapitre 2 Sphères Les termes suivants sont utilisés pour contrôler les propriétés des sphères 3D : endAngle resolution radius state (3D) Propriétés système et d’animation Les termes suivants sont utilisés pour déterminer les capacités de l’ordinateur de lecture : active3dRenderer getRendererServices() colorBufferDepth preferred3DRenderer depthBufferDepth renderer getHardwareInfo() rendererDeviceList Ressources de modèle Les termes suivants sont utilisés avec les ressources de modèle 3D : count newModelResource deleteModelResource resolution modelResource resource name type (ressource de modèle) Sélection de modèles Les termes suivants sont utilisés pour permettre la sélection des différents modèles d’un acteur 3D et la réponse aux clics de la souris. On utilise également le terme prélèvement. modelsUnderLoc spriteSpaceToWorldSpace modelsUnderRay worldSpaceToSpriteSpace modelUnderLoc Systèmes de particules Pour plus d’informations, consultez Primitives. Texte 3D Les termes suivants sont utilisés pour contrôler l’apparence du texte 3D : autoCameraPosition displayMode bevelDepth extrude3D bevelType smoothness displayFace tunnelDepth Lingo 3D par fonction 43 Textures Les termes suivants sont utilisés avec les textures : compressed newTexture count quality (3D) deleteTexture renderFormat height (3D) texture member textureRenderFormat name textureType nearFiltering type (texture) Transformations Les termes suivants sont utilisés avec les transformations : 44 duplicate preRotate getWorldTransform() preScale() identity() preTranslate() interpolate() rotate interpolateTo() rotation (transformation) inverse() scale (transformation) invert() transform (propriété) multiply() translate pointAt worldPosition pointAtOrientation xAxis position (transformation) yAxis preMultiply zAxis Chapitre 2 CHAPITRE 3 Dictionnaire Lingo Ce dictionnaire présente la syntaxe et l’usage des divers éléments Lingo de Macromedia Director MX. Les opérateurs non alphabétiques apparaissent en premier, suivis de tous les autres opérateurs classés par ordre alphabétique. Les entrées de ce dictionnaire correspondent à celles de l’aide en ligne de Director. Vous pouvez utiliser les exemples des scripts en copiant le texte de l’aide en ligne et en le collant dans la fenêtre Script. # (symbole) Syntaxe #nomDeSymbole Description Opérateur de symbole ; définit un symbole, unité autonome pouvant représenter une condition ou un indicateur. La valeur nomDeSymbole commence par un caractère alphabétique et peut être suivie de plusieurs caractères alphabétiques ou numériques. Un symbole vous permet d’effectuer les opérations suivantes : • • • • Affecter une valeur à une variable. Comparer des chaînes, des entiers, des rectangles et des points. Passer un paramètre à un gestionnaire ou à une méthode. Renvoyer une valeur à partir d’un gestionnaire ou d’une méthode. Les symboles prennent moins de place que les chaînes et sont plus facilement manipulables, mais ne sont pas formés de caractères individuels de la même manière qu’une chaîne. Vous pouvez convertir un symbole en chaîne pour l’afficher, à l’aide de la fonction string. Les points suivants concernant la syntaxe des symboles sont très importants : • La différence entre les majuscules et les minuscules n’a pas d’importance dans les symboles. • Les symboles ne peuvent pas commencer pas un chiffre. • Vous ne pouvez pas utiliser d’espaces, mais pouvez employer des caractères de soulignement pour les simuler. • Les symboles utilisent les 128 caractères ASCII. Les lettres portant des marques diacritiques ou d’accent sont traitées en fonction de leur lettre de base. • Vous ne pouvez pas utiliser de points dans les symboles. 45 Tous les symboles, variables globales et noms de paramètres transmis aux variables globales sont conservés dans une table commune. Exemple L’instruction suivante affecte le symbole #Lecture à la variable nommée état : état = #Lecture Voir aussi ilk(), string(), symbol(), symbolP() . (opérateur point) Syntaxe référenceDobjet.propriétéDobjet expressionTest.propriétéDobjet objet.commandeOuFonction() Description Opérateur ; utilisé pour tester ou définir les propriétés des objets, émettre une commande ou exécuter une fonction de l’objet. L’objet peut être un acteur, une image-objet, une liste de propriétés, un objet enfant d’un script parent ou un comportement. Exemples L’instruction suivante indique l’acteur courant contenu dans l’image-objet de la piste 10 : put sprite(10).member Pour utiliser une autre syntaxe et appeler une fonction, utilisez la forme : monObjetCouleur = color(#rgb, 124, 22, 233) put monObjetCouleur.ilk() -- #color - (signe moins) Syntaxe (Négation) : -expression Description Opérateur mathématique ; inverse le signe de la valeur de l’expression. Cet opérateur arithmétique a un niveau de priorité de 5. Syntaxe (Soustraction) : expression1 - expression2 Description Opérateur mathématique ; effectue la soustraction arithmétique de deux expressions numériques, soustrayant expression2 de expression1. Si les deux expressions sont des nombres entiers, la différence est également un nombre entier. Si l’une ou les deux expressions sont des nombres à virgule flottante, la différence est un nombre à virgule flottante. Cet opérateur arithmétique a un niveau de priorité de 3. 46 Chapitre 3 Exemples (Négation) : L’instruction suivante inverse le signe de l’expression 2 + 3 : put -(2 + 3) Le résultat est -5. (Soustraction) : L’instruction suivante soustrait le nombre entier 2 de 5 et affiche le résultat dans la fenêtre Messages : put 5 - 2 Le résultat est 3, qui est un nombre entier. (Soustraction) : Cette instruction soustrait le nombre à virgule flottante 1,5 de 3,25 et affiche le résultat dans la fenêtre Messages : put 3.25 - 1.5 Le résultat est 1,75, qui est un nombre à virgule flottante. -- (séparateur de commentaires) Syntaxe -- commentaire Description Séparateur de commentaires ; indique le début d’un commentaire dans un script. Dans n’importe quelle ligne de code, ce qui se trouve entre le symbole de commentaire (double trait d’union) et le caractère de retour chariot est interprété comme un commentaire, et non comme une instruction Lingo. Le lecteur Director pour Java accepte le Lingo utilisant ce séparateur, mais les commentaires ne figurent pas dans le code Java final. Exemple Le gestionnaire suivant utilise un double trait d’union pour transformer les deuxième, quatrième et sixième lignes en commentaire : on razCouleurs -- Ce gestionnaire réinitialise les couleurs de l’image-objet. sprite(1).forecolor = 35 -- rouge vif sprite(1).backcolor = 36 -- bleu clair end & (opérateur de concaténation) Syntaxe expression1 & expression2 Description Opérateur de chaîne ; concatène les chaînes de deux expressions. Si expression1 ou expression2 est un nombre, elle est d’abord convertie en chaîne. Le résultat est une chaîne. Cet opérateur de chaîne a un niveau de priorité de 2. Dictionnaire Lingo 47 Sachez que Lingo vous permet d’utiliser certaines commandes et fonctions ne prenant qu’un seul argument sans que ce dernier soit encadré de parenthèses. Lorsque l’argument comprend un opérateur, Lingo n’interprète que le premier argument comme partie de la fonction, ce qui risque de provoquer une confusion. Par exemple, la commande open window permet à un argument de spécifier une fenêtre à ouvrir. Si vous utilisez l’opérateur & pour définir un nom de fichier et un chemin, Director n’interprète que la chaîne précédant l’opérateur & comme nom de fichier. Par exemple, Lingo interprète l’instruction open window the applicationPath & "Animation" comme (open window the applicationPath) & ("Animation"). Evitez ce problème en encadrant de parenthèses l’expression comprenant un opérateur, comme suit : open window (the applicationPath & "Animation") Les parenthèses suppriment toute confusion en modifiant la priorité avec laquelle Lingo traite l’opérateur, l’entraînant à traiter les deux parties de l’argument comme un argument complet. Exemples L’instruction suivante concatène les chaînes « abra » et « cadabra » et affiche la chaîne résultante dans la fenêtre Messages : put "abra" & "cadabra" Le résultat est la chaîne « abracadabra ». L’instruction suivante concatène le contenu de la variable prix et la chaîne « euros ». La chaîne concaténée est alors affectée à l’acteur champ Prix : member("Prix").text = prix & "euros" && (opérateur de concaténation) Syntaxe expression1 && expression2 Description Opérateur de chaîne ; concatène deux expressions et insère une espace entre les expressions chaînes d’origine. Si expression1 ou expression2 est un nombre, elle est d’abord convertie en chaîne. Le résultat est une chaîne. Cet opérateur de chaîne a un niveau de priorité de 2. Exemples L’instruction suivante concatène les chaînes « abra » et « cadabra » et insère une espace entre les deux chaînes : put "abra" && "cadabra" Le résultat est la chaîne « abra cadabra ». L’instruction suivante concatène les chaînes « Date : » et la date d’aujourd’hui au format long et insère une espace entre les deux chaînes : put "Date :" && the long date Si la date du jour est le mardi 30 juillet 2000, le résultat est la chaîne « Date : Mardi 30 juillet 2000 ». 48 Chapitre 3 () (parenthèses) Syntaxe (expression) Description Opérateur de regroupement ; effectue une opération de regroupement pour contrôler l’ordre d’exécution des opérateurs d’une expression. Cet opérateur permet de contrôler l’ordre dans lequel les opérateurs sont exécutés dans cette expression et supplante l’ordre de priorité automatique, de sorte que l’expression entre parenthèses soit évaluée en premier. Lorsque des parenthèses sont imbriquées, le contenu des parenthèses intérieures est évalué avant celui des parenthèses extérieures. Cet opérateur de regroupement a un niveau de priorité de 5. Sachez que Lingo vous permet d’utiliser certaines commandes et fonctions ne prenant qu’un seul argument sans que ce dernier soit encadré de parenthèses. Lorsque l’argument comprend un opérateur, Lingo n’interprète que le premier argument comme partie de la fonction, ce qui risque de provoquer une confusion. Par exemple, la commande open window permet à un argument de spécifier une fenêtre à ouvrir. Si vous utilisez l’opérateur & pour définir un nom de fichier et un chemin, Director n’interprète que la chaîne précédant l’opérateur & comme nom de fichier. Par exemple, Lingo interprète l’instruction open window the applicationPath & "Animation" comme (open window the applicationPath) & ("Animation"). Evitez ce problème en encadrant de parenthèses l’expression comprenant un opérateur, comme suit : open window (the applicationPath & "Animation") Exemple Les instructions suivantes utilisent l’opérateur de regroupement pour modifier l’ordre dans lequel les différentes opérations se produisent (le résultat apparaît en dessous de chaque instruction) : put (2 + 3) * (4 + 5) -- 45 put 2 + (3 * (4 + 5)) -- 29 put 2 + 3 * 4 + 5 -- 19 * (multiplication) Syntaxe expression1 * expression2 Description Opérateur mathématique ; effectue une multiplication arithmétique de deux expressions numériques. Si les deux expressions sont des nombres entiers, le produit est également un nombre entier. Si l’une ou les deux expressions sont des nombres à virgule flottante, le produit est un nombre à virgule flottante. Cet opérateur arithmétique a un niveau de priorité de 4. Dictionnaire Lingo 49 Exemples L’instruction suivante multiplie le nombre entier 2 par 3 et affiche le résultat dans la fenêtre Messages : put 2 * 3 Le résultat est 6, qui est un nombre entier. L’instruction suivante multiplie le nombre à virgule flottante 2,0 par 3,1416 et affiche le résultat dans la fenêtre Messages : put 2.0 * 3,1416 Le résultat est 6.2832, qui est un nombre à virgule flottante. + (addition) Syntaxe expression1 + expression2 Description Opérateur mathématique ; effectue une somme arithmétique de deux expressions numériques. Si ces deux expressions sont des nombres entiers, la somme est également un nombre entier. Si l’une ou les deux expressions sont des nombres à virgule flottante, la somme est un nombre à virgule flottante. Cet opérateur arithmétique a un niveau de priorité de 4. Exemples L’instruction suivante additionne les nombres entiers 2 et 3, puis affiche le résultat (le nombre entier 5) dans la fenêtre Messages : put 2 + 3 L’instruction suivante additionne les nombres à virgule flottante 2,5 et 3,25, puis affiche le résultat (le nombre à virgule flottante 5,7500) dans la fenêtre Messages : put 2,5 + 3,25 + (addition) (3D) Syntaxe vecteur1 + vecteur2 vecteur + scalaire Description Opérateur 3D de vecteur ; ajoute les composants de deux vecteurs, ou la valeur scalaire à chaque composant du vecteur, et renvoie un nouveau vecteur. vecteur1 vecteur2 + vecteur2 ajoute les composants de vecteur1 au composant correspondant de et renvoie un nouveau vecteur. + scalaire ajoute la valeur scalaire à chaque composant du vecteur et renvoie un nouveau vecteur. vecteur 50 Chapitre 3 - (soustraction) Syntaxe vecteur1 - vecteur2 vecteur - scalaire Description Opérateur 3D de vecteur ; soustrait les composants de vecteur2 des composants correspondants de vecteur1, ou soustrait la valeur scalaire de chacun des composants et renvoie un nouveau vecteur. vecteur1 vecteur1 - vecteur2 soustrait les valeurs de vecteur2 des composants correspondants de et renvoie un nouveau vecteur. vecteur - scalaire soustrait la valeur scalaire de chaque composant du vecteur et renvoie un nouveau vecteur. * (multiplication) Syntaxe vecteur1 * vecteur2 vecteur * scalaire transformation * vecteur Description Opérateur 3D de vecteur ; multiplie les composants de vecteur1 par les composants correspondants de vecteur2, et renvoie le produit, ou multiplie chaque composant du vecteur par la valeur scalaire et renvoie un nouveau vecteur. * vecteur2 renvoie le produit de deux vecteurs, qui n’est pas un nouveau vecteur. Cette opération est équivalente à vecteur1.dotproduct.vecteur2. vecteur1 * scalaire multiplie chaque composant du vecteur par la valeur scalaire et renvoie un nouveau vecteur. vecteur transformation * vecteur multiplie la transformation par le vecteur et renvoie un nouveau vecteur. Le nouveau vecteur est le résultat de l’application des modifications de position et de rotation définies par transformation à vecteur. Vous remarquerez que vecteur * transformation n’est pas supporté. Voir aussi dotProduct() / (division) Syntaxe expression1 / expression2 Description Opérateur mathématique ; effectue une division arithmétique de deux expressions numériques, divisant expression1 par expression2. Si ces deux expressions sont des nombres entiers, le quotient est également un nombre entier. Si l’une ou les deux expressions sont des nombres à virgule flottante, le quotient est un nombre à virgule flottante. Cet opérateur arithmétique a un niveau de priorité de 4. Dictionnaire Lingo 51 Exemples L’instruction suivante divise le nombre entier 22 par 7, puis affiche le résultat dans la fenêtre Messages : put 22/7 Le résultat est 3. Puisque les deux nombres de la division sont des nombres entiers, Lingo arrondit le résultat au nombre entier le plus proche. L’instruction suivante divise le nombre à virgule flottante 22,0 par 7,0, puis affiche le résultat dans la fenêtre Messages : put 22.0/7.0 Le résultat est 3.1429, qui est un nombre à virgule flottante. / (division) (3D) Syntaxe vecteur / scalaire Description Opérateur 3D de vecteur ; divise chaque composant du vecteur par la valeur scalaire et renvoie un nouveau vecteur. < (inférieur à) Syntaxe expression1 < expression2 Description Opérateur de comparaison ; compare deux expressions et détermine si expression1 est inférieure à expression2 (TRUE) ou si expression1 est supérieure ou égale à expression2 (FALSE). Cet opérateur peut comparer des chaînes, des nombres entiers, des nombres à virgule flottante, des rects et des points. Sachez que les comparaisons effectuées sur les rects ou les points sont traitées comme s’il s’agissait de listes, avec chaque élément de la première liste comparé à l’élément correspondant de la seconde liste. Il s’agit d’un opérateur de comparaison avec niveau de priorité de 1. <= (inférieur ou égal à) Syntaxe expression1 <= expression2 Description Opérateur de comparaison ; compare deux expressions et détermine si expression1 est inférieure ou égale à expression2 (TRUE) ou si expression1 est supérieure à expression2 (FALSE). Cet opérateur peut comparer des chaînes, des nombres entiers, des nombres à virgule flottante, des rects et des points. Sachez que les comparaisons effectuées sur les rects ou les points sont traitées comme s’il s’agissait de listes, avec chaque élément de la première liste comparé à l’élément correspondant de la seconde liste. Il s’agit d’un opérateur de comparaison avec niveau de priorité de 1. 52 Chapitre 3 <> (différent de) Syntaxe expression1 <> expression2 Description Opérateur de comparaison ; compare deux expressions, symboles ou opérateurs et détermine si expression1 n’est pas égale à expression2 (TRUE) ou si expression1 est égale à expression2 (FALSE). Cet opérateur peut comparer des chaînes, des nombres entiers, des nombres à virgule flottante, des rects et des points. Sachez que les comparaisons effectuées sur les rects ou les points sont traitées comme s’il s’agissait de listes, avec chaque élément de la première liste comparé à l’élément correspondant de la seconde liste. Il s’agit d’un opérateur de comparaison avec niveau de priorité de 1. = (signal égal à) Syntaxe expression1 = expression2 Description Opérateur de comparaison ; compare deux expressions, symboles ou objets et détermine si expression1 est égale à expression2 (TRUE) ou si expression1 n’est pas égale à expression2 (FALSE). Cet opérateur peut comparer des chaînes, des nombres entiers, des nombres à virgule flottante, des rects, des listes et des points. Les listes sont comparées sur la base du nombre d’éléments qu’elles contiennent. La liste contenant le plus d’éléments est considérée comme plus longue que la liste contenant moins d’éléments. Il s’agit d’un opérateur de comparaison avec niveau de priorité de 1. > (supérieur à) Syntaxe expression1 > expression2 Description Opérateur de comparaison ; compare deux expressions et détermine si expression1 est supérieure à expression2 (TRUE) ou si expression1 est inférieure ou égale à expression2 (FALSE). Cet opérateur peut comparer des chaînes, des nombres entiers, des nombres à virgule flottante, des rects et des points. Sachez que les comparaisons effectuées sur les rects ou les points sont traitées comme s’il s’agissait de listes, avec chaque élément de la première liste comparé à l’élément correspondant de la seconde liste. Il s’agit d’un opérateur de comparaison avec niveau de priorité de 1. Dictionnaire Lingo 53 > = (supérieur ou égal à) Syntaxe expression1 >= expression2 Description Opérateur de comparaison ; compare deux expressions et détermine si expression1 est supérieure ou égale à expression2 (TRUE) ou si expression1 est inférieure à expression2 (FALSE). Cet opérateur peut comparer des chaînes, des nombres entiers, des nombres à virgule flottante, des rects et des points. Sachez que les comparaisons effectuées sur les rects ou les points sont traitées comme s’il s’agissait de listes, avec chaque élément de la première liste comparé à l’élément correspondant de la seconde liste. Il s’agit d’un opérateur de comparaison avec niveau de priorité de 1. [ ] (crochets d’accès) Syntaxe expressionTexte[numéroDeSousChaîneAdressée] expressionTexte[premièreSousChaîne..dernièreSousChaîne] Description Opérateur ; permet de désigner une expression de sous-chaîne par un nombre. Cette fonction est utile pour trouver la nième sous-chaîne de l’expression. Cette expression peut être un mot, une ligne, un caractère, un paragraphe ou une autre sous-chaîne d’un acteur texte. Exemple L’instruction suivante renvoie le premier mot de la troisième ligne de l’acteur texte Prénoms : put member("Prénoms").text.line[3].word[1] [ ] (liste) Syntaxe [entrée1, entrée2, entrée3, ...] Description Opérateur de liste ; spécifie que les entrées contenues dans ces crochets appartiennent à l’un des quatre types de listes suivants : • • • • Listes linéaires non triées Listes linéaires triées Listes de propriétés non triées Listes de propriétés triées Chaque entrée d’une liste linéaire est une valeur unique à laquelle aucune propriété n’est associée. Chaque entrée d’une liste de propriétés est constituée d’une propriété et d’une valeur. La propriété précède la valeur et est séparée de celle-ci par le signe deux points. Vous ne pouvez pas stocker une propriété dans une liste linéaire. Lors de l’utilisation de chaînes comme entrées d’une liste, il convient de placer les chaînes entre guillemets. 54 Chapitre 3 Par exemple, [6, 3, 8] est une liste linéaire. Les nombres qu’elle contient ne sont associés à aucune propriété. Par contre, [#engrenages:6, #billes:3, #rampes:8] est une liste de propriétés. Chaque nombre de cette liste est associé à une propriété, une pièce de machine dans cet exemple. Cette liste de propriétés peut servir à contrôler le nombre de pièces de chaque sorte se trouvant sur la scène dans une simulation mécanique. Les propriétés peuvent apparaître plusieurs fois dans une liste de propriétés. Les listes peuvent être triées en ordre alphanumérique. Une liste linéaire triée est classée selon les valeurs qu’elle contient. Une liste de propriétés triée est classée selon les propriétés qu’elle contient. Le tri d’une liste linéaire ou de propriétés s’opère avec la commande de tri appropriée. • Dans les listes linéaires, les symboles et les chaînes sont sensibles à l’emploi des minuscules ou des majuscules. • Dans les listes de propriétés, les symboles, au contraire des chaînes, ne différencient pas les majuscules des minuscules. Une liste linéaire ou une liste de propriétés peut ne contenir aucune valeur. Une liste vide consiste en deux crochets ([ ]). Pour créer ou supprimer une liste linéaire, affectez-lui la valeur [ ]. Pour créer ou supprimer une liste de propriétés, affectez-lui la valeur [:]. Vous pouvez modifier, tester ou lire les éléments contenus dans les listes. Lingo traite toute instance de liste comme une référence à cette liste. Autrement dit, chaque instance représente les mêmes éléments de données et sa modification modifie l’original. Utilisez la commande duplicate pour créer des copies de listes. Les listes sont automatiquement effacées lorsque aucune variable n’y fait plus référence. Si une liste est référencée dans une variable globale, elle existe d’animation en animation. Vous pouvez initialiser une liste dans le gestionnaire on prepareMovie ou rédiger la liste comme acteur champ, l’affecter à une variable, puis la contrôler par la variable. Tous les claviers ne sont pas forcément équipés de touches de crochets. Le cas échéant, utilisez la fonction list pour créer une liste linéaire. Pour une liste de propriétés, créez les éléments de liste sous forme de chaîne avant de les convertir en une liste utile. set maChaîneListe = numToChar(91) & ":" & numToChar(93) put maChaîneListe -- "[:]" maListe = maChaîneListe.value put maListe -- [:] put maListe.listP -- 1 maListe[#nom] = "Pierre" put maListe -- [#nom: "Pierre"] Exemples L’instruction suivante définit une liste en rendant la variable machine égale à la liste : set machine = [#engrenages:6, #billes:3, #rampes:8] Dictionnaire Lingo 55 Le gestionnaire suivant trie la liste uneListe, puis affiche le résultat dans la fenêtre Messages : on trierListe uneListe uneListe.sort() put uneListe end trierListe Si l’animation émet l’instruction trierListe machine, où machine est la liste de l’exemple précédent, le résultat est [#billes:3, #engrenages:6, #rampes:8]. L’instruction suivante crée une liste linéaire vide : set x = [ ] L’instruction suivante crée une liste de propriétés vide : set x = [:] Voir aussi add, addVertex, append, count(), deleteAt, duplicate() (fonction de liste), findPos, findPosNear, getProp(), getAt, getLast(), getPos(), ilk(), list(), max(), min, setAt, setaProp, sort " (chaîne) Syntaxe " Description Constante de chaîne ; lorsque utilisés avant et après une chaîne, les guillemets droits signifient que la chaîne qu’ils contiennent est une chaîne littérale, et non une variable, une valeur numérique ou un élément Lingo. 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, en l’occurrence le nom d’un acteur : put member("San Francisco").loaded Voir aussi QUOTE ¬ (symbole de continuation) Description Le symbole ¬ est obsolète. Utilisez maintenant le caractère \. Pour plus d’informations, consultez \ (continuation). Il est recommandé de remplacer ce symbole par le symbole \ dans vos scripts antérieurs. 56 Chapitre 3 \ (continuation) Syntaxe 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 ; lorsque 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 : set the memberNum of sprite monImageObjet \ to member "Ceci est un long nom d’acteur." @ (chemin d’accès) Syntaxe @référenceDeChemin Description Opérateur de chemin d’accès ; définit le chemin d’accès du dossier de l’animation en cours et offre l’avantage d’être compris par Windows comme par Macintosh. Identifiez le dossier de l’animation en cours à l’aide du symbole @ suivi de l’un des séparateurs de chemin suivants : • • • / (barre oblique) \ (barre oblique inverse) : (deux points) Lorsqu’une animation est interrogée pour en déterminer l’emplacement, la chaîne renvoyée inclut le symbole @. Veillez à n’utiliser que le symbole @ lorsque vous passez d’une animation Director à une autre ou que vous modifiez la source d’un acteur média lié. Le symbole @ n’a aucun effet lorsque l’Xtra FileIO ou des fonctions autres que celles disponibles dans Director sont utilisés. Vous pouvez vous reposer sur ce chemin pour spécifier des dossiers placés en amont ou en aval du dossier de l’animation en cours. N’oubliez pas que la partie @ représente la position de l’animation en cours et pas nécessairement celle de la projection. • Ajoutez un séparateur de chemin immédiatement à la suite du symbole @ pour spécifier un dossier en amont d’un niveau dans la hiérarchie. • Ajoutez les noms de dossiers et fichiers (séparés par /, \ ou :) à la suite du nom du dossier courant pour spécifier des dossiers et des fichiers placés en aval dans les dossiers. Vous pouvez utiliser des chemins relatifs dans Lingo pour indiquer l’emplacement d’un fichier lié dans un dossier différent de celui contenant l’animation. Dictionnaire Lingo 57 Exemples Ces trois expressions sont équivalentes et spécifient le sous-dossier grosDossier qui se trouve dans le dossier de l’animation courante : @/grosDossier @:grosDossier @\grosDossier Les expressions suivantes sont équivalentes et spécifient le fichier fichierLié, dans le sous-dossier grosDossier, qui se trouve dans le dossier de l’animation courante : @:grosDossier:fichierLié @\grosDossier\fichierLié @/grosDossier/fichierLié Exemples L’expression suivante spécifie le fichier fichierLié, qui se trouve un niveau en amont du dossier contenant l’animation courante : @//fichierLié L’expression suivante spécifie le fichier fichierLié, qui se trouve deux niveaux en amont du dossier contenant l’animation courante : @:::fichierLié Les expressions suivantes sont équivalentes et servent à spécifier le fichier fichierLié, qui se trouve dans le dossier autreDossier. Le dossier autreDossier se trouve un niveau en amont du dossier contenant l’animation courante. @::autreDossier:fichierLié @\\autreDossier\fichierLié @//autreDossier/fichierLié Voir aussi searchPath, fileName (propriété de distribution), fileName (propriété d’acteur), fileName (propriété de fenêtre) abbr, abbrev, abbreviated Ces éléments sont utilisés par les fonctions date et time. Voir aussi date() (horloge du système) abort Syntaxe 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 de ce(s) gestionnaire(s). 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. 58 Chapitre 3 Exemple L’instruction suivante indique à Lingo de sortir du gestionnaire courant et de tout gestionnaire qui l’a appelé si la quantité de mémoire disponible est inférieure à 50 Ko : if the freeBytes < 50*1024 then abort Voir aussi exit, halt, quit abs() Syntaxe abs (expressionNumérique) Description Fonction mathématique ; calcule la valeur absolue d’une expression numérique. Si expressionNumérique est un nombre entier, sa valeur absolue est également un nombre entier. Si expressionNumérique est un nombre à virgule flottante, sa valeur absolue est également un nombre à virgule flottante. La fonction abs sert à plusieurs choses. 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. 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 startV est supérieure à 30 (puisque vous n’allez pas utiliser un nombre négatif pour exprimer une distance). Le cas échéant, la couleur de premier plan de l’image-objet 6 est modifiée. if (the mouseV - startV).abs > 30 then sprite(6).forecolor = 95 actionsEnabled Syntaxe the actionsEnabled of sprite quelleImageObjetFlash the actionsEnabled of member quelActeurFlash sprite quelleImageObjetFlash.actionenabled member quelActeurFlash.actionenabled Description Propriété d’acteur et propriété d’image-objet ; contrôle si les actions d’une animation Flash sont activées (TRUE, valeur par défaut) ou désactivées (FALSE). Cette propriété peut être testée et définie. Exemple Le gestionnaire suivant accepte une référence d’image-objet comme paramètre, puis active ou désactive la propriété actionsEnabled de l’image-objet. Dictionnaire Lingo 59 Syntaxe à point : on ToggleActions quelleImageObjet sprite (quelleImageObjet).actionsEnabled = not sprite (quelleImageObjet).actionsEnabled end Syntaxe verbose : on ToggleActions quelleImageObjet set the actionsEnabled of sprite quelleImageObjet = not the actionsEnabled of sprite quelleImageObjet end activateApplication Syntaxe on activateApplication 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 : on activateApplication sound(1).queue(member("sonDouverture")) sound(1).play() end Voir aussi deactivateApplication, activeCastLib, on deactivateWindow on activateWindow Syntaxe on activateWindow instruction(s) end 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. 60 Chapitre 3 Le fait de cliquer sur l’animation principale (la scène principale) ne génère pas de gestionnaire on activateWindow. Exemple Le gestionnaire suivant lit le son Hourra lorsque la fenêtre dans laquelle l’animation est exécutée devient active : on activateWindow puppetSound 2, "Hourra" end Voir aussi activeWindow, close window, on deactivateWindow, frontWindow, on moveWindow, open active3dRenderer Syntaxe the active3dRenderer Description Propriété d’animation Lingo 3D ; indique le moteur de rendu utilisé par l’animation pour le dessin des images-objets 3D. Cette propriété est l’équivalent de la propriété getRendererServices().renderer. Les valeurs possibles de la propriété active3DRenderer sont #openGL, #directX7_0 et #directX5_2, ainsi que #software. Les valeurs #openGL, #directX7_0 et #directX5_2, qui représentent des pilotes de carte vidéo, permettront d’obtenir de meilleures performances que #software, un moteur de rendu logiciel utilisé lorsque aucune des trois premières options n’est disponible. La propriété active3dRenderer peut être testée mais pas définie. Vous getRendererServices().renderer pour définir cette propriété. devrez utiliser Exemples Les exemples ci-dessous indiquent les deux façons de déterminer le moteur de rendu en cours d’utilisation. put the active3dRenderer -- #openGL put getRendererServices().renderer -- #openGL Voir aussi renderer, rendererDeviceList, getRendererServices() activeCastLib Syntaxe the activeCastLib Description Propriété système ; indique la distribution la plus récemment activée. La valeur de la propriété activeCastLib correspond au numéro de cette distribution. La propriété activeCastLib est utile lors de l’utilisation de la propriété selection castLib. Utilisez-la pour déterminer la distribution à laquelle la sélection fait référence. Dictionnaire Lingo 61 Cette propriété peut être testée, mais pas définie. Exemple Les instructions suivantes affectent les acteurs sélectionnés de la distribution la plus récemment sélectionnée à la variable acteursSélectionnés : castLibDintérêt = the activeCastLib acteursSélectionnés = castLib(castLibDintérêt).selection Une façon équivalente de rédiger cette instruction serait : acteursSélectionnés = castLib(the activeCastLib).selection activeWindow Syntaxe the activeWindow Description Propriété d’animation ; indique la fenêtre d’animation active. Dans le cas de l’animation principale, activeWindow correspond à la scène. Dans le cas d’une animation dans une fenêtre, activeWindow est l’animation dans la fenêtre. Exemple L’exemple suivant place le mot Active dans la barre de titre de la fenêtre sur laquelle l’utilisateur a cliqué et place le mot Inactive dans la barre de titre de toutes les autres fenêtres ouvertes : on activateWindow set fenêtreCliquée = (the windowlist).getPos(the activeWindow) set nombreDeFenêtres = (the windowlist).count repeat with x = 1 to nombreDeFenêtres if x = fenêtreCliquée then (the activeWindow).title = "Active" else (the windowlist[x]).title = "Inactive" end if end repeat end Voir aussi activeCastLib, windowList actorList Syntaxe the actorList Description Propriété d’animation ; liste d’objets enfants explicitement ajoutés à cette liste. Les objets d’actorList reçoivent un message stepFrame à chaque passage de la tête de lecture sur une image. Pour ajouter un objet à the actorList, utilisez add actorList, Lobjet. Le gestionnaire on stepFrame de l’objet dans son script parent ou ancêtre sera exécuté automatiquement à chaque avancée d’image. 62 Chapitre 3 Pour supprimer les objets de la liste the actorList, affectez-lui la valeur [ ], qui rend cette liste vide. 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 empêcher le transfert des objets enfants de l’animation courante à la nouvelle animation, insérez l’instruction set the actorList = [ ] dans le gestionnaire on prepareMovie de la nouvelle animation. Contrairement aux versions précédentes de Director, la propriété actorList est maintenant supportée dans le lecteur Director pour Java. Exemples L’instruction suivante ajoute un objet enfant créé à partir du script parent Balle roulante. Les trois valeurs sont des paramètres dont le script a besoin. add the actorList, new(script "Balle roulante", 1, 200,200) L’instruction suivante affiche le contenu d’actorList dans la fenêtre Messages : put the actorList L’instruction suivante efface les objets d’actorList. the actorList = [ ] Voir aussi new() add Syntaxe listeLinéaire.add(valeur) add listeLinéaire, valeur Description Commande de liste ; ajoute, pour les listes linéaires uniquement, la valeur spécifiée par valeur à la liste linéaire spécifiée par listeLiné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, utilisée dans une liste de propriétés provoque une erreur. 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. Exemples Les instructions suivantes ajoutent la valeur 2 à la liste nommée devis. La liste résultante est [3, 4, 1, 2]. devis = [3, 4, 1] devis.add(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. devis.add(2) Voir aussi sort Dictionnaire Lingo 63 add (texture 3D) Syntaxe 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 Exemple L’instruction suivante crée une nouvelle couche de texture pour la première maille du modèle Oreille. member("Scène").model("Oreille").meshdeform.mesh[1].\ textureLayer.add() Voir aussi meshDeform (modificateur), textureLayer, textureCoordinateList addAt Syntaxe liste.AddAt(position, valeur) addAt liste, position, valeur Description Commande de liste ; ajoute, pour les listes linéaires uniquement, la valeur spécifiée par valeur à la liste à la position spécifiée par position. Cette commande, utilisée avec une liste de propriétés provoque une erreur. 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]. 64 Chapitre 3 addBackdrop Syntaxe 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. Ce fond est affiché dans l’image-objet 3D à l’emplacementDansLimageObjet avec la rotation indiquée. Le paramètre emplacementDansLimageObjet est l’emplacement 2D mesuré à partir du coin supérieur gauche de l’image-objet. Exemples 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 addCamera Syntaxe sprite(quelleImageObjet).addCamera(quelleCaméra, index) Description Commande 3D ; ajoute la caméra quelleCaméra, à la position index donnée, à la liste des caméras de l’image-objet. Si la valeur index est supérieure à la valeur de cameraCount(), la caméra est ajoutée à la fin de la liste. 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. 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 : sprite(12).addCamera(member("scène").camera("caméraDeVol"), 5) Voir aussi cameraCount(), deleteCamera Dictionnaire Lingo 65 addChild Syntaxe member(quelActeur).nœud(quelNœudParent).addChild(member\ (quelActeur).nœud(quelNœudEnfant) {,#conserverLunivers?}) Description Commande 3D ; ajoute le nœud quelNœudEnfant à la liste des enfants du nœud quelNœudParent et le supprime de la liste des enfants de son parent précédent. Un argument nœud peut être un modèle, un groupe, une caméra ou une lumière. Une opération équivalente serait de donner à la propriété parent de quelNœudEnfant la valeur quelNœudParent. Le paramètre facultatif #conserverLunivers? a deux valeurs possibles : #preserveWorld ou #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. Exemples L’instruction suivante ajoute le modèle Pneu à la liste des enfants du modèle Voiture. 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. member("3D").camera("maCaméra").addChild(member("3D").model\ ("Oiseau"), #preserveWorld) Voir aussi parent, addToWorld, removeFromWorld addModifier Syntaxe member(quelActeur).model(quelModèle).addModifier\ (#typeDeModificateur) Description Commande 3D de modèle ; ajoute le modificateur spécifié au modèle. Les modificateurs possibles sont les suivants : • • • • • • • • #bonesPlayer #collision #inker #keyframePlayer #lod (niveau de détail) #meshDeform #sds #toon Il n’existe aucune valeur par défaut pour cette commande. Pour plus d’informations, consultez les entrées des différents modificateurs. 66 Chapitre 3 Exemple L’instruction suivante ajoute le modificateur toon au modèle Boîte. member("formes").model("Boîte").addModifier(#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 Syntaxe 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 de la caméra. Ce recouvrement est affiché dans l’image-objet 3D à l’emplacementDansLimageObjet avec la rotation indiquée. Le paramètre emplacementDansLimageObjet est l’emplacement 2D mesuré à partir du coin supérieur gauche de l’image-objet. Exemples 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. 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) Voir aussi removeOverlay addProp Syntaxe liste.addProp(propriété, valeur) addProp liste, propriété, valeur Description Commande de liste de propriétés ; ajoute, pour les listes de propriétés uniquement, la propriété spécifiée par propriété et la valeur spécifiée par valeur à la liste de propriétés spécifiée par liste. 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, Lingo en crée une copie. Pour é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. Dictionnaire Lingo 67 Cette commande provoque une erreur lorsque utilisée avec une liste linéaire. Exemples 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 en 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, Lingo 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 Syntaxe 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 Univers. 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. Exemple L’instruction suivante ajoute le modèle gbCyl à l’univers 3D de l’acteur Scène. member("Scène").model("gbCyl").addToWorld() Voir aussi isInWorld(), removeFromWorld addVertex Syntaxe member(réfActeur).AddVertex(indexOùAjouter, pointOùAjouterSommet \ {,[ emplacementH, emplacementV ], [ emplacementH, emplacementV ]}) addVertex(member réfActeur, indexOùAjouter, pointOùAjouterSommet \ {,[emplacementH, emplacementV], [emplacementH,emplacementV]}) Description Commande de formes vectorielles ; ajoute un nouveau sommet à un acteur forme vectorielle à la position spécifiée. 68 Chapitre 3 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 relativement à 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). 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 : member("Archie").addVertex(2, point(25, 15)) Voir aussi vertexList, moveVertex(), deleteVertex(), originMode after Consultez put...after alert Syntaxe alert message Description Commande ; déclenche un bip sonore du système et affiche une boîte de dialogue d’alerte contenant la chaîne spécifiée par message ainsi qu’un bouton OK. Cette commande est pratique pour fournir des messages d’alerte pouvant contenir un maximum de 255 caractères. Le message doit être une chaîne. Pour inclure une variable sous forme de nombre dans le message d’alerte, utilisez la fonction string afin de convertir la variable en chaîne. Exemples L’instruction suivante crée un message d’alerte indiquant qu’aucun lecteur de CD-ROM n’est connecté : alert "Aucun lecteur de CD-ROM n’est connecté." L’instruction suivante crée un message d’alerte indiquant qu’un fichier est introuvable : alert "Le fichier" && QUOTE & nomDuFichier & QUOTE && "est introuvable." Voir aussi string(), alertHook Dictionnaire Lingo 69 alertHook Syntaxe the alertHook Description Propriété système ; spécifie un script parent contenant le gestionnaire on alertHook. Utilisez alertHook pour contrôler l’affichage de messages d’alerte concernant des erreurs de fichiers ou des erreurs de script Lingo. Si une erreur survient alors qu’un script parent est affecté à alertHook, Director exécute le gestionnaire on alertHook dans le script parent. Bien qu’il soit possible de placer des gestionnaires on alertHook dans des scripts d’animation, il est vivement recommandé de placer un gestionnaire on alertHook dans un script parent ou de comportement afin de ne pas risquer d’appeler accidentellement le gestionnaire depuis divers emplacements, ce qui risquerait de créer une certaine confusion quant à l’emplacement de l’erreur. Le gestionnaire on alertHook étant exécuté en cas d’erreur, évitez de l’utiliser pour le Lingo ne servant pas à traiter les erreurs. Par exemple, le gestionnaire on alertHook n’est pas l’emplacement approprié pour inclure une instruction go to movie. Le gestionnaire on alertHook reçoit un argument d’instance, deux arguments de chaîne décrivant l’erreur et un argument facultatif spécifiant un événement supplémentaire invoquant le gestionnaire. Le quatrième argument peut avoir une de ces quatre valeurs : • • #alert • • #script – provoque le déclenchement du gestionnaire, par la commande alert. #movie – provoque le déclenchement du gestionnaire, par une erreur de fichier introuvable lors de l’exécution de la commande go to movie. – provoque le déclenchement du gestionnaire, par une erreur de script. #safeplayer safePlayer. – provoque le déclenchement du gestionnaire, par la vérification de la propriété Suivant le Lingo qu’il contient, le gestionnaire on alertHook peut ignorer l’erreur ou la signaler d’une autre façon. Exemple L’instruction suivante spécifie que le script parent Alerte est le script déterminant si une alerte doit être affichée lorsqu’une erreur se produit. Si une erreur se produit, Lingo affecte les chaînes d’erreur et de message à l’acteur champ Sortie et renvoie la valeur 1. on prepareMovie the alertHook = script "Alerte" end -- script parent "Alerte" on alertHook me, err, msg member("Sortie").text = err && msg return 1 end Voir aussi safePlayer 70 Chapitre 3 alignment Syntaxe member(quelActeur).alignment the alignment of member quelActeur Description Propriété d’acteur ; détermine l’alignement utilisé pour afficher des caractères dans l’acteur champ spécifié. Cette propriété s’applique uniquement aux acteurs champ et texte qui contiennent des caractères (une espace suffit). Pour les acteurs champ, la valeur de la propriété est une chaîne contenant l’un des termes suivants : left, center ou right. Pour les acteurs texte, la valeur de la propriété est un symbole contenant l’un des éléments suivants : #left, #center, #right ou #full. Le paramètre quelActeur peut être le nom ou le numéro d’un acteur. Cette propriété peut être testée et définie. Pour les acteurs texte, la propriété peut être définie paragraphe par paragraphe. Exemples L’instruction suivante donne à la variable intitulée alignementDeCaractère la valeur courante de alignment pour l’acteur champ Pierre : Syntaxe à point : alignementDeCaractère = member("Pierre").alignment Syntaxe verbose : set alignementDeCaractère = the alignment of member "Pierre" Cette boucle de répétition définit successivement l’alignement de l’acteur champ Jacques sur la gauche, au centre puis à droite : Syntaxe à point : repeat with i = 1 to 3 member("Jacques").alignment = ("left center right").word[i] end repeat Syntaxe verbose : repeat with i = 1 to 3 set the alignment of member "Jacques" to word i of "left center right" end repeat Voir aussi text, font, lineHeight (propriété d’acteur), fontSize, fontStyle, & (opérateur de concaténation), && (opérateur de concaténation) Dictionnaire Lingo 71 allowCustomCaching Syntaxe the allowCustomCaching Description Propriété d’animation ; contiendra les informations concernant un cache privé dans les futures versions de Director. Cette propriété est, par défaut, TRUE et peut être testée et définie. Voir aussi allowGraphicMenu, allowSaveLocal, allowTransportControl, allowVolumeControl, allowZooming allowGraphicMenu Syntaxe the allowGraphicMenu Description Propriété d’animation ; contrôle la disponibilité de contrôles graphiques dans le menu contextuel lors de la lecture de l’animation dans un environnement Shockwave. Affectez à cette propriété la valeur FALSE si vous préférez afficher un menu textuel plutôt que le menu contextuel graphique. Cette propriété est, par défaut, TRUE et peut être testée et définie. Exemple the allowGraphicMenu = 0 Voir aussi allowSaveLocal, allowTransportControl, allowVolumeControl, allowZooming allowSaveLocal Syntaxe the allowSaveLocal Description Propriété d’animation ; contrôle la disponibilité d’un contrôle d’enregistrement dans le menu contextuel lors de la lecture de l’animation dans un environnement Shockwave. Cette propriété permettra des améliorations dans de futures versions de Shockwave. Cette propriété est, par défaut, TRUE et peut être testée et définie. Voir aussi allowGraphicMenu, allowTransportControl, allowVolumeControl, allowZooming 72 Chapitre 3 allowTransportControl Syntaxe the allowTransportControl Description Propriété d’animation ; cette propriété est fournie pour permettre des améliorations dans de futures versions de Shockwave. Cette propriété est, par défaut, TRUE et peut être testée et définie. Voir aussi allowGraphicMenu, allowSaveLocal, allowVolumeControl, allowZooming allowVolumeControl Syntaxe the allowVolumeControl Description Propriété d’animation ; contrôle la disponibilité d’un contrôle de volume dans le menu contextuel lors de la lecture de l’animation dans un environnement Shockwave. L’un des contrôles de volume est activé ou désactivé selon que vous affectez respectivement TRUE ou FALSE à cette propriété. Cette propriété est, par défaut, TRUE et peut être testée et définie. Voir aussi allowGraphicMenu, allowSaveLocal, allowTransportControl, allowZooming allowZooming Syntaxe the allowZooming Description Propriété d’animation ; détermine si l’utilisateur peut agrandir ou zoomer sur l’animation lors de la lecture sur Shockwave et ShockMachine. La valeur par défaut est TRUE. Cette propriété peut être testée et définie. Affectez la valeur FALSE à cette propriété pour empêcher le redimensionnement de l’animation dans un navigateur ou dans ShockMachine. Voir aussi allowGraphicMenu, allowSaveLocal, allowTransportControl, allowVolumeControl Dictionnaire Lingo 73 alphaThreshold Syntaxe member(quelActeur).alphaThreshold the alphaThreshold of member quelActeur Description Propriété d’acteur bitmap ; régit l’incidence de la couche alpha du bitmap sur la détection des clics de souris. Cette propriété peut avoir une valeur de 0 à 255, en exacte correspondance avec les valeurs alpha de la couche alpha pour un bitmap 32 bits. Pour un paramètre alphaThreshold donné, Director détecte un clic de souris si la valeur du pixel correspondant à ce point dans la couche alpha est égale ou supérieure au seuil. Si vous affectez la valeur 0 à alphaThreshold, vous rendez tous les pixels opaques à la détection des clics de souris, quel que soit le contenu de la couche alpha. Voir aussi useAlpha ambient Syntaxe member(quelActeur).shader(quelMatériau).ambient member(quelActeur).model(quelModèle).shader.ambient member(quelActeur).model(quelModèle).shaderList{[index]}.\ ambient Description Propriété 3D de matériau #standard ; indique la quantité de chaque composante de couleur de la lumière ambiante de l’acteur reflétée par le matériau. Par exemple, si la couleur de la lumière ambiante est rgb(255, 255, 255) et la valeur de la propriété ambient du matériau est rgb(255, 0, 0), le matériau reflètera tout la composante rouge de la lumière que les couleurs du matériau peuvent refléter. Toutefois, quelles que soient les couleurs du matériau, il ne reflètera pas les composantes bleue et verte de la lumière. Dans ce cas, s’il n’y a pas d’autres lumières dans la scène, le bleu et le vert du matériau ne refléteront aucune couleur et apparaîtront en noir. La valeur par défaut de cette propriété est rgb(63,63,63). Exemple L’instruction suivante donne à la propriété ambient du modèle Fauteuil la valeur rgb(255, 255, 0). Le modèle Fauteuil reflètera entièrement les composantes rouge et verte de la lumière ambiante et ignorera la composante bleue. member("Pièce").model("Fauteuil").shader.ambient = rgb(255, 0, 0) Voir aussi ambientColor, newLight, type (lumière), diffuse, specular (matériau) 74 Chapitre 3 ambientColor Syntaxe member(quelActeur).ambientColor Description Propriété 3D d’acteur ; indique la couleur rvb de la lumière ambiante par défaut de l’acteur. La valeur par défaut de cette propriété est rgb(0, 0, 0). Cela n’ajoute aucune lumière à la scène. Exemple L’instruction suivante donne à la propriété ambientColor de l’acteur Pièce la valeur rgb(255, 0, La lumière ambiante par défaut de l’acteur sera rouge. Cette propriété peut également être définie dans l’inspecteur des propriétés. 0). member("Pièce").ambientColor = rgb(255, 0, 0) Voir aussi directionalColor, directionalPreset, ambient ancestor Syntaxe property {propriétésOption} ancestor Description Propriété d’objet ; permet aux objets enfants et aux comportements d’utiliser des gestionnaires qui ne sont pas contenus dans le script parent ou le comportement. La propriété ancestor est généralement utilisée avec deux scripts parents ou plus. Vous pouvez utiliser cette propriété pour permettre aux objets enfants et aux comportements de partager certains comportements hérités d’un ancêtre, tout en ayant des comportements différents hérités de leurs parents. Dans le cas des objets enfants, la propriété ancestor est en général affectée dans le gestionnaire on new du script parent. Lorsque vous envoyez un message à un objet enfant et que celui-ci ne dispose pas d’un gestionnaire, ce message est envoyé directement au script défini par la propriété ancestor. Si un comportement a un ancêtre, cet ancêtre reçoit des événements de souris tels que mouseDown et mouseWithin. La propriété ancestor vous permet de modifier le comportement et les propriétés d’un grand nombre d’objets avec une seule commande. Le script ancêtre peut contenir des variables de propriétés indépendantes accessibles par les objets enfants. Pour faire référence aux variables de propriétés du script ancêtre, respectez la syntaxe suivante : me.variableDePropriété = valeur Par exemple, l’instruction suivante fait passer la valeur de la variable de propriété nombreDePattes d’un script ancêtre à 4 : me.nombreDePattes = 4 Dictionnaire Lingo 75 Utilisez la syntaxe the nomDeVariable of nomDeScript pour accéder aux variables de propriétés qui ne sont pas contenues dans l’objet courant. L’instruction suivante permet à la variable monNombreDePattes de l’objet enfant d’accéder à la variable de propriété nombreDePattes du script ancêtre : set monNombreDePattes to the nombreDePattes of me Exemple Chacun des scripts suivants est un acteur. Le script ancêtre Animal et les scripts parents Chien et Homme interagissent pour définir des objets. Le premier script, Chien, paramètre la variable de propriété race sur Bâtard, affecte à the ancestor of Chien le script Animal et donne à la variable nombreDePattes du script ancêtre la valeur 4 : property race, ancestor on new me set race = "Bâtard" set the ancestor of me to new(script "Animal") set the nombreDePattes of me to 4 return me end Le second script, Homme, paramètre la variable de propriété ethnie sur Caucasien, affecte à the le script Animal et donne à la variable nombreDePattes du script ancêtre la valeur 2 : ancestor of Homme property ethnie, ancestor on new me set ethnie to "Caucasien" set the ancestor of me to new(script "Animal") set the nombreDePattes of me to 2 return me end Voir aussi new(), me, property and Syntaxe expressionLogique1 et expressionLogique2 Description Opérateur logique ; détermine si expressionLogique1 et expressionLogique2 ont toutes les deux la valeur TRUE ou si l’une ou les deux expressions ont la valeur FALSE. Cet opérateur logique a un niveau de priorité de 4. Exemples L’instruction suivante détermine si les deux expressions logiques ont la valeur TRUE et affiche le résultat dans la fenêtre Messages : put 1 < 2 and 2 < 3 Le résultat est 1, équivalent numérique de TRUE. 76 Chapitre 3 La première expression logique de l’instruction suivante a la valeur TRUE ; la deuxième a la valeur FALSE. Puisque les deux expressions logiques n’ont pas toutes deux la valeur TRUE, l’opérateur logique renvoie le résultat 0, qui est l’équivalent numérique de la valeur FALSE. put 1 < 2 and 2 < 1 -- 0 Voir aussi not, or angle Syntaxe member(quelActeur).modelResource(quelleRessDeMod).\ emitter.angle Description Propriété 3D d’émission ; décrit la région dans laquelle les particules d’un système de particules sont émises. Un système de particules est une ressource de modèle de type #particle. La principale direction de l’émission des particules est le vecteur défini par la propriété direction de l’émetteur. Toutefois, la direction de l’émission d’une particule donnée déviera de ce vecteur selon un angle aléatoire compris entre 0 et la valeur de la propriété angle de l’émetteur. La plage de cette propriété s’étend de 0.0 à 180.0. La valeur par défaut est 180.0. Exemple L’instruction suivante donne à l’angle d’émission de la ressource de modèle mrFont la valeur 1, ce qui entraîne l’émission des particules en une fine ligne. member("fontaine").modelResource("mrFont").emitter.angle = 1 Voir aussi emitter, direction angleBetween Syntaxe vecteur1.angleBetween(vecteur2) Description Méthode 3D de vecteur ; renvoie l’angle entre deux vecteurs, en degrés. Exemple Dans l’exemple suivant, pos1 est un vecteur sur l’axe des x et pos2 est un vecteur sur l’axe des y. L’angle entre ces deux vecteurs est de 90°. La valeur renvoyée par pos1.angleBetween(pos2) est 90.0000. pos1 = vector(100, 0, 0) pos2 = vector(0, 100, 0) put pos1.angleBetween(pos2) -- 90.0000 Voir aussi dot(), dotProduct() Dictionnaire Lingo 77 animationEnabled Syntaxe member(quelActeur).animationEnabled Description Propriété 3D d’acteur ; indique si les mouvements seront exécutés (TRUE) ou ignorés (FALSE). Cette propriété peut également être définie dans l’inspecteur des propriétés. La valeur par défaut de cette propriété est TRUE. Exemple L’instruction suivante désactive l’animation pour l’acteur Scène. member("Scène").animationEnabled = FALSE antiAlias Syntaxe member(quelActeur).antiAlias sprite(quelleImageObjetVectorielle).antiAlias Description Propriété d’acteur ; contrôle si le rendu d’un acteur texte, Flash ou forme vectorielle repose sur l’anti-aliasing pour assurer une qualité élevée de rendu au détriment de la vitesse de lecture de l’animation. La propriété antiAlias a la valeur TRUE par défaut. Dans le cas des formes vectorielles, la valeur TRUE correspond au paramètre de qualité #high (qualité supérieure) d’un élément Flash, alors que la valeur FALSE correspond au paramètre #low (basse qualité). La propriété antiAlias peut également être utilisée comme propriété d’image-objet et ce, uniquement pour les images-objets forme vectorielle. Cette propriété peut être testée et définie. Exemple Le comportement suivant vérifie le codage des couleurs du moniteur sur lequel l’animation est en cours de lecture. Si ce codage est réglé sur 8 bits ou moins (256 couleurs), le script affecte la valeur FALSE à la propriété antiAlias de l’image-objet. property spriteNum on beginsprite me if the colorDepth <= 8 then sprite(spriteNum).antiAlias = FALSE end if end Voir aussi antiAliasThreshold, quality 78 Chapitre 3 antiAliasingEnabled Syntaxe sprite(quelleImageObjet).antiAliasingEnabled Type Propriété 3D d’image-objet. Description Cette propriété indique si l’univers 3D de l’image-objet quelleImageObjet est anti-aliasé. Elle peut être testée et définie. La valeur par défaut est FALSE, ce qui indique que l’anti-aliasing est désactivé. Si la propriété antiAliasingEnabled a pour valeur TRUE et que le moteur de rendu 3D est remplacé par un moteur ne supportant pas l’anti-aliasing, la propriété prend la valeur FALSE. La valeur de cette propriété n’est pas enregistrée avec l’animation. Les images-objets anti-aliasées imposent une charge supplémentaire au processeur et ont besoin d’une plus grande quantité de mémoire. La désactivation temporaire de l’anti-aliasing peut améliorer les performances des effets d’animation et l’interaction avec l’utilisateur. Exemple L’instruction Lingo suivante vérifie si le moteur de rendu 3D actuel de l’image-objet 2 supporte l’anti-aliasing à l’aide de la propriété antiAliasingSupported. Si l’anti-aliasing est supporté, la seconde instruction active l’anti-aliasing pour l’image-objet avec la propriété antiAliasingEnabled. if sprite(2).antiAliasingSupported = TRUE then sprite(2).antiAliasingEnabled = TRUE end if Voir aussi antiAliasingSupported, renderer, rendererDeviceList antiAliasingSupported Syntaxe sprite(quelleImageObjet).antiAliasingSupported Type Propriété 3D d’image-objet. Description Cette propriété indique si l’anti-aliasing est supporté par le moteur de rendu 3D actuel. Cette propriété peut être testée, mais pas définie. Cette propriété renvoie TRUE ou FALSE. Exemple L’instruction Lingo suivante vérifie si le moteur de rendu 3D actuel de l’image-objet 3 supporte l’anti-aliasing. Si l’anti-aliasing est supporté, la seconde instruction active l’anti-aliasing pour l’image-objet avec la propriété antiAliasingEnabled. if sprite(3).antiAliasingSupported = TRUE then sprite(3).antiAliasingEnabled = TRUE end if Voir aussi antiAliasingEnabled, renderer, rendererDeviceList Dictionnaire Lingo 79 antiAliasThreshold Syntaxe member(quelActeurTexte).antiAliasThreshold Description Propriété d’acteur texte ; contrôle la taille de point à laquelle l’anti-aliasing est automatiquement appliqué à un acteur texte. Elle n’a d’effet que lorsque la propriété antiAlias de l’acteur texte a la valeur TRUE. Le paramètre est un nombre entier indiquant la taille (en points) pour laquelle l’anti-aliasing est exécuté. Cette propriété a une valeur par défaut de 14 points. Voir aussi antiAlias append Syntaxe liste.append(valeur) append liste, valeur Description Commande de liste ; ajoute, pour les listes linéaires uniquement, 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é de cette liste. Cette commande, utilisée avec une liste de propriétés, provoque une erreur de script. Exemple L’instruction suivante ajoute la valeur 2 à la fin de la liste trié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 applicationPath Syntaxe the applicationPath Description Propriété système ; détermine le chemin d’accès ou l’emplacement du dossier contenant l’exemplaire de l’application Director en cours d’exécution pendant la programmation ou le dossier contenant la projection pendant l’exécution. La valeur de la propriété est une chaîne. Si vous utilisez the applicationPath suivi de & et d’un chemin de dossier en aval, encadrez l’expression entière de parenthèses de façon à ce que Lingo l’analyse comme un tout. Ni le lecteur Director pour Java ni Shockwave ne supportent cette propriété. 80 Chapitre 3 Cette propriété peut être testée, mais pas définie. Exemples L’instruction suivante affiche le chemin du dossier contenant l’application Director. put the applicationPath --"Z:\Program Files\Macromedia\Director" L’instruction suivante ouvre l’animation Champs Elysées dans une fenêtre (sur un ordinateur Windows) : open window (the applicationPath & "\Avenues\Champs Elysées") Voir aussi @ (chemin d’accès), moviePath appMinimize Syntaxe appMinimize Description Commande ; sous Windows, appMinimize entraîne la réduction d’une projection en une icône dans la barre d’état. Sur Macintosh, appMinimize entraîne la disparition de la projection. Une fois masquée, la projection peut être rouverte depuis le menu des applications du Macintosh. Cette commande est pratique pour les projections et animations MIAW lues sans barre de titre. Voir aussi windowType atan() Syntaxe (nombre).atan atan (nombre) Description Fonction mathématique ; 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. Exemples 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. Veuillez noter que les fonctions trigonométriques utilisent normalement les radians ; vous devrez peut-être convertir les valeurs de degrés en radians. Le gestionnaire suivant vous permet d’effectuer les conversions de degrés en radians : on degrésEnRadians valeurDeDegré return valeurDeDegré * PI/180 end Dictionnaire Lingo 81 Le gestionnaire suivant 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() attenuation Syntaxe member(quelActeur).light(quelleLumière).attenuation Description Propriété 3D de lumière ; indique les facteurs d’atténuation constante, linéaire et quadratique pour les projecteurs et les points lumineux. La valeur par défaut de cette propriété est vector(1.0, 0.0, 0.0). Exemple L’instruction suivante donne à la propriété attenuation de la lumière Lampe la valeur vector(.5, 0, 0), ce qui l’assombrit légèrement. member("Univers 3D").light("Lampe").attenuation = \ vector(.5, 0, 0) Voir aussi color (lumière) attributeName Syntaxe nœudXML.attributeName[ numéroDattribut ] Description Propriété XML ; renvoie le nom du nœud enfant spécifié d’un document XML analysé. Exemple Avec le code XML suivant : <?xml version="1.0"?> <e1> <nomDeBalise attr1="val1" attr2="val2"/> <e2>élément 2</e2> <e3>élément 3</e3> Exemple de texte </e1> • L’instruction Lingo suivante renvoie le nom du premier attribut de la balise appelée nomDeBalise : put gObjetDanalyse.child[1].child[1].attributeName[1] -- "attr1" Voir aussi attributeValue 82 Chapitre 3 attributeValue Syntaxe nœudXML.attributeValue[ nomOuNuméroDattribut ] Description Propriété XML ; renvoie la valeur du nœud enfant spécifié d’un document XML analysé. Exemple Avec le code XML suivant : <?xml version="1.0"?> <e1> <nomDeBalise attr1="val1" attr2="val2"/> <e2>élément 2</e2> <e3>élément 3</e3> Exemple de texte </e1> L’instruction Lingo suivante renvoie la valeur du premier attribut de la balise appelée nomDeBalise : put gObjetDanalyse.child[1].child[1].attributeValue[1] -- "val1" Voir aussi attributeName audio (RealMedia) Syntaxe sprite(quelleImageObjet).audio member(quelActeur).audio Description Propriété d’acteur ou image-objet RealMedia ; permet de lire (TRUE) ou de mettre en sourdine (FALSE) l’audio du train RealMedia. Le paramètre par défaut de cette propriété est TRUE. Les valeurs entières autres que 1 ou 0 sont traitées comme TRUE. La définition de cette propriété n’a aucun effet si la fonction realPlayerNativeAudio() a pour valeur TRUE. Si la propriété audio a pour valeur FALSE lorsque démarre la lecture d’un acteur RealMedia, la piste audio reste affectée, ce qui vous permet d’activer ou de désactiver le son lors de la lecture. Une certaine latence peut se produire lors de la définition de cette propriété, ce qui signifie qu’un léger délai peut être observé avant l’activation ou la désactivation du son. Exemples Les exemples suivants donnent à la propriété audio de l’image-objet 2 et de l’acteur Real la valeur TRUE, ce qui signifie que la portion audio du train RealMedia sera lue. put sprite(2).audio -- 1 put member("Real").audio -- 1 Dictionnaire Lingo 83 Le code Lingo suivant donne à la propriété audio de l’image-objet 2 et de l’acteur Real la valeur FALSE, ce qui signifie que la portion audio du train RealMedia ne sera pas lue en même temps que l’animation. sprite(2).audio = FALSE member("Real").audio = FALSE Voir aussi soundChannel (RealMedia), video (RealMedia), sound auto Syntaxe member(quelActeur).model(quelModèle).lod.auto Description Propriété de modificateur 3D lod ; permet au modificateur de gérer la réduction des détails dans le modèle au fur et à mesure que la distance entre le modèle et la caméra change. La définition de la propriété bias du modificateur détermine dans quelle mesure le modificateur peut réduire les détails du modèle lorsque la propriété auto a pour valeur TRUE. Le modificateur met sa propriété level à jour en même temps qu’il ajuste le niveau de détails du modèle. La définition de la propriété level n’a aucun effet, sauf lorsque la propriété auto a pour valeur FALSE. Le modificateur #lod ne peut être ajouté qu’aux modèles créés dans un programme de modélisation 3D autre que Director. La valeur de la propriété type des ressources de modèle utilisées par ces modèles est #fromFile. Le modificateur ne peut pas être ajouté aux primitives créées dans Director. Exemple L’instruction suivante donne à la propriété auto du modificateur lod du modèle vaisseauSpatial la valeur TRUE. Le modificateur définira automatiquement le niveau de détails du modèle. member("Univers 3D").model("vaisseauSpatial").lod.auto = TRUE Voir aussi lod (modificateur), bias, level autoblend Syntaxe member(quelActeur).model(quelModèle).\ keyframePlayer.autoblend member(quelActeur).model(quelModèle).bonesPlayer.autoblend Description Propriété de modificateur 3D keyframePlayer et bonesPlayer ; indique si le modificateur crée une transition linéaire entre le mouvement en cours de lecture et le mouvement précédent (TRUE) ou non (FALSE). Si autoBlend est TRUE, la durée de la transition est définie par la propriété blendTime du modificateur. Si autoBlend est FALSE, la transition est contrôlée par la propriété blendFactor du modificateur et blendTime est ignoré. La fusion des mouvements est totalement désactivée lorsque blendTime a pour valeur 0 et autoBlend pour valeur TRUE. La valeur par défaut de cette propriété est TRUE. 84 Chapitre 3 Exemple L’instruction suivante désactive autoblend pour le modèle Martien3. Le paramètre blendFactor pour le modèle sera utilisé pour fusionner plusieurs mouvements successifs de la liste de lecture. member("nouveauMartiens").model("Martien3").keyframePlayer.\ autoblend = FALSE Voir aussi blendFactor, blendTime autoCameraPosition Syntaxe member(quelActeurTexte).autoCameraPosition Description Propriété 3D de caméra ; indique si la caméra de l’acteur texte 3D est automatiquement positionnée pour afficher tout le texte (TRUE) ou non (FALSE). Cela est utile lors de la modification du texte, de la police ou de sa taille, et d’autres propriétés de l’acteur. Cette propriété n’est pas valide avec d’autres types d’acteurs 3D. Exemple L’instruction suivante donne à la propriété autoCameraPosition de l’acteur Titres la valeur FALSE. Lorsque l’acteur est affiché en mode 3D, la caméra n’est pas positionnée automatiquement. member("Titres").autoCameraPosition = FALSE Voir aussi displayMode autoMask Syntaxe member(quelActeurCurseur).autoMask the autoMask of member quelActeur Description Propriété d’acteur ; spécifie si les pixels blancs de l’acteur curseur couleur animé quelActeurCurseur sont transparents, pour permettre l’affichage de l’arrière-plan (TRUE, valeur par défaut) ou opaque (FALSE). Exemple Dans le script suivant, lorsque le curseur animé personnalisé stocké dans l’acteur 5 entre dans l’image-objet, la fonction de masque automatique est activée de sorte que l’arrière-plan de l’image-objet s’affiche au travers des pixels blancs. La fonction de masque automatique est désactivée dès que le curseur quitte l’image-objet. Dictionnaire Lingo 85 Syntaxe à point : on mouseEnter member 5.autoMask = TRUE end on mouseLeave member 5.autoMask = FALSE end Syntaxe verbose : on mouseEnter set the autoMask of member 5 = TRUE end on mouseLeave set the autoMask of member 5 = FALSE end autoTab Syntaxe member(quelActeur).autoTab the autoTab of member quelActeur Description Propriété d’acteur ; détermine l’effet qu’une pression sur la touche Tab a sur le champ modifiable ou l’acteur texte spécifié par quelActeur. Cette propriété peut être rendue active (TRUE) ou inactive (FALSE). L’ordre de tabulation dépend du numéro des images-objets et non de leur position sur la scène. Cette propriété a toujours la valeur TRUE dans une applet créée avec la fonction d’enregistrement au format Java de Director. Exemple L’instruction suivante entraîne l’acteur Commentaires à avancer automatiquement le point d’insertion au champ modifiable ou à l’image-objet texte suivant(e) lorsque l’utilisateur appuie sur Tab : Syntaxe à point : member ("Commentaires").autotab = TRUE Syntaxe verbose : set the autoTab of member "Commentaires" to TRUE axisAngle Syntaxe member(quelActeur).model(quelModèle).transform.axisAngle member(quelActeur).camera(quelleCaméra).transform.axisAngle member(quelActeur).light(quelleLumière).transform.axisAngle member(quelActeur).group(quelGroupe).transform.axisAngle référenceDeTransformation.axisAngle Description Propriété 3D de transformation ; décrit la rotation de la transformation comme une paire axe/ angle. 86 Chapitre 3 La propriété axisAngle est une liste linéaire contenant un vecteur (l’axe) et une valeur à virgule flottante (l’angle). Le vecteur est l’axe autour duquel la transformation est pivotée. La valeur à virgule flottante est l’importance, en degrés, de la rotation. La valeur par défaut de cette propriété est [vector( 1.0000, 0.0000, 0.0000 ), 0.0000]. Exemples L’instruction suivante indique la rotation du modèle boîteAuxLettres. Le modèle pivote de 145°, dans le sens opposé aux aiguilles d’une montre autour de l’axe des y. put member("Terrain").model("boîteAuxLettres").transform.axisAngle -- [vector(0.0000, 1.0000, 0.0000), -145.5000] Voir aussi rotation (transformation) back Syntaxe member(quelActeur).modelResource(quelleRessDeMod).back Description Propriété de ressource de modèle 3D #box ; indique si le côté de la boîte coupé par son axe des z positif est fermé (TRUE) ou ouvert (FALSE). La valeur par défaut de cette propriété est TRUE. Exemple L’instruction suivante donne à la propriété back de la ressource de modèle Caisse la valeur FALSE, ce qui signifie que l’arrière de la caisse sera ouvert. member("Univers 3D").modelResource("caisse").back = FALSE Voir aussi bottom (3D), front, top (3D), left (3D), right (3D) backColor Syntaxe member(quelActeur).backColor = numéroDeCouleur set the backColor of member quelActeur to numéroDeCouleur sprite(quelleImageObjet).backColor the backColor of sprite quelleImageObjet Description Propriété d’acteur et d’image-objet ; définit la couleur d’arrière-plan de l’acteur ou de l’imageobjet spécifié en fonction de la valeur de couleur affectée. • Pour les acteurs : elle affecte l’affichage de l’acteur champ ou bouton. • Pour les images-objets : la définition de the backColor pour une image-objet revient à choisir la couleur d’arrière-plan dans la palette des outils lorsque l’image-objet est sélectionnée sur la scène. Pour que la valeur définie par Lingo dure au-delà de l’image-objet courante, l’imageobjet doit être asservie. La couleur d’arrière-plan ne s’applique qu’aux acteurs bitmap d’un bit et aux acteurs forme. Dictionnaire Lingo 87 La valeur de backColor va de 0 à 255 pour un codage sur 8 bits et de 0 à 15 pour un codage sur 4 bits. Ces numéros correspondent au numéro d’index de la couleur d’arrière-plan dans la palette en cours. Ce numéro apparaît dans l’angle inférieur gauche de la palette des couleurs lorsque vous cliquez sur la couleur. Vous ne devriez pas appliquer cette propriété à des acteurs bitmap supérieurs à 1 bit, les résultats étant difficiles à prévoir. Pour une animation lue sous la forme d’une applet créée avec la fonction d’enregistrement au format Java de Director, spécifiez les couleurs souhaitées pour la propriété backColor au moyen de l’équivalent décimal des valeurs hexadécimales sur 24 bits utilisées dans les documents HTML. Par exemple, la valeur hexadécimale du rouge pur, FF0000, est l’équivalent de 16711680 en nombre décimaux. L’instruction suivante affecte le rouge absolu comme couleur d’arrière-plan d’un acteur : set the backColor of member = 16711680 Cette propriété peut être testée et définie. Remarque Il est recommandé d’utiliser la nouvelle propriété bgColor à la place de la propriété backColor. Exemples L’instruction suivante modifie la couleur des caractères de l’acteur 1 et lui donne la couleur 250 de la palette. Syntaxe à point : member(1).backColor = 250 Syntaxe verbose : set the backColor of member 1 to 250 L’instruction suivante donne à la variable ancienneCouleur la couleur d’arrière-plan de l’imageobjet 5 : ancienneCouleur = sprite (5).backColor L’instruction suivante modifie de façon aléatoire la couleur d’arrière-plan d’une image-objet choisie au hasard entre les images-objets 11 et 13 et lui affecte la couleur 36 : sprite(10 + random(3)).backColor = 36 Voir aussi bgColor, color (propriété d’image-objet et d’acteur) 88 Chapitre 3 backdrop Syntaxe sprite(quelleImageObjet).camera{(index)}.backdrop[index].loc member(quelActeur).camera(quelleCaméra).backdrop[index].loc sprite(quelleImageObjet).camera{(index)}.backdrop[index].source member(quelActeur).camera(quelleCaméra).backdrop[index].source sprite(quelleImageObjet).camera{(index)}.backdrop[index].scale member(quelActeur).camera(quelleCaméra).backdrop[index].scale sprite(quelleImageObjet).camera{(index)}.backdrop[index].rotation member(quelActeur).camera(quelleCaméra).\ backdrop[index].rotation sprite(quelleImageObjet).camera{(index)}.backdrop[index].regPoint member(quelActeur).camera(quelleCaméra).\ backdrop[index].regPoint sprite(quelleImageObjet).camera{(index)}.backdrop[index].blend member(quelActeur).camera(quelleCaméra).backdrop[index].blend sprite(quelleImageObjet).camera{(index)}.backdrop.count member(quelActeur).camera(quelleCaméra).backdrop.count Description Propriété 3D de caméra ; une image en 2D rendue sur le plan de projection de la caméra. Tous les modèles présents dans la vue de la caméra apparaissent devant le fond. Les fonds ont les propriétés suivantes : Remarque Ces propriétés peuvent aussi être utilisées pour obtenir, définir et manipuler les recouvrements. Pour plus d’informations, consultez les entrées des différentes propriétés. loc (fond et recouvrement) indique l’emplacement 2D du fond, mesuré à partir du coin supérieur gauche de l’image-objet. source indique la texture utilisée pour le fond. scale (fond et recouvrement) est le nombre par lequel la hauteur et la largeur de la texture sont multipliées pour déterminer les dimensions du fond. rotation (fond et recouvrement) est le nombre qui détermine la rotation du fond par rapport à son point d’alignement. regPoint (3D) blend (3D) count indique le point d’alignement du fond. indique l’opacité du fond. indique le nombre d’éléments dans la liste de fonds de la caméra. Utilisez les commandes suivantes pour créer et retirer des fonds : addBackdrop crée un fond à partir d’une texture et l’ajoute à la fin de la liste des fonds de la caméra. crée un fond à partir d’une texture et l’ajoute à la liste des fonds de la caméra à une position d’index spécifique. insertBackdrop removeBackdrop supprime le fond. Voir aussi overlay Dictionnaire Lingo 89 backgroundColor Syntaxe member(quelActeurFormeVectorielle).backgroundColor the backgroundColor of member quelActeurFormeVectorielle Description Propriété d’acteur forme vectorielle ; affecte à la couleur d’arrière-plan de l’acteur ou de l’imageobjet spécifié la valeur de couleur rvb indiquée. Cette propriété peut être testée et définie. Exemple member("Archie").backgroundColor= rgb(255,255,255) Voir aussi bgColor BACKSPACE Syntaxe BACKSPACE Description Constante ; représente la touche Suppression/Retour Arrière. Cette touche est appelée Retour Arrière sur un clavier Windows et Delete 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 : on keyDown if the key = BACKSPACE then effacerEntrée stopEvent end keyDown beep Syntaxe beep {nombreDeFois} Description Commande ; déclenche un bip sonore du système qui se répète autant de fois que spécifié par nombreDeFois. Si vous n’avez pas spécifié nombreDeFois, 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. • Pour le 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. Exemple L’instruction suivante provoque deux bips sonores si le champ Réponse est vide : if field "Réponse" = EMPTY then beep 2 90 Chapitre 3 beepOn Syntaxe the beepOn Description Propriété d’animation ; détermine si l’ordinateur émet automatiquement un bip sonore lorsque l’utilisateur clique en dehors de toute image-objet active (TRUE) ou non (FALSE, valeur par défaut). Les scripts définissant la propriété beepOn devraient être placés dans les scripts d’images ou d’animations. Cette propriété peut être testée et définie. Exemples L’instruction suivante donne à la propriété beepOn la valeur TRUE : the beepOn = TRUE L’instruction suivante inverse la valeur de la propriété de beepOn : the beepOn = not the beepOn before Consultez put...before beginRecording Syntaxe beginRecording Description Mot-clé ; lance une session de création du scénario. Vous ne pouvez procéder qu’à une seule session de mise à jour du scénario à la fois dans une animation. Chaque mot-clé beginRecording doit avoir un mot-clé endRecording lui correspondant afin de terminer la session de création du scénario. Dictionnaire Lingo 91 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. on animBalle nombreDimages beginRecording horizontal = 0 vertical = 100 repeat with i = 1 to nombreDimages go to frame i sprite(20).member = member "Balle" sprite(20).locH = horizontal sprite(20).locV = vertical sprite(20).type = 1 sprite(20).foreColor = 255 horizontal = horizontal + 3 vertical = vertical + 2 updateFrame end repeat endRecording end Voir aussi endRecording, updateFrame, scriptNum, tweened on beginSprite Syntaxe on beginSprite instruction(s) end 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 dans la première image lue dans le cadre de l’animation, le message le message prepareMovie, mais avant les messages prepareFrame beginSprite est envoyé après 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. 92 Chapitre 3 Exemple Le gestionnaire suivant lit l’acteur son Georges Brassens lorsque l’image-objet commence : on beginSprite me puppetSound "Georges Brassens" end Voir aussi on endSprite, on prepareFrame, scriptInstanceList bevelDepth Syntaxe member(quelActeurTexte).bevelDepth member(quelActeur3D).modelResource(quelleRessDeMod).\ bevelDepth Description Propriété 3D de texte ; indique la taille du biseau du texte 3D. Pour un acteur texte, cette propriété n’a aucun effet, sauf si sa propriété displayMode de l’acteur a pour valeur #mode3D et si sa propriété bevelType a pour valeur #miter ou #round. Dans le cas d’un texte extrudé d’un acteur 3D, cette propriété n’a aucun effet, sauf si la propriété de la ressource de modèle a pour valeur #miter ou #round. bevelType La plage de cette propriété s’étend de 0.0 à 10.0, la valeur par défaut étant 10.0. Exemple Dans l’exemple suivant, l’acteur Logo est un acteur texte. L’instruction suivante donne à la propriété bevelDepth de Logo la valeur 5.5. Lorsque l’acteur Logo est affiché en mode 3D, si sa propriété bevelType a pour valeur #miter ou #round, le bord de ses lettres sera fortement biseauté. member("Logo").bevelDepth = 5.5 Dans l’exemple suivant, la ressource du modèle Slogan est du texte extrudé. L’instruction suivante donne à la propriété bevelDepth de la ressource de modèle Slogan la valeur 5. Si la propriété bevelType de Slogan a pour valeur #miter ou #round, les bords de ses lettres seront fortement biseautés. member("Scène").model("Slogan").resource.bevelDepth = 5 Voir aussi bevelType, extrude3D, displayMode bevelType Syntaxe member(quelActeurTexte).bevelType member(quelActeur3D).modelResource(quelleRessDeMod).\ bevelType Description Propriété 3D de texte ; indique le style de biseau appliqué au texte 3D. Pour les acteurs texte, il s’agit d’une propriété d’acteur. Pour le texte extrudé d’un acteur 3D, il s’agit d’une propriété de ressource de modèle. Dictionnaire Lingo 93 La propriété bevelType a les valeurs possibles suivantes : • • • #none #miter (chanfrein, la valeur par défaut) #round Exemple Dans l’exemple suivant, l’acteur Logo est un acteur texte. L’instruction suivante donne à la propriété bevelType de Logo la valeur #round. member("Logo").beveltype = #round Dans l’exemple suivant, la ressource du modèle Slogan est du texte extrudé. L’instruction suivante donne à la propriété bevelType de la ressource de modèle Slogan la valeur #miter. member("Scène").model("Slogan").resource.bevelType = #miter Voir aussi bevelDepth, extrude3D, displayMode bgColor Syntaxe sprite(quelNuméroDimage).bgColor the bgColor of sprite quelNuméroDimage the bgColor of the stage (the stage).bgColor member(quelActeur3D).bgcolor Description Propriété d’image-objet, propriété système et propriété d’acteur 3D ; détermine la couleur d’arrière-plan de l’image-objet spécifiée par quelleImageObjet, la couleur de la scène ou la couleur de fond de l’acteur 3D. La définition de la propriété d’image-objet bgColor revient au même que de choisir la couleur d’arrière-plan dans la fenêtre Outils, lorsque l’image-objet est sélectionnée sur la scène. La sélection de la propriété bgColor pour la scène revient au même que de définir la couleur dans la boîte de dialogue Propriétés de l’animation. La propriété d’image-objet a une fonction équivalente à celle de backColor, mais la valeur de couleur renvoyée est un objet couleur du type défini pour cette image-objet. Cette propriété peut être testée et définie. Exemple L’exemple suivant donne à la couleur de la scène une valeur rvb. Syntaxe à point : (the stage).bgColor = rgb(255, 153, 0) Syntaxe verbose : set the bgColor of the stage = rgb(255, 153, 0) Voir aussi color(), backColor, backgroundColor, stageColor 94 Chapitre 3 bias Syntaxe member(quelActeur).model(quelModèle).lod.bias Description Propriété de modificateur 3D lod ; indique dans quelle mesure le modificateur supprime les détails du modèle lorsque sa propriété auto a pour valeur TRUE. Cette propriété n’a aucun effet lorsque la propriété auto du modificateur a pour valeur FALSE. La plage de cette propriété s’étend de 0.0 (qui supprime tous les polygones) à +100.0 (qui ne supprime aucun polygone). Le paramètre par défaut est 100.0. Le modificateur #lod ne peut être ajouté qu’aux modèles créés dans un programme de modélisation 3D autre que Director. La valeur de la propriété type des ressources de modèle utilisées par ces modèles est #fromFile. Le modificateur ne peut pas être ajouté aux primitives créées dans Director. Exemple L’instruction suivante donne à la propriété bias du modificateur lod du modèle vaisseauSpatial la valeur 10. Si la propriété auto du modificateur lod a pour valeur TRUE, il réduira considérablement le niveau de détail de vaisseauSpatial au fur et à mesure que celui-ci s’éloignera de la caméra. member("Univers 3D").model("vaisseauSpatial").lod.bias = 10 Voir aussi lod (modificateur), auto, level bitAnd() Syntaxe bitAnd(entier1, entier2) Description Fonction ; convertit les deux entiers spécifiés en nombres binaires 32 bits et renvoie un nombre binaire dont les chiffres sont des 1 dans les positions dans lesquelles les deux chiffres avaient des 1 et des 0 pour toutes les autres positions. Le résultat est un nouveau nombre binaire, que Lingo affiche sous la forme d’un entier de base 10. Entier Nombre binaire (abrégé) 6 00110 7 00111 Résultat 6 00110 Dictionnaire Lingo 95 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() bitmapSizes Syntaxe member(quelActeurPolice).bitmapSizes the bitmapSizes of member quelActeurPolice Description Propriété d’acteur police ; renvoie une liste des tailles de bitmap, en points, incluses lorsque l’acteur police a été créé. Exemple L’instruction suivante affiche les tailles de bitmap, en points, incluses lorsque l’acteur 11 a été créé : put member(11).bitmapSizes -- [12, 14, 18] Voir aussi recordFont, characterSet, originalFont bitNot() Syntaxe (entier).bitNot bitNot(entier) Description Fonction ; convertit l’entier spécifié en nombre binaire 32 bits et inverse la valeur de chaque chiffre binaire, 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 entier de base 10. Entier Nombre binaire 1 00000000000000000000000000000001 Résultat -2 11111111111111111111111111111110 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() 96 Chapitre 3 bitOr() Syntaxe bitOr(entier1, entier2) Description Fonction ; convertit les deux entiers spécifiés en nombres binaires 32 bits et renvoie un nombre binaire dont les chiffres sont des 1 dans les positions dans lesquelles un des deux chiffres avaient des 1 et des 0 pour toutes les autres positions. Le résultat est un nouveau nombre binaire, que Lingo affiche sous la forme d’un entier de base 10. Entier Nombre binaire (abrégé) 5 0101 6 0110 Résultat 7 0111 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() bitRate Syntaxe member(quelActeur).bitRate the bitRate of member quelActeur Description Propriété d’acteur Shockwave Audio (SWA) ; renvoie le débit de téléchargement (en Kbps) de l’acteur SWA spécifié préchargé depuis le serveur. La propriété d’acteur bitRate renvoie 0 tant que le transfert en flux continu n’a pas commencé. Exemple Le comportement suivant affiche le débit de téléchargement d’un acteur SWA lors de la première apparition de l’image-objet. Syntaxe à point : property spriteNum on beginSprite me acteurCourant = sprite(spriteNum).member.name put "Le débit de l’acteur"&&memName&&"est de"&&member(acteurCourant).bitRate end Dictionnaire Lingo 97 Syntaxe verbose : property spriteNum on beginSprite me acteurCourant = sprite(spriteNum).member.name put "Le débit de l’acteur"&&memName&&"est de"&&member(acteurCourant).bitRate end bitsPerSample Syntaxe member(quelActeur).bitsPerSample the bitsPerSample of member quelActeur Description Propriété d’acteur Shockwave Audio (SWA) ; indique le codage du fichier d’origine qui a été encodé pour Shockwave Audio (SWA). Cette propriété n’est disponible qu’après le début de la lecture du son SWA ou après le préchargement du fichier avec la commande preLoadBuffer. Cette propriété peut être testée, mais pas définie. Exemple L’instruction suivante affecte le codage d’origine du fichier utilisé pour l’acteur SWA en flux continu Paul Robin à l’acteur champ Codage : Syntaxe à point : put member "Paul Robin".bitsPerSample into member "Codage" Syntaxe verbose : put the bitsPerSample of member "Paul Robin" into member "Codage" bitXor() Syntaxe bitXor(entier1, entier2) Description Fonction ; convertit les deux entiers spécifiés en nombres binaires 32 bits et renvoie un nombre binaire dont les chiffres sont des 1 dans les positions dans lesquelles les chiffres de nombres donnés ne correspondaient pas, et des 0 pour les positions dans lesquelles les chiffres étaient les mêmes. Le résultat est un nouveau nombre binaire, que Lingo affiche sous la forme d’un entier de base 10. Entier Nombre binaire (abrégé) 5 0101 6 0110 Résultat 3 98 Chapitre 3 0011 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() blend Syntaxe sprite(quelleImageObjet).blend the blend of sprite quelleImageObjet Description Propriété d’image-objet ; définit ou détermine la valeur d’opacité d’une image-objet, de 0 à 100, correspondant aux valeurs de la boîte de dialogue Propriétés de l’image-objet. Les couleurs possibles dépendent des couleurs disponibles dans la palette, quel que soit le codage de couleurs du moniteur. Le lecteur Director pour Java supporte la propriété d’image-objet blend pour les images-objets bitmap uniquement. Pour assurer des résultats optimaux, utilisez l’encre Opacité avec des images possédant un codage de couleurs supérieur à 8 bits. Exemples L’instruction suivante affecte une valeur d’opacité de 40 pour cent à l’image-objet 3. Syntaxe à point : sprite(3).blend = 40 Syntaxe verbose : set the blend of sprite 3 to 40 L’instruction suivante affiche la valeur d’opacité de l’image-objet 3 dans la fenêtre Messages : put the blend of sprite 3 Voir aussi blendLevel Dictionnaire Lingo 99 blend (3D) Syntaxe sprite(quelleImageObjet).camera{(index)}.backdrop[index].blend member(quelActeur).camera(quelleCaméra).backdrop[index].blend sprite(quelleImageObjet).camera{(index)}.overlay[index].blend member(quelActeur).camera(quelleCaméra).overlay[index].blend member(quelActeur).shader(quelMatériau).blend member(quelActeur).model(quelModèle).shader.blend member(quelActeur).model(quelModèle).shaderList{[index]}.blend Description Propriété 3D de fond, de recouvrement et de matériau #standard ; indique l’opacité du fond, du recouvrement ou du matériau. La définition de la propriété blend d’un matériau n’a aucun effet, sauf si sa propriété transparent a pour valeur TRUE. La plage de cette propriété s’étend de 0 à 100, la valeur par défaut étant 100. Exemple L’instruction suivante donne à la propriété blend du matériau du modèle Fenêtre la valeur 80. Si la propriété transparent du matériau de Fenêtre a pour valeur TRUE, le modèle sera légèrement transparent. member("Maison").model("Fenêtre").shader.blend = 80 Voir aussi bevelDepth, overlay, shadowPercentage, transparent blendConstant Syntaxe member(quelActeur).shader(quelMatériau).blendConstant member(quelActeur).model(quelModèle).shader.blendConstant member(quelActeur).model(quelModèle).shaderList{[index]}.\ blendConstant Description Propriété 3D de matériau #standard ; indique le taux d’opacité utilisé pour la première couche de texture du matériau. Si la propriété useDiffuseWithTexture du matériau a pour valeur TRUE, la texture se mélange à la couleur définie par la propriété diffuse du matériau. Si useDiffuseWithTexture a pour valeur FALSE, le blanc est utilisé pour l’opacité. Chacune des autres couches de texture se mélange à la couche inférieure. Utilisez la propriété pour contrôler l’opacité dans ces couches de texture. blendConstantList La propriété blendConstant ne fonctionne que lorsque la propriété blendSource du matériau a pour valeur #constant. Pour plus d’informations, consultez blendSource et blendSourceList. La plage de cette propriété va de 0 à 100, la valeur par défaut étant 50. 100 Chapitre 3 Exemple Dans l’exemple suivant, la liste des matériaux du modèle Mystère contient six matériaux. L’instruction suivante donne à la propriété blendConstant du second matériau la valeur 20. Cette propriété est affectée par les paramètres des propriétés blendFunction, blendFunctionList, blendSource et blendSourceList. member("Niveau2").model("Mystère").shaderList[2].\ blendConstant = 20 Voir aussi blendConstantList, blendFunction, blendFunctionList, blendSource, blendSourceList, useDiffuseWithTexture, diffuse, diffuseColor blendConstantList Syntaxe member(quelActeur).shader(quelMatériau).blendConstantList member(quelActeur).model(quelModèle).shader.blendConstant\ List{[index]} member(quelActeur).model(quelModèle).shaderList{[index]}.\ blendConstantList{[index]} Description Propriété 3D de matériau #standard ; indique le taux utilisé pour fusionner une couche de texture du matériau avec la couche de texture inférieure. La liste des textures et la liste des constantes de fusion du matériau doivent comporter huit positions d’index chacune. Chaque position d’index de la liste des constantes de fusion contrôle la fusion de la texture à la position d’index correspondante de la liste des textures. Vous pouvez donner la même valeur à toutes les positions d’index de la liste en ne spécifiant pas le paramètre index facultatif. Utilisez le paramètre index pour définir les positions d’index une par une. La propriété blendConstantList ne fonctionne que lorsque la propriété blendSource de la couche de texture correspondante a pour valeur #constant. La plage de cette propriété va de 0 à 100, la valeur par défaut étant 50. Exemple Dans l’exemple suivant, la liste des matériaux du modèle Mystère contient six matériaux. L’instruction suivante indique la propriété blendConstant de chacune des textures utilisées par le second matériau. Cette propriété est affectée par les paramètres des propriétés blendFunction, blendFunctionList, blendSource et blendSourceList. put member("Niveau2").model("Mystère").shaderList[2].\ blendConstantList -- [20.0000, 50.0000, 50.0000, 50.0000, 20.0000, 50.0000, \ 50.0000, 50.0000] Voir aussi blendConstant, blendFunction, blendFunctionList, blendSource, blendSourceList, useDiffuseWithTexture, diffuse, diffuseColor Dictionnaire Lingo 101 blendFactor Syntaxe member(quelActeur).model(quelModèle).keyframePlayer.\ blendFactor member(quelActeur).model(quelModèle).bonesPlayer.blendFactor Description Propriété 3D de modificateur keyframePlayer et bonesPlayer ; indique le degré de combinaison d’un mouvement au mouvement qui le précède. La plage de cette propriété s’étend de 0 à 100, la valeur par défaut étant 0. BlendFactor n’est utilisé que lorsque la propriété autoblend du modificateur a pour valeur FALSE. Si la valeur de blendFactor est 100, le mouvement courant ne possédera aucune des caractéristiques du mouvement qui le précède. Si la valeur de blendFactor est 0, le mouvement courant possédera toutes les caractéristiques du mouvement qui le précède sans aucune valeur qui lui sont propres. Si la valeur de blendFactor est 50, le mouvement courant sera une synthèse également composée de ses propres caractéristiques et de celles du mouvement qui le précède. La valeur de blendFactor peut être modifiée pour créer des transitions, à la différence de la transition linéaire créée lorsque la propriété autoblend du modificateur a pour valeur TRUE. Exemple L’instruction suivante donne à la propriété blendFactor du modèle Martien3 la valeur 50. Si la propriété autoblend du modificateur est FALSE, chaque mouvement de la liste de lecture du keyframePlayer pour Martien3 sera une fusion, à part égale, du mouvement en cours et de celui qui le précède. member("nouveauMartiens").model("Martien3").keyframePlayer.blendFactor = 50 Voir aussi autoblend, keyframePlayer (modificateur) blendFunction Syntaxe member(quelActeur).shader(quelMatériau).blendFunction member(quelActeur).model(quelModèle).shader.blendFunction member(quelActeur).model(quelModèle).shaderList{[index]}.\ blendFunction Description Propriété 3D de matériau #standard ; indique le type de fusion utilisé pour la première couche de texture du matériau. Si la propriété useDiffuseWithTexture du matériau a pour valeur TRUE, la texture se mélange à la couleur définie par la propriété diffuse du matériau. Si useDiffuseWithTexture a pour valeur FALSE, le blanc est utilisé pour l’opacité. Chacune des autres couches de texture se mélange à la couche inférieure. Utilisez la propriété pour contrôler l’opacité dans ces couches de texture. blendFunctionList La propriété blendFunction peut avoir les valeurs suivantes : multiplie les valeurs rvb de la couche de texture par la couleur utilisée pour l’opacité (voir ci-dessus). #multiply 102 Chapitre 3 ajoute les valeurs rvb de la couche de texture à la couleur utilisée pour l’opacité, puis se fixe à 255. #add #replace empêche la fusion de la texture avec la couleur définie par la propriété diffuse du matériau. #blend combine les couleurs de la couche de texture avec la couleur utilisée pour la fusion selon le taux défini par la propriété blendConstant. La valeur par défaut de cette propriété est #multiply. Exemple Dans l’exemple suivant, la liste des matériaux du modèle Mystère contient six matériaux. L’instruction suivante donne à la propriété blendFunction du second matériau la valeur #blend. Cela a pour effet d’activer les propriétés blendSource, blendSourceList, blendConstant et blendConstantList. member("Niveau2").model("Mystère").shaderList[2].\ blendFunction = #blend Voir aussi blendConstant, blendConstantList, blendFunctionList, blendSource, blendSourceList, useDiffuseWithTexture, diffuse, diffuseColor blendFunctionList Syntaxe member(quelActeur).shader(quelMatériau).\ blendFunctionList{[index]} member(quelActeur).model(quelModèle).shader.\ blendFunctionList{[index]} member(quelActeur).model(quelModèle).shaderList{[index]}.\ blendFunctionList{[index]} Description Propriété 3D de matériau #standard ; liste linéaire indiquant la façon selon laquelle chaque couche de texture est fusionnée à la couche inférieure. La liste des textures et la liste des fonctions de fusion du matériau doivent comporter huit positions d’index chacune. Chaque position d’index de la liste des fonctions de fusion contrôle la fusion de la texture à la position d’index correspondante de la liste de textures. Vous pouvez donner la même valeur à toutes les positions d’index de la liste en ne spécifiant pas le paramètre index facultatif. Utilisez le paramètre index pour définir les positions d’index une par une. Chaque position d’index de la liste des fonctions de fusion peut avoir une des valeurs suivantes : multiplie les valeurs rvb de la couche de texture par les valeurs rvb de la couche de texture inférieure. #multiply ajoute les valeurs rvb de la couche de texture aux valeurs rvb de la couche de texture inférieure, puis se fixe à 255. #add #replace fait que la texture recouvre la couche de texture inférieure. Aucune fusion n’a lieu. fait que la fusion est contrôlée par la valeur de la propriété blendSource, ce qui permet une fusion alpha. #blend La valeur par défaut de cette propriété est #multiply. Dictionnaire Lingo 103 Exemple Dans l’exemple suivant, la propriété shaderList du modèle Mystère contient six matériaux. L’instruction suivante indique que la valeur de la quatrième position d’index de la propriété blendFunctionList du second matériau a pour valeur #blend. La fusion de la quatrième couche de texture du deuxième matériau du modèle sera contrôlée par les paramètres des propriétés blendSource, blendSourceList, blendConstant, blendConstantList, diffuse, diffuseColor et useDiffuseWithTexture. put member("Niveau2").model("Mystère").shaderList[2].\ blendFunctionList[4] -- #blend Voir aussi blendConstant, blendConstantList, blendFunction, blendSource, blendSourceList, diffuse, diffuseColor, useDiffuseWithTexture blendLevel Syntaxe sprite(quelNuméroDimage).blendLevel the blendLevel of sprite quelNuméroDimage Description Propriété d’image-objet ; permet de définir ou d’accéder à la valeur d’opacité courante d’une image-objet. Les valeurs possibles sont comprises entre 0 et 255. Cette plage est différente de celle de l’inspecteur d’image-objet, qui est comprise entre 0 et 100. Cependant, elles ont toutes deux le même résultat, la seule différence concernant l’échelle des valeurs. Cette propriété équivaut à la propriété d’image-objet blend. Exemple sprite(3).blendlevel = 99 Voir aussi blend blendRange Syntaxe member(quelActeur).modelResource(quelleRessDeMod)\ .blendRange.start référenceDobjetDeRessourceDeModèle.blendRange.end member(quelActeur).modelResource(quelleRessDeMod)\ .blendRange.start référenceDobjetDeRessourceDeModèle.blendRange.end Description Propriété 3D ; utilisée avec une ressource de modèle de type #particle, cette propriété permet d’obtenir ou de définir le début et la fin de la plage d’opacité de la ressource. L’opacité des particules du système est interpolée de façon linéaire entre blendRange.start et blendRange.end pendant toute la durée de vie de chaque particule. La valeur de cette propriété doit toujours être supérieure ou égale à 0.0 et inférieure ou égale à 100.0. La valeur par défaut de cette propriété est 100.0. 104 Chapitre 3 Exemple L’instruction suivante définit les propriétés blendRange de la ressource de modèle systèmeThermique, qui est du type #particle. La première ligne donne la valeur de départ 100 et la seconde donne la valeur de fin 0. Cette instruction rend les particules de systèmeThermique complètement opaques lorsqu’elles apparaissent pour la première fois, puis elles s’estompent petit à petit jusqu’à devenir transparentes. member("Chauffage").modelResource("systèmeThermique").blendRange.\ start = 100.0 member("Chauffage").modelResource("systèmeThermique").blendRange.\ end = 0.0 blendSource Syntaxe member(quelActeur).shader(quelMatériau).blendSource member(quelActeur).model(quelModèle).shader.blendSource member(quelActeur).model(quelModèle).shaderList{[index]}.\ blendSource Description Propriété 3D de matériau #standard ; indique si la fusion de la première couche de texture de la liste des textures du matériau est basée sur l’information alpha de la texture ou sur un taux constant. Si la propriété useDiffuseWithTexture du matériau a pour valeur TRUE, la texture se mélange à la couleur définie par la propriété diffuse du matériau. Si useDiffuseWithTexture a pour valeur FALSE, le blanc est utilisé pour l’opacité. Chacune des autres couches de texture se mélange à la couche inférieure. Utilisez la propriété pour contrôler l’opacité dans ces couches de texture. blendSourceList La propriété blendSource ne fonctionne que lorsque la propriété blendFunction du matériau a pour valeur #blend. Les valeurs possibles de cette propriété sont les suivantes : #alpha fait que c’est l’information alpha de la texture qui détermine le taux d’opacité de chaque pixel de la texture avec la couleur utilisée (voir ci-dessus). fait que la valeur de la propriété blendConstant du matériau est utilisée comme taux d’opacité pour tous les pixels de la texture. #constant La valeur par défaut de cette propriété est #constant. Dictionnaire Lingo 105 Exemple Dans l’exemple suivant, la liste des matériaux du modèle Mystère contient six matériaux. L’instruction suivante donne à la propriété blendSource de la première texture utilisée par le second matériau la valeur #constant. Cela active les paramètres des propriétés blendConstant et blendConstantList. member("Niveau2").model("Mystère").shaderList[2].\ blendSource = #constant Voir aussi blendSourceList, blendFunction, blendFunctionList, blendConstant, blendConstantList, useDiffuseWithTexture, diffuse, diffuseColor blendSourceList Syntaxe member(quelActeur).shader(quelMatériau).\ blendSourceList[index] member(quelActeur).model(quelModèle).shader.\ blendSourceList{[index]} member(quelActeur).model(quelModèle).\ shaderList{[index]}.blendSourceList{[index]} Description Propriété 3D de matériau #standard ; indique si la fusion d’une texture avec la texture inférieure est basée sur l’information alpha de la texture ou sur un taux constant. La liste des textures et la liste des sources de fusion du matériau doivent comporter huit positions d’index chacune. Chaque position d’index de la liste des sources de fusion contrôle la fusion de la texture à la position d’index correspondante de la liste de textures. Vous pouvez donner la même valeur à toutes les positions d’index de la liste en ne spécifiant pas le paramètre index facultatif. Utilisez le paramètre index pour définir les positions d’index une par une. La propriété blendSourceList ne fonctionne que lorsque la propriété blendFunction de la couche de texture correspondante a pour valeur #blend. Pour plus d’informations, consultez blendFunction et blendFunctionList. Les valeurs possibles de cette propriété sont les suivantes : #alpha fait que c’est l’information alpha de la texture qui détermine le taux d’opacité de chaque pixel de la couche de texture avec la couche inférieure. #constant fait que la valeur de la propriété blendConstant de la couche de texture correspondante est utilisée comme taux de fusion pour tous les pixels de la couche de texture. Pour plus d’informations, consultez blendConstant et blendConstantList. La valeur par défaut de cette propriété est #constant. 106 Chapitre 3 Exemple Dans l’exemple suivant, la liste des matériaux du modèle Mystère contient six matériaux. Chaque matériau possède une liste de textures pouvant contenir jusqu’à huit textures. L’instruction suivante indique que la propriété blendSource de la quatrième texture utilisée par le second matériau a pour valeur #constant. Cela a pour effet d’activer les propriétés blendConstant, blendConstantList et useDiffuseWithTexture. member("Niveau2").model("Mystère").shaderList[2].\ blendSourceList[4] = #constant Voir aussi blendSource, blendFunction, blendFunctionList, blendConstant, blendConstantList, useDiffuseWithTexture, diffuse, diffuseColor blendTime Syntaxe member(quelActeur).model(quelModèle).keyframePlayer.\ blendTime member(quelActeur).model(quelModèle).bonesPlayer.blendTime Description Propriété 3D de modificateur keyframePlayer et bonesPlayer ; détermine la durée, en millisecondes, de la transition entre les mouvements de la liste de lecture du modificateur du modèle. La propriété blendTime fonctionne en conjonction à la propriété autoBlend du modificateur. Lorsque la propriété autoBlend a pour valeur TRUE, le modificateur crée une transition linéaire entre le mouvement courant du modèle et le mouvement précédent. La valeur de la propriété blendTime est la durée de cette transition. La propriété blendTime est ignorée lorsque autoBlend a pour valeur FALSE. Le paramètre par défaut de cette propriété est 500. Exemple L’instruction suivante définit la durée de la transition entre les mouvements de la liste de lecture du modificateur du modèle Martien5 à 1200 millisecondes. member("nouveauMartiens").model("Martien5").keyframePlayer.\ blendTime = 1200 Voir aussi autoblend, blendFactor Dictionnaire Lingo 107 bone Syntaxe member(quelActeur).modelResource(quelleRessDeMod).\ bone.count member(quelActeur).model(quelModèle).bonesPlayer.\ bone[index].transform member(quelActeur).model(quelModèle).bonesPlayer.\ bone[index].worldTransform Description Elément 3D ; un segment est un élément structurel d’une ressource de modèle créée dans un programme de modélisation 3D. Les segments ne peuvent pas être créés, supprimés ou réarrangés dans Director. Les mouvements #bones, qui doivent aussi être programmés dans un programme de modélisation 3D, agissent sur la structure des segments d’une ressource de modèle et sont gérés dans Director par le modificateur bonesPlayer. Pour plus d’informations, consultez count, bonesPlayer (modificateur), transform et worldTransform. (propriété) Voir aussi count, bonesPlayer (modificateur), transform (propriété), worldTransform bonesPlayer (modificateur) Syntaxe member(quelActeur).model(quelModèle). bonesPlayer.quellePropriétéDeModifBonesPlayer Description Modificateur 3D ; gère l’utilisation des mouvements par les modèles. Les mouvements gérés par le modificateur bonesPlayer animent les segments du modèle. Les mouvements et les modèles qui les utilisent doivent être créés dans un programme de modélisation 3D, exportés au format *.w3d, puis importés dans une animation. Les mouvements ne peuvent pas être appliqués aux primitives de modèle créées dans Director. L’ajout du modificateur bonesPlayer à un modèle à l’aide de la commande addModifier permet d’accéder aux propriétés suivantes du modificateur bonesPlayer : playing (3D) indique le mouvement d’un modèle. est une liste linéaire de listes de propriétés contenant les paramètres de lecture des mouvements d’un modèle en file d’attente. playlist currentTime (3D) indique la position, en millisecondes, du mouvement en cours de lecture ou en pause. playRate est un nombre multiplié par le paramètre échelle de queue() pour déterminer la cadence de lecture du mouvement. playlist.count rootLock renvoie le nombre de mouvements en file d’attente dans la liste de lecture. indique si le composant de translation du mouvement est utilisé ou ignoré. currentLoopState 108 Chapitre 3 la commande play() ou indique si le mouvement est lu une seule fois ou répété de façon continue. blendTime indique la durée de la transition créée par le modificateur entre les mouvements lorsque la propriété autoblend a pour valeur TRUE. autoblend indique si le modificateur crée une transition linéaire entre le mouvement en cours de lecture et le mouvement précédent. blendFactor indique pour valeur FALSE. le degré de fusion entre les mouvements lorsque la propriété autoBlend a indique la transformation du segment par rapport au segment parent. Vous pouvez trouver la valeur de IdDeSegment en testant la propriété getBoneID de la ressource de modèle. Lorsque vous définissez la transformation du segment, il n’est plus contrôlé par le mouvement en cours. Le contrôle manuel s’arrête avec le mouvement en cours. bone[IdDeSegment].transform bone[IdDeSegment].getWorldTransform renvoie la transformation du segment par rapport à l’univers. lockTranslation indique si le modèle peut être déplacé à partir des plans spécifiés. positionReset indique si le modèle retourne à sa position de départ à la fin du mouvement ou de chaque itération d’une boucle. rotationReset indique l’élément de rotation d’une transition d’un mouvement à un autre ou de la boucle d’un seul mouvement. Remarque Pour plus d’informations, consultez les entrées des différentes propriétés. Le modificateur bonesPlayer utilise les commandes suivantes : pause() (3D) play() (3D) stoppe le mouvement du modèle en cours d’exécution. entraîne ou reprend l’exécution d’un mouvement. playNext() (3D) queue() (3D) entraîne la lecture du mouvement suivant de la liste de lecture. ajoute un mouvement à la fin de la liste de lecture. Le modificateur bonesPlayer génère les événements suivants, qui sont utilisés par les gestionnaires déclarés dans les commandes registerForEvent() et registerScript(). L’appel au gestionnaire déclaré contient trois arguments : le type d’événement (#animationStarted ou #animationEnded), le nom du mouvement, ainsi que sa position. Pour plus d’informations sur les événements de notification, consultez l’entrée de registerForEvent(). #animationStarted est envoyé au début de la lecture d’un mouvement. Si la fusion est utilisée entre des mouvements, l’événement est envoyé au début de la transition. #animationEnded est envoyé à la fin d’un mouvement. Si la fusion est utilisée entre des mouvements, l’événement est envoyé à la fin de la transition. Voir aussi keyframePlayer (modificateur), addModifier, modifiers, modifier Dictionnaire Lingo 109 border Syntaxe member(quelActeurChamp).border the border of member quelActeurChamp Description Propriété d’acteur champ ; indique l’épaisseur, en pixels, du cadre entourant l’acteur champ spécifié. Exemple L’instruction suivante donne au cadre de l’acteur champ Titre une épaisseur de 10 pixels : Syntaxe à point : member("Titre").border = 10 Syntaxe verbose : set the border of member "Titre" to 10 bottom Syntaxe sprite(quelleImageObjet).bottom the bottom of sprite quelleImageObjet Description Propriété d’image-objet ; spécifie la coordonnée verticale du bord inférieur du rectangle de délimitation de l’image-objet spécifiée par quelleImageObjet. Lorsqu’une animation est lue sous forme d’applet Java, sa valeur est mesurée depuis le coin supérieur gauche de l’applet. Cette propriété peut être testée et définie. Exemple L’instruction suivante affecte la coordonnée verticale de la partie inférieure de l’image-objet numérotée (i + 1) à la variable plusbas : Syntaxe à point : set plusbas = sprite (i + 1).bottom Syntaxe verbose : set plusbas = the bottom of sprite (i + 1) Voir aussi height, left, locH, locV, right, top, width 110 Chapitre 3 bottom (3D) Syntaxe member(quelActeur).modelResource(quelleRessDeMod).bottom Description Propriété 3D de la ressource de modèle #box ; indique si le côté de la boîte coupé par son axe des y négatif est fermé (TRUE) ou ouvert (FALSE). La valeur par défaut de cette propriété est TRUE. Exemple L’instruction suivante donne à la propriété bottom de la ressource de modèle boîteAcadeau la valeur TRUE, ce qui signifie que le fond de cette boîte sera fermé. member("Univers 3D").modelResource("boîteAcadeau").bottom = TRUE Voir aussi back, front, top (3D), left (3D), right (3D), bottomCap bottomCap Syntaxe member(quelActeur).modelResource(quelleRessDeMod).\ bottomCap Description Propriété 3D de ressource de modèle #cylinder ; indique si le fond du cylindre coupé par son axe des y négatif est fermé (TRUE) ou ouvert (FALSE). La valeur par défaut de cette propriété est TRUE. Exemple L’instruction suivante donne à la propriété bottomCap de la ressource de modèle Tube la valeur FALSE, ce qui signifie que le fond de ce cylindre sera ouvert. member("Univers 3D").modelResource("tube").bottomCap = FALSE Voir aussi topCap, bottomRadius, bottom (3D) bottomRadius Syntaxe member(quelActeur).modelResource(quelleRessDeMod).\ bottomRadius Description Propriété 3D de ressource de modèle #cylinder ; indique le rayon, en unités de l’univers, de l’extrémité du cylindre à l’intersection de son axe des y négatif. La valeur par défaut de cette propriété est 25. Dictionnaire Lingo 111 Exemple L’instruction suivante donne à la propriété bottomRadius de la ressource de modèle Tube la valeur 38.5. member("Univers 3D").modelResource("tube").bottomRadius = 38.5 Voir aussi topRadius, bottomCap bottomSpacing Syntaxe expressionDeSousChaîne.bottomSpacing Description Propriété d’acteur texte ; permet de spécifier tout espacement supplémentaire applicable au bas de chaque paragraphe dans la partie expressionDeSousChaîne de l’acteur texte. La valeur même est un entier, qui indique un espacement moindre entre les paragraphes s’il est inférieur à 0 et un espacement plus important s’il est supérieur à 0. La valeur par défaut est 0 ; elle correspond à l’espacement par défaut entre les paragraphes. Remarque Cette propriété, comme toutes les propriétés d’acteur texte, ne supporte que la syntaxe à point. Exemple Dans l’exemple suivant, une espace est ajoutée après le premier paragraphe de l’acteur texte Nouvelles du jour. member("Nouvelles du jour").paragraph[1].bottomSpacing=20 Voir aussi top (3D) boundary Syntaxe member(quelActeur).model(quelModèle).inker.boundary member(quelActeur).model(quelModèle).toon.boundary Description Propriété 3D de modificateur inker et toon ; permet de définir si une ligne est tracée aux bords d’un modèle. Le paramètre par défaut de cette propriété est TRUE. Exemple L’instruction suivante donne à la propriété boundary du modificateur inker appliqué au modèle Boîte la valeur TRUE. Les lignes seront tracées aux bords de la surface du modèle. member("formes").model("Boîte").inker.boundary = TRUE Voir aussi lineColor, lineOffset, silhouettes, creases 112 Chapitre 3 boundingSphere Syntaxe member(quelActeur).model(quelModèle).boundingSphere member(quelActeur).group(quelGroupe).boundingSphere member(quelActeur).light(quelleLumière).boundingSphere member(quelActeur).camera(quelleCaméra).boundingSphere Description Propriété 3D de modèle, de groupe, de lumière et de caméra ; décrit une sphère contenant le modèle, le groupe, la lumière ou la caméra et ses enfants. La valeur de cette propriété est une liste contenant la position vectorielle du centre de la sphère et la longueur, exprimée en valeur à virgule flottante, du rayon de la sphère. Cette propriété peut être testée, mais pas définie. Exemple L’exemple suivant affiche la sphère de délimitation d’une lumière dans la fenêtre Messages. put member("nouveauMartien").light[5].boundingSphere -- [vector(166.8667, -549.6362, 699.5773), 1111.0039] Voir aussi debug boxDropShadow Syntaxe member(quelActeur).boxDropShadow the boxDropShadow of member quelActeur Description Propriété d’acteur ; détermine la taille, en pixels, de l’ombre portée du cadre de l’acteur champ spécifié par quelActeur. Exemple L’instruction suivante donne à l’ombre portée de l’acteur champ Titre une largeur de 10 pixels : Syntaxe à point : member("Titre").boxDropShadow = 10 Syntaxe verbose : set the boxDropShadow of member "Titre" to 10 boxType Syntaxe member(quelActeur).boxType the boxType of member quelActeur Description Propriété d’acteur ; détermine le type de zone de texte utilisé pour l’acteur spécifié. Les valeurs possibles sont #adjust (ajustable), #scroll (défilant), #fixed (fixe) et #limit (limité). Dictionnaire Lingo 113 Exemple L’instruction suivante fait du cadre de l’acteur champ Editorial un champ défilant. Syntaxe à point : member("Editorial").boxType = #scroll Syntaxe verbose : set the boxType of member "Editorial" to #scroll breakLoop() Syntaxe sound(numéroDePiste).breakLoop() Description Cette fonction interrompt la lecture du son mis en boucle dans la piste numéroDePiste et entraîne sa lecture jusqu’à la limite posFinale. Si aucun son n’est actuellement en boucle, cette fonction n’a pas d’effet. 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. on continuerLaMusiqueDeFond sound(2).breakLoop() end Voir aussi end, loopCount, loopEndTime, loopsRemaining, loopStartTime brightness Syntaxe member(quelActeur).shader(quelMatériau).brightness member(quelActeur).model(quelModèle).shader.brightness member(quelActeur).model(quelModèle).shaderList{[index]}.\ brightness Description Propriété 3D de matériau #newsprint et #engraver ; indique la quantité de blanc fusionnée au matériau. La plage de cette propriété va de 1 à 100, la valeur par défaut étant 0. Exemple L’instruction suivante définit la luminosité du matériau utilisé par le modèle gbCyl2 à la moitié de sa valeur maximum. member("scène").model("gbCyl2").shader.brightness = 50 Voir aussi newShader 114 Chapitre 3 broadcastProps Syntaxe member(quelActeurVecteurOuFlash).broadcastProps the broadcastProps of member quelActeurVecteurOuFlash Description Propriété d’acteur ; contrôle si les modifications apportées à un acteur Flash ou forme vectorielle sont immédiatement transmises à toutes ses images-objets présentes sur la scène (TRUE) ou non (FALSE). Lorsque cette propriété a pour valeur FALSE, les modifications apportées à l’acteur sont utilisées comme valeurs par défaut pour les nouvelles images-objets et n’affectent pas les images-objets sur la scène. La valeur par défaut de cette propriété est TRUE et elle peut être testée et définie. Exemple Le script d’image suivant suppose que l’acteur Animation de navigation d’une animation Flash utilise une propriété broadcastProps possédant la valeur FALSE. Il permet provisoirement de modifier un acteur animation Flash à diffuser aux images-objets placées sur la scène. Il définit ensuite la propriété viewScale de l’acteur animation Flash et cette modification est transmise à son image-objet. Le script interdit alors à l’animation Flash de diffuser les modifications ultérieures à ses images-objets. Syntaxe à point : on enterFrame member("Animation de navigation").broadcastProps = TRUE member("Animation de navigation").viewScale = 200 member("Animation de navigation").broadcastProps = FALSE end Syntaxe verbose : on enterFrame set the broadcastProps of member "Animation de navigation" = TRUE set the viewScale of member "Animation de navigation" = 200 set the broadcastProps of member "Animation de navigation" = FALSE end browserName() Syntaxe 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 spécifier un navigateur de son choix. La méthode displayOpen() de l’Xtra FileIO est utile pour afficher une boîte de dialogue d’ouverture. Dictionnaire Lingo 115 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 web. Cette propriété peut être testée et définie. Exemples 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() bufferSize Syntaxe member(quelActeurFlash).bufferSize the bufferSize of member quelActeurFlash Description Propriété d’acteur Flash ; contrôle le nombre d’octets d’une animation Flash liée qui sont passés en mémoire en une seule fois. La propriété bufferSize peut uniquement avoir comme valeur un nombre entier. Cette propriété produit uniquement un effet lorsque la propriété preload de l’acteur a pour valeur FALSE. Cette propriété peut être testée et définie. La valeur par défaut est 32 768 octets. Exemple Le gestionnaire startMovie suivant définit un acteur animation Flash pour une lecture en flux continu puis définit sa propriété bufferSize. Syntaxe à point : on startMovie member.("Démo Flash").preload = FALSE member.("Démo Flash").bufferSize = 65536 end Syntaxe verbose : on startMovie set the preload of member "Démo Flash" = FALSE set the bufferSize of member "Démo Flash" = 65536 end Voir aussi bytesStreamed, preLoadRAM, stream, streamMode 116 Chapitre 3 build() Syntaxe 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(). 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éé 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. 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 Dictionnaire Lingo 117 buttonsEnabled Syntaxe sprite(quelleImageObjetFlash).buttonsEnabled the buttonsEnabled of sprite quelleImageObjetFlash member(quelActeurFlash).buttonsEnabled the buttonsEnabled of member quelActeurFlash Description Propriété d’acteur Flash et propriété d’image-objet ; contrôle si les boutons d’une animation Flash sont actifs (TRUE, valeur par défaut) ou inactifs (FALSE). Les actions de bouton sont uniquement déclenchées lorsque la propriété actionsEnabled reçoit la valeur TRUE. Cette propriété peut être testée et définie. Exemple Le gestionnaire suivant accepte une référence d’image-objet et permet d’activer ou de désactiver la propriété buttonsEnabled de l’image-objet. Syntaxe à point : on ToggleButtons quelleImageObjet sprite(quelleImObj).buttonsEnabled = not sprite(quelleImObj).buttonsEnabled end Syntaxe verbose : on ToggleButtons quelleImObj set the buttonsEnabled of sprite quelleImObj = not the buttonsEnabled of sprite quelleImObj end \ Voir aussi actionsEnabled buttonStyle Syntaxe the buttonStyle Description Propriété d’animation ; détermine la réponse visuelle des boutons lorsque l’utilisateur en fait sortir le pointeur de la souris. Elle s’applique uniquement aux boutons créés avec l’outil Bouton de la palette des outils. La propriété buttonStyle peut avoir les valeurs suivantes : • 0 • 1 (style de boîte de dialogue) – Seul le premier bouton sur lequel l’utilisateur clique est mis en surbrillance. Les boutons suivants ne le sont pas. Si l’utilisateur relâche le bouton de la souris alors que le pointeur survole un bouton autre que celui sur lequel il a cliqué initialement, le script associé à ce bouton n’est pas activé. (style de liste: valeur par défaut) – Les boutons suivants sont mis en surbrillance lorsque le pointeur les survole. Si l’utilisateur relâche le bouton de la souris, le script associé à ce dernier est activé. Cette propriété peut être testée et définie dans n’importe quel type de script. 118 Chapitre 3 Exemples L’instruction suivante donne à la propriété buttonStyle la valeur 1 : the buttonStyle = 1 L’instruction suivante permet de mémoriser le paramètre courant de la propriété buttonStyle en le stockant dans la variable valeurDeStyleDeBouton : valeurDeStyleDeBouton = the buttonStyle Voir aussi checkBoxAccess, checkBoxType buttonType Syntaxe member(quelActeur).buttonType the buttonType of member quelActeur Description Propriété d’acteur bouton ; indique le type de l’acteur bouton spécifié. Les valeurs possibles sont #pushButton (bouton-poussoir), #checkBox (case à cocher) et #radioButton (bouton radio). Cette propriété s’applique uniquement aux boutons créés avec l’outil Bouton de la palette des outils. Exemple L’instruction suivante transforme l’acteur bouton Editorial en case à cocher : Syntaxe à point : member("Editorial").buttonType = #checkBox Syntaxe verbose : set the buttonType of member "Editorial" to #checkBox bytesStreamed Syntaxe member(quelActeurFlashOuSWA).bytesStreamed the bytesStreamed of member quelActeurFlashOuSWA Description Propriété d’acteur Flash et Shockwave Audio ; indique le nombre d’octets de l’acteur spécifié qui ont été chargés en mémoire. La propriété bytesStreamed renvoie une valeur uniquement pendant la lecture de l’animation Director. Elle renvoie un nombre entier. Cette propriété peut être testée, mais pas définie. Exemple Le gestionnaire suivant accepte une référence d’acteur en tant que paramètre, puis utilise la commande stream pour charger l’acteur en mémoire. A chaque fois qu’il transfère une partie de l’acteur en mémoire, il utilise la propriété bytesStreamed pour indiquer dans la fenêtre Messages le nombre d’octets transmis. Dictionnaire Lingo 119 Syntaxe à point : on téléchargerLanimation quelleAnimationFlash repeat while member(quelleAnimationFlash).percentStreamed < 100 stream(member quelleAnimationFlash) put "Nombre d’octets transmis :" && member(quelleAnimationFlash).bytesStreamed end repeat end Syntaxe verbose : on téléchargerLanimation quelleAnimationFlash repeat while the percentStreamed of member quelleAnimationFlash < 100 stream(member quelleAnimationFlash) put "Nombre d’octets transmis :" && the bytesStreamed of member \ quelleAnimationFlash end repeat end Voir aussi bufferSize, percentStreamed, stream bytesStreamed (3D) Syntaxe member(quelActeur).bytesStreamed Description Propriété 3D d’acteur ; indique la quantité qui a été chargée du fichier initial ou du dernier fichier demandé. Exemple L’instruction suivante indique que 325 300 octets de l’acteur Séquence ont été chargés. put member("Séquence").bytesStreamed -- 325300 Voir aussi streamSize (3D), state (3D) cacheDocVerify() Syntaxe cacheDocVerify #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. 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 qu’elle appelle une URL. La forme cacheDocVerify() renvoie le paramètre courant de la mémoire cache. 120 Chapitre 3 La fonction cacheDocVerify n’est valide que pour les animations exécutées dans Director ou comme projections. Elle n’est pas valide pour les animations Shockwave, celles-ci utilisant les paramètres réseau du navigateur web dans lequel elles sont exécutées. on razCache valeurCourante = cacheDocVerify() if valeurCourante = #once then alert "Vérification du cache activée" cacheDocVerify #always end if end Voir aussi cacheSize(), clearCache cacheSize() Syntaxe cacheSize taille cacheSize() Description Fonction et commande ; définit la taille de la mémoire cache de Director. La valeur est exprimée en kilo-octets. La fonction cacheSize n’est valide que pour les animations exécutées sous Director ou comme projections. Elle n’est pas valide pour les animations Shockwave, celles-ci utilisant les paramètres réseau du navigateur web sous lequel elles sont exécutées. Exemple Le gestionnaire suivant vérifie si les paramètres de cache de Director sont établis à moins de 1 Mo. Le cas échéant, il affiche un message d’alerte et définit la taille de la mémoire cache à 1 Mo : on vérifierCache if cacheSize()<1000 then alert "augmentation de la mémoire cache à 1 Mo" cacheSize 1000 end if end Voir aussi cacheDocVerify(), clearCache call Syntaxe call #nomDuGestionnaire, script, {args...} call (#nomDuGestionnaire, instanceDeScript, {args...}) Description Commande ; envoie un message appelant un gestionnaire dans les scripts spécifiés, où nomDuGestionnaire représente le nom du gestionnaire devant être activé, script une référence au script ou à une liste de scripts et arguments tout paramètre facultatif devant être transmis au gestionnaire. Si script est une instance de script, un message d’alerte est envoyé si le gestionnaire n’est pas défini dans le script ancêtre du script. Dictionnaire Lingo 121 Si script est une liste d’instances de scripts, le message est envoyé à chaque élément de la liste tour à tour ; aucun message d’alerte n’est envoyé si le gestionnaire n’est pas défini dans le script ancêtre. 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. Exemples Le gestionnaire suivant envoie le message augmenterLeCompteur au premier script de comportement lié à l’image-objet 1 : 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 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 : -- 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&" jambes" 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" 122 Chapitre 3 L’instruction suivante fait courir l’homme : set msg = #courir call msg, h -- "Homme courant sur 2 jambes" 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 jambes " -- "Homme courant sur 2 jambes " callAncestor Syntaxe callAncestor nomDuGestionnaire, script, {args...} Description Commande ; envoie un message au script ancêtre d’un objet enfant, où nomDuGestionnaire représente le nom du gestionnaire devant être activé, script une référence au script ou à une liste de scripts et arguments tout paramètre facultatif devant être transmis au gestionnaire. Si script est une instance de script, un message d’alerte est envoyé si le gestionnaire n’est pas défini dans l’ancêtre du script. Si script est une liste de scripts, le message est envoyé à chaque élément de la liste tour à tour. Dans ce cas, si le gestionnaire n’est pas défini dans le script ancêtre, aucun message d’alerte n’est envoyé. 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. 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&" jambes" end Dictionnaire Lingo 123 • 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 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() Syntaxe sprite(quelleImageObjet).callFrame("étiquetteFlash") sprite(quelleImageObjet).callFrame(numéroDimageFlash) Définition Commande ; utilisée pour appeler une série d’actions résidant dans une image d’une image-objet d’animation Flash. Vous pouvez spécifier l’image à appeler à l’aide d’un numéro ou d’un libellé. Cette commande transmet un message au moteur ActionScript de Flash et déclenche l’exécution des actions dans l’animation Flash. Exemple Cette instruction Lingo lance l’exécution des actions associées à l’image 10 de l’animation Flash dans l’image-objet 1 : sprite(1).callFrame(10) 124 Chapitre 3 camera Syntaxe 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’imageobjet. Les caméras sont enregistrées dans la palette des caméras de l’acteur. Utilisez les commandes et deleteCamera pour créer et supprimer les caméras d’un acteur 3D. newCamera 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. Vous trouverez une liste complète des propriétés et commandes de caméra dans Chapitre 2, Lingo 3D par fonction, page 33. Exemples 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() Syntaxe sprite(quelleImageObjet).cameraCount() Description Commande 3D ; renvoie le nombre d’éléments de la liste des caméras de l’image-objet. Exemple L’instruction suivante indique que l’image-objet 5 contient trois caméras. put sprite(5).cameraCount() -- 3 Voir aussi addCamera, deleteCamera Dictionnaire Lingo 125 cameraPosition Syntaxe member(quelActeur).cameraPosition sprite(quelleImageObjet).cameraPosition Description Propriété 3D d’acteur et d’image-objet ; indique la position de la caméra par défaut. La valeur par défaut de cette propriété est vector(0, 0, 250). Il s’agit de la position de la caméra par défaut dans le nouvel acteur 3D. Exemple L’instruction suivante indique que la position de la caméra par défaut de l’acteur LileAuxEnfants est vector(-117.5992, -78.9491, 129.0254). member("LileAuxEnfants").cameraPosition = vector(-117.5992, \ -78.9491, 129.0254) Voir aussi cameraRotation, autoCameraPosition cameraRotation Syntaxe member(quelActeur).cameraRotation sprite(quelleImageObjet).cameraRotation Description Propriété 3D d’acteur et d’image-objet ; indique la position de la caméra par défaut. La valeur par défaut de cette propriété est vector(0, 0, 0). Il s’agit de la rotation de la caméra par défaut dans le nouvel acteur 3D. Exemple L’instruction suivante indique que la rotation de la caméra par défaut de l’acteur lileAuxEnfants est vector(82.6010, -38.8530, -2.4029). member("LileAuxEnfants").cameraRotation = vector(82.6010, \ -38.8530, -2.4029) Voir aussi cameraPosition, autoCameraPosition cancelIdleLoad Syntaxe cancelIdleLoad baliseDeChargement Description Commande ; annule le chargement de tous les acteurs portant la balise de chargement spécifiée. 126 Chapitre 3 Exemple L’instruction suivante annule le chargement des acteurs portant la balise de chargement numéro 20 : cancelIdleLoad 20 Voir aussi idleLoadTag case Syntaxe case expression of expression1 : instruction expression2 : instructionsMultiples . . . expression3, expression4 : instruction(s) {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 en retrait immédiatement 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 d’une telle 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. Si les valeurs de test de l’instruction case ne sont pas toutes des constantes entières, l’Xtra d’exportation pour Java convertit l’instruction case en une instruction if...then. Exemples 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. Dictionnaire Lingo 127 • 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 (the key) of "A": go to frame "Pomme" "B", "C": puppetTransition 99 go to frame "Oranges" otherwise beep end case end keyDown 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 the rollOver of 1: puppetSound "Clarinette" 2: puppetSound "Tambour" 3: puppetSound "Bongos" end case castLib Syntaxe castLib quelleDistribution Description Mot-clé ; indique que la distribution spécifiée par quelleDistribution est une distribution. La distribution par défaut est la distribution numéro 1. Pour spécifier un acteur dans une distribution autre que la distribution numéro 1, définissez castLib pour spécifier l’autre distribution. Exemples L’instruction suivante affiche le numéro de la distribution Boutons dans la fenêtre Messages : Syntaxe à point : put castLib("Boutons").number Syntaxe verbose : put the number of castLib "Boutons" L’instruction suivante affecte l’acteur 5 de la distribution 4 à l’image-objet 10 : sprite(10).member = member(5, 4) 128 Chapitre 3 castLibNum Syntaxe member(quelActeur).castLibNum the castLibNum of member quelActeur sprite(quelleImageObjet).castLibNum the castLibNum of sprite quelleImageObjet Description Propriété d’acteur et d’image-objet ; détermine le numéro de la distribution contenant l’acteur spécifié ou celui de la castLib associée à l’image-objet spécifiée. Si vous modifiez la propriété d’image-objet the castLibNum sans modifier the memberNum, Director utilise l’acteur qui a le même numéro dans la nouvelle distribution. Cela est particulièrement utile pour les animations que vous utilisez comme modèles et mettez à jour en fournissant de nouvelles distributions. Si vous organisez le contenu de la distribution de manière à ce que tous les acteurs aient un numéro qui corresponde à leur rôle dans l’animation, Director insère automatiquement les nouveaux acteurs à l’emplacement correct. Pour changer l’acteur affecté à une image-objet, quelle que soit sa distribution, définissez la propriété d’acteur member. Dans le cas d’un acteur, cette propriété peut être testée mais non définie. Elle peut être testée et définie dans le cas d’une image-objet. Exemples L’instruction suivante détermine le numéro de la distribution à laquelle l’acteur Jazz est affecté : Syntaxe à point : put member("Jazz").castLibNum Syntaxe verbose : put the castLibNum of member "Jazz" L’instruction suivante modifie l’acteur affecté à l’image-objet 5 en remplaçant sa distribution par la distribution Mercredi : Syntaxe à point : sprite(5).castLibNum = castLib("Mercredi").number Syntaxe verbose : set the castLibNum of sprite 5 to the number of castLib "Mercredi" castMemberList Syntaxe member(quelActeurCurseur).castmemberList the castMemberList of member quelActeurCurseur Description Propriété d’acteur curseur ; spécifie la liste des acteurs composant les images d’un curseur. Remplacez quelActeurCurseur par le nom (entre guillemets) ou le numéro d’un acteur. Vous pouvez spécifier des acteurs appartenant à différentes distributions. Le premier acteur de la liste est la première image du curseur, le deuxième acteur est la deuxième image, et ainsi de suite. Dictionnaire Lingo 129 Si vous spécifiez des acteurs impossibles à utiliser dans un curseur, ils sont ignorés et les acteurs restants sont utilisés. Cette propriété peut être testée et définie. Exemple La commande suivante crée une série de quatre acteurs pour l’acteur curseur couleur animé monCurseur. Syntaxe à point : member("monCurseur").castmemberList = \ [member 1, member 2, member 1 of castlib 2, member 2 of castlib 2] Syntaxe verbose : set the castmemberList of member "monCurseur" = \ [member 1, member 2, member 1 of castlib 2, member 2 of castlib 2] center Syntaxe member(quelActeur).center the center of member quelActeur Description Propriété d’acteur ; interagit avec la propriété d’acteur crop. • Lorsque la propriété the crop est FALSE, la propriété the center n’a aucun effet. • Lorsque crop est TRUE et center est TRUE, un découpage se produit autour du centre de l’acteur vidéo numérique. • Lorsque crop est TRUE et center est FALSE, un découpage se produit sur les côtés droit et inférieur de la vidéo numérique. Cette propriété peut être testée et définie. Exemple L’instruction suivante provoque l’affichage, dans le coin supérieur gauche de l’image-objet, de l’acteur vidéo numérique Interview : Syntaxe à point : member("Interview").center = FALSE Syntaxe verbose : set the center of member "Interview" to FALSE Voir aussi crop (propriété d’acteur), centerRegPoint, regPoint, scale 130 Chapitre 3 centerRegPoint Syntaxe member(quelActeur).centerRegPoint the centerRegPoint of member quelActeur Description Propriété d’acteur Flash, forme vectorielle et bitmap ; centre automatiquement le point d’alignement de l’acteur lorsque vous redimensionnez l’image-objet (TRUE, valeur par défaut) ou sert également à repositionner le point d’alignement à sa valeur courante lorsque vous redimensionnez l’acteur ou que vous définissez la propriété defaultRect ou regPoint (FALSE). Cette propriété peut être testée et définie. Exemple Le script suivant vérifie si la propriété centerRegPoint d’une animation Flash a pour valeur TRUE. Le cas échéant, le script utilise la propriété regPoint pour repositionner le point d’alignement de l’image-objet dans son coin supérieur gauche. Lorsqu’il vérifie la propriété centerRegPoint, le script s’assure qu’il ne repositionne pas un point d’alignement précédemment défini au moyen de la propriété regPoint. Syntaxe à point : on beginSprite me if sprite(the spriteNum of me).member.centerRegPoint = TRUE then sprite(the spriteNum of me).member.regPoint = point(0,0) end if end Syntaxe verbose : on beginSprite me if the centerRegPoint of member the memberNum of me = TRUE then set the regPoint of member the memberNum of me = point(0,0) end if end Voir aussi regPoint centerStage Syntaxe the centerStage Description Propriété d’animation ; détermine si la scène est au centre du moniteur lors du chargement de l’animation (TRUE, valeur par défaut) ou non (FALSE). Placez l’instruction incluant cette propriété dans l’animation précédant celle qui doit être affectée. Cette propriété est utile pour vérifier l’emplacement de la scène avant de lire une projection. Cette propriété peut être testée et définie. Remarque Veuillez noter que le comportement constaté pendant la lecture d’une projection peut varier suivant que vous utilisez un système Windows ou Macintosh. Les paramètres sélectionnés pendant la création de la projection peuvent remplacer cette propriété. Dictionnaire Lingo 131 Exemples L’instruction suivante déplace l’animation vers une image spécifique si la scène n’est pas centrée : if the centerStage = FALSE then go to frame "Décalé" L’instruction suivante inverse la valeur courante de la propriété centerStage : set the centerStage to (not the centerStage) Voir aussi fixStageSize changeArea Syntaxe member(quelActeur).changeArea the changeArea of member quelActeur Description Propriété d’acteur transition ; détermine si une transition doit s’appliquer uniquement au secteur modifié de la scène (TRUE) ou à la scène entière (FALSE). Son effet est semblable à celui de l’option Zone modifiée seulement de la boîte de dialogue Propriétés de l’image : Transition. Cette propriété peut être testée et définie. Exemple L’instruction suivante permet à l’acteur transition Vague de ne s’appliquer qu’au secteur modifié de la scène. Syntaxe à point : member("Vague").changeArea = TRUE Syntaxe verbose : set the changeArea of member "Vague" to TRUE channelCount Syntaxe member(quelActeur).channelCount the channelCount of member quelActeur sound(numéroDePiste).channelCount Description Propriété d’acteur et de piste audio ; pour les pistes audio, détermine le nombre de pistes du son en cours ou en pause dans la piste audio spécifiée. Pour les acteurs son, détermine le nombre de pistes contenues dans l’acteur spécifié. Elle est utile pour savoir si un son est mono ou stéréo. Cette propriété peut être testée, mais pas définie. Exemples L’instruction suivante détermine le nombre de pistes contenues dans l’acteur son Jazz. Syntaxe à point : put member("Jazz").channelCount 132 Chapitre 3 Syntaxe verbose : put the channelCount of member "Jazz" L’instruction suivante détermine le nombre de pistes contenues dans l’acteur son Jazz lu dans la piste 2. put sound(2).channelCount char...of Syntaxe expressionActeurTexte.char[quelCaractère] char quelCaractère of 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 est 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. Exemples L’instruction suivante affiche le premier caractère de la chaîne 9,00 euros : put ("9,00 euros").char[1..1] -- "9" L’instruction suivante affiche la chaîne 9,00 euros entière : put ("9,00 euros").char[1..10] -- "9,00 euros" L’instruction suivante modifie les cinq premiers caractères du deuxième mot de la troisième ligne d’un acteur champ : member("question").line[3].word[2].char[1..5] = "?????" Voir aussi mouseMember, mouseItem, mouseLine, mouseWord Dictionnaire Lingo 133 characterSet Syntaxe member(quelActeurPolice).characterSet the characterSet of member quelActeurPolice Description Propriété d’acteur police ; renvoie une chaîne contenant les caractères inclus pour l’importation lors de la création de l’acteur. Si tous les caractères de la police d’origine étaient inclus, le résultat est une chaîne vide. Exemple L’instruction suivante affiche les caractères inclus lorsque l’acteur 11 a été créé. Les caractères inclus durant l’importation étaient des caractères numériques et romains. put member(11).characterSet -- "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" Voir aussi recordFont, bitmapSizes, originalFont charPosToLoc() Syntaxe member(quelActeur).charPosToLoc(énièmeCaractère) charPosToLoc(member quelActeur, énièmeCaractère) Description Fonction de champ ; renvoie le point de l’acteur champ entier (et non uniquement la partie affichée sur la scène) qui est le plus proche du caractère spécifié par énièmeCaractère. 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. 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 : emplacement = charPosToLoc(member "Titre", 50) chars() Syntaxe chars(expressionChaîne, premierCaractère, dernierCaractère) Description Fonction ; identifie une sous-chaîne de caractères dans expressionChaîne. La sous-chaîne commence au premierCaractère et se termine au dernierCaractère. Les expressions premierCaractère et dernierCaractère doivent spécifier une position dans la chaîne. 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 souschaî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. 134 Chapitre 3 Vous pourrez voir un exemple de chars() dans une animation en consultant l’animation Text du dossier Learning/Lingo_Examples, lui-même dans le dossier de Director. Exemples 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 le sixième et le dixième caractère 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) charSpacing Syntaxe expressionSousChaîne.charSpacing Description Propriété d’acteur texte ; permet de spécifier tout espacement supplémentaire à appliquer à chaque lettre de la partie expressionSousChaîne de l’acteur texte. Une valeur inférieure à 0 indique un espacement plus réduit entre les lettres. Une valeur supérieure à 0 indique un plus grand espacement entre les lettres. La valeur par défaut est 0, ce qui active l’espacement par défaut entre les lettres. Exemple Le gestionnaire suivant augmente l’espacement des caractères courant du troisième au cinquième mot de l’acteur texte monTitre par une valeur de 2 : on monEspaceDeCaractères maValeurDespace = member("monTitre").word[3..5].charSpacing member("monTitre").word[3..5].charSpacing = (maValeurDespace + 2) end charToNum() Syntaxe (expressionChaîne).charToNum charToNum(expressionChaîne) Description Fonction ; renvoie le numéro de code ASCII correspondant au premier caractère de expressionChaîne. Dictionnaire Lingo 135 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. 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. Exemples 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 : on vérifierTouchePressée laTouche if (laTouche).charToNum = 65 then go "Réponse correcte" else go "Réponse incorrecte" end if end Voir aussi numToChar() checkBoxAccess Syntaxe the checkBoxAccess Description Propriété d’animation ; spécifie un des trois résultats possibles lorsque l’utilisateur clique sur une case à cocher ou un bouton radio créé avec les outils de bouton de la fenêtre Outils : • 0 • 1 • 2 – Empêche l’utilisateur d’activer et de désactiver les cases à cocher et les boutons radio, ceuxci ne pouvant être activés/désactivés que par des scripts. (valeur par défaut) – Permet à l’utilisateur d’activer et de désactiver les cases à cocher et les boutons radio. – Permet à l’utilisateur d’activer les cases à cocher et les boutons radio, mais pas de les désactiver. Cette propriété peut être testée et définie. Exemples L’instruction suivante donne à la propriété checkBoxAccess la valeur 1, ce qui permet à l’utilisateur de cliquer sur les cases à cocher et les boutons radio pour les activer, mais ne permet pas leur désactivation : the checkBoxAccess to 1 136 Chapitre 3 L’instruction suivante enregistre le paramètre courant de la propriété checkBoxAccess en incorporant sa valeur dans la variable ancienAccès : ancienAccès to the checkBoxAccess Voir aussi hilite (propriété d’acteur), checkBoxType checkBoxType Syntaxe the checkBoxType Description Propriété d’animation ; spécifie une des trois façons d’indiquer si une case à cocher est sélectionnée ou non : • • • 0 (valeur par défaut) – Crée une case à cocher standard contenant un X lorsqu’elle est activée. 1 – Crée une case à cocher contenant un rectangle noir lorsqu’elle est activée. 2 – Crée une case à cocher contenant un rectangle noir rempli lorsqu’elle est activée. Cette propriété peut être testée et définie. Exemple L’instruction suivante donne à la propriété checkBoxType la valeur 1, qui crée un rectangle noir au sein des cases à cocher lorsque l’utilisateur clique dessus : the checkBoxType to 1 Voir aussi hilite (propriété d’acteur), checkBoxAccess checkMark Syntaxe the checkMark of menuItem quelElément of menu quelMenu Description Propriété d’élément de menu ; détermine si l’élément de menu personnalisé spécifié est affiché avec une coche (TRUE) ou non (FALSE, valeur par défaut). La valeur quelElément peut être un nom ou un numéro d’élément de menu. La valeur quelMenu peut être un nom ou un numéro de menu. Cette propriété peut être testée et définie. Remarque Les menus ne sont pas disponibles dans Shockwave. Dictionnaire Lingo 137 Exemple Le gestionnaire suivant désactive tout élément activé du menu personnalisé spécifié par l’argument leMenu. Par exemple, désélectionner ("Format") désactive tous les éléments du menu Format. on désélectionner leMenu set n = the number of menuItems of menu leMenu repeat with i = 1 to n set the checkMark of menuItem i of menu leMenu to FALSE end repeat end désélectionner Voir aussi installMenu, enabled, name (propriété d’élément de menu), number (éléments de menu), script, menu child Syntaxe member(quelActeur).model(quelNœudParent).\ child(quelNœudEnfant) member(quelActeur).model(quelNœudParent).child[index] Description Propriété 3D de modèle, de groupe, de lumière et de caméra ; renvoie le nœud enfant nommé quelNœudEnfant ou à l’index spécifié dans la liste d’enfants du nœud parent. Un nœud est un modèle, un groupe, une caméra ou une lumière. La transformation d’un nœud est relative au parent. Si vous modifiez la position du parent, ses enfants se déplacent avec lui et leur position relative au parent est conservée. De même, la modification des propriétés de rotation et d’échelle du parent est également reflétée dans ses enfants. Utilisez la méthode addChild du nœud parent ou définissez la propriété parent du nœud enfant pour l’ajouter à la liste d’enfants du parent. Alors qu’un enfant ne peut avoir qu’un parent, un parent peut avoir un nombre illimité d’enfants. Un enfant peut lui-même avoir des enfants. Exemple L’instruction suivante indique que le second enfant du modèle Voiture est le modèle Pneu. put member("3D").model("Voiture").child[2] -- model("Pneu") Voir aussi addChild, parent child (XML) Syntaxe nœudXML.child[ numéroDenfant ] Description Propriété XML ; fait référence au nœud enfant spécifié de la structure imbriquée d’un document XML analysé. 138 Chapitre 3 Exemple Avec le code XML suivant : <?xml version="1.0"?> <e1> <nomDeBalise attr1="val1" attr2="val2"/> <e2>élément 2</e2> <e3>élément 3</e3> Exemple de texte </e1> L’instruction Lingo suivante renvoie le nom du premier nœud enfant du code XML précédent : put gObjetDanalyse.child[1].name -- "e1" chunkSize Syntaxe member(quelActeur).chunkSize the chunkSize of member quelActeur Description Propriété d’acteur transition ; détermine la taille des blocs de la transition (entre 1 et 128 pixels) et a le même effet que le curseur de fluidité dans la boîte de dialogue Propriétés de l’image : Transition. Plus la taille des blocs est petite, plus la transition est fluide. Cette propriété peut être testée et définie. Exemple L’instruction suivante paramètre la taille des blocs de l’acteur transition Brouillard sur 4 pixels : Syntaxe à point : member("Brouillard").chunkSize = 4 Syntaxe verbose : set the chunkSize of member "Brouillard" to 4 clearAsObjects() Syntaxe clearAsObjects() Définition 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. La commande clearAsObjects() n’affecte que les objets globaux, tels que le tableau créé dans cette instruction : monTableauGlobal = newObject(#array) La commande clearAsObjects() n’a aucun effet sur les objets créés dans les références d’imagesobjets, tel que : monTableau = sprite(2).newObject(#array) Dictionnaire Lingo 139 Exemple Cette instruction supprime de la mémoire tous les objets ActionScript créés globalement : clearAsObjects() Voir aussi newObject(), setCallback() clearAtRender Syntaxe member(quelActeur).camera(quelleCaméra).colorBuffer.\ clearAtRender sprite(quelleImageObjet).camera{(index)}.colorBuffer.clearAtRender Description Propriété 3D ; indique si le tampon des couleurs est vidé après chaque image. La valeur FALSE, qui signifie que le tampon n’est pas vidé, produit un effet similaire aux traces d’encre. La valeur par défaut de cette propriété est TRUE. Exemple L’instruction suivante empêche Director d’effacer les images précédentes de la vue de la caméra. Les modèles en mouvement laisseront une trace sur la scène. sprite(1).camera.colorBuffer.clearAtRender = 0 Voir aussi clearValue clearCache Syntaxe 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é). Exemple Le gestionnaire suivant vide la mémoire cache au lancement de l’animation : on startMovie clearCache end Voir aussi cacheDocVerify(), cacheSize() 140 Chapitre 3 clearError Syntaxe member(quelActeurFlash).clearError() clearError (member quelActeurFlash) 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. Vous pouvez utiliser la fonction getError pour déterminer le type d’erreur survenue, puis utiliser 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 chemin, linked et preload d’un acteur élimine automatiquement la condition d’erreur. 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. on vérifierEtatFlash if member("Dali").getError() = #memory then member("Dali").clearError() unloadCast go to frame "Artistes" else go to frame "Désolé" end if end Voir aussi state (Flash, SWA), getError() clearFrame Syntaxe clearFrame Description Commande ; efface tout ce qui se trouve dans les pistes d’images-objets de l’image courante (pendant l’enregistrement du scénario uniquement). Dictionnaire Lingo 141 Exemple Le gestionnaire suivant supprime le contenu de chaque image avant de les modifier pendant la création du scénario : on nouveauScénario beginRecording repeat with compteur = 1 to 50 clearFrame the frameScript to 25 updateFrame end repeat endRecording end Voir aussi beginRecording, endRecording, updateFrame clearGlobals Syntaxe clearGlobals Description Commande ; donne à toutes les variables globales la valeur VOID. Cette commande est particulièrement utile lors de l’initialisation de variables globales ou de l’ouverture d’une nouvelle animation qui exige un nouveau jeu de variables globales. Exemple L’instruction suivante donne à toutes les variables globales la valeur VOID : clearGlobals clearValue Syntaxe member(quelActeur).camera(quelleCaméra).colorBuffer\ .clearValue sprite(quelleImageObjet).camera{(index)}.colorBuffer.clearValue Description Propriété 3D ; spécifie la couleur utilisée pour vider le tampon des couleurs si colorBuffer.clearAtRender a pour valeur TRUE. Le paramètre par défaut de cette propriété est rgb(0, 0, 0). Exemple L’instruction suivante donne à la propriété clearValue de la caméra la valeur rgb(255, 0, 0). L’espace de l’univers 3D qui n’est pas occupé par les modèles apparaîtra en rouge. sprite(1).camera.colorBuffer.clearValue= rgb(255, 0, 0) Voir aussi clearAtRender 142 Chapitre 3 clickLoc Syntaxe the clickLoc Description Fonction ; identifie le dernier endroit de l’écran où un clic de la souris a eu lieu. Exemple Le gestionnaire on mouseDown suivant affiche l’emplacement du dernier clic de la souris : on mouseDown put the clickLoc end mouseDown Si l’utilisateur a cliqué sur un emplacement de la scène situé à 50 pixels de son bord gauche et à 100 pixels de son bord supérieur, la fenêtre Messages affiche : -- point(50, 100) clickMode Syntaxe sprite(quelleImageObjetFlash).clickMode the clickMode of sprite quelleImageObjetFlash member(quelActeurFlash).clickMode the clickMode of member quelActeurFlash Description Propriété d’image-objet et d’acteur Flash ; contrôle le moment auquel l’image-objet de l’animation Flash détecte des événements de type clic de souris (mouseUp et mouseDown), ainsi que le moment auquel il détecte des survols (mouseEnter, mouseWithin et mouseLeave). La propriété clickMode peut avoir l’une des valeurs suivantes : • #boundingBox • #opaque (valeur par défaut) – Détecte les événements de type clic de souris uniquement lorsque le pointeur se trouve sur une portion opaque de l’image-objet et détecte les survols sur les limites des portions opaques de l’image-objet si l’effet d’encre de cette dernière est réglé sur Fond transparent. Si l’effet d’encre de l’image-objet a une autre valeur, ce paramètre produit le même effet que #boundingBox. • #object – Détecte les événements de type clic de souris lorsque le pointeur de la souris se trouve sur une zone remplie (pas d’arrière-plan) de l’image-objet et détecte les survols sur les limites de toute zone remplie. Ce paramètre fonctionne quel que soit l’effet d’encre de l’imageobjet. – Détecte les événements de type clic de souris n’importe où dans le rectangle de délimitation de l’image-objet et détecte les survols aux limites de l’image-objet. Cette propriété peut être testée et définie. Exemple Le script suivant vérifie si l’image-objet spécifiée avec l’effet d’encre Fond transparent est définie pour un affichage au premier plan sur la scène. Si tel n’est pas le cas, la propriété clickMode prend pour valeur #opaque. Autrement (puisque les effets d’encre sont ignorés pour les images-objets d’animation Flash affichées au premier plan sur la scène), la propriété clickMode de l’image-objet prend pour valeur #boundingBox. Dictionnaire Lingo 143 Syntaxe à point : on beginSprite me if sprite(the spriteNum of me).directToStage = FALSE then sprite(the spriteNum of me).clickMode = #opaque else sprite(the spriteNum of me).clickMode = #boundingBox end if end Syntaxe verbose : on beginSprite me if the directToStage of sprite the spriteNum of me = FALSE then set the clickMode of sprite the spriteNum of me = #opaque else set the clickMode of sprite the spriteNum of me = #boundingBox end if end clickOn Syntaxe the clickOn Description Fonction ; renvoie la dernière image-objet active sur laquelle l’utilisateur a cliqué. Une imageobjet active est une image-objet à laquelle un script d’image-objet ou d’acteur est associé. Lorsque l’utilisateur clique sur la scène, clickOn renvoie 0. Pour détecter si l’utilisateur a cliqué sur une image-objet à laquelle aucun script n’est associé, vous devez lui assigner un script factice (par exemple "--,") afin de permettre sa détection par la fonction clickOn. La fonction clickOn peut être testée dans une boucle de répétition. Cependant, cette fonction, comme la propriété clickLoc, ne change pas de valeur lors de l’exécution du gestionnaire. La valeur que vous obtenez est la valeur précédant le démarrage du gestionnaire. Exemples L’instruction suivante vérifie si l’image-objet 7 est la dernière image-objet active sur laquelle l’utilisateur a cliqué : if the clickOn = 7 then alert "Désolé, veuillez recommencer." L’instruction suivante affecte une couleur aléatoire à la propriété foreColor de la dernière imageobjet active sur laquelle l’utilisateur a cliqué : sprite(the clickOn).foreColor = random(255)-1 Voir aussi doubleClick, the mouseDown (propriété système), mouseMember, the mouseUp (propriété système) 144 Chapitre 3 clone Syntaxe 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 est nommé nomDuClone et 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. 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 Syntaxe 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 Veuillez noter que cloneDeep utilise plus de mémoire et prend plus de temps que la commande clone. 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() Dictionnaire Lingo 145 cloneModelFromCastmember Syntaxe member(quelActeur).cloneModelFromCastmember\ (nomDeNouveauModèle, nomDeModèleSource, acteurSource) Description Commande 3D ; copie le modèle nomDeModèleSource de l’acteur acteurSource, le renomme nomDeNouveauModèle, et l’insère dans l’acteur quelActeur comme 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. Exemple L’instruction suivante crée une copie du modèle Pluton de l’acteur Séquence et l’insère dans l’acteur Séquence2 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("Séquence2").cloneModelFromCastmember("Planète", "Pluton", \ member("Séquence")) Voir aussi cloneMotionFromCastmember, clone, cloneDeep, loadFile() cloneMotionFromCastmember Syntaxe member(quelActeur).cloneMotionFromCastmember(nomDeNouveauMouvement, \ nomDeMouvementSource, acteurSource) Description Commande 3D ; copie le mouvement nomDeMouvementSource de l’acteur acteurSource, le renomme nomDeNouveauMouvement, et l’insère dans l’acteur quelActeur comme enfant de son univers 3D. Le chargement de l’acteur source doit être terminé pour la bonne exécution de cette commande. 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() 146 Chapitre 3 closed Syntaxe member(quelActeur).closed Description Propriété d’acteur forme vectorielle ; indique si les extrémités du contour sont ouvertes ou fermées. Les formes vectorielles doivent être fermées pour leur remplissage. La valeur peut être : • • TRUE – les extrémités sont fermées. FALSE – les extrémités sont ouvertes. close window Syntaxe window(identifiantDeFenêtre).close() close window identifiantDeFenêtre Description Commande de fenêtre ; ferme la fenêtre spécifiée par identifiantDeFenêtre. • Pour spécifier une fenêtre par nom, utilisez la syntaxe close window nom, où nom correspond au nom d’une fenêtre. Utilisez le chemin complet. • Pour spécifier une fenêtre par numéro dans windowList, utilisez la syntaxe close numéro, window où numéro correspond au numéro de la fenêtre dans la liste windowList. 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 commande sert simplement à fermer la fenêtre dans laquelle l’animation est exécutée. Pour la rouvrir rapidement, utilisez la commande open window. 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 commande forget Si vous utilisez la commande forget window, assurez-vous qu’aucun élément ne fait référence à l’animation de cette fenêtre, faute de quoi le système génère des erreurs lorsque les scripts essaient de communiquer ou d’utiliser la fenêtre supprimée. window. Exemples L’instruction suivante ferme la fenêtre Panneau, qui se trouve dans le sous-dossier Sources MIAW dans le dossier de l’animation courante : window("@/Sources MIAW/Panneau").close() L’instruction suivante ferme la fenêtre 5 dans la liste windowList : window(5).close() Voir aussi forget, open window, windowList Dictionnaire Lingo 147 on closeWindow Syntaxe on closeWindow instruction(s) end 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 le Lingo 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 : on closeWindow -- opérations de maintenance standard forget the activeWindow end closeXlib Syntaxe closeXlib quelFichier Description Commande ; ferme le fichier Xlibrary spécifié par la chaîne quelFichier. Si le fichier Xlibrary se trouve dans un dossier autre que le dossier de l’animation courante, quelFichier doit spécifier un nom de chemin. Si vous ne spécifiez pas de fichier, tous les fichiers Xlibrary ouverts sont fermés. 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 supportée dans Shockwave. Exemples 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" 148 Chapitre 3 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, showXlib collision (modificateur) Syntaxe member(quelActeur).model(quelModèle).\ collision.propriétéDeModificateurDeCollision Description Modificateur 3D ; gère la détection et la résolution des collisions. L’ajout du modificateur collision à un modèle à l’aide de la commande addModifier permet d’accéder aux propriétés suivantes du modificateur collision : enabled (collision) resolve indique si des collisions avec le modèle sont détectées. indique si les collisions avec le modèle sont résolues. immovable indique si un modèle peut être déplacé d’une image à l’autre. mode (collision) indique la géométrie utilisée pour la détection de collision. Remarque Pour plus d’informations, consultez les entrées des différentes propriétés. Le modificateur de collision génère les événements suivants. Pour plus d’informations sur les événements de collision, consultez l’entrée de registerForEvent(). Un événement #collideAny est généré lorsqu’une collision survient entre des modèles auxquels le modificateur collision a été associé. Un événement #collideWith est généré lorsqu’une collision survient avec un modèle spécifique auquel le modificateur collision a été associé. L’objet collisionData est envoyé comme argument avec les événements #collideAny et #collideWith. Pour plus d’informations sur ces propriétés, consultez collisionData. Voir aussi addModifier, removeModifier, modifiers collisionData Syntaxe on nomDeMonGestionnaire me, collisionData Description Objet de données 3D ; envoyé comme argument avec les événements #collideWith et #collideAny au gestionnaire spécifié dans les commandes registerForEvent, registerScript et setCollisionCallback. L’objet collisionData a les trois propriétés suivantes : modelA est un des modèles impliqués dans la collision. modelB est l’autre modèle impliqué dans la collision. Dictionnaire Lingo 149 pointOfContact est la position de la collision dans l’univers. collisionNormal est la direction de la collision. Exemple L’exemple suivant est constitué de trois parties. La première partie est la première ligne de code, qui enregistre le gestionnaire #placerDétails de l’événement #collideAny. La deuxième partie est le gestionnaire #placerDétails. Lorsque deux modèles de l’acteur maSéquence entrent en collision, le gestionnaire #placerDétails est appelé, et l’argument collisionData lui est envoyé. Ce gestionnaire affiche les quatre propriétés de l’objet collisionData dans la fenêtre Messages. La troisième partie de l’exemple affiche les résultats de la fenêtre Messages. Les deux premières lignes indiquent que les modèles impliqués dans la collision étaient balleVerte, modèle A, et balleJaune, modèle B. La troisième ligne indique le point de contact des deux modèles. La dernière ligne indique la direction de la collision. member("maSéquence").registerForEvent(#collideAny, #placerDétails, 0) on placerDétails me, collisionData put collisionData.modelA put collisionData.modelB put collisionData.pointOfContact put collisionData.collisionNormal end ----- model("balleVerte") model("balleJaune") vector(24.800, 0.000, 0.000) vector(-1.000, 0.000, 0.000) Voir aussi Propriétés collisionData : modelA, modelB, pointOfContact, collisionNormal Méthodes collisionData : resolveA, resolveB, collision (modificateur) collisionNormal Syntaxe collisionData.collisionNormal Description Propriété 3D collisionData ; vecteur indiquant la direction de la collision. L’objet collisionData est envoyé comme argument avec les événements #collideWith et #collideAny au gestionnaire spécifié dans les commandes registerForEvent, registerScript et setCollisionCallback. Les événements #collideWith et #collideAny sont envoyés lors d’une collision entre deux modèles associés à des modificateur de collision. La propriété resolve des modificateurs des modèles doit être TRUE. Cette propriété peut être testée, mais pas définie. 150 Chapitre 3 Exemple L’exemple suivant est constitué de deux parties. La première partie est la première ligne de code, qui enregistre le gestionnaire #explose de l’événement #collideAny. La seconde partie est le gestionnaire #explose. Lorsque deux modèles de l’acteur maSéquence entrent en collision, le gestionnaire #explose est appelé, et l’argument collisionData lui est envoyé. Les dix premières lignes du gestionnaire #explose créent la ressource de modèle sourceDétincelles et en définissent les propriétés. Cette ressource de modèle est une simple explosion de particules. La dixième ligne donne à la direction de l’explosion la valeur collisionNormal, ce qui est la direction de la collision. La onzième ligne du gestionnaire crée un modèle modèleDétincelles à l’aide de la ressource de modèle sourceDétincelles. La dernière ligne du gestionnaire définit la position de modèleDétincelles à l’emplacement de la collision. L’effet obtenu est une collision qui entraîne une explosion d’étincelles qui volent dans la direction de la collision, à partir du point de contact. member("maSéquence").registerForEvent(#collideAny, #explose, 0) on explose me, collisionData nmr = member("maSéquence").newModelResource("sourceDétincelles", #particle) nmr.emitter.mode = #burst nmr.emitter.loop = 0 nmr.emitter.minSpeed = 30 nmr.emitter.maxSpeed = 50 nmr.emitter.angle = 45 nmr.colorRange.start = rgb(0, 0, 255) nmr.colorRange.end = rgb(255, 0, 0) nmr.lifetime = 5000 nmr.emitter.direction = collisionData.collisionNormal nm = member("maSéquence").newModel("modèleDétincelles", nmr) nm.transform.position = collisionData.pointOfContact end Voir aussi pointOfContact, modelA, modelB, resolveA, resolveB, collision (modificateur) color() Syntaxe color(#rvb, valeurRouge, valeurVerte, valeurBleue) color(#indexDePalette, numéroDindexDePalette) rgb(chaîneHexRvb) rgb(valeurRouge, valeurVerte, valeurBleue) paletteIndex(numéroDindexDePalette) Description Fonction et type de données ; détermine la couleur d’un objet sous la forme de valeurs rvb ou de valeurs d’un index de palette de 8 bits. Ces valeurs sont les mêmes que celles utilisées dans les propriétés d’acteur color et bgColor, et dans les propriétés d’image-objet color et bgColor, ainsi que dans la propriété de scène bgColor. La fonction color permet de manipuler les valeurs de couleur sur 24 bits ou 8 bits, ainsi que de les appliquer aux acteurs, aux images-objets et à la scène. Dans le cas des valeurs rvb, chaque composant de couleur possède une gamme de valeurs comprises entre 0 et 255, toutes les autres valeurs étant tronquées. Dans le cas des types paletteIndex, un entier de 0 à 255 est utilisé pour indiquer le numéro d’index dans la palette courante, toutes les autres valeurs étant tronquées. Dictionnaire Lingo 151 Exemples L’instruction suivante effectue une opération mathématique : objetCouleurPal = paletteIndex(20) put objetCouleurPal -- paletteIndex(20) put objetCouleurPal / 2 -- paletteIndex(10) L’instruction suivante convertit un type de couleur en un autre type : nouvelObjetCouleur = color(#rgb, 155, 0, 75) put nouvelObjetCouleur -- rgb(155, 0, 75) nouvelObjetCouleur.colorType = #paletteIndex put nouvelObjetCouleur -- paletteIndex(106) L’instruction suivante obtient la représentation hexadécimale d’une couleur, quel que soit son type : unObjetCouleur = color(#paletteIndex, 32) put unObjetCouleur.hexString() -- "#FF0099" L’instruction suivante détermine les composants rvb individuels et la valeur paletteIndex d’une couleur, quel que soit son type : nouvelObjetCouleur = color(#rgb, 155, 0, 75) put nouvelObjetCouleur.green -- 0 put nouvelObjetCouleur.paletteIndex -- 106 nouvelObjetCouleur.green = 100 put nouvelObjetCouleur.paletteIndex -- 94 put nouvelObjetCouleur -- rgb(155, 100, 75) nouvelObjetCouleur.paletteIndex = 45 put nouvelObjetCouleur -- paletteIndex(45) L’instruction suivante modifie la couleur des caractères 4 à 7 de l’acteur texte mesCitations : member("mesCitations").char[4..7].color = rgb(200, 150, 75) L’instruction Lingo suivante affiche la couleur de l’image-objet 6 dans la fenêtre Messages, puis définit la couleur de l’image-objet 6 avec une nouvelle valeur rvb : put sprite(6).color -- rgb(255, 204, 102) sprite(6).color = rgb(122, 98, 210) Remarque La définition de la valeur paletteIndex d’un type de couleur rvb remplace colorType par paletteIndex. La définition d’une composante rvb d’une couleur paletteIndex définit sa valeur colorType sur rvb. Voir aussi bgColor 152 Chapitre 3 color (brouillard) Syntaxe member(quelActeur).camera(quelleCaméra).fog.color sprite(quelleImageObjet).camera{(index)}.fog.color Description Propriété 3D ; indique la couleur introduite dans la scène par la caméra lorsque sa propriété fog.enabled a pour valeur TRUE. Le paramètre par défaut de cette propriété est rgb(0, 0, 0). Exemple L’instruction suivante donne à la couleur du brouillard de la caméra vueDeLaBaie la valeur rgb(255, 0, 0). Si la propriété fog.enabled de la caméra a pour valeur TRUE, les modèles dans le brouillard auront une teinte rouge. member("monTerrain").camera("vueDeLaBaie").fog.color = rgb(255, 0, 0) Voir aussi fog color (lumière) Syntaxe member(quelActeur).light(quelleLumière).color Description Propriété 3D de lumière ; indique la valeur rvb de la lumière. La valeur par défaut de cette propriété est rgb(191,191,191). Exemple L’instruction suivante donne à la couleur de la lumière lumièreDeLaPièce la valeur rgb(255, 0, 255). member("Pièce").light("lumièreDeLaPièce").color = rgb(255,0,255) Voir aussi fog color (propriété d’image-objet et d’acteur) Syntaxe sprite(quelNuméroDimage).color the color of sprite quelNuméroDimage member(quelActeur).color Description Propriété d’image-objet et d’acteur ; pour les images-objets, détermine la couleur de premier plan de l’image-objet spécifiée par quelleImageObjet. La définition de la propriété d’image-objet foreColor revient à choisir la couleur de premier plan dans la fenêtre Outils lorsque l’imageobjet est sélectionnée sur la scène. Cette propriété a le même effet que la propriété d’image-objet foreColor, mais la valeur de couleur renvoyée est un objet couleur, quel que soit le type défini pour cette image-objet. Dictionnaire Lingo 153 Pour les acteurs texte, cette propriété détermine la couleur du texte. Cette propriété peut être testée et définie. La propriété color peut être n’importe quelle valeur rgb ou hexadécimale. Exemples L’instruction suivante donne au texte de l’acteur 3 une couleur rouge moyenne : member(3).color = rgb(255, 0, 100) L’instruction suivante donne au texte de l’acteur 3 une couleur bleue moyenne : member(3).color = rgb("0033FF") Voir aussi color(), bgColor, foreColor colorBufferDepth Syntaxe getRendererServices().colorBufferDepth Description Propriété 3D rendererServices ; indique la précision des couleurs du tampon de sortie matériel du système de l’utilisateur. La valeur est 16 ou 32, en fonction du matériel de l’utilisateur. Cette propriété peut être testée, mais pas définie. Exemple L’instruction suivante indique que la valeur colorBufferDepth de la carte vidéo de l’utilisateur est 32. put getRendererServices().colorBufferDepth -- 32 Voir aussi getRendererServices(), getHardwareInfo(), depthBufferDepth colorDepth Syntaxe the colorDepth Description Propriété système ; paramètre le codage des couleurs du moniteur. • Sous Windows, elle vous permet de vérifier et définir le codage des couleurs du moniteur. Le réglage de la propriété colorDepth est parfois impossible pour certaines combinaisons de cartes vidéo et de pilotes. Vérifiez toujours que le codage des couleurs a bien été changé après votre essai. • Sur le Macintosh, elle vous permet de vérifier le codage des couleurs des différents moniteurs et de le modifier si nécessaire. 154 Chapitre 3 Les valeurs possibles sont : 1 Noir et blanc 2 4 couleurs 4 16 couleurs 8 256 couleurs 16 32 768 ou 65 536 couleurs 32 16 777 216 couleurs Si vous essayez de changer le codage des couleurs avec une valeur impossible pour le moniteur, le codage reste inchangé. Dans le cas des ordinateurs disposant de plusieurs moniteurs, la propriété colorDepth se réfère au moniteur sur lequel la scène est affichée. Si la scène s’étend sur plus d’un moniteur, la propriété colorDepth indique le codage le plus élevé de ces moniteurs ; colorDepth essaie d’affecter à tous ces moniteurs le codage spécifié. Cette propriété peut être testée et définie. Exemples L’instruction suivante ne permet la lecture du segment Couleurs complètes que si le codage des couleurs du moniteur est de 256 couleurs : if the colorDepth = 8 then play movie "Couleurs complètes" Le gestionnaire suivant tente de changer le codage des couleurs et, s’il n’y arrive pas, un message d’alerte apparaît : on essaiDeRéglageDesCouleurs codageSouhaité the colorDepth = codageSouhaité if the colorDepth = codageSouhaité then return true else alert "Veuillez changer le codage des couleurs de votre ordinateur sur" && codageSouhaité &&"bits et redémarrer." return false end if end Si vous changez le codage des couleurs du moniteur de l’utilisateur, il est toujours courtois de restaurer le codage d’origine une fois l’animation terminée. Sous Windows, la commande set the colorDepth = 0 restaure les paramètres de l’utilisateur définis dans le Panneau de configuration. Voir aussi switchColorDepth Dictionnaire Lingo 155 colorList Syntaxe member(quelActeur).modelResource(quelleRessDeMod).\ colorList member(quelActeur).modelResource(quelleRessDeMod).\ colorList[index] member(quelActeur).model(quelModèle).meshdeform.mesh\ [indexDeMaille].colorList member(quelActeur).model(quelModèle).meshdeform.mesh\ [indexDeMaille].colorList[index] Description Propriété 3D ; permet d’obtenir ou de définir chaque couleur utilisée dans une maille. Cette commande ne peut être utilisée que pour les ressources de modèle de type #mesh. Chaque couleur peut être partagée par plusieurs sommets (faces) de la maille. Vous avez également la possibilité de spécifier les coordonnées de texture des faces de la maille et d’appliquer un matériau à l’aide de cette ressource de modèle. Cette commande doit être définie à l’aide d’une liste ayant le même nombre de valeurs de couleurs Lingo que dans l’appel newMesh. Exemple L’instruction suivante indique que la troisième couleur de la liste colorList de la ressource de modèle Maille2 est rgb(255, 0, 0). put member("formes").modelResource("maille2").colorlist[3] -- rgb(255,0,0) Voir aussi face, colors colorRange Syntaxe member(quelActeur).modelResource(quelleRessDeMod).\ colorRange.start member(quelActeur).modelResource(quelleRessDeMod).\ colorRange.end Description Propriété 3D de ressource de modèle #particle ; indique les couleurs de début et de fin des particules d’un système de particules. La propriété start définit la couleur des particules lorsqu’elles sont créées. La propriété end définit la couleur des particules à la fin de leur vie. La couleur de chaque particule change progressivement de la valeur start à la valeur end au long de leur vie. Par défaut, les propriétés start et end ont pour valeur rgb(255, 255, 255). 156 Chapitre 3 Exemple L’instruction suivante définit les propriétés colorRange de la ressource de modèle systèmeThermique. La première ligne donne à start la valeur rgb(255, 0, 0) et la seconde donne à end la valeur rgb(0, 0, 255). Cette instruction fait progressivement évoluer les particules de systèmeThermique du rouge au bleu, entre le moment où elles apparaissent et la fin de leur vie. member(8,2).modelResource("systèmeThermique").colorRange.start = \ rgb(255,0,0) member(8,2).modelResource("systèmeThermique").colorRange.end = \ rgb(0,0,255) Voir aussi emitter, blendRange, sizeRange colors Syntaxe member(quelActeur).modelResource(quelleRessDeMod).\ face[indexDeFaces].colors Description Propriété 3D de face ; liste linéaire de trois nombres entiers indiquant les positions d’index de la liste des couleurs de la ressource de modèle à utiliser pour les trois sommets de la face. La liste des couleurs est une liste linéaire de valeurs rvb. La propriété colors n’est utilisée qu’avec les ressources de modèle de type #mesh. Vous devez utiliser la commande build() de la ressource de modèle après avoir défini cette propriété ; sinon, les modifications ne prendront pas effet. 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. La ligne 1 utilise la commande newMesh() pour créer une ressource de modèle #mesh nommée Triangle, 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. La ligne 2 définit la propriété vertexList en une liste de trois vecteurs. La ligne 3 affecte les vecteurs de la propriété vertexList aux sommets de la première face de Triangle. La ligne 4 donne à la liste des couleurs trois valeurs rvb. La ligne 5 affecte les couleurs à la première face de Triangle. La troisième couleur de la liste est appliquée au premier sommet de Triangle, 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 Triangle en dégradés. La ligne 6 crée les normales de Triangle avec la commande generateNormals(). La ligne 7 utilise la commande build() pour construire la maille. Dictionnaire Lingo 157 La ligne 8 crée un nouveau modèle nommé triModèle, qui utilise la nouvelle maille. nm = member("Formes").newMesh("Triangle",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 face, vertices, colorList, flat colorSteps Syntaxe member(quelActeur).model(quelModèle).toon.colorSteps member(quelActeur).model(quelModèle).shader.colorSteps member(quelActeur).shader(quelMatériau).colorSteps Description Propriété 3D de modificateur toon et painter ; nombre maximum de couleurs disponibles pour le modificateur toon ou painter. La valeur de cette propriété peut être 2, 4, 8 ou 16. Si vous donnez une valeur différente à colorSteps, elle sera arrondie à l’une de ces valeurs autorisées. La valeur par défaut est 2. Exemple L’instruction suivante limite le nombre de couleurs disponibles pour le modificateur toon du modèle Théière à 8. Le rendu de la théière sera composé au maximum de huit couleurs. member("formes").model("Théière").toon.colorSteps = 8 Voir aussi highlightPercentage, shadowPercentage commandDown Syntaxe the commandDown Description Fonction ; détermine si l’utilisateur appuie sur la touche Cmd du Macintosh ou Ctrl sous Windows (TRUE) ou non (FALSE). Vous pouvez utiliser la fonction commandDown avec l’élément the key pour déterminer si l’utilisateur appuie sur la touche Cmd ou Ctrl en combinaison avec une autre touche. Cela vous permet de créer des gestionnaires exécutés lorsque l’utilisateur appuie sur les touches spécifiées en combinaison avec la touche Cmd ou Ctrl. Les raccourcis clavier utilisant la touche Cmd ou Ctrl des menus auteur de Director ont la priorité durant la lecture de l’animation, sauf si vous avez installé des menus personnalisés Lingo, ou pendant la lecture d’une projection. 158 Chapitre 3 Pour la lecture d’une animation avec le lecteur Director pour Java, cette fonction renvoie TRUE uniquement si l’utilisateur appuie simultanément sur la touche Cmd ou Ctrl et sur une autre touche. S’il appuie uniquement sur la touche Cmd ou Ctrl, commandDown renvoie FALSE. En effet, le navigateur reçoit les touches avant l’animation et répond et intercepte les combinaisons de touches qui servent également de raccourcis clavier pour le navigateur. Par exemple, si l’utilisateur entre Ctrl+R ou Cmd+R, le navigateur recharge la page courante et l’animation ne reçoit jamais la combinaison de touches. Exemple Les instructions suivantes mettent une projection sur pause à chaque fois que l’utilisateur appuie sur Ctrl+A (Windows) ou Cmd+A (Macintosh). En paramétrant la propriété keyDownScript sur doCommandKey, le gestionnaire on prepareMovie fait que le gestionnaire doCommandKey est le premier gestionnaire d’événement exécuté lorsque l’utilisateur appuie sur une touche. Le gestionnaire toucheCmd vérifie si le raccourci clavier Ctrl+A ou Cmd+A a été utilisé et, le cas échéant, met l’animation en pause. on prepareMovie the keyDownScript = "doCommandKey" end on toucheCmd if (the commandDown) and (the key = "a") then go to the frame end Voir aussi controlDown, key(), keyCode(), optionDown, shiftDown comments Syntaxe quelActeur.comments the comments of quelActeur Description La propriété d’acteur suivante fournit un emplacement de stockage des commentaires que vous souhaitez conserver à propos d’un acteur ou de toute autre chaîne que vous souhaitez associer à cet acteur. Cette propriété peut être testée et définie. Elle peut également être définie dans le volet Acteur de l’inspecteur des propriétés. Exemple L’instruction suivante définit les commentaires de l’acteur Fond comme « Obtenez la permission d’utiliser ce graphique ». member("Fond").comments = "Obtenez la permission d’utiliser ce graphique" Voir aussi creationDate, modifiedBy, modifiedDate Dictionnaire Lingo 159 compressed Syntaxe member(quelActeur).texture(quelleTexture).compressed Description Propriété 3D de texture ; indique si l’acteur source de la texture est compressé (TRUE) ou non (FALSE). La valeur de la propriété compressed passe automatiquement de TRUE à FALSE lorsque la texture est nécessaire pour le rendu. La valeur peut être FALSE pour décompresser la texture en avance. Elle peut recevoir TRUE pour annuler l’affectation de la représentation décompressée de la mémoire. Les acteurs utilisés pour les textures ne sont pas compressés si la valeur est TRUE (indépendamment de la compression standard utilisée pour les acteurs bitmap lors de l’enregistrement d’une animation Director). La valeur par défaut de cette propriété est TRUE. Exemple L’instruction suivante donne à la propriété compressed de la texture placagePluton la valeur TRUE. member("Séquence").texture("placagePluton").compressed = TRUE Voir aussi texture constrainH() Syntaxe constrainH (quelleImageObjet, expressionEntière) Description Fonction ; évalue expressionEntière, puis renvoie une valeur dépendant des coordonnées horizontales des bords gauche et droit de quelleImageObjet, comme suit : • Lorsque cette valeur est située entre les coordonnées gauche et droite, elle ne change pas. • Lorsqu’elle est inférieure à la coordonnée horizontale gauche, elle est remplacée par la coordonnée gauche. • Lorsqu’elle est supérieure à la coordonnée horizontale droite, elle est remplacée par la coordonnée droite. Les fonctions constrainH et constrainV n’agissent que sur un seul axe, la propriété constraint limitant les deux. Cette fonction ne modifie pas les propriétés de l’image-objet. Exemples Les instructions suivantes vérifient la fonction constrainH sur l’image-objet 1 lorsque ses coordonnées gauche et droite sont 40 et 60 : put constrainH(1, 20) -- 40 put constrainH(1, 55) -- 55 put constrainH(1, 100) -- 60 160 Chapitre 3 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 : set the locH of sprite 1 to constrainH(2, the mouseH) Voir aussi constrainV(), constraint, left, right constraint Syntaxe sprite(quelleImageObjet).constraint the constraint of sprite quelleImageObjet Description Propriété d’image-objet ; détermine si le point d’alignement de l’image-objet spécifiée par quelleImageObjet est limité au rectangle de délimitation d’une autre image-objet (TRUE) ou non (FALSE, la valeur par défaut). La propriété constraint est utile pour limiter le déplacement d’une image-objet mobile au rectangle de délimitation d’une autre image-objet. Elle permet de simuler une piste pour un curseur ou de limiter l’endroit de l’écran où l’utilisateur peut faire glisser un objet dans un jeu. La propriété d’image-objet constraint s’applique aux images-objets mobiles et aux propriétés d’image-objet locH et locV. Le point de contrôle d’une image-objet mobile ne peut pas être déplacé en dehors du rectangle de délimitation de l’image-objet associée. Dans le cas d’une imageobjet bitmap, le point de contrôle est le point d’alignement ; dans le cas d’une image-objet forme, le point de contrôle est l’angle supérieur gauche délimitant la forme. Lorsqu’une contrainte est définie pour une image-objet, les limites définies ont priorité sur toute coordonnée établie à l’aide des propriétés d’image-objet locH et locV. Cette propriété peut être testée et définie. Exemples L’instruction suivante supprime une propriété d’image-objet constraint : Syntaxe à point : sprite(quelleImageObjet).constraint = 0 Syntaxe verbose : set the constraint of sprite quelleImageObjet to 0 L’instruction suivante contraint l’image-objet (i + 1) à la limite de l’image-objet 14 : sprite(i + 1).constraint = 14 L’instruction suivante vérifie si le déplacement de l’image-objet 3 est limité et, le cas échéant, active le gestionnaire showConstraint (l’opérateur <> exécute l’opération différent de) : if sprite(3).constraint <> 0 then showConstraint Voir aussi constrainH(), constrainV(), locH, locV Dictionnaire Lingo 161 constrainV() Syntaxe constrainV (quelleImageObjet, expressionEntière) Description Fonction ; évalue expressionEntière, puis renvoie une valeur dépendant des coordonnées verticales des bords supérieur et inférieur de l’image-objet spécifiée par quelleImageObjet : • Lorsque la valeur est située entre les coordonnées supérieure et inférieure, elle ne change pas. • Lorsqu’elle est inférieure à la coordonnée supérieure de l’image-objet, la valeur est remplacée par cette dernière. • Lorsqu’elle est supérieure à la coordonnée inférieure de l’image-objet, la valeur est remplacée par cette dernière. Cette fonction ne modifie pas les propriétés de l’image-objet. Exemples 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 : 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 : set the locV of sprite 1 to constrainV(2, the mouseV) Voir aussi bottom, constraint, top, constrainH() contains Syntaxe expressionChaîne1 contains expressionChaîne2 Description Opérateur ; compare deux chaînes et détermine si expressionChaîne1 contient expressionChaîne2 (TRUE) ou non (FALSE). L’opérateur de comparaison contains a un niveau de priorité de 1. L’opérateur contains est utile pour vérifier si l’utilisateur tape un caractère ou une chaîne de caractères spécifique. Vous pouvez également utiliser l’opérateur contains pour rechercher des chaînes de caractères spécifiques dans un ou plusieurs champs. 162 Chapitre 3 Exemple L’exemple suivant détermine si un caractère transmis est un chiffre : on estNombre uneLettre chiffres = "1234567890" if chiffres contains uneLettre then return TRUE else return FALSE end if end Remarque La comparaison de chaînes ne tient pas compte des différences entre majuscules et minuscules ; les lettres « a » et « A » étant traitées de la même manière. Voir aussi offset() (fonction de chaîne), starts continue Ce terme Lingo est obsolète. Utilisez go to the frame +1. controlDown Syntaxe the controlDown Description Fonction ; détermine si l’utilisateur appuie sur la touche Ctrl (TRUE) ou non (FALSE). Vous pouvez utiliser la fonction controlDown avec l’élément the key pour vérifier l’utilisation de combinaisons de la touche Ctrl et d’une autre touche. Pour la lecture d’une animation avec le lecteur Director pour Java, cette fonction renvoie TRUE uniquement si l’utilisateur appuie simultanément sur la touche Ctrl et sur une autre touche. S’il appuie uniquement sur la touche Cmd ou Ctrl, controlDown renvoie FALSE. Le lecteur Director pour Java supporte les combinaisons de touches avec la touche Ctrl. Néanmoins, le navigateur web reçoit les touches avant l’animation et, par conséquent, intercepte et répond à des combinaisons de touches qui correspondent également à des raccourcis de clavier du navigateur. Pour une démonstration des combinaisons de touches dans Lingo, consultez l’animation Clavier et Lingo dans le système d’aide de Director. Exemple Le gestionnaire on keyDown suivant vérifie si la touche enfoncée est la touche Ctrl et, le cas échéant, active le gestionnaire on doControlKey. L’argument (the key) identifie la touche enfoncée en plus de la touche Ctrl. on keyDown if (the controlDown)then doControlKey (the key) end Voir aussi charToNum(), commandDown, key(), keyCode(), optionDown, shiftDown Dictionnaire Lingo 163 controller Syntaxe member(quelActeur).controller the controller of member quelActeur Description Propriété d’acteur vidéo numérique ; détermine si un acteur animation vidéo numérique affiche ou masque son contrôleur. Le paramétrage de cette propriété sur 1 affiche le contrôleur, alors que 0 le masque. La propriété d’acteur controller s’applique uniquement à la vidéo numérique QuickTime. • La définition de la propriété d’acteur the controller pour une vidéo numérique Vidéo pour Windows ne donne aucun résultat et n’entraîne aucun message d’erreur. • Le test de la propriété d’acteur controller pour une vidéo numérique Vidéo pour Windows renvoie toujours la valeur FALSE. La vidéo numérique doit être en mode de lecture au premier plan pour afficher le contrôleur. Exemple L’instruction suivante entraîne l’affichage du contrôleur de l’acteur QuickTime Démo : Syntaxe à point : member("Démo").controller = 1 Syntaxe verbose : set the controller of member "Démo" to 1 Voir aussi directToStage copyPixels() Syntaxe objetImage.copyPixels(objetImageSource, rectDeDestination, rectSource {, listeDeParamètres}) objetImage.copyPixels(objetImageSource, quadDeDestination, rectSource {, listeDeParamètres }) Description Cette fonction copie le contenu du rectSource depuis l’objetImageSource vers l’objetImage donné. Les pixels sont copiés du rectSource dans l’objetImageSource et placés dans le rectDeDestination ou le quadDeDestination de l’objetImage donné. Pour plus d’informations sur l’utilisation des quadrilatères, consultez quad. 164 Chapitre 3 Vous pouvez inclure une liste de propriétés de paramètres facultative en vue du traitement des pixels copiés avant leur placement dans le rectDeDestination. La liste de propriétés peut contenir tout ou partie des paramètres suivants : 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 d’arrière-plan par défaut est 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. Pour plus d’informations sur les valeurs possibles, consultez ink. #blendLevel Degré d’opacité (transparence) à appliquer aux pixels copiés. La plage de valeurs s’étend de 0 à 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 #blendTransparent s’il était initialement défini sur #backgroundTransparent. Vous pouvez également substituer #blend comme nom de propriété et utiliser une valeur de 0 à 100. Pour plus d’informations, consultez blend. #dither Valeur TRUE ou FALSE déterminant si les pixels copiés seront tramés lorsque 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 l’objetImage. #useFastQuads Valeur TRUE ou FALSE déterminant 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. Laissez ce paramètre sur FALSE (valeur par défaut) pour des quadrilatères aléatoires, tels que ceux utilisés pour les transformations de perspective. Pour plus d’informations, consultez useFastQuads. #maskImage Utilisé pour spécifier un objet Masque ou Dessin seul créé avec les fonctions createMask() ou createMatte() lors d’une utilisation comme masque pour les pixels à copier. Ceci vous permet de reproduire les effets des encres d’images-objets Masque et Dessin seul. Notez que 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’encre Masque ou Dessin seul spécifiée sera ignorée. 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’imageSource. Le décalage par défaut est (0, 0). 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. La copie directe d’une zone à l’autre dans la même image est déconseillée. Voir duplicate(). Pour simuler l’encre Dessin seul avec copyPixels(), créez un objet Dessin seul avec createMatte(), puis faites passer cet objet comme paramètre #maskImage avec copyPixels(). La copie de pixels d’un objet image vers lui-même est déconseillée. Utilisez plutôt des images séparées. Vous pourrez voir un exemple de quad dans une animation en consultant l’animation Quad du dossier Learning/Lingo_Examples, lui-même dans le dossier de Director. Dictionnaire Lingo 165 Exemples 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. member("fleur").image.copyPixels(member("Joyeux").image, member("fleur").rect, member("Joyeux").rect) \ 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. member("fleur").image.copyPixels(member("Joyeux").image,\ rect(20, 20, 100, 40), rect(0, 0, 200, 90)) 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 est de taille identique à celle du rectangle de l’acteur Joyeux, de sorte que l’image copiée ne doive pas être 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. member("fleur").image.copyPixels(member("Joyeux").image,\ member("Joyeux").rect, member("Joyeux").rect, [#blendLevel: 50]) Voir aussi ink, color() copyrightInfo Syntaxe member(quelActeur).copyrightInfo copyrightInfo of member quelActeur Description Propriété d’acteur Shockwave Audio (SWA) ; affiche le texte de copyright d’un fichier SWA. Cette propriété n’est disponible qu’après le début de la lecture du son SWA ou après le préchargement du fichier avec la commande preLoadBuffer. Cette propriété peut être testée et définie. Exemple L’instruction suivante entraîne l’affichage par Director de l’information de copyright du fichier Shockwave Audio SWA dans un acteur champ nommé Infos : Syntaxe à point : set quelEtat = the state of member "Fichier SWA" if quelEtat > 1 AND quelEtat < 9 then put member("Fichier SWA").copyrightInfo into member("Infos") end if Syntaxe verbose : set quelEtat = the state of member "Fichier SWA" if quelEtat > 1 AND quelEtat < 9 then put the copyrightInfo of member "Fichier SWA" into member "Infos" end if 166 Chapitre 3 copyToClipBoard Syntaxe member(quelActeur).copyToClipBoard() copyToClipBoard member quelActeur Description Commande ; copie l’acteur spécifié dans le Presse-papiers sans que la fenêtre Distribution soit nécessairement active. Vous pouvez utiliser cette commande pour copier des acteurs entre plusieurs animations ou applications. Exemples L’instruction suivante copie l’acteur Chaise dans le Presse-papiers : member("Chaise").copyToClipboard() L’instruction suivante copie l’acteur numéro 5 dans le Presse-papiers : member(5).copyToClipboard() Voir aussi pasteClipBoardInto cos() Syntaxe (angle).cos cos (angle) Description Fonction ; calcule le cosinus de l’angle spécifié, exprimé en radians. 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() count() Syntaxe liste.count count (liste) count(quelObjet) quelObjet.count expressionTexte.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. Dictionnaire Lingo 167 Vous pourrez voir un exemple de count() dans une animation en consultant l’animation Text du dossier Learning/Lingo_Examples, lui-même dans le dossier de Director. Exemple L’instruction suivante affiche la valeur 3, qui correspond au nombre d’entrées : put [10,20,30].count -- 3 Voir aussi globals count Syntaxe member(quelActeur).light.count member(quelActeur).camera.count member(quelActeur).modelResource(quelleRessDeMod).\ bone.count member(quelActeur).model.count member(quelActeur).group.count member(quelActeur).shader.count member(quelActeur).texture.count member(quelActeur).modelResource.count member(quelActeur).motion.count member(quelActeur).light.child.count member(quelActeur).camera.child.count member(quelActeur).model.child.count member(quelActeur).group.child.count sprite(quelleImageObjet).camera{(index)}.backdrop.count member(quelActeur).camera(quelleCaméra).backdrop.count sprite(quelleImageObjet).camera{(index)}.overlay.count member(quelActeur).camera(quelleCaméra).overlay.count member(quelActeur).model(quelModèle).modifier.count member(quelActeur).model(quelModèle).keyframePlayer.\ playlist.count member(quelActeur).model(quelModèle).bonesPlayer.\ playlist.count member(quelActeur).modelResource(quelleRessDeMod).\ face.count member(quelActeur).model(quelModèle).meshDeform.\ mesh[index].textureLayer.count member(quelActeur).model(quelModèle).meshDeform.mesh.count member(quelActeur).model(quelModèle).meshDeform.\ mesh[index].face.count Description Propriété 3D ; renvoie le nombre d’éléments de la liste spécifiée associée à l’objet 3D indiqué. Utilisable avec n’importe quel type d’objet. La propriété face.count permet d’obtenir le nombre de triangles dans la maille pour une ressource de modèle de type #mesh. Cette propriété peut être testée, mais pas définie. 168 Chapitre 3 Exemples Les exemples suivants déterminent le nombre de types d’objets au sein d’un acteur 3D appelé Univers 3D. nombreDeCaméras = member("Univers 3D").camera.count put member("Univers 3D").light.count -- 3 nombreDeModèles = member("Univers 3D").model.count nombreDeTextures = member("Univers 3D").texture.count put member("Univers 3D").modelResource("maille2").face.count -- 4 L’instruction suivante indique que la première maille du modèle Oreille est composée de 58 faces. put member("Séquence").model("Oreille").meshdeform.mesh[1].face.count -- 58 L’instruction suivante indique que le modèle Oreille est composé de trois mailles. put member("Séquence").model("Oreille").meshdeform.mesh.count -- 3 L’instruction suivante indique que la première maille du modèle Oreille compte deux couches de texture. put member("Séquence").model("Oreille").meshdeform.mesh[1].\ textureLayer.count -- 2 Voir aussi cameraCount() cpuHogTicks Syntaxe the cpuHogTicks Description Propriété système ; détermine la fréquence avec laquelle Director libère le contrôle du processeur afin de permettre à l’ordinateur de traiter des événements d’arrière-plan, tels que ceux qui se produisent dans d’autres applications, des événements réseau, des mises à jour de l’horloge et d’autres événements de clavier. La valeur par défaut est de 20 battements. Pour accorder un délai supplémentaire à Director avant de libérer le processeur pour les autres événements ou en vue du contrôle des opérations réseau, donnez une valeur supérieure à cpuHogTicks. Vous pouvez obtenir une répétition automatique de touches plus rapide en donnant une valeur plus faible à cpuHogTicks, mais cela ralentit l’animation. Dans une animation, lorsque l’utilisateur maintient une touche enfoncée pour créer une suite rapide de pressions de touches, Director vérifie généralement moins fréquemment les répétitions automatiques de pression de touches que la fréquence définie dans le tableau de bord de l’ordinateur. La propriété cpuHogTicks ne fonctionne que sur le Macintosh. Dictionnaire Lingo 169 Exemple L’instruction suivante entraîne Director à libérer le processeur tous les 6 battements, ce qui représente un dixième de seconde : the cpuHogTicks = 6 Voir aussi ticks creaseAngle Syntaxe member(quelActeur).model(quelModèle).inker.creaseAngle member(quelActeur).model(quelModèle).toon.creaseAngle Description Propriété 3D de modificateur inker et toon ; indique la sensibilité de la fonction de traçage de ligne du modificateur à la présence de plis dans la géométrie du modèle. Des paramètres plus élevés entraînent plus de lignes (détails) dessinées aux plis. La propriété creases du modificateur creaseAngle soit effective. doit avoir la valeur TRUE pour que la propriété La plage de CreaseAngle s’étend de -1.0 à +1.0. Le paramètre par défaut est 0.01. Exemple L’instruction suivante donne à la propriété creaseAngle du modificateur inker appliqué au modèle Théière la valeur 0.10. Une ligne sera dessinée pour tous les plis du modèle dépassant ce seuil. Ce paramètre ne sera effectif que si la propriété creases du modificateur inker a pour valeur TRUE. member("formes").model("Théière").inker.creaseAngle = 0.10 Voir aussi creases, lineColor, lineOffset, useLineOffset creases Syntaxe member(quelActeur).model(quelModèle).inker.creases member(quelActeur).model(quelModèle).toon.creases Description Propriété 3D de modificateur toon et inker ; détermine si des lignes sont dessinées aux plis, à la surface du modèle. Le paramètre par défaut de cette propriété est TRUE. 170 Chapitre 3 Exemple L’instruction suivante donne à la propriété creases du modificateur inker du modèle Théière la valeur TRUE. Une ligne sera dessinée pour tous les plis du modèle dépassant le seuil défini par la propriété creaseAngle du modificateur inker. member("formes").model("Théière").inker.creases = TRUE Voir aussi creaseAngle, lineColor, lineOffset, useLineOffset createMask() Syntaxe 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 copyPixels() pour la reproduction de l’effet d’encre Masque. 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. 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égrad2 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() Syntaxe 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(). 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. Dictionnaire Lingo 171 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() creationDate Syntaxe quelActeur.creationDate the creationDate of quelActeur Description Cette propriété d’acteur enregistre la date et l’heure de la création initiale de l’acteur, à l’aide de l’heure système de l’ordinateur. Vous pouvez utiliser cette propriété pour programmer un projet ; elle n’est pas utilisée par Director. Cette propriété peut être testée et définie. Exemple Bien que la propriété creationDate soit généralement vérifiée à l’aide de l’inspecteur des propriétés ou de la fenêtre Distribution en mode d’affichage sous forme de liste, vous pouvez également la vérifier dans la fenêtre Messages : put member(1).creationDate -- date( 1999, 12, 8 ) Voir aussi comments, modifiedBy, modifiedDate crop() (commande d’objet image) Syntaxe objetImage.crop(rectDeRecadrage) Description Utilisée avec un objet image, renvoie un nouvel objet image contenant une copie de l’objet image concerné, recadrée dans le rectangle donné. L’objet image d’origine reste inchangé. Le nouvel objet image n’appartient plus à aucun acteur et n’est plus associé à la scène. Pour l’affecter à un acteur, vous devez définir la propriété image de cet acteur. Cette opération diffère de l’application à un acteur de la propriété crop, qui recadre l’acteur même, en modifiant l’original. Exemples 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 : set imageDeLaScène = (the stage).image set imageDLimageObjet = imageDeLaScène.crop(sprite(10).rect) member("instantané de l’image-objet").image = imageDeLimageObjet 172 Chapitre 3 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) crop() (commande d’acteur) Syntaxe member(quelActeur).crop(rectDeRecadrage) crop member quelActeur, rectDeRecadrage 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. 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 : member("image de la scène").picture = (the stage).picture member("image de la scène").crop(sprite(10).rect) Voir aussi picture (propriété d’acteur) crop (propriété d’acteur) Syntaxe member(quelActeur).crop the crop of member quelActeur Description Propriété d’acteur ; met à l’échelle un acteur vidéo numérique pour le faire tenir exactement dans le rectangle de l’image-objet dans lequel il apparaît (FALSE) ou le recadre, sans en modifier la taille, pour le faire tenir dans le rectangle de l’image-objet (TRUE). Cette propriété peut être testée et définie. Exemple L’instruction suivante indique à Lingo de recadrer toute image-objet faisant référence à l’acteur vidéo numérique Interview. Syntaxe à point : member("Interview").crop = TRUE Syntaxe verbose : set the crop of member "Interview" to TRUE Voir aussi center Dictionnaire Lingo 173 cross Syntaxe vecteur1.cross(vecteur2) Description Méthode de vecteur 3D ; 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 crossProduct() Syntaxe vecteur1.crossProduct(vecteur2) Description Méthode de vecteur 3D ; 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 on cuePassed Syntaxe on cuePassed(IDdePiste, numéroDeRepère,nomDeRepère) instruction(s) end on cuePassed(me,IDdePiste, numéroDeRepère,nomDeRepère) instruction(s) end 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. 174 Chapitre 3 • me – 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 • nomDeRepè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. – Le nom du point de repère rencontré. 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 : 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 Voir aussi scriptInstanceList, cuePointNames, cuePointTimes, isPastCuePoint() cuePointNames Syntaxe member(quelActeur).cuePointNames the cuePointNames of member quelActeur Description Propriété d’acteur ; crée une liste des noms de points de repère ou, si un point de repère n’a pas de nom, une chaîne vide ("") est insérée comme repère dans la liste. Les noms de points de repère sont pratiques pour la synchronisation du son, des acteurs QuickTime et de l’animation. Cette propriété est supportée par les acteurs SoundEdit, les acteurs vidéo numérique QuickTime et les acteurs Xtras contenant des points de repère. La liste des points de repère peut ne pas être disponible pour les Xtras créant des points de repère au moment de l’exécution de l’animation. Exemple L’instruction suivante obtient le nom du troisième point de repère d’un acteur. Syntaxe à point : put member("symphonie").cuePointNames[3] Syntaxe verbose : put (getAt(the cuePointNames of member "symphonie",3)) Voir aussi cuePointTimes, mostRecentCuePoint Dictionnaire Lingo 175 cuePointTimes Syntaxe member(quelActeur).cuePointTimes the cuePointTimes of member quelActeur Description Propriété d’acteur ; fournit une liste des positions des points de repère d’un acteur donné, en millisecondes. Les positions des points de repère sont pratiques pour la synchronisation du son, des acteurs QuickTime et de l’animation. Cette propriété est supportée par les acteurs SoundEdit, les acteurs vidéo numérique QuickTime et les acteurs Xtras supportant des points de repère. La liste des points de repère peut ne pas être disponible pour les Xtras créant des points de repère au moment de l’exécution de l’animation. Exemple L’instruction suivante obtient la position du troisième point de repère d’un acteur son. Syntaxe à point : put member("symphonie").cuePointTimes[3] Syntaxe verbose : put (getAt(the cuePointTimes of member "symphonie",3)) Voir aussi cuePointNames, mostRecentCuePoint currentLoopState Syntaxe member(quelActeur).model(quelModèle).keyframePlayer.\ currentLoopState member(quelActeur).model(quelModèle).bonesPlayer.\ currentLoopState Description Propriété 3D de modificateur keyframePlayer et bonesPlayer ; indique si le mouvement exécuté par le modèle est répété continuellement (TRUE) ou s’il est exécuté jusqu’à la fin puis remplacé par le mouvement suivant dans la liste de lecture du modificateur (FALSE). Le paramètre par défaut de cette propriété est la valeur du paramètre de boucle de la commande play() qui a démarré la lecture du mouvement ou la valeur de la commande queue() qui a ajouté le mouvement à la liste de lecture du modificateur. Le fait de modifier la propriété currentLoopState change également la valeur de la propriété #looped de l’entrée du mouvement dans la liste de lecture du modificateur. Exemple L’instruction suivante entraîne la lecture continue du mouvement exécuté par le modèle Monstre. member("nouveauMartien").model("Monstre").keyframePlayer.\ currentLoopState = TRUE Voir aussi loop (propriété d’acteur), play() (3D), queue() (3D), playlist 176 Chapitre 3 currentSpriteNum Syntaxe the currentSpriteNum Description Propriété d’animation ; indique le numéro de piste de l’image-objet dont le script est en cours d’exécution. Elle peut être utilisée dans les scripts d’acteurs et les comportements. Lorsqu’elle est utilisée dans les scripts d’images ou d’animations, la propriété currentSpriteNum a la valeur 0. La propriété currentSpriteNum est similaire à spriteNum of me, mais ne nécessite pas la présence de la référence me. Cette propriété peut être testée, mais pas définie. Remarque Cette propriété était plus utile pour le passage des anciennes animations à Director 6, à l’apparition des comportements. Elle permettait une fonction de type comportement sans obliger à réécrire complètement le code Lingo. Elle n’est pas nécessaire pour la programmation avec des comportements et est donc moins utile que par le passé. Exemple Le gestionnaire suivant dans un script d’acteur ou d’animation remplace l’acteur affecté à l’imageobjet impliquée dans l’événement mouseDown : on mouseDown sprite(the currentSpriteNum).member = member "imageCliquée" end Voir aussi me, spriteNum currentTime Syntaxe sprite(quelleImageObjet).currentTime the currentTime of sprite quelleImageObjet sound(numéroDePiste).currentTime Description Propriété d’image-objet et de piste audio ; renvoie la position temporelle de lecture, en millisecondes, d’une image-objet audio ou vidéo numérique QuickTime ou de n’importe quel Xtra supportant les points de repère. Pour une piste audio, renvoie la position temporelle de lecture de l’acteur son actuellement en cours de lecture dans la piste audio concernée. Cette propriété ne peut être définie que pour les acteurs son traditionnels (*.wav, *.aif, *.snd). Lorsque cette propriété est définie, la gamme des valeurs admises s’étend de zéro à la valeur duration de l’acteur. Les sons Shockwave Audio (SWA) peuvent apparaître sous forme d’images-objets dans les pistes d’images-objets, mais sont lus dans les pistes audio. Il est conseillé de faire référence aux imagesobjets audio SWA par le numéro de leur piste d’image-objet plutôt que par celui de leur piste audio. Exemple L’instruction suivante indique la position temporelle courante, en secondes, de l’image-objet dans la piste 10. Dictionnaire Lingo 177 Syntaxe à point : member("position").text = string(sprite (10).currentTime/ 1000) Syntaxe verbose : set the text of member "position" to (the currentTime of sprite 10) / 1000 L’instruction suivante entraîne le passage du son de la piste audio 2 au point 2,7 secondes à partir du début de l’acteur son : sound(2).currentTime = 2700 Voir aussi movieTime, duration currentTime (3D) Syntaxe member(quelActeur).model(quelModèle).keyframePlayer.\ currentTime member(quelActeur).model(quelModèle).bonesPlayer.\ currentTime Description Propriété 3D de modificateur keyframePlayer et bonesPlayer ; indique la position locale du mouvement exécuté par le modèle. La propriété currentTime est mesurée en millisecondes, mais ne correspond à la position réelle que lorsque le mouvement est lu à sa cadence originale. La lecture d’un mouvement par un modèle est le résultat de la commande play() ou queue(). Le paramètre scale de la commande play() ou queue() est multiplié par la propriété playRate du modificateur, et la valeur qui en résulte est multipliée par la cadence originale du mouvement pour déterminer la cadence à laquelle le modèle exécutera le mouvement. Ainsi, si le paramètre scale a pour valeur 2 et la propriété playRate du modificateur pour valeur 3, le modèle exécutera le mouvement six fois plus vite qu’à la cadence originale. La propriété currentTime réinitialise la valeur à celle du paramètre cropStart de la commande ou queue() au début de chaque itération d’un mouvement en boucle. play() Exemple L’instruction suivante indique la position locale du mouvement exécuté par le modèle Martien3. put member("nouveauMartien").model("Martien3").keyframePlayer.currentTime -- 1393.8599 Voir aussi play() (3D), queue() (3D), playlist 178 Chapitre 3 currentTime (RealMedia) Syntaxe sprite(quelleImageObjet).currentTime member(quelActeur).currentTime sprite(quelleImageObjet).currentTime = positionEnMillisecondes member(quelActeur).currentTime = positionEnMillisecondes Description Propriété d’image-objet ou d’acteur RealMedia ; permet d’obtenir ou de définir la position du train RealMedia, en millisecondes. Si l’acteur RealMedia n’est pas en cours de lecture, la valeur de cette propriété est 0, qui constitue la valeur par défaut. Il s’agit d’une propriété de lecture qui n’est pas enregistrée. Si le train est en cours de lecture lors de la définition ou de la modification de la propriété currentTime, une recherche est lancée, ainsi que la remise en tampon du train, avant que la lecture ne reprenne à la nouvelle position définie. Si le train est interrompu (valeur #paused mediaStatus) lors de la définition ou de la modification de la propriété currentTime, le train redessine l’image à la nouvelle position, et la lecture reprend si la propriété pausedAtStart a pour valeur FALSE. Lorsque le train est interrompu ou arrêté dans la fenêtre RealMedia, la propriété mediaStatus a pour valeur #paused. Lorsque le train est arrêté par la commande Lingo stop, mediaStatus a pour valeur #closed. Cette propriété n’a aucun effet lorsque la valeur de mediaStatus est #closed. Lorsque vous définissez des nombres entiers, ils sont ajoutés à la plage à partir de 0 pour la durée du train. La définition de currentTime est l’équivalent de l’invocation de la commande seek : x.seek(n) est l’équivalent de x.currentTime = n. La modification de currentTime ou l’appel de seek nécessite la remise en tampon du train. Exemples Les exemples suivants indiquent que la valeur de position temporelle de l’image-objet 2 et de l’acteur Real est 15 534 millisecondes (15,534 secondes) depuis le début du train. put sprite(2).currentTime -- 15534 put member("Real").currentTime -- 15534 Les exemples suivants provoquent un saut de lecture de 20 000 millisecondes (20 secondes) dans le train de l’image-objet 2 et de l’acteur Real. sprite(2).currentTime = 20000 member("Real").currentTime = 20000 Voir aussi duration (RealMedia), seek, mediaStatus Dictionnaire Lingo 179 cursor (commande) Syntaxe cursor [numéroDacteur, numéroDacteurMasque] cursor quelCurseur cursor (member quelActeurCurseur) Description Commande ; change l’acteur ou le curseur intégré utilisé comme pointeur et reste en vigueur jusqu’à ce que vous la désactiviez en lui affectant la valeur 0. • Utilisez la syntaxe cursor [numéroDacteur, numéroDacteurMasque] 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 cursor quelCurseur pour spécifier les curseurs par défaut fournis par le système. Le terme quelCurseur doit être l’un des nombres entiers suivants : 0* Aucun curseur défini -1 Flèche 1 I 2 Croix 3* Croix épaisse 4 Montre (Macintosh uniquement) 200* Curseur vide (masque le curseur) * Le lecteur Director pour Java ne supporte pas ces types de curseurs et affiche à la place un curseur flèche. • Utilisez la syntaxe cursor (member quelActeurCurseur) pour les curseurs personnalisés proposés par l’Xtra Cursor. Veillez à ne pas confondre les syntaxes cursor 1 et cursor [1]. La première sélectionne un curseur en I dans le jeu de curseurs système ; la deuxième utilise l’acteur 1 comme curseur personnalisé. Remarque L’Xtra Cursor accepte différents types d’acteurs comme curseurs, mais pas les acteurs texte. 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 de toute nouvelle animation chargée dans une présentation utilisant un curseur personnalisé pour plusieurs animations, stockez donc 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. 180 Chapitre 3 Exemple L’instruction suivante change le curseur en curseur montre sur un Macintosh et en sablier sous Windows, si la valeur de la variable Etat est égale à 1 : if Etat = 1 then 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 : on monCurseur unActeur if the depth of member unActeur = 1 then cursor[unActeur] else beep end if end Voir aussi cursor (propriété d’image-objet), rollOver() cursor (propriété d’image-objet) Syntaxe sprite(quelleImageObjet).cursor = [numéroDacteur, numéroDacteurMasque] set the cursor of sprite quelleImageObjet to [numéroDacteur, numéroDacteurMasque] sprite(quelleImageObjet).cursor = quelCurseur set the cursor of sprite quelleImageObjet to quelCurseur Description Propriété d’image-objet ; détermine le curseur utilisé lorsque le pointeur se trouve au-dessus de l’image-objet spécifiée par l’expression entière quelleImageObjet. Cette propriété reste en vigueur jusqu’à ce que vous la désactiviez en lui attribuant la valeur 0. Utilisez la propriété cursor pour changer le pointeur de la souris lorsqu’il est sur des zones spécifiques de l’écran, ainsi que pour indiquer les zones où certaines actions sont possibles lorsque l’utilisateur clique. Lorsque vous définissez la propriété cursor pour une image spécifique, Director examine le rectangle de l’image avant de décider de modifier ou non le curseur. Ce rectangle ne change pas lorsque l’animation passe à l’image suivante, sauf si vous attribuez une valeur nulle à la propriété cursor de cette piste. • Utilisez la syntaxe cursor of sprite...[numéroDacteur, numéroDacteurMasque] pour spécifier le numéro d’acteur à utiliser comme curseur et son masque facultatif. • Utilisez la syntaxe cursor of sprite...quelCurseur pour spécifier les curseurs par défaut fournis par le système. Le terme quelCurseur doit être l’un des nombres entiers suivants : 0* Aucun curseur défini -1 Flèche 1 I 2 Croix 3* Croix épaisse 4 Montre (Macintosh uniquement) 200* Curseur vide (masque le curseur) * Le lecteur Director pour Java ne supporte pas ces types de curseurs et affiche à la place un curseur flèche. Dictionnaire Lingo 181 Pour utiliser des curseurs personnalisés, affectez la propriété cursor à une liste contenant l’acteur à utiliser comme curseur ou au numéro spécifiant un curseur du système. Sous Windows, un curseur doit être un acteur et non une ressource ; si aucun curseur n’est disponible puisqu’il s’agit d’une ressource, Director affiche à la place le curseur flèche standard. Pour garantir des résultats optimaux, veillez à ne pas utiliser de curseurs lorsque vous créez des animations multiplatesformes. Si l’image-objet est un bitmap avec une encre Dessin seul, le curseur ne change que lorsqu’il se trouve sur la portion Dessin seul de l’image-objet. Lorsque le pointeur se trouve à l’emplacement d’une image-objet qui a été supprimée, le survol se produit quand même. Vous pouvez éviter ce problème en ne faisant pas de survol à ces endroits ou en déplaçant l’image-objet au-dessus de la barre des menus avant de la supprimer. Sur le Macintosh, vous pouvez utiliser une ressource de curseur numérotée dans l’animation en cours à la place du curseur en remplaçant quelCurseur par le numéro de la ressource de curseur. Cette propriété peut être testée et définie. Exemple L’instruction suivante change en montre le curseur qui apparaît sur l’image-objet 20 : Syntaxe à point : sprite(20).cursor = 4 Syntaxe verbose : set the cursor of sprite 20 to 4 Voir aussi cursor (commande) cursorSize Syntaxe member(quelActeurCurseur).cursorSize the cursorSize of member quelActeurCurseur Description Propriété d’acteur curseur ; spécifie la taille de l’acteur curseur couleur animé quelActeurCurseur. Spécifiez la taille : Pour des curseurs pouvant atteindre : 16 16 x 16 pixels 32 32 x 32 pixels Les acteurs bitmap inférieurs à la taille spécifiée sont affichés en taille normale, tandis que les acteurs plus grands sont ramenés à la taille spécifiée. La valeur par défaut est 32 pour Windows et 16 pour Macintosh. Si vous choisissez une valeur incorrecte, un message d’erreur s’affiche pendant la lecture de l’animation (mais pas à la compilation). Cette propriété peut être testée et définie. 182 Chapitre 3 Exemple La commande suivante redimensionne le curseur couleur animé stocké dans l’acteur curseur couleur 20 à 32 x 32 pixels. Syntaxe à point : member(20).cursorSize = 32 Syntaxe verbose : set the cursorSize of member 20 = 32 curve Syntaxe acteur.curve[indiceDeListeDeCourbe] Description Cette propriété contient la liste vertexList d’une courbe individuelle (forme) provenant d’un acteur forme vectorielle. Vous pouvez utiliser la propriété curve conjointement à la propriété vertex pour obtenir les sommets individuels d’une courbe spécifique dans une forme vectorielle. Une vertexList est une liste de sommets, chaque sommet étant une liste de propriétés comprenant un maximum de trois propriétés : une propriété #vertex, avec l’emplacement du sommet, une propriété #handle1 avec l’emplacement du premier point de contrôle de ce sommet et une propriété #handle2, avec l’emplacement du second point de contrôle de ce sommet. Pour plus d’informations, consultez vertexList. Exemples L’instruction suivante affiche la liste des sommets de la troisième courbe de l’acteur forme vectorielle CourbesSimples : put member("CourbesSimples").curve[3] -- [[#vertex: point(113.0000, 40.0000), #handle1: point(32.0000, 10.0000), #handle2: point(-32.0000, -10.0000)], [#vertex: point(164.0000, 56.0000)]] L’instruction suivante déplace le premier sommet de la première courbe dans une forme vectorielle, en opérant un déplacement de 10 pixels vers le bas à droite : member(1).curve[1].vertex[1] = member(1).curve[1].vertex[1] + point(10, 10) Le code suivant déplace une image-objet vers l’emplacement du premier sommet de la première courbe d’une forme vectorielle. La propriété originMode de la forme vectorielle doit être définie sur #topLeft pour cette opération. emplacementDuSommet = member(1).curve[1].vertex[1] emplacementDeLimageObjet = mapMemberToStage(sprite(3), emplacementDuSommet) sprite(7).loc = spriteLoc Voir aussi vertex, vertexList Dictionnaire Lingo 183 date() (horloge du système) Syntaxe the the the the the the abbr date abbrev date abbreviated date date long date short date Description Fonction ; renvoie la date courante fournie par l’horloge du système dans l’un des trois formats suivants : abbreviated, long ou short (valeur par défaut). Le format abrégé peut également être abrégé en abbrev et abbr. La fonction date est disponible dans Java, mais n’accepte pas les variantes abbrev, long ou short. Lorsque l’animation est lue dans une applet, le format de date est JJ/MM/AA, où JJ représente le jour, MM le mois et AA les deux derniers chiffres de l’année en cours. Pour les mois de janvier à septembre, la valeur de MM est un seul chiffre. 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 que les parties de la date au format court indiquent. • Sur le Macintosh, vous pouvez personnaliser l’affichage de la date dans le tableau de bord Date et heure. Exemples L’instruction suivante renvoie la date au format abrégé : put the abbreviated date -- "Sam. 7 sep 2002" L’instruction suivante renvoie la date au format long : put the long date -- "Samedi 7 septembre 2002" L’instruction suivante renvoie la date au format court : put the short date -- "7/9/02" 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 : if char 1 to 4 of the date = "1/1/" then alert "Bonne année !" Remarque Les trois formats de date varient en fonction du pays pour lequel le système d’exploitation a été conçu. Utilisez l’objet date pour créer et manipuler les dates en format standard. Voir aussi time(), date() (formats), systemDate 184 Chapitre 3 date() (formats) Syntaxe date(chaîneAuFormatISO) date(entierAuFormatISO) date(jourEntierAuFormatISO, moisEntierAuFormatISO, annéeEntierAuFormatISO) Description Fonction et type de données ; crée une instance d’objet de date au format standard que vous pouvez utiliser avec d’autres instances de date dans des opérations mathématiques ou pour manipuler les dates d’une plate-forme à l’autre, ainsi que dans des formats de pays différents. Pour créer la date, utilisez des années sur quatre chiffres, des mois sur deux chiffres et des jours sur deux chiffres. Les expressions suivantes sont équivalentes : entier : set débutDesVacances = date(06181998) chaîne : set débutDesVacances = date("06181998") séparation par virgules : set débutDesVacances = date(06, 18, 1998) Les opérations d’addition et de soustraction sur la date sont interprétées comme l’addition et la soustraction de jours. Les différentes propriétés de l’instance d’objet de date renvoyée sont : #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 Exemples Les instructions suivantes créent et déterminent le nombre de jours séparant deux dates : maDateDeNaissance = date(12071965) taDateDeNaissance = date(29051945) put "Il y a" && abs(taDateDeNaissance - maDateDeNaissance) && "jours entre nos dates de naissances." Les instructions suivantes permettent d’accéder à la propriété individuelle d’une date : maDateDeNaissance = date(12071965) put "Je suis né au mois numéro"&&maDateDeNaissance.month Voir aussi date() (horloge du système) deactivateApplication Syntaxe on deactivateApplication 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. Dictionnaire Lingo 185 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 : on deactivateApplication sound(1).queue(member("sonDeFermeture")) sound(1).play() end Voir aussi add (texture 3D), activeCastLib, on deactivateWindow on deactivateWindow Syntaxe on deactivateWindow instruction(s) end Description Message système et gestionnaire d’événements ; contient des instructions 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 Lingo 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 : on deactivateWindow puppetSound 2, "Ronflement" end debug Syntaxe member(quelActeur).model(quelModèle).debug Description Propriété 3D de modèle ; indique si la sphère de délimitation et les axes locaux du modèle sont affichés. Exemple L’instruction suivante donne à la propriété debug du modèle Chien la valeur TRUE. member("Parc").model("Chien").debug = TRUE Voir aussi boundingSphere 186 Chapitre 3 debugPlaybackEnabled Syntaxe the debugPlaybackEnabled Description Propriété ; sous Windows, ouvre une fenêtre Messages à des fins de débogage dans Shockwave et les projections. Elle n’a aucun effet lorsque utilisée dans l’application Director. Une fois la fenêtre Messages fermée, elle ne peut pas être rouverte dans une session Shockwave ou projection particulière. Si plusieurs animations Shockwave utilisent ce code Lingo dans un seul navigateur, seule la première ouvrira une fenêtre Messages, qui sera liée uniquement à cette animation. Sur le Macintosh, c’est un fichier journal qui est ouvert et dans lequel des instructions put sont générées pour placer des données à des fins de débogage. Ce fichier se trouve dans le dossier Shockwave 8, au niveau de DisqueDur/Dossier Système/Extensions/Macromedia/Shockwave. Pour ouvrir la fenêtre Messages, donnez à la propriété debugPlaybackEnabled la valeur TRUE. Pour fermer la fenêtre Messages, donnez à la propriété debugPlaybackEnabled la valeur FALSE. Exemple Cette instruction provoque l’ouverture de la fenêtre Messages dans Shockwave ou dans une projection : the debugPlaybackEnabled = TRUE decayMode Syntaxe member(quelActeur).camera(quelleCaméra).fog.decayMode sprite(quelleImageObjet).camera{(index)}.fog.decayMode Description Propriété 3D ; indique la façon dont la densité du brouillard évolue, d’une densité minimum à une densité maximum, lorsque la propriété fog.enabled de la caméra a pour valeur TRUE. Les valeurs possibles de cette propriété sont les suivantes : • • • #linear : la densité du brouillard est interpolée de façon linéaire entre fog.near et fog.far. #exponential : fog.far est le point de saturation ; fog.near est ignoré. #exponential2 : fog.near est le point de saturation ; fog.far est ignoré. Le paramètre par défaut de cette propriété est #exponential. Exemple L’instruction suivante donne à la propriété decayMode du brouillard de la caméra vueParDéfaut la valeur #linear. Si la propriété enabled du brouillard a pour valeur TRUE, la densité du brouillard augmentera de façon constante entre les distances définies par les propriétés near et far du brouillard. Si la propriété near a pour valeur 100 et que la propriété far a pour valeur 1000, le brouillard commencera à 100 unités d’univers devant la caméra et augmentera régulièrement en densité jusqu’à une distance de 1000 unités d’univers devant la caméra. member("Univers 3D").camera("vueParDéfaut").fog.decayMode = #linear Voir aussi fog, near (brouillard), far (brouillard), enabled (brouillard) Dictionnaire Lingo 187 defaultRect Syntaxe member(quelActeurFlashOuFormeVectorielle).defaultRect the defaultRect of member quelActeurFlashOuFormeVectorielle Description Propriété d’acteur ; contrôle la taille par défaut utilisée pour toutes les nouvelles images-objets créées depuis un acteur animation Flash ou forme vectorielle. Le paramètre defaultRect s’applique également à toutes les images-objets existantes qui n’ont pas été étirées sur la scène. Vous spécifiez les valeurs de propriété comme un rectangle Director ; par exemple, rect(0,0,32,32). La propriété d’acteur defaultRect est affectée par la propriété d’acteur defaultRectMode de l’acteur. La propriété defaultRectMode a toujours la valeur #Flash lorsqu’une animation est insérée dans une distribution, ce que signifie que le paramètre defaultRect original a toujours la taille de l’animation originale créée dans Flash. La définition de defaultRect après ce stade affecte implicitement la valeur #fixed à la propriété defaultRectMode de l’acteur. Cette propriété peut être testée et définie. Exemple Le gestionnaire suivant accepte une référence de distribution et un rectangle comme paramètres. Il recherche ensuite les acteurs Flash dans la distribution spécifiée et règle leur propriété defaultRect sur le rectangle spécifié. on réglerLeRectFlashParDéfaut quelleDistribution, quelRect repeat with i = 1 to the number of members of castLib quelleDistribution if member(i, quelleDistribution).type = #flash then member(i, quelleDistribution).defaultRect = quelRect end if end repeat end Voir aussi defaultRectMode, flashRect defaultRectMode Syntaxe member(quelActeurVecteurOuFlash).defaultRectMode the defaultRectMode of member quelActeurVecteurOuFlash Description Propriété d’acteur ; contrôle la méthode par laquelle la taille par défaut est définie pour toutes les nouvelles images-objets créées depuis les acteurs animation Flash ou forme vectorielle. Vous spécifiez les valeurs de propriété comme un rectangle Director ; par exemple, rect(0,0,32,32). La propriété defaultRectMode ne définit pas la taille réelle du rectangle par défaut d’une animation Flash, mais détermine uniquement le réglage du rectangle par défaut. La propriété defaultRectMode peut avoir l’une des valeurs suivantes : • #flash (valeur par défaut) – Affecte au rectangle par défaut la taille de l’animation originale créée dans Flash. • #fixed – Affecte defaultRect. 188 Chapitre 3 au rectangle par défaut la taille fixe spécifiée par la propriété d’acteur La propriété d’acteur defaultRect est affectée par la propriété d’acteur defaultRectMode de l’acteur. La propriété defaultRectMode a toujours la valeur #flash lorsqu’une animation est insérée dans une distribution, ce que signifie que le paramètre defaultRect original a toujours la taille de l’animation originale créée dans Flash. La définition de defaultRect après ce stade affecte implicitement la valeur #fixed à la propriété defaultRectMode de l’acteur. Cette propriété peut être testée et définie. Exemple Le gestionnaire suivant accepte une référence de distribution et un rectangle comme paramètres. Il recherche ensuite les acteurs Flash dans la distribution spécifiée, règle leur propriété defaultRectMode sur #fixed, puis affecte à leur propriété defaultRect la valeur rect(0,0,320,240). on réglerLaTailleParDéfautDeRect quelleDistribution repeat with i = 1 to the number of members of castLib quelleDistribution if member(i, quelleDistribution).type = #flash then member(i, quelleDistribution).defaultRectMode = #fixed member(i, quelleDistribution).defaultRect = rect(0,0,320,240) end if end repeat end Voir aussi flashRect, defaultRect delay Syntaxe delay nombreDeBattements Description Commande ; immobilise la tête de lecture pendant une durée donnée. L’expression entière nombreDeBattements spécifie le nombre de battements de l’attente, où chaque battement correspond à 1/60ème de seconde. La seule activité de souris et de clavier possible à ce moment-là est d’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 commande delay ne peut être appliquée que lorsque la tête de lecture est en mouvement. Les gestionnaires peuvent cependant toujours être exécutés pendant la durée de la commande delay : seule la tête de lecture est immobilisée, alors que l’exécution du script ne l’est pas. Placez les scripts utilisant la commande delay dans un gestionnaire on enterFrame ou on exitFrame. Pour simuler une interruption dans un gestionnaire lorsque la tête de lecture est immobile, utilisez la commande startTimer ou affectez la valeur courante de la propriété timer à une variable et attendez un certain temps avant de sortir de l’image. Exemples Le gestionnaire suivant interrompt l’animation pendant 2 secondes lorsque la tête de lecture quitte l’image en cours : on exitFrame delay 2 * 60 end Dictionnaire Lingo 189 Le gestionnaire suivant, qui peut être placé dans un script d’image, retarde l’animation d’un nombre aléatoire de battements : on keyDown if the key = RETURN then delay random(180) end Exemple Le premier de ces gestionnaires démarre un compteur lorsque la tête de lecture quitte une image. Le second gestionnaire, affecté à l’image suivante, la met en boucle jusqu’à ce que le temps spécifié soit écoulé : --script de la première image on exitFrame global gCompteur set gCompteur = the ticks end --script de la seconde image on exitFrame global gCompteur if the ticks < gCompteur + (10 * 60) then go to the frame end if end Voir aussi startTimer, ticks, timer delete Syntaxe delete expressionSousChaîne Description Commande ; supprime la sous-chaîne (caractère, mot, élément ou ligne) spécifiée d’un texte source. Les sources de chaînes incluent les acteurs champ et les variables contenant des chaînes. Vous pourrez voir un exemple de delete dans une animation en consultant l’animation Text du dossier Learning/Lingo_Examples, lui-même dans le dossier de Director. Exemples L’instruction suivante supprime le premier mot de la troisième ligne de l’acteur champ Adresse : delete word 1 of line 3 of member "Adresse" La syntaxe suivante permet également de supprimer la même sous-chaîne : delete member("Adresse").line[3].word[1] L’instruction suivante supprime le premier caractère de la chaîne dans la variable montantDuDevis si ce caractère est le signe $ : if montantDuDevis.char[1] = "$" then delete montantDuDevis.char[1] Voir aussi char...of, field, item...of, line...of, word...of, hilite (propriété d’acteur), paragraph 190 Chapitre 3 deleteAll Syntaxe liste.deleteAll() deleteAll liste Description Commande de liste ; supprime tous les éléments présents dans la liste spécifiée sans changer le type de cette liste. Exemple L’instruction suivante supprime chaque élément de la liste listeDesPropriétés : listeDesPropriétés.deleteAll() deleteAt Syntaxe liste.deleteAt(nombre) deleteAt liste, nombre Description Commande de liste ; supprime l’élément se trouvant à la position spécifiée par nombre dans la liste linéaire ou de propriétés spécifiée par liste. 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. 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 Dictionnaire Lingo 191 deleteCamera Syntaxe member(quelActeur).deleteCamera(nomDeCaméra) member(quelActeur).deleteCamera(index) sprite(quelleImageObjet).deleteCamera(cameraOrIndex) 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. Exemples L’instruction suivante supprime deux caméras de l’acteur Pièce : tout d’abord la caméra Caméra06, puis la caméra 3. member("Pièce").deleteCamera("Caméra06") member("Pièce").deleteCamera(3) 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 Syntaxe deleteFrame Description Commande ; supprime l’image courante et fait de l’image suivante la nouvelle image courante pendant une session de création du scénario uniquement. 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 : on testImageObjet beginRecording if sprite(10).locH > 640 then deleteFrame endRecording end Voir aussi beginRecording, endRecording, updateFrame 192 Chapitre 3 deleteGroup Syntaxe 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 Univers, qui est le groupe par défaut. 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, parent deleteLight Syntaxe 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. Exemples 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 deleteModel Syntaxe 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. Dictionnaire Lingo 193 Exemples 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 Syntaxe 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. 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 deleteMotion Syntaxe member(quelActeur).deleteMotion(quelMouvement) member(quelActeur).deleteMotion(index) Description Commande 3D ; supprime le mouvement de l’acteur. Exemples La première ligne de l’exemple suivant supprime le mouvement Saut de l’acteur scèneDePicnic. La deuxième ligne supprime le cinquième mouvement de scèneDePicnic. member("scèneDePicnic").deleteMotion("Saut") member("scèneDePicnic").deleteMotion(5) Voir aussi newMotion(), removeLast() 194 Chapitre 3 deleteOne Syntaxe 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. 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"]. deleteProp Syntaxe 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. 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 Dictionnaire Lingo 195 deleteShader Syntaxe member(quelActeur).deleteShader(quelMatériau) member(quelActeur).deleteShader(index) Description Commande 3D ; retire le matériau de l’acteur. 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 Syntaxe member(quelActeur).deleteTexture(quelleTexture) member(quelActeur).deleteTexture(index) Description Commande 3D ; retire le matériau de l’acteur. Exemple La première ligne de cet exemple supprime la texture Ciel de l’acteur scèneDePicnic. La deuxième ligne supprime la cinquième texture de scèneDePicnic. member("scèneDePicnic).deleteTexture("Ciel") member("scèneDePicnic").deleteTexture(5) Voir aussi newTexture deleteVertex() Syntaxe member(réfDacteur).deleteVertex(indexAsupprimer) deleteVertex(member réfDacteur, indexAsupprimer) Description Commande de forme vectorielle ; supprime un sommet existant d’un acteur forme vectorielle à la position d’index spécifiée. Exemple La ligne suivante supprime le deuxième point de sommet de la forme vectorielle Archie : member("Archie").deleteVertex(2) Voir aussi addVertex, moveVertex(), originMode, vertexList 196 Chapitre 3 density Syntaxe member(quelActeur).shader(quelMatériau).density member(quelActeur).model(quelModèle).shader.density member(quelActeur).model(quelModèle).shaderList{[index]}.\ density Description Propriété 3D de matériau #engraver et #newsprint ; ajuste le nombre de lignes ou de points utilisés pour créer les effets de ces types de matériaux spécialisés. Plus les valeurs sont élevées plus le nombre de lignes ou de points est élevé. Pour les matériaux #engraver, cette propriété ajuste le nombre de lignes utilisées pour créer l’image. La valeur peut être comprise entre 0 et 100, la valeur par défaut étant 40. Pour les matériaux #newsprint, cette propriété ajuste le nombre de points utilisés pour créer l’image. La valeur peut être comprise entre 0 et 100, la valeur par défaut étant 45. Exemple L’instruction suivante donne à la propriété density du matériau matériauMoteur la valeur 10. Les lignes utilisées par ce matériau #engraver pour créer son image stylisée seront grossières et éloignées les unes des autres. member("Scène").shader("matériauMoteur").density = 10 L’instruction suivante donne à la propriété density du matériau gbMatériau la valeur 100. Les points utilisés par ce matériau #newsprint pour créer son image stylisée seront fins et rapprochés. member("Scène").shader("gbMatériau").density = 100 Voir aussi newShader depth Syntaxe objetImage.depth member(quelActeur).depth the depth of member quelActeur Description Propriété d’objet image ou d’acteur bitmap ; affiche le codage de couleur de l’objet image ou de l’acteur bitmap donné. Depth Nombre de couleurs 1 Noir et blanc 2 4 couleurs 4, 8 Couleurs de palettes 16 ou 256 couleurs ou niveaux de gris 16 Milliers de couleurs 32 Millions de couleurs Cette propriété peut être testée, mais pas définie. Dictionnaire Lingo 197 Exemples L’instruction suivante affiche le codage des couleurs de l’objet image stocké dans la variable nouvelleImage. Le résultat apparaît dans la fenêtre Messages. put nouvelleImage.depth L’instruction suivante affiche le codage des couleurs de l’acteur Temple dans la fenêtre Messages : put member("Temple").depth depth (3D) Syntaxe member(quelActeur).model(quelModèle).sds.depth Description Propriété 3D de fractionnement de surface (sds) ; spécifie le nombre maximum de niveaux de résolution que le modèle peut afficher lorsque le modificateur sds est utilisé. Si les paramètres error et tension du modificateur sds sont bas, le fait d’augmenter la valeur de la propriété depth aura un effet plus prononcé sur la géométrie du modèle. Le modificateur sds ne peut pas être utilisé avec les modificateurs inker ou toon ; vous devrez également faire preuve de prudence lors de l’utilisation du modificateur sds avec le modificateur lod. Exemple L’instruction suivante donne à la propriété depth du modificateur sds du modèle Bébé la valeur 3. Si les paramètres error et tension du modificateur sds sont trop faibles, cette instruction à un effet très prononcé sur la géométrie de Bébé. member("Scène").model("Bébé").sds.depth = 3 Voir aussi sds (modificateur), error, tension depthBufferDepth Syntaxe getRendererServices().depthBufferDepth Description Propriété 3D rendererServices ; indique la précision du tampon de codage matériel du système de l’utilisateur. La valeur est 16 ou 24, en fonction du matériel de l’utilisateur. Exemple L’instruction suivante indique que la valeur depthBufferDepth de la carte vidéo de l’utilisateur est 16. put getRendererServices().depthBufferDepth -- 16 Voir aussi getRendererServices(), getHardwareInfo(), colorBufferDepth 198 Chapitre 3 deskTopRectList Syntaxe the deskTopRectList Description Propriété système ; affiche la taille, et la position sur le bureau, des moniteurs connectés à l’ordinateur. Cette propriété est pratique pour vérifier si des objets tels que des fenêtres, des images-objets et des fenêtres contextuelles apparaissent entièrement sur un écran. Le résultat est une liste de rectangles, dans laquelle chaque rectangle indique la limite physique d’un moniteur. Les coordonnées de chaque moniteur sont relatives à l’angle supérieur gauche du moniteur 1, qui a la valeur (0,0). Le premier ensemble de coordonnées de rectangle correspond à la taille du premier moniteur. Si un second moniteur est présent, un second ensemble de coordonnées indique où les coins du second moniteur sont placés par rapport au premier moniteur. Cette propriété peut être testée, mais pas définie. Exemples L’instruction suivante teste la taille des moniteurs connectés à l’ordinateur et affiche le résultat dans la fenêtre Messages : put the deskTopRectList -- [rect(0,0,1024,768), rect(1025, 0, 1665, 480] Le résultat indique que le premier moniteur est de 1024x768 pixels et le second de 640x480 pixels. Le gestionnaire suivant indique le nombre de moniteurs du système courant : on nombreDeMoniteurs return the deskTopRectList.count end diffuse Syntaxe member(quelActeur).shader(quelMatériau).diffuse member(quelActeur).model(quelModèle).shader.diffuse member(quelActeur).model(quelModèle).shaderList{[index]}.\ diffuse Description Propriété 3D de matériau #standard ; indique la couleur qui est fusionnée à la première texture du matériau lorsque les conditions suivantes sont réunies : • la propriété useDiffuseWithTexture du matériau a pour valeur TRUE et, soit • la propriété blendFunction du matériau a la valeur #add ou #multiply ou • la propriété blendFunction du matériau a pour valeur #blend, la propriété blendSource du matériau a pour valeur #constant et la valeur de la propriété blendConstant du matériau est inférieure à 100. La valeur par défaut de cette propriété est rgb( 255, 255, 255 ). Dictionnaire Lingo 199 Exemple L’instruction suivante donne à la propriété diffuse du matériau Globe la valeur rgb(255, 0, 0). member("mondeMystérieux").shader("Globe").diffuse = rgb(255, 0, 0) Voir aussi diffuseColor, useDiffuseWithTexture, blendFunction, blendSource, blendConstant diffuseColor Syntaxe member(quelActeur).diffuseColor Description Propriété 3D d’acteur ; indique la couleur qui est fusionnée à la première texture du premier matériau de l’acteur lorsque les conditions suivantes sont réunies : • la propriété useDiffuseWithTexture du matériau a pour valeur TRUE et, soit • la propriété blendFunction du matériau a la valeur #add ou #multiply ou • la propriété blendFunction du matériau a pour valeur #blend, la propriété blendSource du matériau a pour valeur #constant et la valeur de la propriété blendConstant du matériau est inférieure à 100. La valeur par défaut de la propriété diffuseColor est rgb( 255, 255, 255 ). Exemple L’instruction suivante donne à la propriété diffuseColor de l’acteur Pièce la valeur rgb(255, 0, 0). member("Pièce").diffuseColor = rgb(255, 0, 0) Voir aussi diffuse, useDiffuseWithTexture, blendFunction, blendSource, blendConstant diffuseLightMap Syntaxe member(quelActeur).shader(quelMatériau).diffuseLightMap member(quelActeur).model(quelModèle).shader.diffuseLightMap member(quelActeur).model(quelModèle).shaderList{[index]}.\ diffuseLightMap Description Propriété 3D de matériau #standard ; spécifie la texture à utiliser pour la lumière diffuse. Les propriétés suivantes sont automatiquement définies avec cette propriété : • • • • La seconde couche de texture du matériau reçoit la texture que vous spécifiez. La valeur de textureModeList[2] est établie sur #diffuse. La valeur de blendFunctionList[2] est établie sur #multiply. La valeur de blendFunctionList[1] est établie sur #replace. 200 Chapitre 3 Exemple L’instruction suivante donne la texture Ovale comme propriété diffuseLightMap au matériau utilisé par le modèle boîteEnVerre. member("planète3D").model("boîteEnVerre").shader.diffuseLightMap = \ member("planète3D").texture("Ovale") Voir aussi blendFunctionList, textureModeList, glossMap, region, specularLightMap digitalVideoTimeScale Syntaxe the digitalVideoTimeScale Description Propriété système ; détermine l’échelle temporelle, en unités par seconde, que le système utilise pour mesurer la durée des acteurs vidéo numérique. La propriété digitalVideoTimeScale peut recevoir n’importe quelle valeur. La valeur de la propriété détermine la fraction de seconde utilisée pour suivre la progression de la vidéo, comme indiqué dans les exemples suivants : • 100 – l’échelle temporelle est de 1/100ème de seconde (et la séquence est mesurée à 100 unités par seconde). • 500 – l’échelle temporelle est de 1/500ème de seconde (et la séquence est mesurée à 500 unités par seconde). • 0 – Director utilise l’échelle temporelle de l’animation en cours de lecture. Définissez digitalVideoTimeScale pour accéder précisément aux pistes en vous assurant que l’unité temporelle du système pour la vidéo est un multiple de l’unité temporelle de la vidéo numérique. Définissez la propriété digitalVideoTimeScale sur une valeur supérieure pour permettre un contrôle plus précis de la lecture de la vidéo. Cette propriété peut être testée et définie. Exemple L’instruction suivante définit l’échelle temporelle utilisée par le système pour mesurer la vidéo numérique à 600 unités par seconde : the digitalVideoTimeScale to 600 digitalVideoType Syntaxe member(quelActeur).digitalVideoType the digitalVideoType of member quelActeur Description Propriété d’acteur ; indique le format de la vidéo numérique spécifiée. Les valeurs possibles sont #quickTime ou #videoForWindows. Cette propriété peut être testée, mais pas définie. Dictionnaire Lingo 201 Exemple L’instruction suivante teste si l’acteur Evénements du jour est une vidéo numérique QuickTime ou AVI et affiche le résultat dans la fenêtre Messages : put member("Evénements du jour").digitalVideoType Voir aussi quickTimeVersion() direction Syntaxe member(quelActeur).modelResource(quelleRessDeMod).\ emitter.direction Description Propriété 3D d’émission ; vecteur indiquant la direction dans laquelle les particules d’un système sont émises. Un système de particules est une ressource de modèle de type #particle. La principale direction de l’émission des particules est le vecteur défini par la propriété direction de l’émetteur. Toutefois, la direction de l’émission d’une particule donnée déviera de ce vecteur selon un angle aléatoire compris entre 0 et la valeur de la propriété angle de l’émetteur. Le fait de donner à la direction la valeur vector(0,0,0) provoque l’émission des particules dans toutes les directions. La valeur par défaut de cette propriété est vector(1,0,0). Exemple Dans l’exemple suivant, systèmeThermique est une ressource de modèle de type #particle. L’instruction suivante donne à la propriété direction de l’émetteur de systèmeThermique la valeur vector(1, 0, 0), ce qui provoque l’émission des particules de systèmeThermique dans une région conique dont l’axe est l’axe des x de l’univers 3D. member("Feux").modelResource("systèmeThermique").emitter.\ direction = vector(1,0,0) Voir aussi emitter, angle directionalColor Syntaxe member(quelActeur).directionalColor Description Propriété 3D d’acteur ; indique la couleur rvb de la lumière directionnelle par défaut de l’acteur. La valeur par défaut de cette propriété est rgb(255, 255, 255). 202 Chapitre 3 Exemple L’instruction suivante donne à la propriété directionalColor de l’acteur Pièce la valeur rgb(0, 255, 0). La lumière directionnelle par défaut de l’acteur sera verte. Cette propriété peut également être définie dans l’inspecteur des propriétés. member("Pièce").directionalcolor = rgb(0, 255, 0) Voir aussi directionalPreset directionalPreset Syntaxe member(quelActeur).directionalPreset Description Propriété 3D d’acteur ; indique la direction depuis laquelle provient la lumière directionnelle par défaut, par rapport à la caméra de l’image-objet. La modification de la valeur de cette propriété entraîne la modification des propriétés position et rotation de la transformation de la lumière. Les valeurs possibles de directionalPreset sont les suivantes : • • • • • • • • • • #topLeft #topCenter #topRight #middleLeft #middleCenter #middleRight #bottomLeft #bottomCenter #bottomRight #None La valeur par défaut de cette propriété est #topCenter. Exemple L’instruction suivante donne à la propriété directionalPreset de l’acteur Pièce la valeur #middleCenter. La lumière par défaut de Pièce est pointée vers le centre de la vue courante de la caméra de l’image-objet. Cette propriété peut également être définie dans l’inspecteur des propriétés. member("Pièce").directionalpreset = #middleCenter Voir aussi directionalColor Dictionnaire Lingo 203 directToStage Syntaxe member(quelActeur).directToStage the directToStage of member quelActeur sprite(quelleImageObjet).directToStage the directToStage of sprite quelleImageObjet Description Propriété d’image-objet et d’acteur; détermine le plan sur lequel un acteur vidéo numérique, GIF animé, forme vectorielle, 3D ou Flash est lu. Si cette propriété a pour valeur TRUE, l’acteur est lu devant toutes les autres couches de la scène et les effets d’encre n’ont aucun effet. Si cette propriété a pour valeur FALSE, l’acteur peut apparaître dans n’importe quelle couche des plans d’animation de la scène et les effets d’encre affectent l’apparence de l’image-objet. • Utilisez la syntaxe member(quelActeur).directToStage pour les vidéos numériques ou les GIF animés. • Utilisez la syntaxe sprite(quelleImageObjet).directToStage pour Flash ou les formes vectorielles. • Utilisez n’importe quelle syntaxe pour les acteurs ou les images-objets 3D. L’utilisation de cette propriété améliore les performances de lecture des acteurs ou images-objets. Aucun autre acteur ne peut apparaître devant une image-objet directToStage. Les effets d’encre n’ont également aucun effet sur l’apparence d’une image-objet directToStage. Lorsque la propriété directToStage d’une image-objet a pour valeur TRUE, Director dessine l’image-objet directement à l’écran sans la composer d’abord dans son tampon hors-écran. Le résultat peut être semblable à un effet de traces sur la scène. Vous pouvez rafraîchir une zone contenant des traces en activant/désactivant la propriété directToStage, à l’aide d’une transition plein-écran ou du passage d’une autre image-objet sur cette zone. Sous Windows, si vous ne le faites pas, vous pouvez passer à un écran semblable sans que la vidéo disparaisse complètement. Vous pourrez voir un exemple de directToStage dans une animation en consultant l’animation QT et Flash du dossier Learning/Lingo_Examples, lui-même dans le dossier de Director. Exemple L’instruction suivante entraîne la lecture de l’animation QuickTime Résidents sur la couche supérieure de la scène : member("Résidents").directToStage = 1 204 Chapitre 3 disableImagingTransformation Syntaxe the disableImagingTransformation Description Propriété Lingo graphique ; lorsque TRUE, empêche Director de prendre en compte le défilement ou le zoom sur la scène lorsque (the stage).image est utilisé. Lorsque la propriété disableImagingTransformation a pour valeur FALSE, Director capture toujours l’image de la scène comme si la fenêtre de la scène était à 100 % et n’était pas déplacée du centre de la fenêtre de la scène. Lorsque cette propriété a pour valeur TRUE, le zoom et le défilement de la scène affectent l’apparence de l’image capturée par (the stage).image. displayFace Syntaxe member(quelActeurTexte).displayFace member(quelActeur3D).modelResource(quelleRessDeMod).\ displayFace Description Propriété 3D de texte ; liste linéaire indiquant la ou les faces du texte 3D à afficher. Les valeurs possibles sont #front, #tunnel et #back. Vous pouvez afficher n’importe quelle combinaison de faces et la liste peut être dans n’importe quel ordre. La valeur par défaut de cette propriété est [#front, #back, #tunnel]. Pour les acteurs texte, il s’agit d’une propriété d’acteur. Pour le texte extrudé d’un acteur 3D, il s’agit d’une propriété de ressource de modèle. Exemple Dans l’exemple suivant, l’acteur Panneau est un acteur texte. L’instruction suivante donne à la propriété displayFace de Panneau la valeur [#tunnel]. Lorsque Panneau est affiché en mode 3D, ses faces avant et arrière n’apparaissent pas. member("Panneau").displayFace = [#tunnel] Dans l’exemple suivant, la ressource du modèle Slogan est du texte extrudé. L’instruction suivante donne à la propriété displayFace de la ressource de modèle de Slogan la valeur [#back, #tunnel]. La face avant de Slogan ne sera pas tracée. member("Scène").model("Slogan").resource.displayFace = \ [#back, #tunnel] Voir aussi extrude3D, displayMode Dictionnaire Lingo 205 displayMode Syntaxe member(quelActeurTexte).displayMode Description Propriété d’acteur texte ; spécifie si le texte sera rendu en 2D ou en 3D. Lorsque cette propriété a pour valeur #Mode3D, le texte est affiché en 3D. Vous pouvez définir les propriétés 3D du texte (telles que displayFace et bevelDepth), ainsi que les propriétés de texte habituelles (telles que text et font). L’image-objet contenant cet acteur devient une imageobjet 3D. Lorsque cette propriété a pour valeur #ModeNormal, le texte est affiché en 2D. La valeur par défaut de cette propriété est #ModeNormal. Exemple Dans l’exemple suivant, l’acteur Logo est un acteur texte. L’instruction suivante entraîne l’affichage de Logo en 3D. member("Logo").displayMode = #mode3D Voir aussi extrude3D displayRealLogo Syntaxe sprite(quelleImageObjet).displayRealLogo member(quelActeur).displayRealLogo Description Propriété d’acteur ou image-objet RealMedia ; permet de savoir ou de définir si le logo RealNetworks est affiché (TRUE) ou non (FALSE). Lorsque cette propriété a pour valeur TRUE, le logo RealNetworks apparaît au début du train et lorsque la vidéo est arrêtée ou rembobinée. La valeur par défaut de cette propriété est TRUE. Les valeurs entières autres que 1 ou 0 sont traitées comme TRUE. Exemples Les exemples suivants indiquent que la propriété displayRealLogo de l’image-objet 2 et de l’acteur Real a pour valeur TRUE, ce qui signifie que le logo RealNetworks est affiché au début de la lecture de l’animation et lorsque cette dernière est arrêtée ou rembobinée. put sprite(2).displayRealLogo -- 1 put member("Real").displayRealLogo -- 1 Les exemples suivants donnent à la propriété displayRealLogo de l’image-objet 2 et de l’acteur Real la valeur FALSE, ce qui signifie que le logo RealNetworks ne sera pas affiché. sprite(2).displayRealLogo = FALSE member("Real").displayRealLogo = FALSE 206 Chapitre 3 distanceTo() Syntaxe vecteur1.distanceTo(vecteur2) Description Méthode 3D de vecteur ; renvoie la distance, en unités d’univers, séparant deux positions vectorielles. Exemple L’exemple suivant compte trois vecteurs. La distance séparant Vec1 de Vec2 est 100.0000 unités de l’univers. La distance séparant Vec1 de Vec3 est 141.4214 unités de l’univers. Vec1 = vector(100, 0, 0) Vec2 = vector(100, 100, 0) Vec3 = vector(100, 100, 100) put Vec1.distanceTo(Vec2) -- 100.0000 put Vec1.distanceTo(Vec3) -- 141.4214 Voir aussi magnitude distribution Syntaxe member(quelActeur).modelResource(quelleRessDeMod).\ emitter.distribution Description Propriété 3D d’émission ; indique la façon dont les particules d’un système de particules sont réparties dans la région de l’émetteur lors de leur création. Les valeurs possibles de cette propriété sont #gaussian ou #linear. La valeur par défaut est #linear. Exemple Dans l’exemple suivant, systèmeThermique est une ressource de modèle de type #particle. L’instruction suivante donne à la propriété distribution de l’émetteur de systèmeThermique la valeur #linear, ce qui entraîne la répartition uniforme des particules de systèmeThermique dans leur région d’origine lorsqu’elles sont créées. member("Feux").modelResource("systèmeThermique").emitter.\ distribution = #linear Voir aussi emitter, region Dictionnaire Lingo 207 dither Syntaxe member(quelActeur).dither the dither of member quelActeur Description Propriété d’acteur bitmap ; trame l’acteur lorsqu’il est affiché avec un codage de couleur sur 8 bits ou moins (256 couleurs) si l’écran doit afficher une nuance de couleurs qui n’est pas dans l’acteur (TRUE) ou indique à Director de choisir la couleur la plus proche parmi celles de la palette courante (FALSE). Pour des raisons de performance comme de qualité, vous ne devriez donner à dither la valeur que lorsqu’une qualité d’affichage supérieure est nécessaire. Le tramage est plus lent qu’une conversion des couleurs et des détails ennuyeux peuvent être plus apparents lors de l’animation sur une image tramée. TRUE Si le codage des couleurs est supérieur à 8 bits, cette propriété n’a aucun effet. Voir aussi depth do Syntaxe do expressionChaîne Description Commande ; évalue expressionChaîne et exécute le résultat sous la forme d’une instruction Lingo. 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 les variables locales en avance. 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. Exemple L’instruction suivante exécute l’instruction placée entre guillemets : do "beep 2" do listeDeCommandes[3] 208 Chapitre 3 doneParsing() Syntaxe 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. Voir aussi parseURL() dot() Syntaxe 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 arriver manuellement 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(). 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 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.dot(norm2) -- 0.7071 Voir aussi dotProduct(), getNormalized, normalize Dictionnaire Lingo 209 dotProduct() Syntaxe 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, le produit est le cosinus de l’angle entre les deux vecteurs. Pour arriver manuellement 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(). 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 doubleClick Syntaxe the doubleClick Description Fonction ; indique si deux clics de souris dans un laps de temps prédéfini comme un double-clic correspondent effectivement à un double-clic plutôt qu’à deux clics simples (TRUE) ou, s’ils n’ont pas eu lieu dans le temps déterminé, les traite comme des clics simples (FALSE). Exemples L’instruction suivante envoie la tête de lecture sur l’image Entrée de l’offre lorsque l’utilisateur double-clique sur le bouton de la souris : if the doubleClick then go to frame "Entrée de l’offre" 210 Chapitre 3 Le gestionnaire suivant vérifie si un double-clic a eu lieu. Lorsque l’utilisateur clique sur le bouton de la souris, une boucle de répétition est exécutée pendant l’intervalle déterminé pour un doubleclic (20 battements dans ce cas). Si un second clic se produit pendant cet intervalle, le gestionnaire actionDeDoubleClic est exécuté. Dans le cas contraire, le gestionnaire actionDeClicSimple est exécuté : on mouseUp if the doubleClick then exit startTimer repeat while the timer < 20 if the mouseDown then actionDeDoubleClic exit end if end repeat actionDeClicSimple end mouseUp Voir aussi clickOn, the mouseDown (propriété système), the mouseUp (propriété système) downloadNetThing Syntaxe 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é. • URL – Nom de fichier 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, un graphique, etc. • fichierLocal – Chemin d’accès et nom du fichier sur le disque local. Les animations Director en mode auteur et les projections supportent la commande mais celle-ci n’est pas supportée par Shockwave. 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. Remarque Director pour Java ne supporte pas la commande downloadNetThing. Dictionnaire Lingo 211 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() drag Syntaxe member(quelActeur).modelResource(quelleRessDeMod).drag Description Propriété de la ressource de modèle #particle ; indique le pourcentage de vélocité de chaque particule qui est perdu à chaque étape de simulation. La valeur de cette propriété peut être comprise entre 0 (aucune perte de vélocité) et 100 (toute la vélocité est perdue et la particule arrête de bouger). La valeur par défaut est 0. Exemple Dans l’exemple suivant, systèmeThermique est une ressource de modèle de type #particle. L’instruction suivante donne à la propriété drag de systèmeThermique la valeur 5, ce qui applique une forte résistance au mouvement des particules de systèmeThermique et les empêche de se déplacer très loin. member("Feux").modelResource("systèmeThermique").drag = 5 Voir aussi wind, gravity draw() Syntaxe objetImage.draw(x1, y1, x2, y2, objetCouleurOuListedeParamètres) objetImage.draw(point(x, y), point(x, y), objetCouleurOuListedeParamètres) objetImage.draw(rect, objetCouleurOuListedeParamètres) Description Cette fonction dessine une ligne ou une forme vide de couleur objetCouleur dans une zone rectangulaire de l’objet image donné, tel que spécifié dans les trois méthodes présentées. La fonction draw renvoie une valeur de 1 si aucune erreur n’est détectée. Vous pouvez utiliser la fonction facultative ListeDeParamètres de liste de propriétés pour spécifier les propriétés de forme 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. 212 Chapitre 3 En cas d’absence de liste de paramètres, cette fonction dessine un trait 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 une valeur inférieure), l’objetCouleur 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 fonction fill(). Exemples 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. member("Joyeux").image.draw(0, 0, 128, 86, rgb(150,0,0)) 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). member("Joyeux").image.draw(0, 0, 128, 86, [#shapeType:#oval, #lineSize:3, \ #color: rgb(150, 0, 0)]) Voir aussi color(), copyPixels(), fill(), setPixel() drawRect Syntaxe window nomDeFenêtre.drawRect the drawRect of window nomDeFenêtre Description Propriété de fenêtre ; identifie les coordonnées rectangulaires de la scène de l’animation qui apparaît dans la fenêtre. Les coordonnées sont données sous la forme d’un rectangle, avec les entrées dans l’ordre gauche, haut, droite et bas. Cette propriété est pratique pour mettre les animations à l’échelle ou faire un panorama, mais ne redimensionne pas les acteurs texte et champ. La mise à l’échelle des bitmaps peut affecter la performance. Cette propriété peut être testée et définie. Exemple L’instruction suivante affiche les coordonnées courantes de la fenêtre d’animation intitulée Tableau de commande : put the drawRect of window "Tableau de commande" -- rect(10, 20, 200, 300). L’instruction suivante donne au rectangle de l’animation les valeurs du rectangle intitulé rectangleDanimation. La partie de l’animation contenue dans le rectangle correspond à la zone affichée dans la fenêtre. set the drawRect of window "Tableau de commande" to rectangleDanimation Dictionnaire Lingo 213 Les lignes suivantes entraînent le remplissage de la zone principale du moniteur par la scène : (the stage).drawRect = the desktopRectList[1] (the stage).rect = the desktopRectList[1] Voir aussi deskTopRectList, rect (caméra), sourceRect dropShadow Syntaxe member(quelActeur).dropShadow the dropShadow of member quelActeur Description Propriété d’acteur ; détermine la taille de l’ombre, en pixels, du texte d’un acteur champ. Exemple L’instruction suivante donne à l’ombre de l’acteur champ Commentaire une taille de 5 pixels : member("Commentaire").dropShadow = 5 duplicate Syntaxe référenceDeVecteur.duplicate() référenceDeTransformation.duplicate() Description Méthode 3D de vecteur et transformation ; renvoie une copie du vecteur ou de la transformation. Exemple L’instruction suivante crée une copie de la position du modèle 1 et l’enregistre dans la variable zz. zz = member("maSalle").model[1].transform.position.duplicate() Voir aussi clone duplicateFrame Syntaxe duplicateFrame Description Commande ; 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 commande peut être utilisée pendant la création du scénario uniquement. La commande duplicateFrame a la même fonction que la commande insertFrame. 214 Chapitre 3 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. on animBalle nombreDimages beginRecording sprite(20).member = member("Balle", "Jouets") repeat with i = 0 to nombreDimages duplicateFrame end repeat endRecording end duplicate() (fonction de liste) Syntaxe (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. Vous pourrez voir un exemple de duplicate() (fonction de liste) dans une animation en consultant l’animation Vector Shapes du dossier Learning/Lingo_Examples, lui-même dans le dossier de Director. Exemple L’instruction suivante copie la liste ClientsDuJour et l’affecte à la variable ListeDesClients : ListeDesClients = ClientsDuJour.duplicate() duplicate() (fonction d’image) Syntaxe objetImage.duplicate() Description Cette fonction crée et renvoie une copie de l’objetImage donné. La nouvelle image est entièrement indépendante de l’originale 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. 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 duplicate member Dictionnaire Lingo 215 duplicate member Syntaxe member(acteurDorigine).duplicate() member(acteurDorigine).duplicate({nouvellePosition}) duplicate member acteurDorigine {, nouvellePosition} Description Commande ; copie l’acteur spécifié par acteurDorigine. Le paramètre facultatif nouvellePosition spécifie une position dans la fenêtre de distribution pour l’acteur copié. Si le paramètre nouvellePosition n’est pas inclus, la copie de l’acteur est placée dans la première position disponible de la fenêtre Distribution. Cette commande trouve sa meilleure utilisation en programmation plutôt qu’à 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. Utilisez la commande pendant les étapes de la programmation pour que les modifications apportées à la distribution soient enregistrées avec le fichier. Exemples L’instruction suivante copie l’acteur Bureau et le place dans la première position vide de la fenêtre Distribution : member("Bureau").duplicate() L’instruction suivante copie l’acteur Bureau et le place à la position 125 : member("Bureau").duplicate(125) duration Syntaxe member(quelActeur).duration the duration of member quelActeur Description Propriété d’acteur ; détermine la durée des acteurs Shockwave Audio (SWA), transition et QuickTime spécifiés. • Si quelActeur est un fichier audio lu en flux continu, cette propriété indique la durée du son. La propriété duration renvoie 0 jusqu’au démarrage de la lecture en flux continu. Le fait de donner à preLoadTime la valeur d’une seconde permet le renvoi de la durée réelle. • Si quelActeur est un acteur vidéo numérique, cette propriété indique la durée de la vidéo numérique. La valeur est exprimée en battements. • Si quelActeur est un acteur transition, cette propriété indique la durée de la transition. La valeur de la transition est exprimée en millisecondes. Au cours de la lecture, ce paramètre a le même effet que le paramètre Durée de la boîte de dialogue Préférences de l’image : Transition. Cette propriété peut être testée pour tous les acteurs qui la supportent, mais n’est définissable que pour les transitions. Vous pourrez voir un exemple de duration dans une animation en consultant l’animation QT and Flash du dossier Learning/Lingo_Examples, lui-même dans le dossier de Director. 216 Chapitre 3 Exemples Si l’acteur SWA Louie Prima a été préchargé, l’instruction suivante affiche la durée du son dans l’acteur champ Affichage de la durée : on exitFrame if member("Louie Prima").state = 2 then member("Affichage de la durée").text = member("Louie Prima").duration end if end Vous pouvez utiliser un comportement sur une image-objet vidéo numérique pour que la tête de lecture effectue une boucle sur l’image courante jusqu’à la fin de la lecture de la séquence, lui permettant de continuer après la fin : property spriteNum on exitFrame me monActeur = sprite(spriteNum).member maDurée = member(monActeur).duration duréeDeMonAnimation = sprite(spriteNum).movieTime if maDurée > duréeDeMonAnimation then go to the frame else go to the frame + 1 end if end duration (3D) Syntaxe member(quelActeur).motion(quelMouvement).duration référenceDobjetDeDéplacement.duration Description Propriété 3D ; permet d’obtenir le temps, en millisecondes, nécessaire à la lecture complète du mouvement spécifié dans le paramètre quelMouvement. Cette propriété est toujours supérieure ou égale à 0. Exemple L’instruction suivante indique la durée, en millisecondes, du mouvement Coup. put member("GbActeur").motion("Coup").duration -- 5100.0000 Voir aussi motion, currentTime (3D), play() (3D), queue() (3D) Dictionnaire Lingo 217 duration (RealMedia) Syntaxe sprite(quelleImageObjet).duration member(quelActeur).duration Description Propriété d’acteur ou image-objet RealMedia ; indique la durée du train RealMedia, en millisecondes. La durée du train RealMedia reste inconnue juqu’au démarrage de la lecture de l’acteur. Si le train provient d’un train en direct ou n’a pas été lu, la valeur de cette propriété est 0. Cette propriété peut être testée, mais pas définie. Exemples Les exemples suivants indiquent que l’état du train RealMedia de l’image-objet 2 et de l’acteur Real est 100 500 millisecondes (100,50 secondes). put sprite(2).duration -- 100500 put member("Real").duration -- 100500 Voir aussi play (RealMedia), seek, currentTime (RealMedia) 218 Chapitre 3 editable Syntaxe member(quelActeur).editable the editable of member quelActeur sprite(quelleImageObjet).editable the editable of sprite quelleImageObjet Description Propriété d’acteur et d’image-objet ; détermine si l’acteur champ spécifié peut être modifié sur la scène (TRUE) ou non (FALSE). Lorsque la propriété d’acteur est définie, le paramètre est appliqué à toutes les images-objets contenant le champ. Lorsque la propriété d’image-objet est définie, seule l’image-objet spécifiée est affectée. Vous pouvez également rendre un acteur champ modifiable à l’aide de l’option Modifiable dans la boîte de dialogue Propriétés de l’acteur champ. Vous pouvez rendre une image-objet champ modifiable à l’aide de l’option Modifiable dans le scénario. Pour que la valeur définie par Lingo dure au-delà de l’image-objet courante, celle-ci doit être un esclave. Cette propriété peut être testée et définie. Exemples L’instruction suivante rend l’acteur champ Réponse modifiable : member("Réponse").editable = TRUE Le gestionnaire suivant fait de la piste d’image-objet un esclave et rend l’image-objet champ modifiable : on mesNotes puppetSprite 5, TRUE sprite(5).editable = TRUE end L’instruction suivante vérifie si une image-objet champ est modifiable et affiche un message le cas échéant : if sprite(13).editable = TRUE then member("Notice").text = "Veuillez saisir votre réponse ci-dessous." end if 219 editShortCutsEnabled Syntaxe the editShortCutsEnabled Description Propriété d’animation ; détermine si les opérations Couper, Copier et Coller, ainsi que leurs raccourcis clavier, fonctionnent dans l’animation courante. Ces opérations de texte fonctionnent si elles sont définies sur TRUE. Ces opérations ne sont pas autorisées si elles sont définies sur FALSE. Cette propriété peut être testée et définie. La valeur par défaut est TRUE pour les animations créées dans Director 8 et plus récent, et FALSE pour les animations créées dans les versions précédentes de Director. Exemple L’instruction suivante désactive les opérations Couper, Copier et Coller : the editShortCutsEnabled = 0 elapsedTime Syntaxe sound(numéroDePiste).elapsedTime the elapsedTime of sound numéroDePiste Description Cette propriété en lecture seule indique la durée écoulée, en millisecondes, depuis le début de la lecture de l’acteur son courant dans la piste audio indiquée. Elle commence à 0 au début de la lecture du son et augmente au fur et à mesure de la lecture, indépendamment de la lecture en boucle, du paramètre currentTime ou de toute autre manipulation. Utilisez currentTime pour tester la durée absolue courante au sein du son. La valeur de cette propriété est un nombre à virgule flottante, ce qui permet de mesurer la lecture du son en fraction de millisecondes. Exemple Ce gestionnaire on idle affiche le temps écoulé pour la piste audio 4 dans un champ de la scène en période d’inactivité : on idle member("durée").text = string(sound(4).elapsedTime) end idle Voir aussi currentTime, loopCount, loopsRemaining, rewind() 220 emissive Syntaxe member(quelActeur).shader(quelMatériau).emissive member(quelActeur).model(quelModèle).shader.emissive member(quelActeur).model(quelModèle).shaderList{[index]}.\ emissive Description Propriété 3D de matériau #standard ; ajoute de la lumière au matériau indépendamment de l’éclairage de la scène. Par exemple, un modèle utilisant un matériau dont la propriété emissive a pour valeur rgb(255, 255, 255) apparaîtra comme étant illuminé par une lumière blanche, même si la scène ne contient aucune lumière. Cependant, le modèle n’éclairera par les autres modèles et n’apportera aucune lumière à la scène. La valeur par défaut de cette propriété est rgb(0, 0, 0). Exemple L’instruction suivante donne à la propriété emissive du matériau Globe la valeur rgb(255, 0, 0). Les modèles utilisant ces matériaux apparaîtront comme étant éclairés par une lumière rouge. member("mondeMystérieux").shader("Globe").emissive = rgb(255, 0, 0) Voir aussi silhouettes emitter Syntaxe member(quelActeur).modelResource(quelleRessDeMod).\ emitter.numParticles member(quelActeur).modelResource(quelleRessDeMod).\ emitter.mode member(quelActeur).modelResource(quelleRessDeMod).\ emitter.loop member(quelActeur).modelResource(quelleRessDeMod).\ emitter.direction member(quelActeur).modelResource(quelleRessDeMod).\ emitter.region member(quelActeur).modelResource(quelleRessDeMod).\ emitter.distribution member(quelActeur).modelResource(quelleRessDeMod).\ emitter.angle member(quelActeur).modelResource(quelleRessDeMod).\ emitter.path member(quelActeur).modelResource(quelleRessDeMod).\ emitter.pathStrength member(quelActeur).modelResource(quelleRessDeMod).\ emitter.minSpeed member(quelActeur).modelResource(quelleRessDeMod).\ emitter.maxSpeed 221 Description Elément 3D de système de particules ; contrôle la propulsion initiale de particules à partir d’une ressource de modèle de type #particle. La section « Voir aussi » de cette entrée contient une liste complète des propriétés d’émetteur. Pour plus d’informations, consultez les entrées des différentes propriétés. Voir aussi numParticles, loop (émetteur), direction, distribution, region, angle, path, pathStrength, minSpeed, maxSpeed EMPTY Syntaxe EMPTY 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 : member("Notice").text = EMPTY emulateMultiButtonMouse Syntaxe the emulateMultiButtonMouse Description Propriété système ; détermine si une animation considère un clic de la souris exécuté en enfonçant la touche Ctrl d’un Macintosh comme un clic sur le bouton droit de la souris sous Windows (TRUE) ou non (FALSE). Les clics du bouton droit n’ont aucun équivalent direct sur le Macintosh. Le fait de donner à cette propriété la valeur TRUE vous permet d’apporter des réponses constantes aux clics de la souris dans les animations lues sur différentes plates-formes. Exemple L’instruction suivante vérifie si l’animation est lue sur un Macintosh et, le cas échéant, donne à la propriété emulateMultiButtonMouse la valeur TRUE : if the platform contains "Macintosh" then the emulateMultiButtonMouse = TRUE Voir aussi keyPressed(), rightMouseDown (propriété système), rightMouseUp (propriété système) 222 enabled Syntaxe the enabled of menuItem quelElément of menu quelMenu Description Propriété d’élément de menu ; détermine si l’élément de menu spécifié par quelElément est affiché en texte normal et peut être sélectionné (TRUE, valeur par défaut) ou apparaît en texte grisé et ne peut pas être sélectionné (FALSE). L’expression quelElément peut être le nom d’un élément de menu ou son numéro. L’expression peut être le nom d’un menu ou son numéro. quelMenu Cette propriété peut être testée et définie. Remarque Les menus ne sont pas disponibles dans Shockwave. Exemple Le gestionnaire suivant active ou désactive tous les éléments du menu spécifié. L’argument leMenu spécifie le menu ; l’argument Paramètre spécifie TRUE ou FALSE. Par exemple, l’instruction d’appel activerLeMenu ("Spécial", FALSE) désactive tous les éléments du menu Spécial. on activerLeMenu leMenu, Paramètre set n = the number of menuItems of menu leMenu repeat with i = 1 to n set the enabled of menuItem i of menu leMenu to Paramètre end repeat end activerLeMenu Voir aussi name (propriété de menu), number (menus), checkMark, script, number (éléments de menu) enabled (collision) Syntaxe member(quelActeur).model(quelModèle).collision.enabled Description Propriété 3D de collision ; permet de savoir ou de définir si les collisions sont détectées au niveau des modèles (TRUE) ou non (FALSE). La valeur FALSE désactive temporairement le modificateur collision sans le supprimer du modèle. Le paramètre par défaut de cette propriété est TRUE. Exemple L’instruction suivante active le modificateur collision pour le modèle Boîte : member("Univers 3D").model("Boîte").collision.enabled = TRUE Voir aussi addModifier, collision (modificateur), modifier 223 enabled (brouillard) Syntaxe member(quelActeur).camera(quelleCaméra).fog.enabled sprite(quelleImageObjet).camera{(index)}.fog.enabled Description Propriété 3D de caméra ; indique si la caméra ajoute du brouillard à la vue. Le paramètre par défaut de cette propriété est FALSE. Exemple L’instruction suivante crée du brouillard dans la vue de la caméra vueDeLaBaie : member("monTerrain").camera("vueDeLaBaie").fog.enabled = TRUE Voir aussi fog enabled (sds) Syntaxe member(quelActeur).model(quelModèle).sds.enabled Description Propriété 3D de modificateur sds ; indique si le modificateur sds associé au modèle est utilisé par le modèle. Le paramètre par défaut de cette propriété est TRUE. Une tentative d’ajout du modificateur sds à un modèle déjà associé au modificateur inker ou toon entraîne un échec sans message d’erreur. De même, une tentative d’ajout du modificateur inker ou toon à un modèle déjà associé au modificateur sds entraîne un échec sans message d’erreur. Faites également attention lorsque vous utilisez le modificateur sds avec le modificateur lod. Pour plus d’informations, consultez l’entrée du modificateur sds. Exemple L’instruction suivante active le modificateur sds associé au modèle Bébé : member("Séquence").model("Bébé").sds.enabled = TRUE Voir aussi sds (modificateur), modifier, addModifier enableHotSpot Syntaxe enableHotSpot(sprite quelleImageObjetQTVR, idDeZoneRéférencée, trueOuFalse) Description Commande QTVR ; détermine si la zone référencée spécifiée pour l’image-objet QTVR spécifiée est activée (TRUE) ou désactivée (FALSE). 224 end Syntaxe end Description Mot-clé ; marque la fin des gestionnaires et des structures de contrôle à plusieurs lignes. end case Syntaxe 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 the key of "A": go to frame "Pomme" of "B", "C" : puppetTransition 99 go to frame "Mangue" otherwise beep end case end keyDown Voir aussi case endAngle Syntaxe member(quelActeur).modelResource(quelleRessDeMod).\ endAngle Description Propriété 3D de ressource de modèle #cylinder ou #sphere ; indique la quantité dessinée de la sphère ou du cylindre. La surface d’une sphère est générée en balayant un demi arc de cercle 2D autour de l’axe des y de la sphère, de startAngle à endAngle. Si startAngle a pour valeur 0 et endAngle a pour valeur 360, le résultat est une sphère complète. Pour dessiner une section de sphère, donnez à endAngle une valeur inférieure à 360. La surface d’un cylindre est générée en balayant une ligne 2D autour de l’axe des y du cylindre, de startAngle à endAngle. Si startAngle a pour valeur 0 et endAngle a pour valeur 360, le résultat est un cylindre complet. Pour dessiner une section de cylindre, donnez à endAngle une valeur inférieure à 360. Le paramètre par défaut de cette propriété est 360. 225 Exemple Pour l’exemple suivant, l’acteur monActeur contient un modèle qui utilise la ressource de modèle sphère4, dont la valeur endAngle est 310, ce qui laisse une ouverture de 50°. Le gestionnaire fermetureDeSphère ferme cette ouverture de façon à donner l’impression d’une porte coulissante. La boucle de répétition change la valeur endAngle de la sphère d’un degré à la fois. La commande updateStage de la boucle de répétition force la mise à jour de la scène après chaque palier d’un degré. on fermetureDeSphère monAngle = member("MonActeur").modelresource("Sphère4").endAngle repeat with r = 1 to 50 monAngle = monAngle + 1 member("MonActeur").modelresource("Sphère4").endAngle = monAngle updateStage end repeat end Voir aussi state (3D) endColor Syntaxe the endColor of member quelActeur Description Propriété d’acteur forme vectorielle ; couleur finale d’un remplissage en dégradé spécifiée sous la forme d’une valeur rvb. est uniquement valide lorsque fillMode a pour valeur #gradient et que la couleur de départ est définie avec fillColor. endColor Cette propriété peut être testée et définie. Vous pourrez voir un exemple de endColor dans une animation en consultant l’animation Vector Shapes du dossier Learning/Lingo_Examples, lui-même dans le dossier de Director. Voir aussi color(), fillColor, fillMode endFrame() Syntaxe sprite(quelleImageObjet).endFrame Description Fonction ; renvoie le numéro de la dernière image de l’étendue de l’image-objet. Cette fonction est pratique pour déterminer l’étendue d’une image-objet particulière dans le scénario. Cette fonction est uniquement disponible dans une image contenant l’image-objet. Elle ne peut pas être appliquée aux images-objets situées dans des images différentes de l’animation et sa valeur ne peut pas être définie. 226 Exemple L’instruction suivante indique l’image finale de l’image-objet de la piste 5 dans la fenêtre Messages : put sprite(5).endFrame Voir aussi startFrame endRecording Syntaxe endRecording Description Mot-clé ; termine une session de mise à jour du scénario. Vous pouvez reprendre le contrôle des pistes du scénario en créant des esclaves après l’émission du mot-clé endRecording. Exemple Lorsque utilisé dans le gestionnaire suivant, le mot-clé endRecording termine la session de création de scénario : on animBalle nombreDimages beginRecording horizontal = 0 vertical = 100 repeat with i = 1 to nombreDimages go to frame i sprite(20).member = member "Balle" sprite(20).locH = horizontal sprite(20).locV = vertical horizontal = horizontal + 3 vertical = vertical + 2 updateFrame end repeat endRecording end Voir aussi beginRecording, scriptNum, tweened, updateFrame end repeat Consultez repeat while, repeat with, repeat with...in list, repeat with...down to on endSprite Syntaxe on endSprite instruction(s) end 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. 227 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 au delà de l’image. Les commandes 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 : on endSprite me -- nettoyage gNombreDeRequins = gNombreDeRequins - 1 puppetSound(5,0) end Voir aussi on beginSprite, on exitFrame endTellTarget() Consultez tellTarget(). endTime Syntaxe sound(numéroDePiste).endTime the endTime of sound numéroDePiste Description Cette propriété constitue la position temporelle de fin du son en cours, en pause ou en file d’attente. Il s’agit de la position temporelle, au sein de l’acteur son, à laquelle la lecture du son s’arrêtera. Il s’agit d’une valeur à virgule flottante, permettant de mesurer et de contrôler la lecture du son en fraction de millisecondes. La valeur par défaut est la fin normale du son. Cette propriété peut être définie sur une valeur différente de la fin normale du son uniquement si elle est passée comme paramètre dans les commandes queue() ou setPlayList(). Exemple L’instruction Lingo suivante vérifie si l’acteur son Annonce est défini pour une lecture sans interruption dans la piste audio 1 : if sound(1).startTime > 0 and sound(1).endTime < member("Annonce").duration then alert "Lecture d’un son incomplet" end if Voir aussi setPlaylist(), queue(), startTime 228 ENTER Syntaxe ENTER 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 L’instruction suivante 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 : on keyDown if the key = ENTER then go to frame "ajouterLaSomme" end Voir aussi RETURN (constante) on enterFrame Syntaxe on enterFrame instruction(s) end 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. 229 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 : on enterFrame repeat with i = 1 to 5 puppetSprite i, FALSE end repeat end environment Syntaxe the environment the environment.nomDePropriété Description Propriété système ; cette propriété contient une liste d’informations concernant l’environnement dans lequel le contenu Director est lu. Ceci permet à Macromedia d’ajouter ultérieurement des informations à la propriété environment, sans affecter les animations existantes. Les informations sont présentées sous la forme de paires de valeurs et de propriétés pour cette zone. #shockMachine Valeur True ou False indiquant si l’animation est lue dans ShockMachine. #shockMachineVersion Chaîne indiquant le numéro de la version de ShockMachine installée. #platform Chaîne contenant Macintosh,PowerPC ou Windows,32. Ceci est déterminé d’après le système d’exploitation et le matériel sur lesquels l’animation est exécutée. #runMode Chaîne contenant Author (environnement auteur), Projector (projection), Plugin (module de navigateur web) ou Java Applet (applet Java). Ceci est déterminé en fonction de l’application courante dans laquelle l’animation est exécutée. #colorDepth Nombre entier représentant le codage des couleurs du moniteur sur lequel la scène apparaît. Les valeurs possibles sont 1, 2, 4, 8, 16 ou 32. #internetConnected Symbole indiquant si l’ordinateur sur lequel l’animation est lue est connecté à Internet. Les valeurs possibles sont #online et #offline. #uiLanguage Chaîne indiquant la langue qu’utilise l’ordinateur pour l’affichage de son interface utilisateur. Cette langue peut être différente de #osLanguage sur les systèmes équipés de kits de langues spécifiques. #osLanguage Chaîne indiquant la langue native du système d’exploitation de l’ordinateur. #productBuildVersion Chaîne indiquant le numéro de série interne de l’application de lecture. Les propriétés contiennent exactement les mêmes informations que les propriétés et fonctions du même nom. 230 Exemple L’instruction suivante affiche la liste d’environnement dans la fenêtre Messages : put the environment -- [#shockMachine: 0, #shockMachineVersion: "", #platform: "Macintosh,PowerPC", #runMode: "Author", #colorDepth: 32, #internetConnected: #online, #uiLanguage: "English", #osLanguage: "English", #productBuildVersion: "151"] Voir aussi colorDepth, platform, runMode erase member Syntaxe member(quelActeur).erase() erase member quelActeur Description Commande ; supprime l’acteur spécifié et laisse son emplacement vide dans la fenêtre Distribution. Pour de meilleurs résultats, utilisez cette commande pendant la programmation et non dans les projections, car cela peut entraîner des problèmes de mémoire. Exemples L’instruction suivante supprime l’acteur Engrenage de la distribution Matériel : member("Engrenage", "Matériel").erase() Le gestionnaire suivant supprime les acteurs du début à la fin : on effacerLesActeurs start, finish repeat with i = start to finish member(i).erase() end repeat end on effacerLesActeurs Voir aussi new() error Syntaxe member(quelActeur).model(quelModèle).sds.error Description Propriété 3D de modificateur #sds ; indique le pourcentage d’erreurs toléré par le modificateur lors de la synthèse des détails géométriques des modèles. Cette propriété ne fonctionne que lorsque la propriété subdivision du modèle a pour valeur #adaptive. Les propriétés tension et depth (3D) du modificateur se combinent à la propriété error pour contrôler l’importance du fractionnement réalisé par le modificateur. 231 Exemple L’instruction suivante donne à la propriété error du modificateur sds du modèle Bébé la valeur 0. Si le paramètre tension du modificateur est trop faible, que son paramètre depth est trop élevé, et que sa valeur subdivision est #adaptive, cette instruction à un effet très prononcé sur la géométrie de Bébé. member("Séquence").model("Bébé").sds.error = 0 Voir aussi sds (modificateur), subdivision, depth (3D), tension on EvalScript Syntaxe on EvalScript unParamètre instruction(s) end Description Message système et gestionnaire d’événement ; dans une animation Shockwave, contient des instructions exécutées lorsque le gestionnaire reçoit un message EvalScript du 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() EvalScript est appelé par la méthode JavaScript ou VBScript dans un navigateur web. Le lecteur Director pour Java ne supporte pas le gestionnaire on EvalScript. Pour activer la communication entre une applet et un navigateur, utilisez Java, JavaScript ou VBScript. Seuls les comportements devant être contrôlés par les utilisateurs doivent être inclus dans on ; pour des raisons de sécurité, ne donnez pas d’accès complet à tous les comportements. 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. Exemples 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 : on EvalScript unParamètre go frame unParamètre end Le gestionnaire suivant exécute l’instruction go frame unParamètre s’il reçoit un message EvalScript contenant les arguments chien, chat ou arbre : on EvalScript unParamètre case unParamètre of "chien", "chat", "arbre": go frame unParamètre end case end Une instruction d’appel possible dans JavaScript serait EvalScript ("chien"). 232 Le gestionnaire suivant prend un argument qui pourrait être un nombre ou un symbole : on EvalScript unParamètre if word 1 of unParamètre = "monGestionnaire" then do unParamètre end if end 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 : on monGestionnaire unParamètre go to frame string(unParamètre) end Voir aussi externalEvent, return (mot-clé) eventPassMode Syntaxe sprite(quelleImageObjetFlash).eventPassMode the eventPassMode of sprite quelleImageObjetFlash member(quelActeurFlash).eventPassMode the eventPassMode of member quelActeurFlash Description Propriété d’acteur et d’image-objet Flash ; contrôle le moment auquel une animation Flash passe les événements de souris aux comportements associés aux images-objets placées sous l’image-objet Flash. La propriété eventPassMode peut avoir les valeurs suivantes : • • #passAlways (valeur par défaut) – Passe toujours les événements de souris. #passButton – Passe les événements de souris uniquement lorsque l’utilisateur clique sur un bouton dans l’animation Flash. • #passNotButton – Passe les événements de souris uniquement lorsque l’utilisateur clique sur un objet qui n’est pas un bouton. • #passNever – Ne passe jamais les événements de souris. Cette propriété peut être testée et définie. Exemple Le script d’image suivant vérifie si les boutons d’une image-objet d’animation Flash sont activés et, le cas échéant, donne à eventPassMode la valeur #passNotButton ; si les boutons sont désactivés, le script donne à eventPassMode la valeur #passAlways. Ce script a l’effet suivant : • Les événements de souris sur des objets autres que des boutons sont toujours passés aux scripts d’images-objets. 233 • Les événements de souris sur des objets boutons sont passés aux scripts d’images-objets lorsque les boutons sont désactivés. Lorsque les boutons sont activés, les événements de souris sur les boutons sont arrêtés. on enterFrame if sprite(5).buttonsEnabled = TRUE then sprite(5).eventPassMode= #passNotButton else sprite(5).eventPassMode = #passAlways end if end exit Syntaxe 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. 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 the colorDepth = 1 then exit sprite(1).foreColor = 35 end Voir aussi abort, halt, quit, pass, return (mot-clé) on exitFrame Syntaxe on exitFrame instruction(s) end 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 Lingo permettant de réinitialiser des conditions inutiles une fois sorti de l’image. 234 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. Exemples Le gestionnaire suivant désactive toutes les conditions d’asservissement lorsque la tête de lecture quitte l’image : on exitFrame me repeat with i = 48 down to 1 sprite(i).puppet = FALSE end repeat end 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 : global vTotal on exitFrame if vTotal > 1000 then go to frame "Terminé" end Voir aussi on enterFrame exitLock Syntaxe the exitLock Description Propriété d’animation ; détermine si un utilisateur peut quitter et revenir au bureau Windows ou au Finder Macintosh à partir de projections (FALSE, valeur par défaut) ou non (TRUE). L’utilisateur peut quitter et revenir au bureau en appuyant sur Ctrl+point (Windows) ou Cmd+point (Macintosh), Ctrl+Q (Windows) ou Cmd+Q (Macintosh) ou Ctrl+W (Windows) ou Cmd+W (Macintosh) (la touche d’échappement est également supportée sous Windows). Cette propriété peut être testée et définie. Exemples L’instruction suivante donne à la propriété exitLock la valeur TRUE : set the exitLock to TRUE 235 Si exitLock est défini sur TRUE, rien ne se produira automatiquement lors de l’utilisation des raccourcis clavier Ctrl+point/Q/W, Echap ou Cmd+point/Q/W. Ce gestionnaire vérifie les informations saisies sur le clavier pour exécuter une sortie et présente une séquence personnalisée à l’utilisateur : on checkExit if the commandDown and (the key = "." or the key = "q") and the exitLock = TRUE then go to frame "séquence de sortie" end exit repeat Syntaxe 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 exp() Syntaxe (entierOuVirguleFlottante).exp exp(entierOuVirguleFlottante) Description Fonction ; calcule e, la base logarithmique naturelle, à la puissance spécifiée par entierOuVirguleFlottante. Exemple L’instruction suivante calcule la valeur de e à la puissance 5 : put (5).exp -- 148.4132 236 externalEvent Syntaxe 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. La chaîne envoyée par externalEvent doit être dans un langage script supporté par le navigateur. Cette commande fonctionne uniquement pour les animations dans des navigateurs. Pour activer la communication entre une applet et un navigateur, utilisez Java, JavaScript ou VBScript. 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. Exemples 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> 237 Dans l’animation, incluez la fonction et les paramètres dans la chaîne externalEvent : externalEvent ("maFonction ('param1','param2')") Voir aussi on EvalScript externalParamCount() Syntaxe externalParamCount() Description Fonction ; renvoie le nombre de paramètres passés par une balise HTML <EMBED> ou <OBJECT> à une animation Shockwave. Cette fonction est valide uniquement pour les animations Shockwave exécutées dans un navigateur web. Elle ne fonctionne pas pour les animations en cours de création ou dans des projections. Exemple Le gestionnaire suivant détermine si une balise <OBJECT> ou <EMBED> passe des paramètres externes à une animation Shockwave et exécute des instructions Lingo si les paramètres sont passés : if externalParamCount() > 0 then -- une action quelconque end if Voir aussi externalParamName(), externalParamValue() externalParamName() Syntaxe externalParamName(n) Description Fonction ; renvoie le nom d’un paramètre spécifique dans la liste de paramètres externes d’une balise HTML <EMBED> ou <OBJECT>. Cette fonction est valide uniquement pour les animations Shockwave exécutées dans un navigateur web. Elle ne peut pas être utilisée avec des animations Director ou des projections. • Si n est un nombre entier, externalParamName renvoie le énième nom de paramètre dans la liste. • Si n est une chaîne, externalParamName renvoie n si un des noms de paramètre externe correspond à n. La correspondance n’est pas sensible à la hauteur de casse. Si aucun nom de paramètre correspondant n’est trouvé, externalParamName renvoie VOID. 238 Exemple L’instruction suivante place la valeur d’un paramètre externe donné dans la variable maVariable : if externalParamName ("chaîneURLsw") = "chaîneURLsw" then maVariable = externalParamValue ("chaîneURLsw") end if Voir aussi externalParamCount(), externalParamValue() externalParamValue() Syntaxe externalParamValue(n) Description Fonction ; renvoie une valeur spécifique de la liste des paramètres externes d’une balise HTML <EMBED> ou <OBJECT>. Cette fonction est valide uniquement pour les animations Shockwave exécutées dans un navigateur web. Elle ne peut pas être utilisée avec des animations exécutées dans l’environnement auteur de Director ou dans des projections. • Si n est un nombre entier, externalParamValue renvoie la énième valeur de paramètre de la liste des paramètres externes. • Si n est une chaîne, externalParamValue renvoie la valeur associée au premier nom qui correspond à n. La correspondance n’est pas sensible à la hauteur de casse. Si aucune valeur de paramètre correspondante n’existe, externalParamValue renvoie VOID. Le comportement de cette fonction dans une applet diffère de son comportement dans d’autres animations Director. Dans une applet, externalParamValue a le résultat suivant : • Renvoie les paramètres de l’applet au lieu des paramètres de la balise <EMBED>. • Accepte uniquement les paramètres de chaîne. • Renvoie une chaîne de longueur nulle plutôt que VOID. Consultez Paramètres des balises EMBED et OBJECT et Paramètres accessibles avec Lingo sur le site du centre des développeurs Director. Exemple L’instruction suivante place la valeur d’un paramètre externe dans la variable maVariable : if externalParamName ("chaîneURLsw") = "chaîneURLsw" then maVariable = externalParamValue ("chaîneURLsw") end if Voir aussi externalParamCount(), externalParamName() 239 extractAlpha() Syntaxe 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() Voir aussi setAlpha(), useAlpha extrude3D Syntaxe member(quelActeurTexte).extrude3D(member(quelActeur3D)) Description Commande 3D ; crée une ressource de modèle #extruder dans l’acteur 3D quelActeur3D à partir du texte quelActeurTexte. Remarquez qu’il ne s’agit pas de la même chose que l’utilisation de 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) Exemple Dans l’exemple suivant, Logo est un acteur texte et Séquence est un acteur 3D. La première ligne crée une ressource de modèle dans Séquence, 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("Séquence")) member("Séquence").newModel("Logo3D", maRessourceDeModèleTexte) Voir aussi bevelDepth, bevelType, displayFace, smoothness, tunnelDepth, displayMode 240 face Syntaxe member(quelActeur).modelResource(quelleRessDeMod).\ face.count member(quelActeur).modelResource(quelleRessDeMod).\ face[index].colors member(quelActeur).modelResource(quelleRessDeMod).\ face[index].normals member(quelActeur).modelResource(quelleRessDeMod).\ face[index].shader member(quelActeur).modelResource(quelleRessDeMod).\ face[index].textureCoordinates member(quelActeur).modelResource(quelleRessDeMod).\ face[index].vertices member(quelActeur).model(quelModèle).meshdeform.\ face.count member(quelActeur).model(quelModèle).meshdeform.\ mesh[index].face.count member(quelActeur).model(quelModèle).meshdeform.\ mesh[indexDeMaille].face[indexDeFace] member(quelActeur).model(quelModèle).meshdeform.\ mesh[indexDeMaille].face[indexDeFace].neighbor{[indexDeVoisinage]} Description Propriété 3D de ressource de modèle #mesh et de modificateur meshdeform. Toutes les ressources de modèle sont des mailles composées de triangles. Chaque triangle est une face. Vous pouvez accéder aux propriétés des faces des ressources de modèle de type #mesh. Les modifications apportées à ces propriétés n’entrent pas en vigueur jusqu’à l’appel de la commande build(). Remarque Pour plus d’informations, consultez les entrées des différentes propriétés. • • count indique le nombre de triangles de la maille. colors indique les valeurs d’index de la liste des couleurs de la ressource de modèle à utiliser pour chacun des sommets de la face. • normals indique les valeurs d’index de la liste des normales de la ressource de modèle à utiliser pour chacun des sommets de la face. • • shadowPercentage • identifie le matériau utilisé lorsque la face est rendue. textureCoordinates indique les valeurs d’index de la liste des coordonnées de texture de la ressource de modèle à utiliser pour chacun des sommets de la face. vertices indique les valeurs d’index de la liste des sommets de la ressource de modèle à utiliser pour définir la face. Consultez l’entrée de meshDeform pour plus d’informations sur ces propriétés. Voir aussi build(), newMesh, meshDeform (modificateur) 241 face[ ] Syntaxe member(quelActeur).model(quelModèle).meshdeform.\ mesh[indexDeMaille].face[indexDeFace] Description Propriété 3D de modificateur meshdeform ; indique les valeurs d’index de la liste des sommets de la ressource de modèle utilisées pour définir la face. Cette propriété peut être testée, mais pas définie. Vous pouvez spécifier les sommets d’une face de la ressource de modèle #mesh en définissant ses propriétés vertexList et vertices et en appelant la commande build. Exemple L’instruction suivante indique que la première face de la première maille du modèle Sol est définie par les trois premiers vecteurs de la liste des sommets de la ressource de modèle utilisée par Sol : put member("Séquence").model("Sol").meshdeform.mesh[1].face[1] -- [1, 2, 3] Voir aussi meshDeform (modificateur), face, vertexList (déformation de maille), vertices fadeIn() Syntaxe sound(numéroDePiste).fadeIn({millisecondes}) fadeIn(sound(numéroDePiste) {, millisecondes }) Description Cette fonction définit immédiatement le volume de la piste audio numéroDePiste sur zéro pour le ramener ensuite sur le volume courant en fonction du nombre de millisecondes défini. La valeur par défaut est 1 000 millisecondes (1 seconde). Le paramètre de balance courant est conservé pour l’ensemble du fondu. 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 : sound(3).play(member("intro2")) sound(3).fadeIn(3000) Voir aussi fadeOut(), fadeTo(), pan (propriété audio), volume (piste audio) 242 fadeOut() Syntaxe sound(numéroDePiste).fadeOut({millisecondes}) fadeOut(sound(numéroDePiste) {, millisecondes }) Description Cette fonction réduit progressivement le volume de la piste audio numéroDePiste jusque zéro en fonction du nombre donné de millisecondes, ou de 1000 millisecondes (1 seconde) si aucune valeur n’est définie. Le paramètre de balance courant est conservé pour l’ensemble du fondu. Exemple L’instruction suivante diminue le son de la piste 3 sur 5 secondes : sound(3).fadeOut(5000) Voir aussi fadeIn(), fadeTo(), pan (propriété audio), volume (piste audio) fadeTo() Syntaxe sound(numéroDePiste).fadeTo(volume {, millisecondes }) fadeTo(sound(numéroDePiste), volume {, millisecondes }) Description Cette fonction change progressivement le volume de la piste audio numéroDePiste jusqu’au volume spécifié en fonction du nombre donné de millisecondes, ou de 1000 millisecondes (1 seconde) si aucune valeur n’est définie. La plage de valeurs du volume s’étend de 0 à 255. Le paramètre de balance courant est conservé pour l’ensemble du fondu. Vous pourrez voir un exemple de fadeTo() dans une animation en consultant l’animation Sound Control du dossier Learning/Lingo_Examples, lui-même dans le dossier de Director. 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. sound(4).fadeTo(150, 2000) Voir aussi fadeIn(), fadeOut(), pan (propriété audio), volume (piste audio) 243 FALSE Syntaxe FALSE Description Constante ; s’applique à une expression qui est logiquement fausse (FALSE), telle que 2 > 3. Lorsque traitée comme un nombre, FALSE a la valeur numérique de 0. Inversement, 0 est traité comme FALSE. Exemple L’instruction suivante désactive la propriété soundEnabled en lui donnant la valeur FALSE : the soundEnabled = FALSE Voir aussi if, not, TRUE far (brouillard) Syntaxe member(quelActeur).camera(quelleCaméra).fog.far sprite(quelleImageObjet).camera{(index)}.fog.far Description Propriété 3D de caméra ; indique la distance à partir de la caméra, en unités de l’univers, à partir de laquelle le brouillard atteint sa densité maximum lorsque la propriété fog.enabled a pour valeur TRUE. La valeur par défaut de cette propriété est 1000. Exemple L’instruction suivante donne à la propriété de brouillard far de la caméra vueDeLaBaie la valeur 5000. Si la propriété enabled du brouillard a pour valeur TRUE, le brouillard atteindra sa densité maximale à 5000 unités (de l’univers) en face de la caméra. member("monTerrain").camera("vueDeLaBaie").fog.far = 5000 Voir aussi fog, near (brouillard) field Syntaxe 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. 244 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. Exemples 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 go to "devisBureau" Voir aussi char...of, item...of, line...of, word...of fieldOfView Syntaxe sprite(quelleImageObjetQTVR).fieldOfView the fieldOfView of sprite quelleImageObjetQTVR Description Propriété d’image-objet QTVR ; donne le champ de vue, en degrés, de l’image-objet spécifiée. Cette propriété peut être testée et définie. fieldOfView (3D) Syntaxe member(quelActeur).camera(quelleCaméra).fieldOfView sprite(quelleImageObjet).camera{(index)}.fieldOfView Description Propriété 3D de caméra ; indique l’angle formé par deux rayons : un tracé de la caméra vers le haut du plan de projection et l’autre de la caméra vers le bas du plan de projection. Les images des modèles de l’univers 3D sont plaquées sur le plan de projection, qui est positionné en face de la caméra, tel un écran en face d’un projecteur. Le plan de projection est ce que vous voyez dans l’image-objet 3D. Le haut et le bas du plan de projection sont définis par la propriété fieldOfView. Remarquez cependant que l’image-objet n’est pas redimensionnée en fonction des changements de la propriété fieldOfView. L’image du plan de projection est en fait redimensionnée pour tenir dans le rect de l’image-objet. La valeur de cette propriété n’a d’importance que lorsque la valeur de la propriété projection de la caméra est #perspective. Lorsque la propriété projection a pour valeur #orthographic, vous devrez utiliser la propriété orthoHeight de la caméra pour définir le haut et le bas du plan de projection. Le paramètre par défaut de cette propriété est 30.0. 245 Exemple L’instruction suivante donne à la propriété fieldOfView de la caméra 1 la valeur 90 : member("Univers 3D").camera[1].fieldOfView = 90 Voir aussi orthoHeight fileName (propriété de distribution) Syntaxe castLib(quelleDistribution).fileName the fileName of castLib quelleDistribution Description Propriété ; spécifie le nom de fichier de la distribution spécifiée. • Pour une distribution externe, fileName donne le chemin d’accès complet et le nom de la distribution. • Pour une distribution interne, la propriété fileName castLib dépend de la distribution interne spécifiée. Pour la première distribution interne, la propriété fileName castLib spécifie le nom de l’animation. Pour le reste des distribution internes, fileName est une chaîne vide. La propriété fileName of castLib accepte les URL comme références. Cependant, pour utiliser une distribution depuis Internet et minimiser la durée de téléchargement, utilisez la commande downloadNetThing ou preloadNetThing pour télécharger le fichier de la distribution sur un disque local, puis définissez fileName castLib comme le fichier sur le disque. Si une animation définit le nom de fichier d’une distribution externe, n’utilisez pas l’option permettant de dupliquer les acteurs pour un chargement plus rapide dans la boîte de dialogue Options de projection. Cette propriété peut être testée et définie pour les distributions externes. Elle peut être testée uniquement pour les distributions internes. Remarque Director pour Java ne supporte pas la commande downloadNetThing. Exemples L’instruction suivante affiche le chemin d’accès et le nom de fichier de la distribution externe Boutons dans la fenêtre Messages : put castLib("Boutons").fileName L’instruction suivante affecte le nom de fichier Contenu.cst à la distribution externe Boutons : castLib("Boutons").fileName = the moviePath & "Contenu.cst" L’animation utilise ensuite le fichier de distribution externe Contenu.cst comme distribution Boutons. Les instructions suivantes téléchargent une distribution externe depuis une URL dans le dossier de Director et font de ce fichier la distribution externe intitulée Distribution : downLoadNetThing("http://www.cbDeMille.com Milliers.cst", the \ applicationPath&"Milliers.cst") castLib("Distribution").fileName = the applicationPath & "Milliers.cst" Voir aussi downloadNetThing, preloadNetThing() 246 fileName (propriété d’acteur) Syntaxe member(quelActeur).fileName the fileName of member quelActeur Description Propriété d’acteur ; fait référence au nom du fichier affecté à l’acteur lié spécifié par quelActeur. Cette propriété est pratique pour changer le fichier lié externe affecté à un acteur pendant la lecture d’une animation, d’une façon semblable au changement d’acteurs. Lorsque le fichier lié se trouve dans un dossier différent de celui de l’animation, vous devez inclure son chemin d’accès. Vous pouvez également faire des médias non liés des médias liés en définissant le nom de fichier des types d’acteurs supportant le média lié. La propriété d’acteur fileName accepte les URL comme références. Cependant, pour utiliser un fichier d’une URL et minimiser la durée de téléchargement, utilisez la commande downloadNetThing ou preloadNetThing pour télécharger le fichier sur un disque local, puis définissez la propriété d’acteur fileName comme fichier sur le disque local. Le lecteur Director pour Java ne supportant pas la commande downLoadNetThing, le lecteur ne peut pas télécharger des fichiers en tâche de fond avant d’affecter un nouveau fichier à un acteur. La modification de la propriété d’acteur fileName dans une animation lue comme applet peut forcer l’applet à attendre la fin du téléchargement du nouveau fichier. Cette propriété peut être testée et définie. Une fois le nom de fichier défini, Director utilise ce fichier à la prochaine utilisation de l’acteur. Exemple L’instruction suivante lie l’acteur séquence QuickTime ChaiseAnimée à l’acteur 40 : member(40).fileName = "ChaiseAnimée" Les instructions suivantes téléchargent un fichier externe depuis une URL dans le dossier de Director et font de ce fichier le média pour l’acteur son Norma : downLoadNetThing("http://www.cbDeMille.com/CinémaParlant.AIF",the \ applicationPath&"CinémaParlant.AIF") member("Norma").fileName = the applicationPath & "FilmsAvecSon.AIF" Voir aussi downloadNetThing, preloadNetThing() fileName (propriété de fenêtre) Syntaxe window quelleFenêtre.fileName the fileName of window quelleFenêtre Description Propriété de fenêtre ; fait référence au nom de fichier de l’animation affectée à la fenêtre spécifiée par quelleFenêtre. Lorsque le fichier lié se trouve dans un dossier différent de celui de l’animation, vous devez inclure son chemin d’accès. Pour pouvoir lire l’animation dans une fenêtre, vous devez affecter la propriété de fenêtre au nom de fichier de l’animation. fileName 247 La propriété fileName of window accepte les URL comme références. Cependant, pour utiliser un fichier d’animation depuis une URL et minimiser la durée de téléchargement, utilisez la commande downloadNetThing ou preloadNetThing pour télécharger le fichier d’animation sur un disque local, puis définissez la propriété de fenêtre fileName comme le fichier sur le disque local. Cette propriété peut être testée et définie. Exemples L’instruction suivante affecte le fichier appelé Tableau de commande à la fenêtre Boîte à outils : window("Boîte à outils").fileName = "Tableau de commande" L’instruction suivante affiche le nom de fichier affecté à la fenêtre intitulée Navigateur : put window("Navigateur").fileName Les instructions suivantes téléchargent un fichier d’animation depuis une URL dans le dossier de Director et affectent ce fichier à la fenêtre Mon gros plan : downLoadNetThing("http://www.cbDeMille.com/Finale.DIR",the \ applicationPath&"Finale.DIR") window("Mon gros plan").fileName = the applicationPath&"Finale.DIR" Voir aussi downloadNetThing, preloadNetThing() fill() Syntaxe objetImage.fill(gauche, haut, droite, bas, objetCouleurOuListedeParamètres) objetImage.fill(point(x, y), point(x, y), objetCouleurOuListedeParamètres) objetImage.fill(rect, objetCouleurOuListedeParamètres) Description Cette fonction remplit une région rectangulaire avec la couleur objetCouleur dans l’objet image donné. Vous pouvez définir le rectangle par l’une des trois méthodes présentées. Les points spécifiés le sont par rapport au coin supérieur gauche de l’objet image donné. La valeur renvoyée est 1 si aucune erreur n’est détectée, et zéro en cas d’erreur. Si vous fournissez une listeDeParamètres plutôt qu’un simple objetCouleur, le rectangle est rempli avec une forme définie à l’aide de ces paramètres : 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 remplissage de la forme. #bgColor Un objet couleur, qui détermine la couleur de la bordure de la forme. Pour optimiser les performances avec des images 8 bits (ou une valeur inférieure), l’objetCouleur doit contenir une valeur de couleur indexée. Pour les images 16 ou 32 bits, utilisez une valeur de couleur rvb. 248 Exemples L’instruction suivante rend l’objet image dans la variable monImage complètement noir : monImage.fill(monImage.rect, rgb(0, 0, 0)) 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. imageTest.fill(0, 0, 100, 100, [#shapeType: #oval, #lineSize: 5, #color: rgb(0, 255, 0), \ #bgColor: rgb(255, 0, 0)]) Voir aussi color(), draw() fillColor Syntaxe member(quelActeur).fillColor Description Propriété d’acteur forme vectorielle ; la couleur de remplissage est spécifiée en valeur rvb. Il est possible d’utiliser fillColor lorsque la propriété fillMode de la forme est définie sur #solid ou #gradient, mais pas si elle est définie sur #none. Si fillMode est #gradient, fillColor spécifie la couleur de départ du dégradé. La couleur finale est spécifiée par endColor. Cette propriété peut être testée et définie. Vous pourrez voir un exemple de fillColor dans une animation en consultant l’animation Vector Shapes du dossier Learning/Lingo_Examples, lui-même dans le dossier de Director. Exemple L’instruction suivante donne à la couleur de remplissage de l’acteur Archie une nouvelle valeur rvb : member("Archie").fillColor = rgb( 24, 15, 153) Voir aussi endColor, fillMode fillCycles Syntaxe member(quelActeur).fillCycles Description Propriété d’acteur forme vectorielle ; nombre de cycles de remplissage dégradé d’une forme vectorielle, spécifié par un nombre entier compris entre 1 et 7. Cette propriété n’est valide que si la propriété fillMode de la forme a pour valeur #gradient. Cette propriété peut être testée et définie. Vous pourrez voir un exemple de fillCycles dans une animation en consultant l’animation Vector Shapes du dossier Learning/Lingo_Examples, lui-même dans le dossier de Director. 249 Exemple L’instruction suivante donne à fillCycles de l’acteur Archie la valeur 3 : member("Archie").fillCycles = 3 Voir aussi endColor, fillColor, fillMode fillDirection Syntaxe member(quelActeur).fillDirection Description Propriété d’acteur forme vectorielle ; spécifie le degré de rotation du remplissage de la forme. Cette propriété n’est valide que si la propriété fillMode de la forme a pour valeur #gradient. Cette propriété peut être testée et définie. Vous pourrez voir un exemple de fillDirection dans une animation en consultant l’animation Vector Shapes du dossier Learning/Lingo_Examples, lui-même dans le dossier de Director. Voir aussi fillMode filled Syntaxe member(quelActeur).filled the filled of member quelActeur Description Propriété d’acteur forme ; indique si l’acteur spécifié contient un motif de remplissage (TRUE) ou non (FALSE). Exemple Les instructions suivantes donnent à l’acteur forme Cible une forme pleine et lui affectent le motif numéro 1, qui est une couleur unie : member("Cible").filled = TRUE member("Cible").pattern = 1 Voir aussi fillColor, fillMode fillMode Syntaxe member(quelActeur).fillMode Description Propriété d’acteur forme vectorielle ; indique la méthode de remplissage pour la forme, à l’aide des valeurs suivantes : • 250 #none – La forme est transparente. • • #solid – La forme utilise une seule couleur de remplissage. #gradient – La forme utilise un dégradé entre deux couleurs. Cette propriété peut être testée et définie lorsque la forme est fermée ; les formes ouvertes n’ont pas de remplissage. Vous pourrez voir un exemple de fillMode dans une animation en consultant l’animation Vector Shapes du dossier Learning/Lingo_Examples, lui-même dans le dossier de Director. Exemple L’instruction suivante donne à fillMode de l’acteur Archie la valeur de dégradé : member("Archie").fillMode = #gradient Voir aussi endColor, fillColor fillOffset Syntaxe member(quelActeur).fillOffset Description Propriété d’acteur forme vectorielle ; spécifie le nombre de pixels horizontaux et verticaux (dans l’espace defaultRect) utilisés pour décaler le remplissage de la forme. Cette propriété n’est valide que si la propriété fillMode de la forme a pour valeur #gradient, mais peut être testée et définie. Vous pourrez voir un exemple de fillOffset dans une animation en consultant l’animation Vector Shapes du dossier Learning/Lingo_Examples, lui-même dans le dossier de Director. Exemple L’instruction suivante change le décalage de remplissage de l’acteur forme vectorielle Miette à un décalage horizontal de 33 pixels et un décalage vertical de 27 pixels : member("Miette").fillOffset = point(33, 27) Voir aussi defaultRect, fillMode fillScale Syntaxe member(quelActeur).fillScale Description Propriété d’acteur forme vectorielle ; spécifie le degré de mise à l’échelle du remplissage de la forme. Cette propriété porte également le nom Echelle dans la fenêtre Forme vectorielle. Cette propriété n’est valide que si la propriété fillMode de la forme a pour valeur #gradient, mais peut être testée et définie. Vous pourrez voir un exemple de fillScale dans une animation en consultant l’animation Vector Shapes du dossier Learning/Lingo_Examples, lui-même dans le dossier de Director. 251 Exemple L’instruction suivante donne à fillScale de l’acteur Archie la valeur 33 : member("Archie").fillScale = 33.00 Voir aussi fillMode findEmpty() Syntaxe findEmpty(member quelActeur) Description Fonction ; pour la distribution courante uniquement, affiche la position d’acteur vide suivante ou la position suivant l’acteur spécifié par quelActeur. Exemple L’instruction suivante recherche le premier acteur vide à partir de l’acteur 100 : put findEmpty(member 100) findLabel() Syntaxe sprite(quelleImageObjetFlash).findLabel(quelNomDétiquette) findLabel(sprite quelleImageObjetFlash, quelNomDétiquette) 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’est pas encore transférée en mémoire. findPos Syntaxe liste.findPos(propriété) findPos(liste, propriété) Description Commande de liste ; identifie la position de la propriété spécifiée par propriété dans la liste de propriétés spécifiée par liste. 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 findPos a la valeur VOID lorsque la propriété spécifiée ne figure pas dans la liste. 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) 252 Le résultat est 3, c étant la troisième propriété de la liste. Voir aussi findPosNear, sort findPosNear Syntaxe listeTriée.findPosNear(valeurOuPropriété) findPosNear(listeTriée, valeurOuPropriété) Description Commande de liste ; pour les listes triées uniquement, identifie la position de l’élément spécifié par valeurOuPropriété dans la liste triée indiqué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. 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. 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 Syntaxe finishIdleLoad baliseDeChargement Description Commande ; force le chargement de tous les acteurs possédant la balise de chargement spécifiée. Exemple L’instruction suivante termine le chargement de tous les acteurs possédant la balise de chargement 20 : finishIdleLoad 20 Voir aussi idleHandlerPeriod, idleLoadDone(), idleLoadMode, idleLoadPeriod, idleLoadTag, idleReadChunkSize 253 firstIndent Syntaxe expressionSousChaîne.firstIndent Description Propriété d’acteur texte ; contient le nombre de pixels de décalage correspondant au premier retrait de expressionSousChaîne à partir de la marge gauche de expressionSousChaîne. La valeur est un nombre entier : un nombre inférieur à 0 indique un retrait négatif, 0 indique l’absence de retrait et un nombre supérieur à 0 indique un retrait normal. Cette propriété peut être testée et définie. Exemple L’instruction suivante définit le retrait de la première ligne de l’acteur Bureau sur 0 pixel : member("Bureau").firstIndent = 0 Voir aussi leftIndent, rightIndent fixedLineSpace Syntaxe expressionSousChaîne.fixedLineSpace Description Propriété d’acteur texte ; contrôle la hauteur de chaque ligne dans la partie de expressionSousChaîne de l’acteur texte. La valeur elle-même est un nombre entier, indiquant la hauteur en pixels absolus de chaque ligne. La valeur par défaut est 0, qui a pour résultat une hauteur naturelle. Exemple L’instruction suivante définit la hauteur, en pixels, de chaque ligne de l’acteur Bureau sur 24 : member("Bureau").fixedLineSpace = 24 fixedRate Syntaxe sprite(quelleImageObjetFlashOuGIF).fixedRate the fixedRate of sprite quelleImageObjetFlashOuGIF member(quelleImageObjetFlashOuGIF).fixedRate the fixedRate of member quelleImageObjetFlashOuGIF Description Propriété d’acteur et d’image-objet ; contrôle la cadence d’image d’une animation Flash ou d’un GIF animé. La propriété fixedRate peut avoir des valeurs entières. La valeur par défaut est 15. Cette propriété est ignorée si la propriété playbackMode de l’image-objet a une valeur différente de #fixed. Cette propriété peut être testée et définie. 254 Exemple Le gestionnaire suivant règle la cadence d’image d’une image-objet d’animation Flash. Comme paramètres, le gestionnaire accepte une référence d’image-objet, une indication d’accélération ou de ralentissement de l’animation Flash et l’importance du réglage de la cadence. on ajustementDeLaCadenceFixée quelleImageObjet, typeDajustement, Decombien case typeDajustement of #accéleration: sprite(quelleImObj).fixedRate = sprite(quelleImObj).fixedRate + combien #décélération: sprite(quelleImObj).fixedRate = sprite(quelleImObj).fixedRate - combien end case end Voir aussi playBackMode fixStageSize Syntaxe the fixStageSize Description Propriété d’animation ; détermine si la taille de la scène reste la même lorsque vous chargez une nouvelle animation (TRUE, valeur par défaut) ou non (FALSE), quels que soient le paramètre centerStage et la taille de la scène enregistrée avec cette animation. La propriété fixStageSize ne peut pas changer la taille de la scène d’une animation en cours de lecture. Cette propriété peut être testée et définie. Exemples L’instruction suivante détermine si la propriété fixStageSize est activée. Si fixStageSize est FALSE, elle envoie la tête de lecture vers une image spécifiée. if the fixStageSize = FALSE then go to frame "taille correcte" L’instruction suivante donne à la propriété fixStageSize la valeur opposée au paramètre courant : the fixStageSize = not the fixStageSize Voir aussi centerStage flashRect Syntaxe member(quelActeurVecteurOuFlash).flashRect the flashRect of member quelActeurVecteurOuFlash Description Propriété d’acteur ; indique la taille initiale d’un acteur animation Flash ou forme vectorielle. Les valeurs sont indiquées sous la forme de rectangle Director : par exemple, rect(0,0,32,32). Pour les acteurs Flash liés, la propriété d’acteur FlashRect renvoie une valeur valide uniquement lorsque l’en-tête de l’acteur a été complètement chargé en mémoire. 255 Cette propriété peut être testée, mais pas définie. Exemple Ce script d’image-objet redimensionne une image-objet d’animation Flash pour qu’elle ait une taille identique à la taille d’origine de son acteur animation Flash : on beginSprite me sprite(me.spriteNum).rect = sprite(me.spriteNum).member.FlashRect end Voir aussi defaultRect, defaultRectMode, state (Flash, SWA) flashToStage() Syntaxe sprite(quelleImageObjetFlash).flashToStage(pointDeLanimationFlash) flashToStage (sprite quelleImageObjetFlash, 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é. Exemple Le gestionnaire suivant accepte une valeur de point et une référence d’image-objet comme paramètre, puis donne à la coordonnée supérieure gauche de l’image-objet spécifiée le point indiqué dans une image-objet d’animation Flash de la piste 10 : on déplacImObj quelPointFlash, quelleImageObjet sprite(quelleImageObjet).loc = sprite(1).FlashToStage(pointDeLanimationFlash) updatestage end Voir aussi stageToFlash() 256 flat Syntaxe member(quelActeur).shader(quelMatériau).flat member(quelActeur).model(quelModèle).shader.flat member(quelActeur).model(quelModèle).shaderList{[index]}.flat Description Propriété 3D de matériau #standard ; indique si la maille doit être rendue avec un matériau plat (TRUE) ou un matériau de Gouraud (FALSE). Le matériau plat utilise une couleur par face de la maille. La couleur utilisée pour la face est celle du premier sommet. Le matériau plat est plus rapide que le matériau de Gouraud. Le matériau de Gouraud affecte une couleur à chaque sommet d’une face et les interpole sur la face dans un dégradé. Le matériau de Gouraud nécessite un plus grand effort de calcul mais produit une surface plus lisse. La valeur par défaut de cette propriété est FALSE. Exemple L’instruction suivante donne à la propriété flat du matériau Mur la valeur TRUE. La maille d’un modèle qui utilise ce matériau sera rendue avec une couleur par face. member("mondeMystérieux").shader("Mur").flat = TRUE Voir aussi mesh (propriété), colors, vertices, generateNormals() flipH Syntaxe sprite(quelNuméroDimageObjet).flipH the flipH of sprite quelNuméroDimageObjet Description Propriété d’image-objet ; indique si l’image d’une image-objet a été renversée horizontalement sur la scène (TRUE) ou non (FALSE). L’image même est renversée autour de son point d’alignement. Cela signifie que les rotations ou inclinaisons restent constantes, seules les données de l’image étant renversées. Exemple L’instruction suivante affichage la valeur flipH de l’image-objet 5 : put sprite (5).flipH Voir aussi flipV, rotation, skew 257 flipV Syntaxe sprite(quelNuméroDimageObjet).flipV the flipV of sprite quelNuméroImageObjet Description Propriété d’image-objet ; indique si l’image d’une image-objet a été renversée verticalement sur la scène (TRUE) ou non (FALSE). L’image même est renversée autour de son point d’alignement. Cela signifie que les rotations ou inclinaisons restent constantes, seules les données de l’image étant renversées. Exemple L’instruction suivante affichage la valeur flipV de l’image-objet 5 : sprite (5).flipV = 1 Voir aussi flipH, rotation, skew float() Syntaxe (expression).float float (expression) Description Fonction ; convertit une expression en 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. Exemples 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 à l’aide de 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() 258 floatP() Syntaxe (expression).floatP floatP(expression) Description Fonction ; indique si la valeur spécifiée par expression est un nombre à virgule flottante (1 ou TRUE) ou non (0 ou FALSE). Le P dans floatP signifie prédicat. Exemples 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() floatPrecision Syntaxe the floatPrecision Description Propriété d’animation ; arrondit l’affichage des nombres à virgule flottante au nombre de chiffres après la virgule spécifié. La valeur de floatPrecision doit être un nombre entier. La valeur maximum est 15 chiffres utiles ; la valeur par défaut étant 4. La propriété floatPrecision détermine uniquement le nombre de chiffres utilisés pour afficher les nombres à virgule flottante et n’affecte pas le nombre de chiffres utilisés pour les calculs. • Si floatPrecision est compris entre 1 et 15, les nombres à virgule flottante sont affichés avec cette quantité de chiffres après la virgule. Les zéros ne sont pas tronqués. • Si floatPrecision est zéro, les nombres à virgule flottante sont arrondis à l’entier le plus proche. Aucun chiffre n’apparaît après la virgule. • Si floatPrecision est un chiffre négatif, les nombres à virgule flottante sont arrondis à la valeur absolue du nombre de chiffres après la virgule. Les zéros sont alors tronqués. Cette propriété peut être testée et définie. Exemples L’instruction suivante arrondit la racine carrée de 3.0 à trois chiffres après la virgule : the floatPrecision = 3 x = sqrt(3.0) put x -- 1.732 259 L’instruction suivante arrondit la racine carrée de 3.0 à huit chiffres après la virgule : the floatPrecision = 8 put x -- 1.73205081 flushInputEvents Syntaxe flushInputEvents() Description Cette commande purge les événements clavier ou souris de la file d’attente de Director. Cette commande est pratique lorsque Lingo exécute une boucle de répétition 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 commande n’est effective qu’en cours d’exécution et n’a aucun effet pendant la programmation. Exemple L’instruction Lingo suivante désactive les événements souris et clavier lors de l’exécution d’une boucle de répétition : repeat with i = 1 to 10000 flushInputEvents() sprite(1).loc = sprite(1).loc + point(1, 1) end repeat Voir aussi mouseDown, mouseUp, on keyDown, on keyUp fog Syntaxe member(quelActeur).camera(quelleCaméra).fog.color sprite(quelleImageObjet).camera{(index)}.fog.color member(quelActeur).camera(quelleCaméra).fog.decayMode sprite(quelleImageObjet).camera{(index)}.fog.decayMode member(quelActeur).camera(quelleCaméra).fog.enabled sprite(quelleImageObjet).camera{(index)}.fog.enabled member(quelActeur).camera(quelleCaméra).fog.far sprite(quelleImageObjet).camera{(index)}.fog.far member(quelActeur).camera(quelleCaméra).fog.near sprite(quelleImageObjet).camera{(index)}.fog.near Description Propriété 3D de caméra ; le brouillard crée un flou qui augmente avec la distance. L’effet est semblable à celui de la réalité, à l’exception que le brouillard peut être de n’importe quelle couleur. La section « Voir aussi » de cette entrée contient une liste complète des propriétés de brouillard. Pour plus d’informations, consultez les entrées des différentes propriétés. Voir aussi color (brouillard), decayMode, enabled (brouillard), far (brouillard), near (brouillard) 260 font Syntaxe member(quelActeur).font the font of member quelActeur Description Propriété d’acteur texte et champ ; détermine la police utilisée pour afficher l’acteur spécifié et requiert la présence de caractères dans l’acteur, ne serait-ce qu’une espace. Le paramètre quelActeur peut être un nom ou un numéro d’acteur. Le lecteur Director pour Java ne fait pas correspondre les polices lors de la conversion d’une animation ; Java substitue la police par défaut aux polices qui ne sont pas supportées. Utilisez uniquement les polices supportées par Java comme valeurs pour la propriété d’acteur font dans une animation lue comme applet. Seules les polices suivantes offertes par Java sont compatibles entre plates-formes : Nom de police Java Police Windows correspondante Police Macintosh correspondante Helvetica Arial Helvetica TimesRoman Times New Roman Times Courier Courier-New Courier Dialog MS Sans Serif Chicago ou Charcoal DialogInput MS Sans Serif Geneva ZapfDingbats WingDings Zapf Dingbats Valeur par défaut Arial Helvetica La propriété d’acteur font peut être testée et définie. Vous pourrez voir un exemple de font dans une animation en consultant l’animation Text du dossier Learning/Lingo_Examples, lui-même dans le dossier de Director. Exemple L’instruction suivante donne à la variable anciennePolice la valeur font courante de l’acteur champ Pierre : anciennePolice = member("Pierre").font Voir aussi text, alignment, fontSize, fontStyle, lineHeight (propriété d’acteur) fontSize Syntaxe member(quelActeur).fontSize the fontSize of member quelActeur Description Propriété d’acteur champ ; détermine la taille de la police utilisée pour afficher l’acteur champ spécifié et requiert la présence de caractères dans l’acteur, ne serait-ce qu’une espace. Le paramètre quelActeur peut être un nom ou un numéro d’acteur. 261 Cette propriété peut être testée et définie. Lorsqu’elle est testée, elle renvoie la hauteur de la première ligne du champ. Lorsqu’elle est définie, elle affecte chaque ligne du champ. Vous pourrez voir un exemple de fontSize dans une animation en consultant l’animation Text du dossier Learning/Lingo_Examples, lui-même dans le dossier de Director. Exemples L’instruction suivante donne à la variable ancienneTaille la valeur fontSize of member courante de l’acteur champ Pierre : ancienneTaille = member("Pierre").fontSize L’instruction suivante définit la troisième ligne de l’acteur texte monMenu sur 12 points : member("monMenu").fontSize = 12 Voir aussi text, alignment, font, fontStyle, lineHeight (propriété d’acteur) fontStyle Syntaxe member(quelActeur).fontStyle the fontStyle of member quelActeur member(quelActeur).char[quelCaractère].fontStyle the fontStyle of char quelCaractère member(quelActeur).word[quelMot].fontStyle the fontStyle of word quelMot member(quelActeur).line[quelleLigne].fontStyle the fontStyle of line quelleLigne Description Propriété d’acteur champ ; détermine les styles appliqués à la police utilisée pour l’affichage de l’acteur champ, du caractère, de la ligne, du mot ou de toute autre expression de sous-chaîne et requiert la présence de caractères dans l’acteur, ne serait-ce qu’une espace. Cette propriété a pour valeur une chaîne de styles délimités par des virgules. Lingo utilise une police combinant les styles de cette chaîne. Les styles disponibles sont normal, gras, italique, souligné, ombré et étendu, le style condensé étant également disponible sur le Macintosh. Utilisez le style normal pour supprimer tous les styles déjà appliqués. Le paramètre quelActeur peut être un nom ou un numéro d’acteur. Pour une animation lue comme applet, normal, gras et italique sont les seules styles valides pour la propriété d’acteur fontStyle. Le lecteur Director pour Java ne supporte pas les styles de police souligné, ombré, étendu ou condensé. Cette propriété peut être testée et définie. Vous pourrez voir un exemple de fontStyle dans une animation en consultant l’animation Text du dossier Learning/Lingo_Examples, lui-même dans le dossier de Director. Exemples L’instruction suivante donne à la variable ancienStyle la valeur de la propriété fontStyle courante de l’acteur champ Pierre : ancienStyle = member("Pierre").fontStyle 262 L’instruction suivante affecte les valeurs gras et italique à la propriété d’acteur fontStyle de l’acteur champ Poème : member("Poème").fontStyle = [#bold, #italic] L’instruction suivante affecte la valeur italique à la propriété fontStyle du troisième nom de l’acteur champ Noms : member("Noms").word[3].fontStyle = [#italic] L’instruction suivante affecte la valeur gras et italique à la propriété fontStyle des mots 1 à 4 de l’acteur texte mesNotes : member("mesNotes").word[1..4].fontstyle = [#bold, #italic] Voir aussi text, alignment, fontSize, font, lineHeight (propriété d’acteur) foreColor Syntaxe member(nomDacteur).foreColor = numéroDeCouleur set the foreColor of member nomDacteur to numéroDeCouleur sprite quelleImageObjet.foreColor the foreColor of sprite quelleImageObjet Description Propriété d’acteur ; définit la couleur de premier plan d’un acteur champ. Pour une animation lue comme applet, indiquez les couleurs de la propriété d’image-objet foreColor sous la forme d’équivalent décimal des valeurs hexadécimales 24 bits utilisées dans un document HTML. Il n’est pas recommandé d’appliquer cette propriété à des acteurs bitmap supérieurs à 1 bit, les résultats pouvant être difficiles à prévoir. Il est recommandé d’utiliser la nouvelle propriété color à la place de la propriété foreColor. Exemples La valeur hexadécimale du rouge pur, FF0000, est l’équivalent de 16711680 en nombres décimaux. L’instruction suivante spécifie le rouge pur comme couleur de premier plan de l’acteur : member(20).foreColor = 16711680 L’instruction suivante remplace la couleur de l’acteur champ 1 par la couleur numéro 250 de la palette : member(1).foreColor = 250 L’instruction suivante donne à la variable ancienneCouleur la couleur de premier plan de l’image-objet 5 : ancienneCouleur = sprite(5).foreColor L’instruction suivante fait de 36 la couleur de premier plan d’une image-objet aléatoire entre les images-objets 11 et 13 : sprite(10 + random(3)).foreColor = 36 263 L’instruction suivante définit la propriété foreColor du troisième mot de la deuxième ligne de l’acteur texte maDescription sur une valeur de 27 : member("maDescription").line[2].word[3].forecolor = 27 Voir aussi backColor, color (propriété d’image-objet et d’acteur) forget() Syntaxe timeout("nomDeTemporisation").forget() forget(timeout("nomDeTemporisation")) Description Cette fonction d’objet de temporisation supprime l’objetDeTemporisation donné de la liste timeoutList et l’empêche d’envoyer d’autres événements de temporisation. 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() forget Syntaxe window(quelleFenêtre).forget() forget window quelleFenêtre Description Propriété de fenêtre ; indique à Lingo de fermer et supprimer la fenêtre spécifiée par quelleFenêtre lorsqu’elle n’est plus utilisée et qu’aucune autre variable n’y fait référence. Lorsqu’une commande forget window est donnée, la fenêtre et l’animation dans une fenêtre disparaissent sans appeler les gestionnaires on stopMovie, on closeWindow ou on deactivateWindow. S’il existe plusieurs références globales à l’animation dans une fenêtre, la fenêtre ne répond pas à la commande forget. Exemple L’instruction suivante indique à Lingo de supprimer la fenêtre Tableau de commande lorsque l’animation ne l’utilise plus : window("Tableau de commande").forget() Voir aussi close window, open window 264 frame() (fonction) Syntaxe the frame Description Fonction ; renvoie le numéro de l’image courante de l’animation. Exemple L’instruction suivante envoie la tête de lecture à l’image qui précède l’image en cours : go to (the frame - 1) Voir aussi go, label(), marker() frame (propriété d’image-objet) Syntaxe sprite(quelleImageObjetFlash).frame the frame of sprite quelleImageObjetFlash Description Propriété d’image-objet ; contrôle l’image affichée de l’animation Flash. La valeur par défaut est 1. Cette propriété peut être testée et définie. Exemple Le script d’image suivant vérifie si la lecture d’une animation Flash est terminée (en vérifiant si l’image courante correspond au nombre total des images de l’animation). Si l’animation n’est pas terminée, la tête de lecture continue son exécution en boucle dans l’image courante ; une fois l’animation terminée, la tête de lecture passe à l’image suivante. Ce script considère que l’animation était conçue pour se terminer sur sa dernière image et qu’elle n’a pas été définie pour une lecture en boucle. on exitFrame if sprite(5).frame < sprite(5).member.frameCount then go to the frame end if end frameCount Syntaxe member(quelActeurFlash).frameCount the frameCount of member quelActeurFlash Description Propriété d’acteur Flash ; indique le nombre d’images dans l’acteur animation Flash. La propriété d’acteur frameCount peut avoir des valeurs entières. Cette propriété peut être testée, mais pas définie. 265 Exemple Ce script d’image-objet affiche, dans la fenêtre Messages, le numéro de piste et le nombre d’images d’une animation Flash : property spriteNum on beginSprite me put ""L’animation Flash de la piste"" && spriteNum && contient"" && sprite(spriteNum).member.frameCount && ""images."" end frameLabel Syntaxe the frameLabel Description Propriété d’image ; identifie le libellé affecté à l’image courante. Lorsque l’image courante n’a pas de libellé, la valeur de la propriété frameLabel est 0. Cette propriété peut être testée à tout moment. Elle peut être définie au cours d’une session de création de scénario. Exemple L’instruction suivante vérifie le libellé de l’image courante. Dans ce cas, la valeur de frameLabel est Démarrer : put the frameLabel -- "Démarrer" Voir aussi labelList framePalette Syntaxe the framePalette Description Propriété d’image ; identifie le numéro d’acteur de la palette utilisée dans l’image courante, qui est soit la palette courante, soit la palette définie dans l’image courante. Le navigateur contrôlant la palette pour la page web toute entière, le lecteur Director pour Java utilise toujours la palette du navigateur. Pour obtenir des couleurs fiables pour la création d’une animation destinée au lecteur Director pour Java, utilisez la palette par défaut du système auteur. Lorsqu’un contrôle exact des couleurs est nécessaire, utilisez Shockwave au lieu de Java. Cette propriété peut être testée. Elle peut également être définie au cours d’une session de création du scénario. Exemples L’instruction suivante vérifie la palette utilisée dans l’image courante. Dans ce cas, la palette est l’acteur 45. put the framePalette -- 45 266 L’instruction suivante fait de l’acteur palette 45 la palette de l’image courante : the framePalette = 45 Voir aussi puppetPalette frameRate Syntaxe member(quelActeur).frameRate the frameRate of member quelActeur Description Propriété d’acteur ; spécifie la cadence de lecture de l’acteur vidéo numérique ou animation Flash indiqué. Les valeurs possibles de cadence d’image d’un acteur vidéo numérique correspondent aux boutons radio de sélection des options de lecture vidéo numérique. • Lorsque la propriété d’acteur frameRate est comprise entre 1 et 255, la séquence vidéo numérique lit chaque image à cette cadence d’image. La propriété d’acteur frameRate ne peut pas être supérieure à 255. • Lorsque la propriété d’acteur frameRate a pour valeur -1 ou 0, la séquence vidéo numérique lit chaque image à sa cadence normale. Ceci permet la synchronisation de la vidéo avec sa piste audio. Lorsque la propriété frameRate est définie sur une valeur autre que -1 ou 0, la piste audio de la vidéo numérique ne sera pas lue. • Lorsque la propriété d’acteur frameRate a pour valeur -2, la séquence vidéo numérique lit chaque image aussi vite que possible. Pour les acteurs animation Flash, la propriété indique la cadence d’image de l’animation créée dans Flash. Cette propriété peut être testée, mais pas définie. Exemples L’instruction suivante fixe la cadence d’image de l’acteur vidéo numérique QuickTime Chaise pivotante à 30 images par seconde : member("Chaise pivotante").frameRate = 30 L’instruction suivante indique à l’acteur vidéo numérique QuickTime Chaise pivotante de lire chaque image aussi vite que possible : member("Chaise pivotante").frameRate = -2 267 Le script d’image-objet suivant vérifie si l’acteur d’image-objet a été créé dans Flash avec une cadence inférieure à 15 images par seconde. Si la cadence de l’animation est inférieure à 15 images par seconde, le script définit la propriété playBackMode de l’image-objet de façon à pouvoir lui affecter une autre cadence. Le script donne ensuite à la propriété fixedRate de l’image-objet la valeur de 15 images par seconde. property spriteNum on beginSprite me if sprite(spriteNum).member.frameRate < 15 then sprite(spriteNum).playBackMode = #fixed sprite(spriteNum).fixedRate = 15 end if end Voir aussi fixedRate, movieRate, movieTime, playBackMode frameReady() Syntaxe frameReady(imageN) frameReady(imageN, imageZ) frameReady() frameReady(sprite quelleImageObjetFlash, NuméroDimage) Description Fonction ; dans le cas d’une animation Flash, détermine si une animation lue en flux continu est prête à être affichée. Si une quantité suffisante de l’image-objet a été transférée en mémoire pour pouvoir afficher l’image (nombre entier pour un numéro d’image, chaîne pour un libellé) spécifiée dans le paramètre numéroDimage, cette fonction a la valeur TRUE ; autrement, elle a la valeur FALSE. Dans le cas d’une animation Director, cette fonction détermine si tous les acteurs de imageN (le numéro de l’image) ont été téléchargés à partir d’Internet et sont disponibles localement. Cette fonction n’est utile que lors de la lecture en flux continu d’une animation, d’une plage d’images, d’une distribution ou d’un acteur lié. Pour activer la lecture en flux continu, réglez les propriétés de lecture de l’animation du menu Modification de façon à utiliser les médias disponibles ou à afficher les repères d’emplacement. Pour les animations Director, les projections et les animations Shockwave : • • frameReady (imageN) – Détermine si les acteurs de l’imageN ont été téléchargés. frameReady (imageN, imageZ) – Détermine si les acteurs des images imageN à imageZ ont été téléchargés. • frameReady() – Détermine si les acteurs utilisés dans les images du scénario ont été téléchargés. Pour voir comment la fonction frameReady est utilisée avec une animation Director, consultez l’animation Shockwave et flux continu dans l’Aide de Director. Cette fonction peut être testée, mais pas définie. 268 Exemples L’instruction suivante détermine si les acteurs de l’image 20 sont téléchargés et prêts à être affichés : on exitFrame if frameReady(20) then -- passer à l’image 20 si tous les acteurs -- nécessaires sont disponibles localement go to frame 20 else -- reprendre la boucle pendant le -- téléchargement de l’arrière-plan got to frame 1 end if end 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. on exitFrame if the frameReady(sprite 5, 25) = FALSE then go to the frame else play sprite 5 end if end Voir aussi mediaReady frameScript Syntaxe the frameScript Description Propriété d’image ; contient le numéro d’acteur unique du script d’image affecté à l’image courante. La propriété frameScript peut être testée. Au cours d’une session d’enregistrement de scénario, vous pouvez également affecter un script à l’image courante en définissant la propriété frameScript. Exemples L’instruction suivante affiche le numéro du script affecté à l’image courante. Dans ce cas, le numéro de script est 25. put the frameScript -- 25 L’instruction suivante fait de l’acteur script Réponse des boutons le script d’image pour l’image courante : the frameScript = member "Réponse des boutons" 269 frameSound1 Syntaxe the frameSound1 Description Propriété d’image ; détermine le numéro de l’acteur affecté à la première piste audio de l’image courante. Cette propriété peut être testée et définie. Cette propriété peut également être définie au cours d’une session d’enregistrement du scénario. Exemple Lors de la session d’enregistrement du scénario, l’instruction suivante affecte l’acteur son Jazz à la première piste audio : the frameSound1 = member("Jazz").number frameSound2 Syntaxe the frameSound2 Description Propriété d’image ; détermine le numéro de l’acteur affecté à la seconde piste audio de l’image courante. Cette propriété peut être testée et définie. Cette propriété peut également être définie au cours d’une session d’enregistrement du scénario. Exemple Lors de la session d’enregistrement du scénario, l’instruction suivante affecte l’acteur son Jazz à la seconde piste audio : the frameSound2 = member("Jazz").number framesToHMS() Syntaxe 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. 270 • • • images • fractions – 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 d’images entier (FALSE). – Expression entière spécifiant le nombre d’images. cadence – Expression entière spécifiant le nombre d’images par seconde. – Compense la cadence NTSC couleur qui n’est pas exactement de 30 images par seconde et n’est utile que pour une cadence de 30 images par seconde. Normalement, cet argument a pour valeur FALSE. compensé 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 composé a la valeur TRUE ; une espace est utilisée si composé a la valeur FALSE. 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() frameTempo Syntaxe the frameTempo Description Propriété d’image ; indique la cadence affectée à l’image courante. Cette propriété peut être testée. Elle peut être définie au cours d’une session d’enregistrement du scénario. Exemple L’instruction suivante vérifie la cadence utilisée dans l’image courante. Dans ce cas, la cadence est de 15 images par seconde. put the frameTempo -- 15 Voir aussi puppetTempo 271 frameTransition Syntaxe the frameTransition Description Propriété d’image ; spécifie le numéro de l’acteur de transition affecté à l’image courante. Cette propriété peut être définie au cours d’une session d’enregistrement du scénario pour spécifier des transitions. Exemple Lorsque utilisée au cours d’une session d’enregistrement du scénario, l’instruction suivante fait de l’acteur Brouillard la transition pour l’image que Lingo est en train d’enregistrer : set the frameTransition to member "Brouillard" freeBlock() Syntaxe 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. 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 : if (the freeBlock < (10 * 1024)) then alert "Mémoire insuffisante !" Voir aussi freeBytes(), memorySize, ramNeeded(), size freeBytes() Syntaxe 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ë. Sur le 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. 272 Exemple L’instruction suivante vérifie si plus de 200 ko de mémoire est disponible 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 front Syntaxe member(quelActeur).modelResource(quelleRessDeMod).front Description Propriété de ressource de modèle 3D #box ; indique si le côté de la boîte coupé par son axe des z négatif est fermé (TRUE) ou ouvert (FALSE). La valeur par défaut de cette propriété est TRUE. Exemple L’instruction suivante donne à la propriété front de la ressource de modèle Caisse la valeur FALSE, ce qui signifie que l’avant de la caisse sera ouvert : member("Univers 3D").modelResource("Caisse").front = FALSE Voir aussi back, bottom (3D), top (3D), left (3D), right (3D) frontWindow Syntaxe the frontWindow Description Propriété système ; indique l’animation dans une fenêtre actuellement au premier plan de l’écran. Lorsque la scène est au premier plan, la fenêtre au premier plan est la scène. Lorsqu’un éditeur de média ou une palette flottante est au premier plan, frontWindow renvoie la valeur VOID. Cette propriété peut être testée, mais pas définie. Exemple L’instruction suivante détermine si la fenêtre Musique est la fenêtre qui se trouve au premier plan et, le cas échéant, amène la fenêtre Ecoutez ça à l’avant : if the frontWindow = "Musique" then window("Ecoutez ça").moveToFront Voir aussi activeWindow, on activateWindow, on deactivateWindow, moveToFront 273 generateNormals() Syntaxe 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. 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 Syntaxe 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. 274 • 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. Exemples 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. 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 qu’un crochet d’accès est utilisé. Voir aussi getAt, getOne(), getProp(), setaProp, setAt getAt Syntaxe getAt(liste, position) liste [position] Description Commande de liste ; identifie l’élément à la position spécifiée par position dans la 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. Exemples 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 275 Le même résultat peut être renvoyé à l’aide de crochets d’accès : put Réponses[3] -- 15 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 on getBehaviorDescription Syntaxe on getBehaviorDescription instruction(s) end Description Message système et gestionnaire d’événement ; contient des instructions Lingo 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. 276 Exemple L’instruction suivante affiche Barre de défilement vertical de champ de texte multiligne dans le volet de description : on getBehaviorDescription return "Barre de défilement vertical de champ de texte multiligne" end Voir aussi on getPropertyDescriptionList, on getBehaviorTooltip, on runPropertyDialog on getBehaviorTooltip Syntaxe on getBehaviorTooltip instruction(s) end Description Message système et gestionnaire d’événement ; contient des instructions Lingo 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 : on getBehaviorTooltip return "Pièce de puzzle" end Voir aussi on getPropertyDescriptionList, on getBehaviorDescription, on runPropertyDialog getBoneID Syntaxe référenceDacteur.modelResource.getBoneID("nomDeSegment") Description Propriété 3D de ressource de modèle ; renvoie le numéro d’index du segment nomDeSegment de la ressource de modèle. Cette propriété renvoie 0 en l’absence d’un segment de ce nom. 277 Exemple L’instruction suivante renvoie le numéro du segment tibiaG : put member("Parc").modelResource("Gamin").getBoneId("tibiaG") -- 40 Voir aussi bone getError() Syntaxe member(quelActeurSWA).getError() getError(member quelActeurSWA) member(quelActeurFlash).getError() getError(member quelActeurFlash) 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 mémoire 2 réseau 3 périphérique de lecture 99 autre Les valeurs getError possibles des acteurs animation Flash sont les suivantes : • • • • • • FALSE – Aucune erreur n’est survenue. #memory – La mémoire est insuffisante pour le chargement de l’acteur. #fileNotFound #network – Le fichier contenant les éléments de l’acteur est introuvable. – 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. 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. 278 Exemples 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 : on exitFrame if member("Norma Desmond parle").getError() <> 0 then member("Affichage de l’erreur").text = member("Norma Desmond \ parle").getErrorString() end if end 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. on vérifierEtatFlash testErreur = member("Dali").getError() if testErreur <> 0 then if testErreur = #memory then member("Dali").clearError() unloadCast go to frame ("Artistes") else go to frame ("Désolé") end if end if end Voir aussi clearError, getErrorString(), state (Flash, SWA) getError() (XML) Syntaxe 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. 279 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 getErrorString() Syntaxe member(quelActeur).getErrorString() getErrorString(member quelActeur) 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 mémoire 2 réseau 3 périphérique de lecture 99 autre 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 : on exitFrame if member("Norma Desmond parle").getError() <> 0 then member("Affichage de l’erreur").text = member("Norma Desmond \ parle").getErrorString() end if end Voir aussi getError() 280 getFlashProperty() Syntaxe sprite(numéroDimageObjet).getFlashProperty("NomDeCible", #propriété) 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. nomDeCible est le nom du clip ou du niveau de l’animation dont vous souhaitez obtenir la propriété dans l’image-objet Flash donnée. Le paramètre #propriété est le nom de la propriété à obtenir. Ces propriétés peuvent être testées : #posX, #posY, #scaleX, #scaleY, #visible, #rotate, #alpha, #name, #width, #height, #target, #url, #dropTarget, #totalFrames, #currentFrame, #cursor et #lastframeLoaded. Pour obtenir une propriété globale de l’image-objet Flash, passez une ligne vide comme Flash peuvent être testées : #focusRect et nomDeCible. Ces propriétés globales #spriteSoundBufferTime. Consultez la documentation de Flash pour plus d’informations sur ces propriétés. Exemple L’instruction suivante obtient la valeur de la propriété #rotate du clip Etoile dans l’acteur Flash de l’image-objet 3 : sprite(3).setFlashProperty("Etoile", #rotate) setFlashProperty() getFrameLabel() Syntaxe 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’est pas encore transférée en mémoire, cette fonction renvoie une chaîne vide. 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. on exitFrame if sprite(1).getFrameLabel(15) = "Lions" then go "Lions" else go the frame end if end 281 getHardwareInfo() Syntaxe 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() 282 getHotSpotRect() Syntaxe sprite(quelleImageObjetQTVR).getHotSpotRect(idDeZoneRéférencée) getHotSpotRect(quelleImageObjetQTVR, idDeZoneRéférencée) Description Fonction QuickTime VR ; renvoie un rectangle de délimitation approximative pour la zone référencée spécifiée par idDeZoneRé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. getLast() Syntaxe 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. Exemples 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 Syntaxe 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. 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. 283 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() getNetText() Syntaxe 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 initie 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. Pour une animation lue comme applet, la commande getNetText récupère le texte uniquement à partir du domaine contenant l’applet. Ce comportement est différent de Shockwave et est nécessaire en raison du modèle de sécurité de Java. 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. 284 Cette fonction est utilisable avec des URL relatives. Vous pourrez voir un exemple de getNextText() dans une animation en consultant l’animation Forms and Post du dossier Learning/Lingo_Examples, lui-même dans le dossier de Director. Exemples 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 Syntaxe 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 est long d’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 285 getNthFileNameInFolder() Syntaxe getNthFileNameInFolder(cheminDeDossier, numéroDeFichier) Description Fonction ; renvoie un nom de fichier contenu dans un dossier d’après le chemin d’accès et le 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 le 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 le 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. 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) getOne() Syntaxe liste.getOne(valeur) getOne(liste, valeur) Description Fonction de liste ; identifie la position (liste linéaire) ou propriété (liste de propriétés) associée à la valeur spécifiée par valeur dans la liste spécifiée par 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. 286 Lorsque utilisée avec des listes linéaires, la commande getOne réalise les mêmes fonctions que la commande getPos. Exemples 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() getPixel() Syntaxe objetImage.getPixel(x, y {, #entier}) objetImage.getPixel(point(x, y) {, #entier}) Description Cette fonction renvoie la valeur de la couleur du pixel au point spécifié dans l’objet image donné. En principe, cette valeur est renvoyée sous forme d’objet couleur rvb ou indexé, selon le codage des couleurs de l’image. Toutefois, si vous avez inclus le paramètre facultatif #entier, il sera renvoyé comme nombre brut. Si vous définissez un grand nombre de pixels sur la couleur d’un autre pixel, il est plus rapide de les définir en tant que nombre entiers. 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 le divisant le nombre par 2^8+8+8. GetPixel() renvoie 0 si le pixel donné se trouve en dehors de l’objet image spécifié. Exemples 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. maCouleur=member("Joyeux").image.getPixel(90, 20) sprite(2).color=maCouleur 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. alpha = monImage.getPixel(25, 33, #entier) / power(2, 8+8+8) Voir aussi depth, color(), setPixel(), power() 287 getPlaylist() Syntaxe sound(numéroDePiste).getPlaylist() getPlaylist(sound(numéroDePiste)) Description Cette fonction renvoie une copie de la liste des sons mis en attente pour objetAudio. Cette liste ne contient pas le son actuellement en cours. La liste des sons placés en file d’attente ne peut pas être modifié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 Acteur son à lire. Cette propriété sera toujours présente ; toutes les autres sont facultatives. #startTime Position temporelle de départ de la lecture du son, en millisecondes. Pour plus d’informations, consultez startTime. #endTime Position temporelle de fin de la lecture du son, en millisecondes. Pour plus d’informations, consultez endTime. #loopCount Nombre de lectures d’une partie du son. Pour plus d’informations, consultez loopCount. #loopStartTime Position temporelle de départ d’une boucle, en millisecondes. Pour plus d’informations, consultez loopStartTime. #loopEndTime Position temporelle de fin d’une 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 Ce gestionnaire 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. on lireLaMusique sound(2).queue([#member:member("carillons")]) sound(2).queue([#member:member("intro"), #startTime:3000,\ #endTime:10000, #loopCount:5,#loopStartTime:8000, #loopEndTime:8900]) sound(2).play() put sound(2).getPlaylist() end -- [[#member: (member 12 of castLib 2), #startTime: 3000, #endTime: 10000, #loopCount: 5, #loopStartTime: 8000, #loopEndTime: 8900]] Voir aussi endTime, loopCount, loopEndTime, loopStartTime, member (mot-clé), preLoadTime, queue(), setPlaylist(), startTime 288 getPos() Syntaxe liste.getPos(valeur) getPos(liste, valeur) Description Fonction de liste ; identifie la position de la valeur spécifiée par valeur dans la liste spécifiée par 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. 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() Syntaxe 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 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. Vous pourrez voir un exemple de getPref() dans une animation en consultant l’animation Read and Write Text du dossier Learning/Lingo_Examples, lui-même dans le dossier de Director. 289 Exemple Le gestionnaire suivant récupère le contenu du fichier Test et en affecte le texte au champ Score : on mouseUp theText = getPref("Test") member("Score").text = theText end Voir aussi setPref getProp() Syntaxe getProp(liste, propriété) liste.propriété Description Fonction de liste de propriétés ; identifie la valeur associée à la propriété spécifiée par propriété dans la liste de propriétés spécifiée par liste. 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. 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() Syntaxe 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 à la position spécifiée par index dans la liste de propriétés indiquée par liste. 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. 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. 290 on getPropertyDescriptionList Syntaxe on getPropertyDescriptionList instruction(s) end Description Message système et gestionnaire d’événement ; contient des instructions Lingo 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 : #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]. 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 = [:] addProp description,#dynamic, [#default:1, #format:#boolean, #comment:"Dynamique"] addProp description,#fieldNum, [#default:1, #format:#integer, \ #comment:"Image-objet à faire défiler :"] addProp description, #extentSprite,[#default:1,#format:#integer, \ #comment: "Etendre l’image-objet :"] addProp description,#proportional,[#default:1,#format:#boolean, \ #comment: "Proportionnel :"] return description end Voir aussi addProp, on getBehaviorDescription, on runPropertyDialog 291 getRendererServices() Syntaxe 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 : • • • renderer 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 • modifiers • 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. indique le codage binaire du tampon de sortie matériel. indique le codage binaire du tampon des couleurs. Cette propriété peut être testée, mais pas définie. colorBufferDepth est une liste linéaire des modificateurs disponibles et pouvant être utilisés par les modèles des acteurs 3D. Les valeurs possibles sont #collision, #bonesPlayer, #keyframePlayer, #toon, #lod, #meshDeform, #sds, #inker et des modificateur basés sur des Xtras publiés par d’autres éditeurs. Cette propriété peut être testée, mais pas définie. Remarque Pour plus d’informations, consultez les entrées des différentes propriétés. Voir aussi renderer, preferred3DRenderer, active3dRenderer, rendererDeviceList 292 getStreamStatus() Syntaxe 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 train, s’il est connu. Cette valeur peut être zéro si le serveur HTTP ne 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(). Exemple L’instruction suivante affiche dans la fenêtre Messages l’état du 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() getVariable() Syntaxe sprite(numéroDimageObjetFlash).getVariable("nomDeVariable" {, valeurOuRéfRenvoyée}) getVariable(sprite numéroDimageObjetFlash, "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. 293 Si la valeur de la variable Flash est une référence d’objet, vous devez définir le paramètre valeurOuRéfRenvoyée 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. Exemples 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 : valeurT = sprite(3).getVariable("gAutreVar",TRUE) put 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 : objetT = sprite(3).getVariable("gVar",FALSE) 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. put getVariable(sprite 3, "URLactuelle") -- "http://www.macromedia.com/software/flash/" Voir aussi setVariable() getWorldTransform() Syntaxe member(quelActeur).node(quelNœud).getWorldTransform() member(quelActeur).node(quelNœud).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 et est donc relative à l’univers. Utilisez member(quelActeur).node(quelNœud).getWorldTransform(). position pour trouver la propriété de position de la transformation du nœud par l’univers. Vous pouvez également utiliser worldPosition comme raccourci de getWorldTransform().position. Utilisez member(quelActeur).node(quelNœud).getWorldTransform(). rotation pour trouver la propriété de rotation de la transformation du nœud rapport à par rapport à l’univers. Utilisez member(quelActeur).node(quelNœud).getWorldTransform(). pour trouver la propriété d’échelle de la transformation du nœud par rapport à l’univers. scale Ces propriétés peuvent être testées, mais pas définies. 294 Exemple L’instruction suivante indique la transformation relative à l’univers du modèle Boîte, suivi 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é) global Syntaxe 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 Shockwave lues sur Internet ne peuvent pas accéder à des variables globales dans d’autres animations, même si les animations sont lues 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. 295 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 à partir de celle-ci 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 globals Syntaxe the globals Description Propriété système ; cette propriété contient une liste de propriétés spéciale constituée de toutes les variables globales ayant une valeur autre que VOID. Chaque variable globale est une propriété dans la liste, avec une valeur associée. Vous pouvez utiliser les opérations de liste suivantes sur globals : • • • • count() – Renvoie le nombre d’entrées dans la liste. getPropAt(n) getProp(x) – Renvoie le nom de la énième entrée. – Renvoie la valeur d’une entrée avec le nom spécifié. getAProp(x) – Renvoie la valeur d’une entrée avec le nom spécifié. Remarque La propriété globals contient automatiquement la propriété #version, qui est la version de Director en cours d’exécution. Cela signifie qu’il y aura toujours au moins une entrée dans la liste, même si aucune globale variable n’a encore été déclarée. Cette propriété est différente de showGlobals dans le sens que the globals peut être utilisée dans des contextes autres que dans la fenêtre Messages. Utilisez la commande showGlobals pour afficher the globals dans la fenêtre Messages. Voir aussi showGlobals, clearGlobals glossMap Syntaxe member(quelActeur).shader(quelMatériau).glossMap member(quelActeur).model(quelModèle).shader.glossMap member(quelActeur).model(quelModèle).shaderList{[index]}.\ glossMap Description Propriété 3D de matériau #standard ; spécifie la texture à utiliser pour le placage brillant. 296 Les propriétés suivantes sont automatiquement définies avec cette propriété : • La quatrième couche de texture du matériau reçoit la texture que vous spécifiez. • La valeur de textureModeList[4] est établie sur #none. • La valeur de blendFunctionList[4] est établie sur #multiply. Exemple L’instruction suivante donne la texture Ovale comme valeur glossMap au matériau utilisé par le modèle boîteEnVerre. member("planète3D").model("boîteEnVerre").shader.glossMap = \ member("planète3D").texture("Ovale") Voir aussi blendFunctionList, textureModeList, region, specularLightMap, diffuseLightMap gravity Syntaxe member(quelActeur).modelResource(quelleRessDeMod).gravity Description Propriété 3D de ressource de modèle de système de particules ; lorsque utilisée avec une ressource de modèle de type #particle, cette propriété permet d’obtenir ou de définir la propriété gravity de la ressource, sous la forme d’un vecteur. Cette propriété définit la force de gravité appliquée à toutes les particules de chaque palier de la simulation. La valeur par défaut de cette propriété est vector(0,0,0). Exemple Dans l’exemple suivant, systèmeThermique est une ressource de modèle de type #particle. L’instruction suivante donne à la propriété de gravité de systèmeThermique la valeur vector(0, -.1, 0), ce qui a pour effet de tirer lentement les particules de systèmeThermique le long de l’axe des y. member("Feux").modelResource("systèmeThermique").gravity = \ vector(0, -.1, 0) Voir aussi drag, wind go Syntaxe go {to} {frame} quelleImage go {to} movie quelleAnimation go {to} {frame} quelleImage of movie quelleAnimation Description Commande ; place la tête de lecture sur l’image spécifiée par quelleImage dans l’animation spécifiée par quelleAnimation. L’expression quelleImage peut être un libellé de repère ou un numéro d’image entier. L’expression quelleAnimation doit spécifier un fichier d’animation. Si l’animation se trouve dans un autre dossier, quelleAnimation doit spécifier son chemin d’accès. 297 La phrase go loop indique à la tête de lecture d’effectuer une boucle vers le repère précédent et est un moyen pratique de garder la tête de lecture dans la même partie de l’animation pendant que Lingo reste actif tout en évitant l’utilisation de go to the frame dans une image comportant une transition, ce qui ralentirait l’animation et surchargerait le processeur. Il est préférable de faire référence aux libellés de repères plutôt qu’aux numéros d’images, la modification d’une animation pouvant entraîner le changement des numéros d’images. L’utilisation du libellé des repères facilite également la lecture des scripts. La commande go to movie charge l’image 1 de l’animation. Si cette commande 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 commande play , qui peut être suivie de play done 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, afin d’empêcher un é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 commande le fichier de l’animation sur un disque local, puis utilisez à cette animation en utilisant le fichier sur le disque local. downloadNetThing, afin de télécharger la commande go to movie pour passer Les paramètres suivants sont réinitialisés au chargement d’une animation : propriétés beepOnet constraint ; propriétés d’images-objets keyDownScript, mouseDownScript et mouseUpScript ; cursor et immediate ; commandes cursor et puppetSprite et menus personnalisés. Cependant, the timeoutScript n’est pas réinitialisé au chargement de l’animation. Exemples L’instruction suivante envoie la tête de lecture au point de repère intitulé Début : go to "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 : go frame("Mémoire") of movie("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 attende dans une image tout en répondant aux événements. on exitFrame go the frame end Voir aussi downloadNetThing, gotoNetMovie, label(), marker(), pathName (propriété d’animation), play, play done 298 go loop Syntaxe go loop Description Commande ; 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. Remarque Cette commande est équivalente à marker(0) dans les versions antérieures à Director 7. 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. La commande go loop est équivalente à l’instruction go to the marker(0) utilisée dans les versions précédentes de Lingo. Exemple L’instruction suivante fait faire une boucle à l’animation entre l’image courante et le repère précédent : go loop Voir aussi go, go next, go previous go next Syntaxe go next Description Commande ; 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. La commande go next est équivalente à l’instruction go marker(1) utilisée dans les versions précédentes de Lingo. Exemple L’instruction suivante envoie la tête de lecture sur le repère suivant de l’animation : go next Voir aussi go, go loop, go previous 299 go previous Syntaxe go previous Description Commande ; place la tête de lecture sur le point de repère précédent dans l’animation. Ce repère se trouve à deux repères en arrière de l’image courante si celle-ci ne possède pas de repère ou à un repère en arrière si elle en possède un. Remarque Cette commande est équivalente à marker(-1) dans les versions précédentes de Director. 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. Exemple L’instruction suivante envoie la tête de lecture sur le repère précédent dans l’animation : go previous Voir aussi go, go next, go loop goToFrame Syntaxe sprite(quelleImageObjetFlash).goToFrame(numéroDimage) goToFrame(sprite quelleImageObjetFlash, numéroDimage) sprite(quelleImageObjetFlash).goToFrame(chaîneDeLibellé) goToFrame(sprite quelleImageObjetFlash, chaîneDeLibellé) Description Commande ; lit une image-objet d’animation Flash à partir de l’image identifiée par le paramètre numéroDimage. 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. Exemple Le gestionnaire suivant passe à différents points d’une animation Flash dans la piste 5. Il accepte un paramètre indiquant l’image à laquelle passer. on naviguer Cible sprite(5).goToFrame(Cible) end 300 gotoNetMovie Syntaxe gotoNetMovie URL gotoNetMovie (URL) Description Commande ; récupère et lit une nouvelle animation 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. Exemples 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") gotoNetPage Syntaxe gotoNetPage "URL", {"nomDeCible"} Description Commande ; ouvre une animation Shockwave ou un autre fichier MIME dans le navigateur web. 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. L’argument nomDeCible est un paramètre HTML facultatif qui identifie le cadre ou la fenêtre dans laquelle 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 n’est pas inclus, gotoNetPage remplace la page courante, où qu’elle se trouve. 301 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. Exemples 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() gradientType Syntaxe member(quelActeur).gradientType Description Propriété d’acteur forme vectorielle ; spécifie le dégradé utilisé dans le remplissage de l’acteur. Les valeurs possibles sont #linear ou #radial. La propriété gradientType n’est valide que lorsque fillMode a pour valeur #gradient. Cette propriété peut être testée et définie. Exemple Le gestionnaire suivant bascule entre les dégradés linéaires ou radiaux dans l’acteur Fond. on mouseUp me if member("Fond").gradientType = #radial then member("Fond").gradientType = #linear else member("fond").gradientType = #radial end if end Voir aussi fillMode 302 group Syntaxe 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("univers"). Exemples 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, parent halt Syntaxe halt Description Commande ; 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. 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 : if the freeBytes < 50*1024 then halt Voir aussi abort, exit, pass, quit handler() Syntaxe objetScript.handler(#symboleDeGestionnaire) Description Cette fonction renvoie TRUE si l’objetScript donné contient un gestionnaire dont le nom est #symboleDeGestionnaire et FALSE dans le cas contraire. L’objet script doit être un script parent, un objet enfant ou un comportement. 303 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() Syntaxe 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. Notez que 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. Exemples 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 height Syntaxe member(quelActeur).height the height of member quelActeur objetImage.height sprite(quelleImageObjet).height the height of sprite quelleImageObjet Description Propriété d’acteur, d’objet image et d’image-objet ; pour les acteurs forme vectorielle, Flash, GIF animé, bitmap et forme, détermine la hauteur, en pixels, de l’acteur affiché sur la scène. • Pour les acteurs, ne fonctionne qu’avec les acteurs bitmap et forme vectorielle. Cette propriété peut être testée, mais pas définie. • Dans le cas d’un objet image, cette propriété peut être testée, mais pas définie. 304 • Pour les images-objets, la définition de la hauteur de l’image-objet affecte automatiquement à la propriété stretch de l’image-objet la valeur TRUE. Pour que la valeur définie par Lingo dure au-delà de l’image-objet courante, celle-ci doit être un esclave. Cette propriété peut être testée et définie. Exemples L’instruction suivante affecte la hauteur de l’acteur Titre à la variable vHauteur : vHauteur = member("Titre").height L’instruction suivante définit la hauteur de l’image-objet 10 à 26 pixels : sprite(10).height = 26 L’instruction suivante affecte la hauteur de l’image-objet (i + 1) à la variable vHauteur : vHauteur = sprite(i + 1).height Voir aussi height, rect (image-objet), width height (3D) Syntaxe member(quelActeur).modelResource(quelleRessDeMod).height member(quelActeur).texture(quelleTexture).height Description Propriété 3D de ressource de modèle #box, #cylinder et de texture ; indique la hauteur de l’objet. La hauteur d’une ressource de modèle #box ou #cylinder est mesurée en unités de l’univers et peut être testée et définie. La valeur par défaut de cette propriété est 50. La hauteur d’une texture est mesurée en pixels et peut être testée mais pas définie. La hauteur de la texture est arrondie à partir de la hauteur de la source de la texture à la puissance de 2 la plus proche. Exemples L’instruction suivante définit la hauteur de la ressource de modèle Tour à 225.0 unités de l’univers. member("Univers 3D").modelResource("Tour").height = 225.0 L’instruction suivante indique que la hauteur de la texture placageMars est 512 pixels. put member("Séquence").texture("placageMars").height -- 512 Voir aussi length (3D), width (3D) 305 heightVertices Syntaxe member(quelActeur).modelResource(quelleRessDeMod).\ heightVertices Description Proprieté 3D de ressource de modèle #box ; indique le nombre de sommets de la maille le long de la hauteur de la boîte. L’augmentation de cette valeur augmente le nombre de faces et donc la précision de la maille. La hauteur d’une boîte est mesurée sur son axe des y. Donnez à la propriété renderStyle du matériau d’un modèle la valeur #wire pour afficher toutes les faces de la maille de la ressource. Donnez à la propriété renderStyle la valeur #point pour n’afficher que les sommets de la maille. La valeur de cette propriété doit être supérieure ou égale à 2. La valeur par défaut est 4. Exemple L’instruction suivante donne à la propriété heightVertices de la ressource de modèle Tour la valeur 10. Neuf polygones seront utilisés pour définir la géométrie de la ressource de modèle le long de son axe des z ; il y aura donc dix sommets. member("Univers 3D").modelResource("Tour").heightVertices = 10 Voir aussi height (3D) highlightPercentage Syntaxe member(quelActeur).model(quelModèle).toon.highlightPercentage member(quelActeur).model(quelModèle).shader.highlightPercentage member(quelActeur).shader(quelMatériau).highlightPercentage Description Propriété 3D de modificateur toon et de matériau #painter ; indique le pourcentage de couleurs disponibles utilisé dans la région éclairée de la surface du modèle. La plage de cette propriété s’étend de 0 à 100, la valeur par défaut étant 50. Le nombre de couleurs utilisées par le modificateur toon et le matériau painter pour un modèle est déterminé par la propriété colorSteps du modificateur toon ou du matériau #painter du modèle. Exemple L’instruction suivante donne à la propriété highlightPercentage du modificateur toon du modèle Sphère la valeur 50. La moitié des couleurs disponibles pour le modificateur toon sera utilisée pour la région éclairée de la surface du modèle. member("formes").model("Sphère").toon.highlightPercentage = 50 Voir aussi highlightStrength, brightness 306 highlightStrength Syntaxe member(quelActeur).model(quelModèle).toon.highlightStrength member(quelActeur).model(quelModèle).shader.highlightStrength member(quelActeur).shader(quelMatériau).highlightStrength Description Propriété 3D de modificateur toon et de matériau #painter ; indique la luminosité de la région éclairée de la surface du modèle. La valeur par défaut de cette propriété est 1.0. Exemple L’instruction suivante donne à la propriété highlightStrength du modificateur toon du modèle Théière la valeur 0.5. Les régions éclairées du modèle seront modérément lumineuses. member("formes").model("Théière").toon.highlightStrength = 0.5 Voir aussi highlightPercentage, brightness hilite (commande) Syntaxe 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 le Macintosh, la couleur de sélection est définie dans le tableau de bord Couleur. Exemples 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 307 hilite (propriété d’acteur) Syntaxe member(quelActeur).hilite the hilite of member quelActeur Description Propriété d’acteur ; détermine si une case à cocher ou un bouton radio créé avec l’outil bouton est sélectionné (TRUE) ou non (FALSE, valeur par défaut). Si quelActeur est une chaîne, elle spécifie le nom de l’acteur. S’il s’agit d’un nombre entier, quelActeur spécifie le numéro de l’acteur. Cette propriété peut être testée et définie. Exemples L’instruction suivante vérifie si le bouton Son activé est sélectionné et, le cas échéant, augmente le volume de la piste audio 1 au maximum : if member("Son Activé").hilite = TRUE then sound(1).volume = 255 L’instruction suivante utilise Lingo pour sélectionner l’acteur bouton Interrupteur en donnant à la propriété d’acteur hilite la valeur TRUE : member("Interrupteur").hilite = TRUE Voir aussi checkBoxAccess, checkBoxType hitTest() Syntaxe sprite(quelleImageObjetFlash).hitTest(point) hitTest(sprite quelleImageObjetFlash, 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 : • • • • 308 #background – L’emplacement spécifié est dans l’arrière-plan de l’image-objet animation Flash. #normal – 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. 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 : on exitFrame if sprite(5).hitTest(the mouseLoc) = #button then member("Ligne de message").text = "Cliquez ici pour lire l’animation." updateStage else member("Ligne de message").text = " " end if go the frame end hither Syntaxe member(quelActeur).camera(quelleCaméra).hither sprite(quelleImageObjet).camera{(index)}.hither Description Propriété 3D de caméra ; indique la distance, en unités de l’univers et à partir de la caméra, à partir de laquelle les modèles sont tracés. Les objets plus proches de la caméra que le point hither ne sont pas dessinés. La valeur de cette propriété doit être supérieure ou égale à 1.0 et a une valeur par défaut de 5.0. Exemple L’instruction suivante donne à la propriété hither de la caméra 1 la valeur 1000. Les modèles plus proches que 1000 unités de l’univers de la caméra ne seront pas visibles. member("systèmeSolaire").camera[1].hither = 1000 Voir aussi yon HMStoFrames() Syntaxe 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). 309 • hms – Expression de chaîne spécifiant 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 d’une espace si composé a la valeur FALSE. • • • cadence – Spécifie la cadence en images par seconde. compensé – Expression logique déterminant 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é. – Expression logique déterminant 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 Exemples 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() hold Syntaxe sprite(quelleImageObjetFlash).hitTest(point) hold sprite quelleImageObjetFlash Description Commande Flash ; arrête une image-objet animation Flash lue dans l’image courante, sans interrompre la lecture audio. 310 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 : on enterFrame repeat with i = 5 to 10 sprite(i).hold() end repeat end Voir aussi movieRate, pause (lecture d’animation) hotSpot Syntaxe member(quelActeurCurseur).hotspot the hotspot of member quelActeurCurseur Description Propriété d’acteur curseur ; spécifie l’emplacement horizontal et vertical du pixel représentant la zone référencée dans l’acteur curseur couleur animé quelActeurCurseur. Director utilise ce point pour suivre la position du curseur à l’écran (par exemple, lorsqu’il renvoie les valeurs pour les fonctions Lingo mouseH et mouseV) et pour déterminer l’endroit auquel un survol (signalé par le message Lingo mouseEnter) a lieu. L’angle supérieur gauche du curseur est le point(0,0), qui est la valeur par défaut de hotSpot. La définition d’un point en dehors des limites du curseur produit une erreur. Par exemple, le réglage de la zone référencée d’un curseur 16x16 pixels sur point(16,16) produit une erreur (le point de départ étant 0,0 et non 1,1). Cette propriété peut être testée et définie. Exemple Le gestionnaire suivant définit la zone référencée d’un curseur de 32x32 pixels (dont le numéro d’acteur est enregistré dans la variable numéroDeCurseur) au milieu du curseur : on startMovie member(numéroDeCurseur).hotSpot = point(16,16) end hotSpotEnterCallback Syntaxe sprite(quelleImageObjetQTVR).hotSpotEnterCallback the hotSpotEnterCallback of sprite quelleImageObjetQTVR Description Propriété d’image-objet QuickTime VR ; contient le nom du gestionnaire exécuté lorsque le curseur entre dans une zone référencée QuickTime VR visible sur la scène. L’image-objet QuickTime VR reçoit le message en premier. Ce message a deux arguments : le paramètre me et l’identifiant de la zone référencée dans laquelle le curseur est entré. Pour annuler l’appel, donnez à cette propriété une valeur de 0. Pour des performances optimales, ne définissez de propriété d’appel que lorsque absolument nécessaire. 311 Cette propriété peut être testée et définie. Voir aussi hotSpotExitCallback, nodeEnterCallback, nodeExitCallback, triggerCallback hotSpotExitCallback Syntaxe sprite(quelleImageObjetQTVR).hotSpotExitCallback the hotSpotExitCallback of sprite quelleImageObjetQTVR Description Propriété d’image-objet QuickTime VR ; contient le nom du gestionnaire exécuté lorsque le curseur quitte une zone référencée QuickTime VR visible sur la scène. L’image-objet QuickTime VR reçoit le message en premier. Ce message a deux arguments : le paramètre me et l’identifiant de la zone référencée dans laquelle le curseur est entré. Pour annuler l’appel, donnez à cette propriété une valeur de 0. Pour des performances optimales, ne définissez de propriété d’appel que lorsque absolument nécessaire. Cette propriété peut être testée et définie. Voir aussi hotSpotEnterCallback, nodeEnterCallback, nodeExitCallback, triggerCallback HTML Syntaxe member(quelActeur).HTML Description Propriété d’acteur ; accède au texte et aux balises contrôlant la disposition du texte dans un acteur texte au format HTML. Cette propriété peut être testée et définie. Exemple L’instruction suivante affiche dans la fenêtre Messages l’information de format HTML intégrée à l’acteur texte Page d’accueil : put member("Page d’accueil").HTML Voir aussi importFileInto, RTF hyperlink Syntaxe expressionSousChaîne.hyperlink Description Propriété d’acteur texte ; renvoie la chaîne de lien hypertexte pour l’expression de sous-chaîne spécifiée dans l’acteur texte. Cette propriété peut être testée et définie. 312 Lors de la récupération de cette propriété, le lien contenant le premier caractère de expressionSousChaîne est utilisé. Les liens hypertexte ne peuvent pas se chevaucher. La définition d’un lien hypertexte sur un lien existant (même partiel) remplace le lien initial par le nouveau. La définition d’un lien hypertexte en chaîne vide supprime ce lien. Exemple Le gestionnaire suivant crée un hyperlien dans le premier mot de l’acteur texte LienMacromedia. Ce texte est lié au site web de Macromedia. on startMovie member("LienMacromedia").word[1].hyperlink = \ "http://www.macromedia.com" end Voir aussi hyperlinkRange, hyperlinkState on hyperlinkClicked Syntaxe on hyperlinkClicked me, données, plage instruction(s) end 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 : • • • me – Utilisé dans un comportement pour identifier l’instance d’image-objet. données – 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]]. Ce gestionnaire doit être attaché à une image-objet en tant que script de comportement. Evitez de placer ce gestionnaire dans un script d’acteur. 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 : 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 313 hyperlinkRange Syntaxe expressionSousChaîne.hyperlinkRange Description Propriété d’acteur texte ; renvoie la plage du lien hypertexte contenant le premier caractère de l’expression de sous-chaîne. Cette propriété peut être testée, mais pas définie. De même que hyperLink et hyperLinkState, la plage du lien renvoyée est celle qui contient le premier caractère de expressionSousChaîne. Voir aussi hyperlink, hyperlinkState hyperlinks Syntaxe expressionSousChaîne.hyperlinks Description Propriété d’acteur texte ; renvoie une liste linéaire contenant toutes les plages de liens hypertexte pour l’expression de sous-chaîne spécifiée de l’acteur texte. Chaque plage est donnée sous la forme d’une liste linéaire avec deux éléments, un pour le caractère de début du lien et un pour le caractère de fin. Exemple L’instruction suivante indique tous les liens de l’acteur texte Glossaire dans la fenêtre Messages : put member("Glossaire").hyperlinks -- [[3, 8], [10, 16], [41, 54]] hyperlinkState Syntaxe sousChaîneTexte.hyperlinkState Description Propriété d’acteur texte ; contient l’état courant du lien hypertexte. Les valeurs possibles de l’état sont : #normal, #active et #visited. Cette propriété peut être testée et définie. De même que hyperLink et hyperLinkRange, la plage du lien renvoyée est celle qui contient le premier caractère de expressionSousChaîne. 314 Exemple Le gestionnaire suivant vérifie si l’hyperlien sélectionné est une adresse web. Le cas échéant, l’état du lien hypertexte passe à #visited et l’animation est transférée à l’adresse web. property spriteNum on hyperlinkClicked me, données, plage if data starts "http://" then acteurCourant = sprite(spriteNum).member acteurCourant.word[4].hyperlinkState = #visited goToNetPage(données) end if end Voir aussi hyperlink, hyperlinkRange identity() Syntaxe 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). 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. 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() 315 on idle Syntaxe on idle instruction(s) end 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 Lingo à 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. 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 : on idle member("Heure").text = the short time end idle Voir aussi idleHandlerPeriod idleHandlerPeriod Syntaxe the idleHandlerPeriod Description Propriété d’animation ; détermine le nombre de battements maximum avant l’envoi d’un message idle par l’animation. La valeur par défaut est 1, ce qui indique à l’animation d’envoyer des messages de gestionnaires idle pas plus de 60 fois par seconde. Lorsque la tête de lecture entre dans une image, Director démarre un compteur, redessine les images-objets appropriées sur la scène et émet un événement enterFrame. Ensuite, si le temps défini pour la cadence s’est écoulé, Director produit un événement exitFrame et passe à l’image suivante spécifiée ; si le temps défini pour cette image ne s’est pas écoulé, Director attend jusqu’à ce que le temps se soit écoulé et produit un message idle périodiquement. Le temps écoulé entre les événements idle est déterminé par idleHandlerPeriod. 316 Les valeurs possibles pour idleHandlerPeriod sont : • 0 – Autant d’événements idle que possible. • 1 – Jusqu’à 60 par seconde. • 2 – Jusqu’à 30 par seconde. • 3 – Jusqu’à 20 par seconde. • n – Jusqu’à 60/n par seconde. Le nombre d’événements idle par image dépend également de la cadence d’image de l’animation et d’autres activités, y compris si des scripts Lingo sont exécutés. Si la cadence est de 60 images par seconde (ips) et que la valeur de idleHandlerPeriod est 1, un seul événement idle a lieu par image. Si la cadence est de 20 ips, trois événements idle ont lieu par image. Un temps mort résulte du fait que Director n’a pas de tâches à exécuter et ne peut pas produire d’événements. Au contraire, si la propriété idleHandlerPeriod a pour valeur 0 et que la cadence est très basse, des milliers d’événements idle peuvent être générés. La valeur par défaut de cette propriété est 1, ce qui diffère des versions précédentes dans lesquelles elle était de 0. Exemple L’instruction suivante entraîne l’animation à envoyer un message idle une fois par seconde, au maximum : the idleHandlerPeriod = 60 Voir aussi idleLoadDone(), idleLoadMode, idleLoadTag, idleReadChunkSize idleLoadDone() Syntaxe idleLoadDone(baliseDeChargement) Description Fonction ; 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). 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 : if idleLoadDone(20) then play movie("Kiosque") Voir aussi idleHandlerPeriod, idleLoadMode, idleLoadPeriod, idleLoadTag, idleReadChunkSize 317 idleLoadMode Syntaxe the idleLoadMode Description Propriété système ; détermine le moment auquel les commandes preLoad et preLoadMember essayent de charger les acteurs pendant les périodes d’inactivité en fonction des valeurs suivantes : • • • • 0 – Aucun chargement en période d’inactivité. 1 – Chargement pendant les périodes d’inactivité entre les images. 2 – Chargement pendant les événements idle. 3 – Chargement aussi fréquemment que possible. La propriété système idleLoadMode n’effectue aucune fonction et n’est exécutée qu’avec les commandes preLoad et preLoadMember. Les acteurs chargés pendant les périodes d’inactivité restent compressés jusqu’à ce que l’animation les utilise. Lors de la lecture de l’animation, des pauses importantes peuvent avoir lieu pendant la décompression des acteurs. Exemple L’instruction suivante ordonne à l’animation d’essayer de charger aussi fréquemment que possible les acteurs à précharger, par le biais des commandes preLoad et preLoadMember : the idleLoadMode = 3 Voir aussi idleHandlerPeriod, idleLoadDone(), idleLoadPeriod, idleLoadTag, idleReadChunkSize idleLoadPeriod Syntaxe the idleLoadPeriod Description Propriété système ; détermine le nombre de battements pendant lequel Director attend avant d’essayer de charger les acteurs en attente de chargement. La valeur par défaut de idleLoadPeriod est 0, ce qui indique à Director de s’occuper de la file de chargement aussi fréquemment que possible. Exemple L’instruction suivante indique à Director d’essayer de charger toutes les demi-secondes (30 battements) les acteurs en attente de chargement : set the idleLoadPeriod = 30 Voir aussi idleLoadDone(), idleLoadMode, idleLoadTag, idleReadChunkSize idleLoadTag Syntaxe the idleLoadTag 318 Description Propriété système ; identifie ou affecte un numéro aux acteurs en attente de chargement pendant les périodes d’inactivité de l’ordinateur. La propriété idleLoadTag est pratique pour identifier les acteurs d’un groupe que vous souhaitez précharger. Cette propriété peut être testée et définie avec n’importe quel numéro. Exemple L’instruction suivante fait du numéro 10 la balise de chargement en période d’inactivité : the idleLoadTag = 10 Voir aussi idleHandlerPeriod, idleLoadDone(), idleLoadMode, idleLoadPeriod, idleReadChunkSize idleReadChunkSize Syntaxe the idleReadChunkSize Description Propriété système ; détermine le nombre maximum d’octets que Director peut charger lorsqu’il essaie de charger les acteurs à partir de la file de chargement. La valeur par défaut est 32 ko. Cette propriété peut être testée et définie. Exemple L’instruction suivante spécifie que 500 ko est le nombre maximum d’octets que Director peut charger lors d’un essai de chargement des acteurs de la file d’attente : the idleReadChunkSize = 500 * 1024 Voir aussi idleHandlerPeriod, idleLoadDone(), idleLoadMode, idleLoadPeriod, idleLoadTag 319 if Syntaxe if expressionLogique 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é. La partie else de l’instruction est facultative. Pour utiliser plus d’une instruction then ou else, vous devez conclure par la forme end if. 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. Exemples 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 320 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 (the commandDown) and (the key = "q") then nettoyage quit end if end keyDown Comparez les deux constructions suivantes et les résultats de performance. La première construction évalue les deux conditions et doit déterminer la mesure du temps, ce qui prend un certain temps. 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 alert "Vous avez trouvé le trésor !" end if La construction plus rapide serait : imageObjetSousLeCurseur = rollOver() if (imageObjetSousLeCurseur > 25) then if MesureDuTempsDepuisLeDépart() then alert "Vous avez trouvé le trésor !" end if end if Voir aussi case ignoreWhiteSpace() Syntaxe 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> </ 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éé. exemple>, 321 Exemples Les instructions Lingo suivantes laissent à ignoreWhiteSpace() sa valeur par défaut de TRUE et convertissent le document XML donné en une liste. Vous remarquerez que 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. Vous remarquerez que 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é. Vous remarquerez qu’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 "]]]] Les instructions Lingo suivantes donnent à ignoreWhiteSpace() la valeur FALSE et analysent le document XML donné. Vous remarquerez qu’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() Syntaxe ilk(objet) ilk(objet, type) Description Fonction ; indique le type d’un objet. • La syntaxe ilk(objet) renvoie une valeur indiquant le type d’un objet. Si l’objet se trouve dans la liste, ilk(objet) renvoie #list ; si l’objet est une liste de propriétés, ilk(objet) renvoie #propList. 322 • La syntaxe ilk(objet, type) compare l’objet représenté par la valeur objet au type spécifié. 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. Le tableau suivant présente la valeur renvoyée pour chaque type d’objet reconnu par ilk() : Exemple ilk(objet, type) renvoie 1 uniquement si le type = Type d’objet ilk(objet) renvoie 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")) 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 #sound #instance ou #sound (lorsque l’Xtra de contrôle audio est absent) ilk (sound "tralala") fenêtre #window #object ou #window ilk (the stage) média #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) 323 Exemples 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 ) ilk (3D) Syntaxe ilk(objet) ilk(objet,type) objet.ilk objet.ilk(type) Description Fonction Lingo ; indique le type d’un objet. • La syntaxe ilk(objet) et objet.ilk renvoie une valeur indiquant le type de l’objet. Si l’objet est un modèle, ilk(objet) renvoie #model ; si l’objet est un mouvement, ilk(objet) renvoie Vous trouverez une liste complète des valeurs renvoyées par les objets 3D dans le tableau suivant. #motion. • La syntaxe ilk(objet, type) et objet.ilk(type) compare l’objet représenté par l’objet au type spécifié. 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. 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. 324 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 Type d’objet ilk(objet) renvoie ilk(objet, type) uniquement si type = texture #texture #texture ou #list groupe #group #group caméra #camera #camera données de collision #collisiondata #collisiondata vecteurs #vector #vector transformation #transform #transform Exemples L’instruction suivante indique que monObjet est un objet de mouvement. put MonObjet.ilk -- #motion 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 Syntaxe quelActeur.image (the stage).image window(nomDeFenêtre).image Description Cette propriété fait référence à l’objet image d’un acteur bitmap ou texte, de la scène ou d’une fenêtre. Vous pouvez obtenir ou définir l’image d’un acteur, mais ne pouvez qu’obtenir l’image de la scène ou d’une fenêtre. La définition de la propriété image d’un acteur modifie immédiatement le contenu de l’acteur. Cependant, lorsque vous obtenez l’image d’un acteur ou d’une fenêtre, Director crée une référence à l’image de l’acteur ou de la fenêtre en question. Si vous apportez des modifications à l’image, le contenu de l’acteur ou de la fenêtre change immédiatement. Si vous envisagez d’apporter de nombreuses modifications à la propriété image d’un élément, il est plus rapide de copier sa propriété image dans un nouvel objet image à l’aide de la fonction duplicate(), d’apporter ensuite vos modifications au nouvel objet image, puis d’appliquer l’image initiale de l’élément au nouvel objet image. Pour les acteurs autres que bitmap, il est toujours plus rapide d’utiliser la fonction duplicate(). Exemples L’instruction suivante place l’image de l’acteur fleurDorigine dans l’acteur nouvelleFleur : member("nouvelleFleur").image = member("fleurDorigine").image 325 Les instructions suivantes placent une référence à l’image de la scène dans la variable monImage et placent ensuite cette image dans l’acteur Fleur. monImage = (the stage).image member("fleur").image = monImage Voir aussi setPixel(), draw(), image(), fill(), duplicate() (fonction d’image), copyPixels() image() Syntaxe image(largeur, hauteur, codage {, codageAlpha} {, symboleOuActeurPalette}) Description Fonction ; crée et renvoie un objet image des dimensions spécifiées par largeur, hauteur et codage, avec les valeurs facultatives de codageAlpha et symboleOuActeurPalette. Le codage peut être 1, 2, 4, 8, 16 ou 32. Le codageAlpha, si donné, n’est utilisé que pour les images 32 bits et doit être 0 ou 8. L’objetPalette, si donné, n’est utilisé que pour les images 2, 4 et 8 bits images et peut être un symbole de palette, tel que #grayscale ou un acteur palette. Si aucune palette n’est spécifiée, c’est la palette par défaut de l’animation qui est utilisée. Les objets image créés avec image() sont indépendants et ne font référence ni à un acteur, ni à une fenêtre. Vous pourrez voir un exemple de image() dans une animation en consultant l’animation Imaging du dossier Learning/Lingo_Examples, lui-même dans le dossier de Director. Exemple Les instructions suivantes créent un objet image de 200 x 200 pixels, 8 bits et le remplissent de rouge. carréRouge = image(200, 200, 8) carréRouge.fill(0, 0, 200, 200, rgb(255, 0, 0)) Voir aussi palette, image, duplicate() (fonction d’image), fill() image (RealMedia) Syntaxe sprite(quelleImageObjet).image member(quelActeur).image Description Propriété d’acteur ou d’image-objet RealMedia ; renvoie un objet image Lingo contenant l’image courante du train vidéo RealMedia. Vous pouvez utiliser cette propriété pour placer du contenu RealVideo sur un modèle 3D (voir l’exemple ci-après). Exemple Cette instruction copie l’image courante de l’acteur RealMedia Real sur l’acteur bitmap Insta : member("Insta").image = member("Real").image 326 Ce gestionnaire est appelé une fois par un script d’image, pour chaque image Director. Le gestionnaire crée une nouvelle texture à partir de l’image de l’acteur RealMedia appelé Real, s’il est en cours de lecture ou en pause. La nouvelle texture est ensuite utilisée par le matériau du modèle appelé mSphère. La texture utilisée dans l’image précédente est supprimée. Enfin, la sphère pivote de 1° autour de l’axe des y. Le résultat est une vidéo #realMedia lue dans une sphère en rotation. on majMatériau if member("Real").state = 4 then matSphère = member("3d").model("mSphère").shader tex = member("3d").newTexture("texture" & gNumDeTexture, \ #fromImageObject, member("Real").image) matSphère.texture = tex if gNumDeTexture > 1 then member("3d").deleteTexture("texture" & (gNumDeTexture - 1)) end if gNumDeTexture = gNumDeTexture + 1 end if member("3d").model[1].transform.rotate(0, 1, 0) end imageCompression Syntaxe member(quelActeur).imageCompression the imageCompression of member quelActeur Description Cette propriété d’acteur bitmap indique le type de compression que Director applique à l’acteur lors de l’enregistrement de l’animation au format Shockwave. Cette propriété peut être testée et définie et n’a aucun effet à l’exécution. Sa valeur peut être constituée de l’un de ces symboles : Valeur Signification #movieSetting Utiliser les paramètres de compression de l’animation stockés dans la propriété movieImageCompression. Il s’agit de la valeur par défaut pour les formats d’image non limités à la compression standard (voir ci-après). #standard Utilise le format de compression interne standard de Director. #jpeg La compression JPEG est utilisée. Pour plus d’informations, consultez imageQuality. Cette propriété est normalement définie dans le volet Bitmap de l’inspecteur des propriétés. Toutefois, si vous souhaitez définir cette propriété pour un nombre important d’images en une seule opération, vous pouvez la définir à l’aide d’une routine Lingo. Si un acteur ne supporte pas la compression JPEG (s’il s’agit d’un acteur 8 bits ou une valeur inférieure) ou si l’image est liée à un fichier externe, seule la compression #standard pourra être utilisée. Les formats d’image qui ne supportent pas la compression JPEG comprennent le format GIF et les images 8 bits (ou une valeur inférieure). 327 Exemple L’instruction suivante affiche la valeur de compression de l’acteur Lever de soleil dans la fenêtre Messages : put member("lever de soleil").imageCompression -- #movieSetting Voir aussi imageQuality, movieImageCompression, movieImageQuality imageEnabled Syntaxe sprite(quelleImageObjetFlashOuFormeVectorielle).imageEnabled the imageEnabled of sprite quelleImageObjetFlashOuFormeVectorielle member(quelleImageObjetFlashOuFormeVectorielle).imageEnabled the imageEnabled of member quelleImageObjetFlashOuFormeVectorielle Description Propriété d’acteur et d’image-objet ; contrôle si les graphiques d’une animation Flash ou forme vectorielle sont visibles (TRUE, valeur par défaut) ou invisibles (FALSE). Cette propriété peut être testée et définie. Exemple Le script beginSprite suivant masque les graphiques d’une image-objet animation Flash liée lorsque qu’elle apparaît pour la première fois sur la scène et commence à arriver en mémoire, puis enregistre son numéro d’image-objet dans une variable globale intitulée gImageObjetFluxContinu pour l’utiliser ultérieurement dans un script d’image du scénario : global gImageObjetFluxContinu on beginSprite me gImageObjetFluxContinu = me.spriteNum sprite(gImageObjetFluxContinu).imageEnabled = FALSE end Dans une image suivante de l’animation, ce script d’image vérifie si l’image-objet de l’animation Flash spécifiée par la variable globale gImageObjetFluxContinu a été transférée en mémoire. Si ce n’est pas le cas, le script maintient la tête de lecture en boucle dans l’image courante jusqu’à ce que l’animation ait été intégralement transférée en mémoire. Il donne ensuite à la propriété imageEnabled la valeur TRUE de façon à ce que le graphique apparaisse et laisse la tête de lecture passer à l’image suivante du scénario. global gImageObjetFluxContinu on exitFrame me if sprite(gImageObjetFluxContinu).member.percentStreamed < 100 then go to frame else sprite(gImageObjetFluxContinu).imageEnabled = TRUE updatestage end if end 328 imageQuality Syntaxe member(quelActeur).imageQuality the imageQuality of member quelActeur Description Cette propriété d’acteur bitmap indique le niveau de compression à utiliser lorsque la propriété imageCompression de l’acteur est définie sur #jpeg. La plage de valeurs admises s’étend de 0 à 100. Zéro produit la qualité d’image la moins bonne et le plus haut degré de compression, tandis que 100 produit la meilleure qualité d’image et le degré de compression le plus bas. Vous ne pouvez définir cette propriété que durant la programmation et elle n’affecte les acteurs que lors de l’enregistrement d’une animation au format Shockwave. Vous pouvez afficher un aperçu de l’image compressée en cliquant sur le bouton Optimiser sous Fireworks de l’onglet Bitmap de l’inspecteur des propriétés ou en choisissant la commande Aperçu dans le navigateur web du menu Fichier. Si la propriété imageCompression d’un acteur image est définie sur #MovieSetting, c’est la propriété d’animation movieImageQuality qui sera utilisée, plutôt que imageQuality. Voir aussi imageCompression, movieImageCompression, movieImageQuality immovable Syntaxe member(quelActeur).model(quelModèle).collision.immovable Description Propriété 3D de modificateur #collision ; indique si un modèle peut être déplacé à la suite de collisions. La valeur TRUE rend le modèle immuable ; la valeur FALSE permet le déplacement du modèle. Cette propriété est un moyen pratique d’améliorer les performances au cours de l’animation étant donné que Lingo n’a pas à vérifier les collisions pour les modèles immobiles. Cette propriété a une valeur par défaut de FALSE. Exemple L’instruction suivante donne à la propriété immovable du modificateur collision associé au premier modèle de l’acteur Séquence la valeur TRUE. member("Séquence").model[1].collision.immovable = TRUE Voir aussi collision (modificateur) 329 importFileInto Syntaxe importFileInto member quelActeur, nomDuFichier importFileInto member quelActeur of castLib quelleDistribution, nomDuFichier importFileInto member quelActeur, URL Description Commande ; remplace le contenu de l’acteur spécifié par quelActeur par le fichier indiqué par nomDuFichier. La commande importFileInto est pratique dans les quatre situations suivantes : • A la fin de la création d’une animation, elle permet d’intégrer des médias externes liés de façon à pouvoir les modifier pendant le projet. • Lors de la création du scénario à partir de Lingo pendant la création de l’animation, elle permet d’affecter un contenu aux nouveaux acteurs créés. • 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é. Cependant, pour utiliser un fichier d’une URL et minimiser la durée de téléchargement, utilisez la commande downloadNetThing ou preloadNetThing pour télécharger le fichier sur un disque local avant d’importer le fichier depuis le disque local. • 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 commande importFileInto dans les projections peut rapidement consommer la mémoire disponible et il est donc plus judicieux de réutiliser les mêmes acteurs pour les données importées. La commande importFileInto ne fonctionne pas avec le lecteur Director pour Java. Pour changer le contenu d’un acteur bitmap ou audio dans une animation lue comme applet, liez les acteurs et changez la propriété fileName de l’acteur. Remarque Dans Shockwave, vous devez émettre une commande preloadNetThing et attendre la fin du téléchargement avant d’utiliser importFileInto avec le fichier. Dans Director et les projections, importFileInto télécharge automatiquement le fichier. 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 : on exitFrame URLtemporaire = "http://www.uneUrl.fr/couronne.gif" importFileInto new(#bitmap), URLtemporaire end L’instruction suivante remplace le contenu de l’acteur son Mémoire par le fichier audio Vent : importFileInto member "Mémoire", "Vent.wav" 330 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 : downLoadNetThing http://www.cbDeMille.com/FilmParlant.AIF, the \ applicationPath&"FilmParlant.AIF" \ importFileInto(member "Norma Desmond parle", the applicationPath&"FilmParlant.AIF") Voir aussi downloadNetThing, fileName (propriété d’acteur), preloadNetThing() in Voir aussi number (caractères), number (éléments), number (lignes), number (mots) INF Description Valeur de renvoi de Lingo ; indique qu’une expression Lingo spécifiée est évaluée comme un nombre infini. Voir aussi NAN inflate Syntaxe rectangle.Inflate(changementDeLargeur , changementDeHauteur) inflate (rectangle, changementDeLargeur, changementDeHauteur) Description Commande ; change les dimensions du rectangle spécifié par rectangle par rapport au centre du rectangle, soit horizontalement (changementDeLargeur), soit verticalement (changementDeHauteur). Le changement dans chaque direction est le double du nombre spécifié. Par exemple, le remplacement de changementDeLargeur par 15 augmente la largeur du rectangle de 30 pixels. Une valeur inférieure à 0 pour la dimension horizontale ou verticale réduit la taille du rectangle. Exemples L’instruction suivante augmente la largeur du rectangle de 4 pixels et sa hauteur de 2 pixels : rect(10, 10, 20, 20).inflate(2, 1) --rect (8, 9, 22, 21) L’instruction suivante diminue la hauteur et largeur du rectangle de 20 pixels : inflate (rect(0, 0, 100, 100), -10, -10) --rect (10, 10, 90, 90) 331 ink Syntaxe sprite(quelleImageObjet).ink the ink of sprite quelleImageObjet Description Propriété d’image-objet ; détermine l’effet d’encre appliqué à l’image-objet spécifiée par quelleImageObjet, de la façon suivante : 0 – Copie 32 – Opacité 1 – Transparente 33 – Somme limitée 2 – Inverse 34 – Somme 3 – Spectre 35 – Différence limitée 4 – Copie nég. 36 – Fond transparent 5 – Transp. nég. 37 – Plus claire 6 – Inverse nég. 38 – Différence 7 – Spectre nég. 39 – Plus foncée 8 – Dessin seul 40 – Eclaircir 9 – Masque 41 – Assombrir Pour une animation lue comme applet, les valeurs valides de la propriété d’image-objet ink varient en fonction des images-objets, comme suit : • Pour les images-objets bitmap, la propriété d’image-objet ink peut être 0 (Copie), 8 (Dessin seul), 32 (Opacité) ou 36 (Fond transparent). • Pour les images-objets forme vectorielle, Flash et forme, la propriété d’image-objet ink peut être 0, 8 ou 36. • Pour les images-objets champ, la propriété d’image-objet ink peut être 0 ou 36. Le lecteur traite les encres Opacité et Dessin seul comme Fond transparent. Dans le cas de 36 (Fond transparent), vous sélectionnez une image-objet dans le scénario et une couleur de transparence dans la puce de couleur d’arrière-plan de la fenêtre Outils. Vous pouvez également définir la propriété backColor. Si vous définissez cette propriété dans un script alors que la tête de lecture ne bouge pas, utilisez la commande updateStage pour redessiner la scène. Si vous changez plusieurs propriétés d’imagesobjets – ou plusieurs images-objets – utilisez une seule commande updateStage à la fin de tous les changements. Cette propriété peut être testée et définie. Exemples L’instruction suivante donne à la variable encreCourante la valeur de l’effet d’encre de l’imageobjet 3 : encreCourante = sprite(3).ink 332 L’instruction suivante donne à l’image-objet (i + 1) un effet d’encre Dessin seul en affectant à la propriété d’effet d’encre la valeur 8, qui spécifie une encre Dessin seul : sprite(i + 1).ink = 8 Voir aussi backColor, foreColor inker (modificateur) Syntaxe member(quelActeur).modelResource(quelleRessDeMod).\ inker.propriétéDeModificateurInker référenceDobjetDeRessourceDeModèle.inker.propriétéDeModificateurInker Description Modificateur 3D ; vous pouvez, après avoir ajouté le modificateur #inker à une ressource de modèle (avec addModifier), en obtenir et définir les propriétés. Le modificateur #inker ajoute des silhouettes, des plis et des bords de délimitation à un modèle existant ; les propriétés du modificateur #inker vous permettent d’en contrôler la définition et l’ampleur. Lorsque le modificateur #inker est utilisé en conjonction au modificateur #toon, le rendu est cumulatif et varie en fonction du premier modificateur appliqué. La liste des modificateurs renvoyée par la propriété modifier indiquera #inker ou #toon (en fonction du premier qui aura été ajouté), mais pas les deux. Le modificateur #inker ne peut pas être utilisé en conjonction au modificateur #sds. Le modificateur #inker a les propriétés suivantes : • lineColor #inker. • silhouettes permet de savoir ou de définir si les lignes sont dessinées avec les bords le long de la bordure d’un modèle, en soulignant la forme. • • creases • permet d’obtenir ou de définir la couleur des lignes dessinées par le modificateur permet de savoir ou de définir si les lignes sont dessinées avec des plis. creaseAngle permet de vérifier ou de définir la sensibilité de détection des angles des plis pour le modificateur. boundary permet de savoir ou de définir si les lignes sont dessinées autour de la limite de la surface. • lineOffset permet de savoir ou de définir si les lignes sont tracées en fonction de la surface et de la caméra. • useLineOffset permet de savoir ou de définir si lineOffset est activé ou désactivé. Remarque Pour plus d’informations, consultez les entrées des différentes propriétés. Voir aussi addModifier, modifiers, toon (modificateur), shadowPercentage 333 inlineImeEnabled Syntaxe the inlineImeEnabled Description Propriété globale ; détermine si la fonction IME en ligne de Director est activée. Lorsqu’elle est définie sur TRUE, cette propriété permet à l’utilisateur d’entrer directement des caractères double octets dans les fenêtres Texte, Champ, Script et Messages de Director, sur les systèmes japonais. Cette propriété peut être testée et définie. La valeur par défaut est définie par le paramètre Activer la fonction IME en ligne dans les préférences générales de Director. insertBackdrop Syntaxe 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, à la position indiquée par le paramètre index. Ce fond est affiché dans l’image-objet 3D à l’emplacementDansLimageObjet avec la rotation indiquée. Le paramètre emplacementDansLimageObjet est l’emplacement 2D mesuré à partir du coin supérieur gauche de l’image-objet. 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("Séquence").texture("Cèdre") sprite(5).camera.insertBackdrop(1, t1, point(300, 120), 45) Voir aussi removeBackdrop, bevelDepth, overlay insertFrame Syntaxe insertFrame Description Commande ; 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 commande ne peut être utilisée que pendant une session d’enregistrement du scénario et remplit la même fonction que la commande duplicateFrame. 334 Exemple Le gestionnaire suivant crée une image dans laquelle l’acteur transition Brouillard est affecté à la piste des transitions, suivi d’un groupe d’images vides. L’argument nombreDimages définit ce nombre d’images. on animBalle nombreDimages beginRecording the frameTransition = member ("Brouillard").number go the frame + 1 repeat with i = 0 to nombreDimages insertFrame end repeat endRecording end insertOverlay Syntaxe 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, à la position indiquée par le paramètre index. Ce recouvrement est affiché dans l’image-objet 3D à l’emplacementDansLimageObjet avec la rotation indiquée. Le paramètre emplacementDansLimageObjet est l’emplacement 2D mesuré à partir du coin supérieur gauche de l’image-objet. 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("Séquence").texture("Cèdre") sprite(5).camera.insertOverlay(1, t1, point(300, 120), 45) Voir aussi removeOverlay, overlay, bevelDepth inside() Syntaxe point.inside(rectangle) inside(point, rectangle) Description Fonction ; indique si le point spécifié par point se trouve à l’intérieur du rectangle spécifié par rectangle (TRUE) ou à l’extérieur de celui-ci (FALSE). 335 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 Syntaxe installMenu quelActeur Description Commande ; installe le menu défini dans l’acteur champ spécifié par quelActeur. 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. Sous Windows, si le menu ne tient pas à l’écran, seule une partie est affichée. Sur le Macintosh, il est possible de faire défiler les menus qui ne tiennent pas à l’écran. Remarque Les menus ne sont pas disponibles dans Shockwave. Exemples 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() Syntaxe (expressionNumérique).integer integer(expressionNumérique) Description Fonction ; arrondit la valeur de expressionNumérique au nombre entier le plus proche. Vous pouvez forcer un nombre entier en une chaîne avec la fonction string(). 336 Exemples 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() integerP() Syntaxe expression.integerP (expressionNumérique).integerP integerP(expression) Description Fonction ; indique si l’expression spécifiée par expression est un entier (1 ou TRUE) ou non (0 ou FALSE). Le P de la fonction integerP signifie prédicat. Exemples 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() Syntaxe 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. 337 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() interpolate() Syntaxe 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() Syntaxe 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 de transformation2, en fonction du 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. 338 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() Syntaxe rectangle1.intersect(rectangle2) intersect(rectangle1, rectangle2) Description Fonction ; détermine le rectangle formé par l’intersection de rectangle1 et rectangle2. Exemple L’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() interval Syntaxe member(quelActeurCurseur).interval the interval of member quelActeurCurseur Description Propriété d’acteur curseur ; spécifie l’intervalle, en millisecondes (ms), entre chaque image de l’acteur curseur couleur animé quelActeurCurseur. L’intervalle par défaut est de 100 ms. L’intervalle du curseur est indépendant de la cadence d’images définie pour l’animation dans la piste des cadences ou avec la commande Lingo puppetTempo. Cette propriété peut être testée et définie. Exemple Dans ce script d’image-objet, lorsque le curseur animé en couleur stocké dans l’acteur Papillon pénètre dans l’image-objet, l’intervalle est réglé sur 50 ms pour accélérer l’animation. Lorsque le curseur quitte l’image-objet, l’intervalle est réglé sur 100 ms pour ralentir l’animation. on mouseEnter member("Papillon").interval = 50 end on mouseLeave member("Papillon").interval = 100 end 339 into Ce fragment de code se retrouve dans un certain nombre d’expressions Lingo, telles que put...into. inverse() Syntaxe 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(). 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() Syntaxe 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(). Exemple L’instruction suivante inverse la transformation du modèle Boîte. member("Univers 3D").model("Boîte").transform.invert() Voir aussi inverse() 340 invertMask Syntaxe member(quelActeurQuickTime).invertMask the invertMask of member quelActeurQuickTime Description Propriété d’acteur QuickTime ; détermine si Director dessine les séquences QuickTime dans les pixels blancs du masque de la séquence (TRUE) ou dans ses pixels noirs (FALSE, valeur par défaut). Cette propriété peut être testée et définie. Exemple Le gestionnaire suivant inverse le paramètre courant de la propriété invertMask d’une séquence QuickTime intitulée Etoile : on basculeDuMasque member("Etoile").invertMask = not member("Etoile").invertMask end Voir aussi mask isBusy() Syntaxe sound(numéroDePiste).isBusy() Description Fonction ; renvoie TRUE si la piste audio numéroDePiste est en train de lire un son ou a mis celuici en pause, et FALSE si elle n’a pas entamé la lecture de l’un des sons placés en file d’attente, ou si cette lecture a été interrompue. Vous pourrez voir un exemple de isBusy() dans une animation en consultant l’animation Sound Control du dossier Learning/Lingo_Examples, lui-même dans le dossier de Director. Exemple L’instruction Lingo suivante vérifie si un son est en cours de lecture sur la piste audio 1. Le cas échéant, le texte de l’acteur champ devient Vous devriez pouvoir entendre de la musique. Dans le cas contraire, le texte devient Le morceau est terminé. if sound(1).isBusy() then member("champ").text = "Vous devriez pouvoir entendre de la musique." else member("champ").text = "Le morceau est terminé." end if Voir aussi pause() (lecture audio), playNext(), queue(), status, stop() (audio) 341 isInWorld() Syntaxe 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. 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 on isOKToAttach Syntaxe on isOKToAttach me, typeDimageObjet, numéroDimageObjet 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. 342 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 : 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 isPastCuePoint() Syntaxe sprite(numéroDimageObjet).isPastCuePoint(IDduRepère) isPastCuePoint(sprite(numéroDimageObjet), IDduRepère) sound(numéroDePiste).isPastCuePoint(IDduRepère) isPastCuePoint(sound(numéroDePiste), 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 numéroDimageObjet ou numéroDePiste 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’images-objets, 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. 343 Exemples L’instruction suivante lit un son jusqu’au troisième passage sur le point de repère Fin du choeur : if (isPastCuePoint(sound 1, "Fin du choeur")=3) then puppetSound 0 end if L’exemple suivant permet d’afficher des informations dans l’acteur Champ 2 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. 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 isVRMovie Syntaxe member(quelActeur).isVRMovie isVRMovie of member quelActeur sprite(quelleImageObjet).isVRMovie isVRMovie of sprite quelleImageObjet Description Propriété d’image-objet et d’acteur QuickTime ; indique si un acteur ou une image-objet est une animation QuickTime VR dont le téléchargement n’a pas encore eu lieu (TRUE) ou si l’acteur ou l’image-objet n’est pas une animation QuickTime VR (FALSE). Le test de cette propriété dans n’importe quel élément dont le type est différent de produira un message d’erreur. #quickTimeMedia Cette propriété peut être testée, mais pas définie. Exemple Le gestionnaire suivant vérifie si l’acteur d’une image-objet est une animation QuickTime. Le cas échéant, le gestionnaire poursuit sa recherche pour vérifier s’il s’agit d’une animation QuickTime VR. Dans les deux cas, un message d’alerte est généré. on vérifDeVR uneImageObjet if sprite(uneImageObjet).member.type = #quickTimeMedia then if sprite(uneImageObjet).isVRMovie then alert "Ceci est un élément QTVR." else alert "Ceci n’est pas un élément QTVR." end if else alert "Ceci n’est pas un élément QuickTime." end if end 344 item...of Syntaxe expressionActeurTexte.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. Exemples 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 (éléments), word...of 345 itemDelimiter Syntaxe the itemDelimiter Description Propriété système ; spécifie le caractère utilisé pour délimiter les éléments. Vous pouvez utiliser la fonction itemDelimiter pour analyser des noms de fichiers en donnant à itemDelimiter la valeur d’une barre oblique inverse (\) sous Windows ou de deux-points (:) sur le Macintosh. N’oubliez pas de restituer au caractère itemDelimiter la valeur d’une virgule (,) pour retourner à un fonctionnement normal. Cette fonction peut être testée et définie. Exemple Le gestionnaire suivant détermine le dernier élément d’un chemin d’accès Macintosh. Il enregistre d’abord le séparateur courant, puis lui donne la valeur de deux-points (:). Lorsque le séparateur est un deux-points, Lingo peut utiliser the last item of pour déterminer le dernier élément de la sous-chaîne constituant le chemin d’accès Macintosh. Avant de quitter le gestionnaire, le séparateur reprend sa valeur d’origine. on trouverDernierElément nomDuChemin ancien = the itemDelimiter the itemDelimiter = ":" f = the last item of nomDuChemin the itemDelimiter = ancien return f end kerning Syntaxe member(quelActeurTexte).kerning Description Propriété d’acteur texte ; spécifie si le crénage doit être automatiquement appliqué au texte lorsque le contenu de l’acteur texte est modifié. Lorsque cette propriété a pour valeur TRUE, le crénage est automatique. Lorsque sa valeur est FALSE, le crénage n’est pas appliqué. La valeur par défaut de cette propriété est TRUE. Voir aussi kerningThreshold kerningThreshold Syntaxe member(quelActeurTexte).kerningThreshold Description Propriété d’acteur texte ; permet de contrôler la taille à partir de laquelle le crénage est automatiquement appliqué à un acteur texte. Cette propriété n’a d’effet que lorsque la propriété kerning de l’acteur a pour valeur TRUE. 346 Sa valeur est un entier servant à indiquer la taille en points à partir de laquelle le crénage prend effet. Cette propriété a une valeur par défaut de 14 points. Voir aussi kerning key() Syntaxe the key Description Fonction ; indique la dernière touche sur laquelle l’utilisateur a appuyé. Cette valeur correspond à la valeur ANSI de la touche et non à sa valeur numérique. Vous pouvez utiliser la fonction the key dans les gestionnaires exécutant certaines actions lorsque l’utilisateur appuie sur des touches de raccourcis spécifiques ou d’autres formes d’interactivité. Dans le cas d’une utilisation dans un gestionnaire d’événement principal, les actions spécifiées sont les premières à être exécutées. Remarque La valeur de the key n’est pas mise à jour si l’utilisateur appuie sur une touche lorsque Lingo exécute une boucle de répétition. Utilisez l’animation Clavier et Lingo pour tester la correspondance des caractères des différentes touches sur différents claviers. Exemples Les instructions suivantes font revenir l’animation au repère du menu principal lorsque l’utilisateur appuie sur la touche Retour. Puisque la propriété keyDownScript est définie sur vérifierLaTouche, le gestionnaire on prepareMovie fait que le gestionnaire d’événement on vérifierLaTouche est exécuté en premier lorsque l’utilisateur appuie sur une touche. Le gestionnaire on vérifierLaTouche vérifie si la touche Retour a été enfoncée et, le cas échéant, revient au repère du menu principal. on prepareMovie the keyDownScript = "vérifierLaTouche" end prepareMovie on vérifierLaTouche if the key = RETURN then go to frame "Menu principal" end Le gestionnaire on keyDown suivant vérifie si la dernière touche enfoncée est la touche Entrée et, le cas échéant, appelle le gestionnaire additionnerLesNombres : on keyDown if the key = RETURN then additionnerLesNombres end keyDown Voir aussi commandDown, controlDown, keyCode(), optionDown 347 keyboardFocusSprite Syntaxe set the keyboardFocusSprite = numéroDimageObjetTexte Description Propriété système ; permet de concentrer les saisies de clavier (sans contrôler le point d’insertion du curseur) sur une image-objet texte spécifique affichée à l’écran. Elle équivaut à utiliser la touche Tab lorsque la propriété autoTab de l’acteur est sélectionnée. L’affectation de la valeur -1 à keyboardFocusSprite redonne le contrôle des saisies clavier au scénario, tandis que l’attribution de la valeur 0 désactive toute saisie clavier dans une image-objet modifiable. Voir aussi autoTab, editable keyCode() Syntaxe the keyCode Description Fonction ; indique le code numérique de la dernière touche sur laquelle l’utilisateur a appuyé. Ce code de clavier correspond à la valeur numérique de la touche et non à sa valeur ANSI. Remarque Lorsque l’animation est lue sous forme d’applet, cette fonction renvoie uniquement les valeurs des touches de fonction et des touches fléchées. Vous pouvez utiliser la fonction keyCode pour détecter si l’utilisateur a appuyé sur une touche fléchée ou une touche de fonction, qui ne peuvent pas être spécifiées à l’aide de la fonction key. Utilisez l’animation Clavier et Lingo pour tester la correspondance des caractères des différentes touches sur différents claviers. Cette fonction peut être testée, mais pas définie. Exemples Le gestionnaire suivant utilise la fenêtre Messages pour afficher le code approprié chaque fois que l’utilisateur appuie sur une touche : on enterFrame the keyDownScript = "put the keyCode" end L’instruction suivante vérifie si la flèche vers le haut (dont le code est 126) a été enfoncée et, le cas échéant, passe au repère précédent : if the keyCode = 126 then go to marker(-1) 348 Le gestionnaire suivant vérifie si l’une des touches fléchées a été enfoncée et, le cas échéant, répond en conséquence : on keyDown case (the keyCode) of 123: verslaGauche 126: enAvant 125: enArrière 124: verslaDroite end case end Voir aussi commandDown, controlDown, key(), optionDown on keyDown Syntaxe on keyDown instruction(s) end 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’imageobjet champ modifiable, script d’acteur champ, script d’image et script d’animation. Pour les images-objets 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. Director arrête la recherche dès qu’il rencontre le premier gestionnaire on keyDown, sauf si celui-ci 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 Lingo 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. Le lecteur Director pour Java ne répond aux messages keyDown que si l’animation est activée dans le navigateur. L’utilisateur doit cliquer dans l’applet pour que celle-ci puisse recevoir les touches sur lesquelles l’utilisateur appuie. 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. 349 • 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 : on keyDown if the key = RETURN then go to frame "additionnerLaSomme" end keyDown Voir aussi charToNum(), keyDownScript, keyUpScript, key(), keyCode(), keyPressed() keyDownScript Syntaxe the keyDownScript Description Propriété système ; spécifie le code Lingo exécuté lorsque l’utilisateur appuie sur une touche. Le code Lingo est rédigé sous forme d’une chaîne encadrée de guillemets droits et peut être une instruction simple ou un script d’appel d’un gestionnaire. Lorsque l’utilisateur appuie sur une touche et que la propriété keyDownScript est définie, Lingo exécute en premier les instructions spécifiées dans la propriété keyDownScript. A moins que les instructions ne contiennent la commande pass autorisant la transmission du message keyDown vers d’autres objets de l’animation, aucun autre gestionnaire on keyDown ne sera exécuté. La propriété keyDownScript produit le même résultat que la commande when keyDown then utilisée dans les versions précédentes de Lingo. Lorsque les instructions spécifiées pour la propriété keyDownScript ne sont plus appropriées, désactivez-les avec l’instruction set the keyDownScript to EMPTY. Exemples L’instruction suivante donne à keyDownScript la valeur if the key = RETURN then go to the frame + 1. Lorsque cette instruction est en vigueur, l’animation passe toujours à l’image suivante lorsque l’utilisateur appuie sur la touche Retour. the keyDownScript = "if the key = RETURN then go to the frame + 1" L’instruction suivante paramètre la propriété keyDownScript sur le gestionnaire personnalisé monGestionnairePersonnalisé. Un gestionnaire personnalisé doit être encadré de guillemets droits lorsque utilisé avec la propriété keyDownScript. the keyDownScript = "monGestionnairePersonnalisé" Voir aussi on keyDown, keyUpScript, mouseDownScript, mouseUpScript 350 keyframePlayer (modificateur) Syntaxe member(quelActeur).model(quelModèle).\ keyframePlayer.quellePropriétéKeyframePlayer Description Modificateur 3D ; gère l’utilisation des mouvements par les modèles. Les mouvements gérés par le modificateur keyframePlayer animent le modèle tout entier, alors que les mouvements bonesPlayer sont effectués segment par segment. Les mouvements et les modèles qui les utilisent doivent être créés dans un programme de modélisation 3D, exportés au format *.w3d, puis importés dans une animation. Les mouvements ne peuvent pas être appliqués aux primitives de modèle créées dans Director. L’ajout du modificateur keyframePlayer à un modèle à l’aide de la commande addModifier permet d’accéder aux propriétés suivantes du modificateur keyframePlayer : • • playing • currentTime indique la position, en millisecondes, du mouvement en cours de lecture ou en indique le mouvement d’un modèle. est une liste linéaire de listes de propriétés contenant les paramètres de lecture des mouvements d’un modèle en file d’attente. playList pause. • playRate est un nombre multiplié par le paramètre échelle de queue() pour déterminer la cadence de lecture du mouvement. • • • • playlist.count rootLock la commande play() ou renvoie le nombre de mouvement en file d’attente dans la liste de lecture. indique si le composant de translation du mouvement est utilisé ou ignoré. currentLoopState indique si le mouvement est lu une seule fois ou répété de façon continue. blendTime indique la durée de la transition créée par le modificateur entre les mouvements lorsque la propriété autoblend a pour valeur TRUE. • autoBlend • blendFactor indique le degré de fusion entre les mouvements lorsque la propriété autoBlend a pour valeur FALSE. • • lockTranslation • rotationReset indique l’élément de rotation d’une transition d’un mouvement à un autre ou indique si le modificateur crée une transition linéaire entre le mouvement en cours de lecture et le mouvement précédent. indique si le modèle peut être déplacé à partir des plans spécifiés. indique si le modèle retourne à sa position de départ à la fin du mouvement ou de chaque itération d’une boucle. positionReset de la boucle d’un seul mouvement. Remarque Pour plus d’informations, consultez les entrées des différentes propriétés. Le modificateur keyframePlayer utilise les commandes suivantes : • • • pause stoppe le mouvement du modèle en cours d’exécution. play() entraîne ou reprend l’exécution d’un mouvement. playNext() entraîne la lecture du mouvement suivant de la liste de lecture. 351 • queue() ajoute un mouvement à la fin de la liste de lecture. Le modificateur keyframePlayer génère les événements suivants, qui sont utilisés par les gestionnaires déclarés dans les commandes registerForEvent() et registerScript(). L’appel au gestionnaire déclaré contient trois arguments : le type d’événement (#animationStarted ou #animationEnded), le nom du mouvement, ainsi que sa position. Consultez l’entrée de registerForEvent() pour plus d’informations sur les événements de notification. #animationStarted est envoyé au début de la lecture d’un mouvement. Si la fusion est utilisée entre des mouvements, l’événement est envoyé au début de la transition. #animationEnded est envoyé à la fin d’un mouvement. Si la fusion est utilisée entre des mouvements, l’événement est envoyé à la fin de la transition. Voir aussi addModifier, modifiers, bonesPlayer (modificateur), motion keyPressed() Syntaxe the keyPressed keyPressed (codeDeLaTouche) keyPressed (chaîneDeCaractèresAscii) Description Fonction ; renvoie le caractère de la touche sur laquelle l’utilisateur a appuyé en dernier si aucun argument n’est utilisé. Le résultat est renvoyé sous forme de chaîne. Si l’utilisateur n’a appuyé sur aucune touche, the keyPressed est une chaîne vide. Si un argument est utilisé, entrez le code de la touche ou la chaîne ASCII qui lui correspond. Dans les deux cas, la valeur renvoyée est TRUE si la touche en question est enfoncée ou FALSE dans le cas contraire. Le lecteur Director pour Java ne supporte pas cette propriété. Par conséquent, une animation lue sous forme d’applet ne peut pas détecter la touche sur laquelle l’utilisateur a appuyé lorsque Lingo exécute une boucle de répétition. La propriété keyPressed est mise à jour chaque fois que l’utilisateur utilise le clavier alors que Lingo est dans une boucle de répétition. Ceci constitue un avantage par rapport à la fonction key, qui n’est pas mise à jour lorsque Lingo est dans une boucle de répétition. Utilisez l’animation Clavier et Lingo pour tester la correspondance des caractères des différentes touches sur différents claviers. Cette propriété peut être testée, mais pas définie. Exemples 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 : if the keyPressed = RETURN then 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 : if keyPressed(0) then put "La touche est enfoncée" 352 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 : if keyPressed("a") and keyPressed ("b") then put "Les touches sont enfoncées" Voir aussi keyCode(), key() on keyUp Syntaxe on keyUp instruction(s) end 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 Lingo 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. Le lecteur Director pour Java ne répond aux messages keyUp que si l’animation est activée dans le navigateur. L’utilisateur doit cliquer dans l’applet pour que celle-ci puisse recevoir les touches sur lesquelles l’utilisateur appuie. 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. 353 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. 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 : on keyUp if the key = RETURN then go to frame "additionnerLaSomme" end keyUp Voir aussi on keyDown, keyDownScript, keyUpScript keyUpScript Syntaxe the keyUpScript Description Propriété système ; spécifie le code Lingo exécuté lorsque l’utilisateur relâche une touche. Le code Lingo est rédigé sous forme d’une chaîne encadrée de guillemets droits et peut être une instruction simple ou un script d’appel d’un gestionnaire. Lorsque l’utilisateur relâche une touche et que la propriété keyUpScript est définie, Lingo exécute en premier les instructions spécifiées dans la propriété keyUpScript. A moins que les instructions ne contiennent la commande pass autorisant la transmission du message keyUp vers d’autres objets de l’animation, aucun autre gestionnaire on keyUp ne sera exécuté. Lorsque les instructions spécifiées dans la propriété keyUpScript ne sont plus appropriées, désactivez-les avec l’instruction set the keyUpScript to EMPTY. Exemples L’instruction suivante donne à keyUpScript la valeur if the key = RETURN then go to the frame + 1. Lorsque cette instruction est en vigueur, l’animation passe toujours à l’image suivante lorsque l’utilisateur appuie sur la touche Retour. the keyUpScript = "if the key = RETURN then go to the frame + 1" L’instruction suivante définit la propriété keyUpScript sur le gestionnaire personnalisé monGestionnairePersonnalisé. Un gestionnaire personnalisé doit être encadré de guillemets droits lorsque utilisé avec la propriété keyUpScript. the keyUpScript = "monGestionnairePersonnalisé" Voir aussi on keyUp 354 label() Syntaxe label(expression) Description Fonction ; indique l’image associée au repère spécifié par le terme expression. Le terme expression doit être le nom d’un repère de l’animation courante. Si ce n’est pas le cas, cette fonction renvoie 0. Exemples L’instruction suivante place la tête de lecture sur la dixième image après le repère intitulé Départ : go to label("Départ") + 10 L’instruction suivante affecte le numéro d’image du quatrième élément de la liste des repères à la variable quelleImage : quelleImage = label(the labelList.line[4]) Voir aussi go, frameLabel, labelList, marker(), play labelList Syntaxe the labelList Description Propriété système ; crée une liste des libellés d’images de l’animation courante sous forme de chaîne délimitée par des retours de chariot (et non de liste) contenant un libellé par ligne. Les libellés sont répertoriés en fonction de leur ordre dans le scénario. Les entrées de la liste étant délimitées par des retours chariot, la dernière ligne de la liste est une ligne vide. Assurez-vous de supprimer cette ligne vide si nécessaire. Exemples L’instruction suivante fait de la liste des libellés d’images le contenu de l’acteur champ Imagesclés : member("Images-clés").text = the labelList Le gestionnaire suivant détermine le libellé de l’image démarrant la scène en cours : on chercherDernierLibellé aa = label(0) repeat with i = 1 to (the labelList.line.count - 1) if aa = label(the labelList.line[i]) then return the labelList.line[i] end if end repeat end Voir aussi frameLabel, label(), marker() 355 last() Syntaxe the last sousChaîne of ( expressionSousChaîne ) the last sousChaîne in (expressionSousChaîne) Description Fonction ; identifie la dernière sous-chaîne de caractères spécifiée par sousChaîne dans l’expression spécifiée par expressionSousChaî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. Exemples 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. 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 lastChannel Syntaxe the lastChannel Description Propriété d’animation ; affiche le numéro de la dernière piste de l’animation, tel qu’il a été saisi dans la boîte de dialogue Propriétés de l’animation. Cette propriété peut être testée, mais pas définie. Vous pourrez voir un exemple de lastChannel dans une animation en consultant l’animation QT and Flash du dossier Learning/Lingo_Examples, lui-même dans le dossier de Director. Exemple L’instruction suivante affiche le numéro de la dernière piste de l’animation dans la fenêtre Messages : put the lastChannel 356 lastClick() Syntaxe 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. 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, startTimer lastError Syntaxe sprite(quelleImageObjet).lastError member(quelActeur).lastError Description Propriété d’acteur ou image-objet RealMedia ; permet d’obtenir le dernier symbole d’erreur renvoyé par RealPlayer, sous la forme d’un symbole Lingo. Les symboles d’erreur renvoyés par RealPlayer sont des chaînes simples, en anglais, qui fournissent le point de départ du processus de dépannage. Cette propriété est dynamique en cours de lecture et peut être testée, mais pas définie. La valeur #PNR_OK indique que tout fonctionne correctement. Exemples Les exemples suivants indiquent que la dernière erreur renvoyée par RealPlayer pour l’imageobjet 2 et l’acteur Real était #PNR_OUTOFMEMORY : put sprite(2).lastError -- #PNR_OUTOFMEMORY put member("Real").lastError -- #PNR_OUTOFMEMORY lastEvent() Syntaxe 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. 357 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, startTimer lastFrame Syntaxe the lastFrame Description Propriété d’animation ; affiche le numéro de la dernière image de l’animation. Cette propriété peut être testée, mais pas définie. Exemple L’instruction suivante affiche le numéro de la dernière image de l’animation dans la fenêtre Messages : put the lastFrame lastKey Syntaxe the lastKey Description Propriété système ; indique le nombre de battements (1 battement = 1/60ème de seconde) écoulés depuis que l’utilisateur a appuyé sur une touche. Exemple L’instruction suivante vérifie si 10 secondes se sont écoulées depuis que l’utilisateur a appuyé sur une touche et, le cas échéant, fait passer la tête de lecture sur le repère Pas de touche : if the lastKey > 10 * 60 then go to "Pas de touche" Voir aussi lastClick(), lastEvent(), lastRoll, startTimer lastRoll Syntaxe the lastRoll Description Propriété système ; indique le nombre de battements (1 battement = 1/60ème de seconde) écoulés depuis que l’utilisateur a déplacé la souris. 358 Exemple L’instruction suivante vérifie si 45 secondes se sont écoulées depuis le dernier déplacement de la souris et, le cas échéant, fait passer la tête de lecture au repère Boucle : if the lastRoll > 45 * 60 then go to "Boucle" Voir aussi lastClick(), lastEvent(), lastKey, startTimer left Syntaxe sprite(quelleImageObjet).left the left of sprite quelleImageObjet Description Propriété d’image-objet ; identifie la coordonnée horizontale gauche du rectangle de délimitation de l’image-objet spécifiée par quelleImageObjet. Les coordonnées d’images-objets sont exprimées en pixels, (0,0) correspond au coin supérieur gauche de la scène. Lorsqu’une animation est lue sous forme d’applet, la valeur de cette propriété est calculée à partir du côté gauche de l’applet. Cette propriété peut être testée et définie. Exemples L’instruction suivante détermine si le côté gauche de l’image-objet se trouve à gauche du côté gauche de la scène. Le cas échéant, le script exécute le gestionnaire débordementGauche : if sprite(3).left < 0 then débordementGauche L’instruction suivante mesure la coordonnée horizontale gauche de l’image-objet identifiée par le numéro (i + 1) et donne cette valeur à la variable vPlusbas : set vPlusbas = sprite (i + 1).left Voir aussi bottom, height, locH, locV, right, top, width left (3D) Syntaxe member(quelActeur).modelResource(quelleRessDeMod).left Description Propriété 3D de ressource de modèle #box ; indique si le côté de la boîte coupé par son axe des x négatif est fermé (TRUE) ou ouvert (FALSE). La valeur par défaut de cette propriété est TRUE. 359 Exemple L’instruction suivante donne à la propriété left de la ressource de modèle Caisse la valeur FALSE, ce qui signifie que le côté gauche de la caisse sera ouvert. member("Univers 3D").modelResource("Caisse").left = FALSE Voir aussi back, front, bottom (3D), top (3D), right (3D) leftIndent Syntaxe expressionSousChaîne.leftIndent Description Propriété d’acteur texte ; contient le décalage (exprimé en pixels) entre la marge gauche de la souschaîne spécifiée par expressionSousChaîne et le côté gauche de l’acteur texte. La valeur est un nombre entier supérieur ou égal à 0. Cette propriété peut être testée et définie. Exemple La ligne suivante met en retrait de 10 pixels la première ligne de l’acteur texte L’histoire : member("L’histoire").line[1].leftIndent = 10 Voir aussi firstIndent, rightIndent length() Syntaxe 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. Exemples 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 : if member("Nom de fichier").text.length > 31 then alert "Ce nom de fichier est trop long." end if Voir aussi chars(), offset() (fonction de chaîne) 360 length (3D) Syntaxe member(quelActeur).modelResource(quelleRessDeMod).length référenceDeVecteur.length Description Propriété 3D de ressource de modèle #box et #plane et de vecteur ; indique la longueur, en unités d’univers, de la boîte ou du plan. La longueur d’une boîte est mesurée sur son axe des z. La longueur par défaut de la boîte est 50. La longueur d’un plan est mesurée sur son axe des y. La longueur par défaut du plan est 1. La longueur d’un vecteur est sa distance, en unités d’univers, à partir de vector(0, 0, 0). Il s’agit de la magnitude du vecteur. Exemple L’instruction suivante donne à la variable maLongueurDeBoîte la longueur de la ressource de modèle boîteACadeau. maLongueurDeBoîte = member("Univers 3D").modelResource("boîteACadeau").length Voir aussi height (3D), width (3D), magnitude lengthVertices Syntaxe member(quelActeur).modelResource(quelleRessDeMod).\ lengthVertices Description Proprieté 3D de ressource de modèle #box et #plane ; indique le nombre de sommets de la maille le long de la longueur de la boîte ou du plan. L’augmentation de cette valeur augmente le nombre de faces et donc la précision de la maille. La longueur d’une boîte est mesurée sur son axe des z. La longueur d’un plan est mesurée sur son axe des y. Donnez à la propriété renderStyle du matériau d’un modèle la valeur #wire pour afficher toutes les faces de la maille de la ressource. Donnez à la propriété renderStyle la valeur #point pour n’afficher que les sommets de la maille. La valeur de cette propriété doit être supérieure ou égale à 2. La valeur par défaut est 4. Exemple L’instruction suivante donne à la propriété lengthVertices de la ressource de modèle Tour la valeur 10. Neuf triangles seront utilisés pour définir la géométrie de la ressource de modèle le long de son axe des y ; il y aura donc dix sommets. member("Univers 3D").modelResource("tour").lengthVertices = 10 Voir aussi length (3D) 361 level Syntaxe member(quelActeur).model(quelModèle).lod.level Description Propriété 3D de modificateur lod ; indique la quantité de détails supprimés par le modificateur lorsque sa propriété auto a pour valeur FALSE. La plage de cette propriété s’étend de 0.0 à 100.00. Lorsque la propriété auto du modificateur a pour valeur TRUE, la valeur de la propriété level est mise à jour de façon dynamique, mais ne peut pas être définie. Le modificateur #lod ne peut être ajouté qu’aux modèles créés dans un programme de modélisation 3D autre que Director. La valeur de la propriété type des ressources de modèle utilisées par ces modèles est #fromFile. Le modificateur ne peut pas être ajouté aux primitives créées dans Director. Exemple L’instruction suivante donne à la propriété level du modificateur lod du modèle vaisseauSpatial la valeur 50. Si la propriété auto du modificateur lod a pour valeur FALSE, vaisseauSpatial sera tracé avec un niveau de détail moyen. Si la propriété auto du modificateur lod a pour valeur TRUE, ce code n’aura aucun effet. member("Univers 3D").model("vaisseauSpatial").lod.level = 50 Voir aussi lod (modificateur), auto, bias lifetime Syntaxe member(quelActeur).modelResource(quelleRessDeMod).lifetime Description Propriété 3D de ressource de modèle #particle ; pour toutes les particules d’un système de particules, cette propriété indique le nombre de millisecondes entre la création d’une particule et la fin de son existence. La valeur par défaut de cette propriété est 10 000. Exemple Dans l’exemple suivant, systèmeThermique est une ressource de modèle de type #particle. L’instruction suivante donne à la propriété lifetime de systèmeThermique la valeur 90.0, ce qui signifie que chaque particule de systèmeThermique existera pendant 90 millisecondes. member(8,2).modelResource("systèmeThermique").lifetime = 90.0 Voir aussi emitter 362 light Syntaxe 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. Vous trouverez une liste complète des propriétés et commandes de lumières dans Chapitre 2, Lingo 3D par fonction, page 33. 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 line...of Syntaxe 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. Exemples 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] 363 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 (mots) lineColor Syntaxe member(quelActeur).model(quelModèle).inker.lineColor member(quelActeur).model(quelModèle).toon.lineColor Description Propriété 3D de modificateur toon et inker ; indique la couleur des lignes tracées sur le modèle par le modificateur. Pour que cette propriété ait un effet, la propriété creases, silhouettes ou boundary, du modificateur doit avoir pour valeur TRUE. La valeur par défaut de cette propriété est rgb(0, 0, 0). Exemple L’instruction suivante donne à la couleur de toutes les lignes tracées par le modificateur toon sur le modèle Théière la valeur rgb(255, 0, 0), ce qui correspond à la couleur rouge. member("formes").model("Théière").toon.lineColor = rgb(255, 0, 0) Voir aussi creases, silhouettes, boundary, lineOffset lineCount Syntaxe member(quelActeur).lineCount the lineCount of member quelActeur Description Propriété d’acteur ; indique le nombre de lignes qui apparaissent dans l’acteur champ sur la scène en fonction des retours à la ligne automatiques et non du nombre de retours de chariot que contient la chaîne. Exemple L’instruction suivante détermine le nombre de lignes de l’acteur champ Nouvelles du jour lorsqu’il apparaît sur la scène et affecte cette valeur à la variable nombreDeLignes : NombreDeLignes = member("Nouvelles du jour").lineCount lineDirection Syntaxe member(quelActeur).lineDirection Description Propriété d’acteur forme ; utilise 0 ou 1 pour indiquer l’inclinaison de la ligne dessinée. 364 Si la ligne s’élève de gauche à droite, la valeur de cette propriété est 1. Si la ligne s’abaisse de gauche à droite, sa valeur est 0. Cette propriété peut être testée et définie. Exemple Le gestionnaire suivant inverse l’inclinaison de la ligne de l’acteur laLigne, produisant un effet de balancier : on Balancier member("laLigne").lineDirection = \ not member("laLigne").lineDirection end lineHeight() (fonction) Syntaxe member(quelActeur).lineHeight(numéroDeLigne) lineHeight(member quelActeur, numéroDeLigne) Description Fonction ; renvoie la hauteur, en pixels, d’une ligne spécifique de l’acteur champ spécifié. Exemple L’instruction suivante 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 : titre = member("Nouvelles du jour").lineHeight(1) lineHeight (propriété d’acteur) Syntaxe member(quelActeur).lineHeight the lineHeight of member quelActeur Description Propriété d’acteur ; détermine l’interligne utilisé pour afficher l’acteur champ spécifié. Le paramètre quelActeur peut être un nom ou un numéro d’acteur. La définition de la propriété d’acteur lineHeight annule temporairement le paramètre du système jusqu’à la fermeture de l’animation. Pour utiliser l’interligne souhaité dans l’animation entière, définissez la propriété lineHeight dans un gestionnaire on prepareMovie. Cette propriété peut être testée et définie. Exemple L’instruction suivante donne à la variable ancienneHauteur la valeur lineHeight actuelle de l’acteur Pierre : ancienneHauteur = member("Pierre").lineHeight Voir aussi text, alignment, font, fontSize, fontStyle 365 lineOffset Syntaxe member(quelActeur).model(quelModèle).toon.lineOffset member(quelActeur).model(quelModèle).inker.lineOffset Description Propriété 3D de modificateur toon et inker ; indique la distance apparente à laquelle les lignes sont tracées par le modificateur à partir de la surface du modèle. Pour que cette propriété ait un effet, la propriété useLineOffset du modificateur doit avoir pour valeur TRUE et une ou plusieurs de ses propriétés creases, silhouettes ou boundary doit également avoir pour valeur TRUE. La plage de cette propriété s’étend de -100.00 à +100.00. Son paramètre par défaut est -2.0. Exemple L’instruction suivante donne à la propriété lineOffset du modificateur toon du modèle Théière la valeur 10. Les lignes tracées par le modificateur toon à la surface du modèle seront plus apparentes qu’avec la valeur par défaut de -2. member("formes").model("Théière").toon.lineOffset = 10 Voir aussi creases, silhouettes, boundary, useLineOffset, lineColor linePosToLocV() Syntaxe member(quelActeur).linePosToLocV(numéroDeLigne ) linePosToLocV(member quelActeur, 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é. Exemple L’instruction suivante 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 : débutDeChaîne = member("Nouvelles du jour").linePosToLocV(2) lineSize Syntaxe member(quelActeur).lineSize the lineSize of member quelActeur sprite quelleImageObjet.lineSize the lineSize of sprite quelleImageObjet Description Propriété d’acteur forme ; détermine l’épaisseur, en pixels, de la bordure de l’acteur forme spécifié sur la scène. Pour les formes non rectangulaires, la bordure correspond au bord de la forme même et non à son rectangle de délimitation. 366 La propriété lineSize de l’image-objet annule la valeur lineSize de l’acteur. Si Lingo modifie la valeur de la propriété lineSize de l’acteur alors que son image-objet se trouve sur la scène, la valeur de la propriété lineSize de cette dernière reste inchangée tant que l’image-objet est présente. Pour que la valeur définie par Lingo dure au-delà de l’image-objet courante, celle-ci doit être asservie. Cette propriété peut être testée et définie. Exemples L’instruction suivante donne à l’épaisseur de l’acteur forme Champ de réponse une valeur de 5 pixels : member("Champ de réponse").lineSize = 5 L’instruction suivante affiche l’épaisseur de la bordure de l’image-objet 4 : épaisseur = sprite(4).lineSize L’instruction suivante donne à l’épaisseur de la bordure de l’image-objet 4 une valeur de 3 pixels : sprite(4).lineSize = 3 linkAs() Syntaxe 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, animation Shockwave ou animation Java. Ceci diffère des autres médias liés, qui restent externes à l’animation, à moins que vous ne les importiez explicitement. 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 linked Syntaxe member(quelActeur).linked the linked of member quelActeur Description Propriété d’acteur ; contrôle si un script, une animation Flash ou un fichier GIF animé est stocké dans un fichier externe (TRUE, valeur par défaut) ou dans la distribution Director (FALSE). Lorsque les données sont stockées dans un fichier externe, la propriété pathName de l’acteur doit indiquer l’emplacement du fichier de l’animation. Cette propriété peut être testée et définie pour les acteurs script, Flash et GIF. Elle peut être testée pour tous les types d’acteurs. 367 Exemple L’instruction suivante convertit l’acteur Flash Amis provenant d’un acteur lié, en un acteur stocké dans un fichier interne : member("amis").linked = 0 Voir aussi fileName (propriété d’acteur), pathName (propriété d’acteur) list() Syntaxe list(valeur1, valeur2, valeur3...) Description Fonction et type de données ; définit une liste linéaire composée des valeurs spécifiées par valeur1, valeur2, valeur3, etc. Permet de créer une liste sans utiliser de crochets d’accès ([ ]). La longueur maximale d’une ligne de code Lingo exécutable est de 256 caractères. Cette commande ne permet pas de listes très longues. Si vous avez une quantité importante de données à inclure dans une liste, encadrez-les de crochets et placez-les dans un champ. Vous pourrez ensuite affecter ce champ à une variable. Le contenu de cette variable deviendra une liste de données. Exemple L’instruction suivante associe la variable Designers à une liste linéaire contenant les noms Jean, Pierre et Marc : Designers = list("Jean", "Pierre", "Marc") Le résultat est la liste ["Jean", "Pierre", "Marc"]. Voir aussi integer(), integerP(), value() listP() Syntaxe listP(élément) Description Fonction ; indique si l’élément spécifié par élément est une liste, un rectangle ou un point (1 ou TRUE) ou non (0 ou FALSE). 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() 368 loaded Syntaxe member(quelActeur).loaded the loaded of member quelActeur Description Propriété d’acteur ; indique si l’acteur spécifié par quelActeur est chargé en mémoire (TRUE) ou non (FALSE). Les types d’acteurs existants se comportent de manière légèrement différente lors de leur chargement : • Les acteurs forme et script sont toujours chargés en mémoire. • Les acteurs animation ne sont jamais purgés de la mémoire. • Les acteurs vidéo numérique peuvent être préchargés en mémoire et purgés de la mémoire indépendamment de leur utilisation. La lecture d’un acteur vidéo numérique chargé en mémoire est plus rapide que lorsqu’il est chargé à partir du disque dur. Cette propriété peut être testée, mais pas définie. Exemple L’instruction suivante vérifie si l’acteur Démonstration est chargé en mémoire et passe à une autre image si ce n’est pas le cas : if member("Démonstration").loaded = FALSE then go to movie("Attente")" Voir aussi preLoad (commande), ramNeeded(), size, unLoad loadFile() Syntaxe member(quelActeur).loadFile(nomDeFichier {, écraser?, \ générerDesNomsUniques?}) Description Commande d’acteur 3D ; importe les actifs du fichier *.w3d, nomDeFichier, dans l’acteur. Le paramètre facultatif écraser? 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. Si le paramètre facultatif générerDesNomsUniques? 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é. Si générerDesNomsUniques? a pour valeur FALSE, les éléments de l’acteur seront remplacés par les éléments correspondants du même nom dans le fichier *.w3d. La valeur par défaut de générerDesNomsUniques? est TRUE. La propriété state de l’acteur doit avoir pour valeur –1 (erreur) ou 4 (chargé) avant l’utilisation de la commande loadFile. 369 Exemples 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) loc Syntaxe sprite quelleImageObjet.loc the loc of sprite quelleImageObjet Description Propriété d’image-objet ; détermine les coordonnées sur la scène du point d’alignement de l’image-objet spécifiée. La valeur est exprimée sous forme d’un point. Cette propriété peut être testée et définie. Vous pourrez voir un exemple de loc dans une animation en consultant l’animation Imaging du dossier Learning/Lingo_Examples, lui-même dans le dossier de Director. Exemple L’instruction suivante vérifie les coordonnées sur la scène de l’image-objet 6. Le résultat est le point (50, 100) : put sprite(6).loc -- point(50, 100) Voir aussi bottom, height, left, locH, locV, right, top, width loc (fond et recouvrement) Syntaxe sprite(quelleImageObjet).camera{(index)}.backdrop[index].loc member(quelActeur).camera(quelleCaméra).backdrop[index].loc sprite(quelleImageObjet).camera{(index)}.overlay[index].loc member(quelActeur).camera(quelleCaméra).overlay[index].loc Description Propriété 3D de fond et de recouvrement ; indique l’emplacement 2D du fond ou recouvrement, mesuré à partir du coin supérieur gauche de l’image-objet. Cette propriété est à l’origine définie comme paramètre de la commande addBackdrop, addOverlay, insertBackdrop ou insertOverlay, qui crée le fond ou le recouvrement. 370 Exemple L’instruction suivante positionne le premier fond de la caméra de l’image-objet 2. sprite(2).camera.backdrop[1].loc = point(120, 120) Voir aussi bevelDepth, overlay, regPoint (3D) locH Syntaxe sprite(quelleImageObjet).locH the locH of sprite quelleImageObjet Description Propriété d’image-objet ; indique la position horizontale du point d’alignement de l’image-objet spécifiée. Les coordonnées des images-objets sont calculées par rapport au coin supérieur gauche de la scène. Cette propriété peut être testée et définie. Pour que la valeur définie par Lingo dure au-delà de l’image-objet courante, celle-ci doit être asservie. Exemples L’instruction suivante vérifie si la position horizontale du point d’alignement de l’image-objet 9 se trouve à droite du bord droit de la scène et, le cas échéant, place le bord droit de l’image-objet sur le bord de la scène : if sprite(9).locH > (the stageRight - the stageLeft) then sprite(9).locH = 0 end if L’instruction suivante place l’image-objet 15 à l’emplacement horizontal auquel l’utilisateur a cliqué : sprite(15).locH = the mouseH Voir aussi bottom, height, left, loc, locV, point(), right, top, updateStage, width locToCharPos() Syntaxe member(quelActeur). locToCharPos(emplacement ) locToCharPos(member quelActeur, emplacement) Description Fonction ; renvoie le numéro du caractère de l’acteur champ spécifié qui est le plus proche du point spécifié par emplacement. La valeur de emplacement est un point calculé par rapport au coin supérieur gauche de l’acteur champ. 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. 371 Exemples 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. miseEnPage = member("Nouvelles du jour").locToCharPos(point(100, 100)) Le gestionnaire suivant indique le caractère qui se trouve sous le curseur lorsque l’utilisateur clique sur l’image-objet champ Informations : on mouseDown put member("Informations").locToCharPos(the clickLoc - \ (sprite(the clickOn).loc)) end lockTranslation Syntaxe member(quelActeur).model(quelModèle).bonesPlayer.\ lockTranslation member(quelActeur).model(quelModèle).keyframePlayer.\ lockTranslation Description Propriété 3D de modificateur #bonesPlayer et #keyframePlayer ; empêche le déplacement du ou des plans spécifiés, sauf dans le cas d’une translation absolue des données de mouvement. Toute translation supplémentaire ajoutée manuellement ou suite à une accumulation d’erreurs sera supprimée. Les valeurs possibles #none, #x, #y, #z, #xy, #yz, #xz et #all indiquent, parmi les trois composants de translation, celui ou ceux qui sont contrôlés pour chaque image. Lorsqu’un verrou est activé sur un axe, le déplacement courant le long de cet axe est enregistré et utilisé ensuite comme déplacement fixé pour l’animation. Ce déplacement peut être réinitialisé en désactivant ce verrou d’axe, en déplaçant l’objet, puis en réactivant le verrou. En d’autres termes, il définit l’axe de translation à ignorer à la lecture d’un mouvement. Pour conserver un modèle verrouillé sur un plan horizontal, avec le sommet le long de l’axe des z, donnez à lockTranslation la valeur #z. La valeur par défaut de cette propriété est #none. Exemple L’instruction suivante donne à la propriété lockTranslation du modèle Marcheur la valeur #z. member("Parc").model("Marcheur").bonesPlayer.\ lockTranslation = #z Voir aussi immovable locV Syntaxe sprite(quelleImageObjet).locV the locV of sprite quelleImageObjet Description Propriété d’image-objet ; indique la position verticale du point d’alignement de l’image-objet spécifiée. Les coordonnées des images-objets sont calculées par rapport au coin supérieur gauche de la scène. 372 Cette propriété peut être testée et définie. Pour que la valeur définie par Lingo dure au-delà de l’image-objet courante, celle-ci doit être asservie. Exemple L’instruction suivante vérifie si la position verticale du point d’alignement de l’image-objet 9 se trouve en dessous du bas de la scène et, le cas échéant, déplace l’image-objet vers le haut de la scène : if sprite(9).locV > (the stageBottom - the stageTop) then sprite(9).locV = 0 end if Exemple L’instruction suivante place l’image-objet 15 à la position verticale où l’utilisateur a cliqué : sprite(15).locV = the mouseV Voir aussi bottom, height, left, loc, locH, point(), right, top, updateStage, width locVToLinePos() Syntaxe member(quelActeur).locVToLinePos(emplacementV ) locVToLinePos(member quelActeur, emplacementV) Description Fonction; renvoie le numéro de la ligne de caractères apparaissant à la position verticale spécifiée par emplacementV. La valeur de emplacementV représente le nombre de pixels depuis le haut de l’acteur champ et non depuis la partie de l’acteur champ affichée sur la scène. Exemple L’instruction suivante détermine la ligne de caractères apparaissant à 150 pixels du haut de l’acteur Nouvelles du jour et affecte le résultat à la variable sautDePage : sautDePage = member("Nouvelles du jour").locVToLinePos(150) locZ of sprite Syntaxe sprite(quelleImageObjet).locZ Description Propriété d’image-objet ; spécifie l’ordre z dynamique d’une image-objet, permettant de contrôler les différentes couches d’images-objets sans avoir à manipuler les pistes ou les propriétés de ces images-objets. Cette propriété peut être testée et définie. Cette propriété peut avoir pour valeur un nombre entier allant de - 2 milliards à + 2 milliards. Les nombres élevés font apparaître l’image-objet devant les images-objets dont la valeur est inférieure. Lorsque deux images-objets possèdent la même valeur locZ, le numéro de piste détermine l’ordre d’affichage de ces deux images-objets. Cela signifie que les images-objets des pistes dont les numéros sont les plus bas apparaissent derrière les images-objets possédant un numéro de piste plus élevé et ce, même lorsque leurs valeurs locZ sont égales. Par défaut, la valeur locZ des images-objets est égale à leur numéro de piste. 373 Les opérations impliquant des couches, telles que la détection d’un clic ou les événements souris, étant régies par la valeur locZ des images-objets, la modification de la valeur locZ d’une imageobjet peut rendre cette dernière partiellement ou complètement masquée par d’autres imagesobjets, ce qui empêcherait l’utilisateur de cliquer dessus. D’autres fonctions de Director ne suivent par la valeur locZ des images-objets. Les événements démarrent toujours dans la piste 1 et passent par les pistes suivantes, quel que soit l’ordre Z des images-objets. Exemple Le gestionnaire suivant utilise une variable globale appelée gImageObjetPlusElevée qui a été initialisée dans le gestionnaire startMovie en fonction du nombre d’images-objets utilisées. Lorsque vous cliquez sur l’image-objet, sa valeur locZ est définie sur gImageObjetPlusElevée + 1, qui déplace l’image-objet au premier plan de la scène. La valeur gImageObjetPlusElevée est ensuite incrémentée de 1 pour préparer au prochain appel de mouseUp. on mouseUp me global gImageObjetPlusElevée sprite(me.spriteNum).locZ = gImageObjetPlusElevée + 1 gImageObjetPlusElevée = gImageObjetPlusElevée + 1 end Voir aussi locH, locV lod (modificateur) Syntaxe member(quelActeur).model(quelModèle).lod.propriétéDeModificateurLod Description Modificateur 3D ; supprime de façon dynamique les détails des modèles, au fur et à mesure que ces derniers s’éloignent de la caméra. Ce modificateur ne peut être ajouté qu’aux modèles créés dans un programme de modélisation 3D autre que Director. La valeur de la propriété type des ressources de modèle utilisées par ces modèles est #fromFile. De tels modèles utilisent tous la réduction des détails, que le modificateur lod y soit associé ou non. L’association du modificateur vous permet de contrôler les propriétés de réduction des détails. Le modificateur ne peut pas être ajouté aux primitives créées dans Director. Les données du modificateur lod sont générées par les programmes de modélisation 3D pour tous les modèles. La définition de la propriété de userData à "sw3d_no_lod = true" vous permet de spécifier que les données du modificateur lod et la mémoire soit libérées lorsque la lecture en flux continu est terminée. Faites attention lorsque vous utilisez les modificateurs sds et lod de concert étant donné qu’ils ont des fonctions opposées (le modificateur sds ajoute des détails géométriques alors que le modificateur lod les supprime). Il est recommandé, avant d’ajouter le modificateur sds, de désactiver la propriété lod.auto et de choisir la résolution maximum pour la propriété lod.level, comme suit : member("monActeur").model("monModèle").lod.auto = 0 member("monActeur").model("monModèle").lod.level = 100 member("monActeur").model("monModèle").addmodifier(#sds) 374 Le modificateur lod a les propriétés suivantes : • permet au modificateur de définir le niveau de réduction des détails au fur et à mesure que la distance entre le modèle et la caméra change. La valeur de la propriété level du modificateur est mise à jour, mais la définition de la propriété level n’a aucun effet lorsque la propriété auto a pour valeur TRUE. • bias • level indique le niveau de réduction des détails lorsque la propriété auto du modificateur a pour valeur FALSE. La plage de cette propriété s’étend de 0.0 à 100.00. auto indique dans quelle mesure le modificateur supprime les détails du modèle lorsque sa propriété auto a pour valeur TRUE. La plage de cette propriété s’étend de 0.0 (qui supprime tous les polygones) à 100.0 (qui ne supprime aucun polygone). Le paramètre par défaut de cette propriété est 100.0. Remarque Pour plus d’informations, consultez les entrées des différentes propriétés. Voir aussi sds (modificateur), auto, bias, level, addModifier log() Syntaxe log(nombre) Description Fonction mathématique ; calcule le logarithme naturel du nombre spécifié par nombre, qui doit être un nombre décimal 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 en affecte le résultat à la variable Réponse. Réponse = log(Nombre.sqrt) long Consultez date() (horloge du système), time() loop (propriété d’acteur) Syntaxe member(quelActeur).loop Description Propriété 3D d’acteur ; indique si la lecture des mouvements appliqués au premier modèle de l’acteur est répétée (TRUE) ou si elle s’arrête après avoir eu lieu une fois (FALSE). Le paramètre par défaut de cette propriété est TRUE. 375 Exemple L’instruction suivante donne à la propriété loop de l’acteur Marcheurs la valeur TRUE. Les mouvements exécutés par le premier modèle de Marcheurs seront lus de façon répétée. member("Marcheurs").loop = TRUE Voir aussi motion, play() (3D), queue() (3D), animationEnabled loop (émetteur) Syntaxe member(quelActeur).modelResource(quelleRessDeMod).\ emitter.loop Description Propriété 3D ; utilisée avec une ressource de modèle de type #particle, cette propriété permet d’obtenir et de définir ce qu’il advient des particules à la fin de leur vie. Une valeur de boucle de TRUE entraîne la « résurrection » des particules, à l’emplacement défini par la propriété region de l’émetteur. Une valeur de FALSE entraîne la mort des particules à la fin de la durée prévue. Le paramètre par défaut de cette propriété est TRUE. Exemple Dans l’exemple suivant, systèmeThermique est une ressource de modèle de type #particle. L’instruction suivante donne à la propriété emitter.loop de systèmeThermique la valeur 1, ce qui entraîne l’émission continue des particules de systèmeThermique. member("Feux").modelResource("systèmeThermique").emitter.loop = 1 Voir aussi emitter loop (mot-clé) Syntaxe loop Description Mot-clé ; fait référence au repère. Le mot-clé loop, lorsque utilisé avec la commande go to, équivaut à l’instruction go to the marker. Exemple Le gestionnaire suivant fait boucler l’animation entre le repère précédent et l’image courante : on exitFrame go loop end exitFrame 376 loop (propriété d’acteur) Syntaxe member(quelActeur).loop the loop of member quelActeur Description Propriété d’acteur ; détermine si l’acteur vidéo numérique, audio ou animation Flash spécifié doit être exécuté en boucle (TRUE) ou non (FALSE). Exemple L’instruction suivante fait boucler l’acteur séquence QuickTime Démo : member("Démo").loop = 1 loop (propriété Flash) Syntaxe sprite(quelleImageObjetFlash).loop the loop of sprite quelleImageObjetFlash member (quelActeurFlash).loop the loop of member quelActeurFlash Description Propriété d’image-objet et d’acteur Flash ; contrôle si une animation Flash sera lue en boucle continue (TRUE) ou ne sera lue qu’une fois avant de s’arrêter (FALSE). Cette propriété peut être testée et définie. Exemple Le script d’image suivant vérifie la progression du téléchargement d’un acteur animation Flash appelé NetFlash dans la piste 5 en utilisant la propriété percentStreamed. Pendant le téléchargement de NetFlash, l’animation exécute une lecture en boucle de l’image courante. Une fois le téléchargement de NetFlash terminé, l’animation passe à l’image suivante et la propriété loop de l’animation Flash de la piste 6 reçoit la valeur FALSE pour permettre la lecture de l’animation jusqu’à la fin avant son arrêt (l’image-objet est lue en boucle pendant le téléchargement de NetFlash). on exitFrame if member("NetFlash").percentStreamed = 100 then sprite(6).loop = FALSE go the frame + 1 end if go the frame end loopBounds Syntaxe sprite(quelleImageObjetQuickTime).loopBounds the loopBounds of sprite quelleImageObjetQuickTime Description Propriété d’image-objet QuickTime ; définit les points de boucle internes d’un acteur ou d’une image-objet QuickTime. Les points de la boucle sont spécifiés sous forme de liste Director : [positionDeDépart, positionDeFin]. 377 Les paramètres positionDeDépart et positionDeFin doivent répondre aux exigences suivantes : • Ils doivent tous deux être des nombres entiers spécifiant le temps en nombre de battements Director. • Leurs valeurs doivent être comprises entre 0 et la durée de l’acteur QuickTime. • La position de départ doit être inférieure à la position de fin. Si les exigences ci-dessus ne sont pas satisfaites, l’animation QuickTime est lue en boucle pendant sa durée complète. La propriété loopBounds n’a aucun effet lorsque la propriété loop de l’animation a la valeur Si la propriété loop est définie sur TRUE pendant la lecture de l’animation, la lecture se poursuit. Director utilise les règles suivantes pour décider de la lecture en boucle de l’animation : FALSE. • Lorsque la position de fin spécifiée par loopBounds est atteinte, l’animation est relue en boucle à partir de la position de départ. • Lorsque la fin de l’animation est atteinte, l’animation est relue en boucle à partir de son début. Si la propriété loop est désactivée pendant la lecture de l’animation, la lecture se poursuit. Director arrête la lecture lorsqu’il atteint la fin de l’animation. Cette propriété peut être testée et définie. La valeur par défaut est [0,0]. Exemple Le script d’image-objet suivant définit les positions de départ et de fin de la boucle à l’intérieur d’une image-objet QuickTime. Ces positions sont exprimées en secondes et sont ensuite converties en battements (multiplication par 60). on beginSprite me sprite(me.spriteNum).loopBounds = [(16 * 60),(32 * 60)] end loopCount Syntaxe sound(numéroDePiste).loopCount the loopCount of sound numéroDePiste Description Propriété d’acteur ; définit le nombre d’occurrences de lecture en boucle du son courant de la piste audio numéroDePiste. La valeur par défaut est 1 pour les sons simplement placés en file d’attente et ne contenant pas de boucle interne. Vous pouvez définir la lecture en boucle d’une partie d’un son en passant les paramètres et loopCount avec la commande queue() ou setPlayList(). Il s’agit là des seules méthodes permettant de définir cette propriété. loopStartTime, loopEndTime Si la valeur loopCount est définie sur 0, la boucle se répète à l’infini. Si la propriété de boucle de l’acteur son est définie sur TRUE, la valeur loopCount revient à 0. 378 Exemple Le gestionnaire suivant place en file d’attente et lit deux sons dans la piste audio 2. Le premier son, l’acteur intro, est exécuté cinq fois sur une durée comprise entre 8 et 8,9 secondes. Le second son, l’acteur Crédits, est exécuté trois fois en boucle. Toutefois, aucune valeur #loopStartTime ni #loopEndTime n’étant définie, ces valeurs passent respectivement par défaut à #startTime et #endTime. on lireLaMusique sound(2).queue([#member:member("intro"), #startTime:3000,\ #loopCount:5,#loopStartTime:8000, #loopEndTime:8900]) sound(2).queue([#member:member("Crédits"), #startTime:3000,\ #endTime:8000, #loopCount:3]) sound(2).play() end Exemple Le gestionnaire suivant affiche un message d’alerte indiquant le nombre de lectures en boucle de l’acteur son 2. Si aucune boucle n’a été définie dans le son courant de la piste audio 2, la valeur sound(2).loopCount repasse à 1. on afficherLeNombreDeBoucles alert "La boucle de ce son est lue" && sound(2).loopCount && "fois." end Voir aussi breakLoop(), setPlaylist(), loopEndTime, loopsRemaining, loopStartTime, queue() loopEndTime Syntaxe sound(numéroDePiste).loopEndTime the loopEndTime of sound numéroDePiste Description Propriété audio ; position temporelle de fin, en millisecondes, de la boucle définie dans le son courant de la piste audio numéroDePiste. Il s’agit d’une valeur à virgule flottante, permettant de mesurer et de contrôler la lecture du son en fraction de millisecondes. Cette propriété ne peut être définie que si elle est passée comme propriété dans une commande queue() ou setPlaylist(). Exemple Le gestionnaire suivant lit l’acteur son Intro sur la piste audio 2. La lecture est exécutée cinq fois en boucle entre le point 8 secondes et le point 8,9 secondes du son. on lireLaMusique sound(2).play([#member:member("Intro"), #startTime:3000,\ #loopCount:5,#loopStartTime:8000, #loopEndTime:8900]) end 379 Exemple Le gestionnaire suivant entraîne l’affichage de Qu’est-ce que c’est que ce truc ? dans le champ texte Au secours lorsque la valeur currentTime de la piste audio 2 est comprise entre les valeurs loopStartTime et loopEndTime. on idle if sound(2).currentTime > sound(2).loopStartTime and \ sound(2).currentTime < sound(2).loopEndTime then member("Cris").text = "Au secours!" else member("Tim").text = "Qu’est-ce que c’est que ce truc ?" end if end Voir aussi breakLoop(), getPlaylist(), loopCount, loopsRemaining, loopStartTime, queue() loopsRemaining Syntaxe sound(numéroDePiste).loopsRemaining the loopsRemaining of sound(numéroDePiste) Description Propriété en lecture seule ; nombre d’occurrences restantes de lecture en boucle du son courant sur la piste audio numéroDePiste. Si aucune lecture en boucle n’a été définie lors de son placement en file d’attente, cette propriété a une valeur de 0. Si cette propriété est testée immédiatement après le départ de la lecture d’un son, elle renvoie un nombre inférieur de 1 par rapport à celui défini dans la propriété #loopCount de la commande queue() ou setPlayList(). Voir aussi breakLoop(), loopCount, loopEndTime, loopStartTime, queue() loopStartTime Syntaxe sound(numéroDePiste).loopStartTime the loopStartTime of sound(numéroDePiste) Description Propriété d’acteur ; position temporelle de début, en millisecondes, de la boucle définie pour le son courant lu par l’objetAudio. Il s’agit d’une valeur à virgule flottante, permettant de mesurer et de contrôler la lecture du son en fraction de millisecondes. La valeur par défaut est la position de départ startTime du son si aucune boucle n’est définie. Cette propriété ne peut être définie que si elle est passée comme propriété dans une commande queue() ou setPlaylist(). Exemple Le gestionnaire suivant lit l’acteur son Intro sur la piste audio 2. La lecture est exécutée cinq fois en boucle entre le point 8 secondes et le point 8,9 secondes du son. on lireLaMusique sound(2).play([#member:member("Intro"), #startTime:3000,\ #loopCount:5,#loopStartTime:8000, #loopEndTime:8900]) end 380 Exemple Le gestionnaire suivant entraîne l’affichage de Qu’est-ce que c’est que ce truc ? dans le champ texte Au secours lorsque la valeur currentTime de la piste audio 2 est comprise entre les valeurs loopStartTime et loopEndTime : on idle if sound(2).currentTime > sound(2).loopStartTime and \ sound(2).currentTime < sound(2).loopEndTime then member("Cris").text = "Au secours!" else member("Tim").text = "Qu’est-ce que c’est que ce truc ?" end if end Voir aussi breakLoop(), setPlaylist(), loopCount, loopEndTime, loopsRemaining, queue() 381 382 magnitude Syntaxe quelVecteur.magnitude Description Propriété 3D ; renvoie la magnitude d’un vecteur. La valeur est un nombre à virgule flottante. L’amplitude est la longueur d’un vecteur et est toujours supérieure ou égale à 0.0 (vector (0, 0, 0) est égal à 0). Exemple L’instruction suivante indique que l’amplitude de monVecteur1 est 100.0000 et celle de monVecteur2 est 141.4214. monVecteur1 = vector(100, 0, 0) put monVecteur1.magnitude -- 100.0000 monVecteur2 = vector(100, 100, 0) put monVecteur2.magnitude -- 141.4214 Voir aussi length (3D), identity() makeList() Syntaxe objetDanalyse.makeList() Description Fonction ; renvoie une liste de propriétés basée sur le document XML analysé à l’aide de parseString() ou parseURL(). Exemple Le gestionnaire suivant analyse un document XML et renvoie la liste résultante : 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 " && errorString exit end if return listeAnalysée end Voir aussi makeSubList() 383 makeSubList() Syntaxe 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. Exemple Avec le code XML suivant : <?xml version="1.0"?> <e1> <nomDeBalise attr1="val1" attr2="val2"/> <e2>élément 2</e2> <e3>élément 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() map() Syntaxe 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. 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’imageobjet 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 384 map (3D) Syntaxe member(quelActeur).motion(quelMouvement).\ map(quelAutreMouvement{, nomDeSegment}) Description Commande 3D de mouvement ; mappe le mouvement spécifié par quelAutreMouvement au mouvement courant (quelMouvement) et l’applique au segment spécifié par nomDeSegment et à tous ses enfants. 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. Le paramètre nomDeSegment prend par défaut la valeur du segment racine si aucun segment n’est spécifié. 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() Syntaxe 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. Voir aussi map(), mapStageToMember() 385 mapStageToMember() Syntaxe 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’image-objet 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. Voir aussi map(), mapMemberToStage() margin Syntaxe member(quelActeur).margin the margin of member quelActeur Description Propriété d’acteur champ : détermine la taille, en pixels, de la marge à l’intérieur de la case du champ. Exemple L’instruction suivante définit la marge de la case de l’acteur champ Nouvelles du Jour sur 15 pixels : member("Nouvelles du Jour").margin = 15 marker() Syntaxe marker(expressionNombreEntier) marker("chaîne") Description Fonction ; renvoie le numéro des repères situés avant et après l’image courante. Elle est utile pour implémenter un bouton Suivant ou Précédent ou pour définir une boucle d’animation. L’argument expressionNombreEntier peut être un nombre entier positif ou négatif, ou zéro. Par exemple : • • • • 386 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 l’argument de marker est une chaîne, marker renvoie le numéro de la première image dont le repère correspond à la chaîne. Exemples 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 : go to marker(0) L’instruction suivante donne à la variable repèreSuivant la même valeur que celle du repère suivant de la distribution : repèreSuivant = marker(1) Voir aussi go, frame() (fonction), frameLabel, label(), labelList the markerList Syntaxe the markerList Description Propriété globale ; contient une liste de propriétés Lingo des repères du scénario. La liste est au format : numéroDimage: "numéroDeRepère" Cette propriété peut être testée, mais pas définie. Exemple L’instruction suivante affiche la liste des repères dans la fenêtre Messages : put the markerList -- [1: "Ouverture", 15: "Menu principal", 26: "Fermeture"] marker() mask Syntaxe member(quelActeurQuickTime).mask the mask of member quelActeurQuickTime Description Propriété d’acteur ; spécifie l’acteur noir et blanc (1 bit) qui servira à masquer des médias rendus au premier plan avec les médias qui se trouvent dans des zones dans lesquelles les pixels du masque sont noirs. La propriété mask vous permet de bénéficier des performances d’une vidéo numérique Premier plan pendant la lecture d’une séquence QuickTime dans une zone non rectangulaire. La propriété mask n’a aucun effet sur les acteurs qui ne sont pas rendus au premier plan. 387 Director aligne toujours le point d’alignement de l’acteur masque avec le coin supérieur gauche de l’image-objet séquence QuickTime. N’oubliez pas de définir le point d’alignement d’un bitmap sur le coin supérieur gauche, car il est défini sur le centre par défaut. Le point d’alignement de l’acteur QuickTime ne peut pas être défini ailleurs que sur le coin supérieur gauche. L’acteur masque ne peut pas être déplacé et n’est pas affecté par les propriétés center et crop de l’acteur qui lui est associé. Pour obtenir des résultats optimaux, définissez la propriété mask d’un acteur QuickTime avant l’apparition de ses images-objets sur la scène dans le gestionnaire d’événement on beginSprite. En effet, la définition ou la modification de la propriété mask d’un acteur alors que celui-ci se trouve déjà sur la scène peut produire des résultats inattendus (par exemple, le masque peut apparaître sous forme d’une image figée de l’animation numérique au moment où la propriété mask a pris effet). L’utilisation des masques est une fonction avancée, qui exigera vraisemblablement plusieurs essais avant d’être maîtrisée. Cette propriété peut être testée et définie. Pour supprimer un masque, donnez à la propriété mask une valeur de 0. Exemple Le script d’image suivant définit le masque d’une image-objet QuickTime avant que Director ne commence à dessiner l’image : on prepareFrame member("Voyeur").mask = member("Serrure") end Voir aussi invertMask max() Syntaxe liste.max() max(liste) max(valeur1, valeur2, valeur3, ...) Description Fonction ; renvoie la valeur la plus élevée de la liste spécifiée ou de la 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. 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. on rechercheDuGagnant Devis Gagnant = Devis.max() member("Félicitations").text = \ "Vous avez gagné, avec un devis de " & Gagnant &"euros !" end 388 maxInteger Syntaxe the maxInteger Description Propriété système ; renvoie le nombre entier le plus élevé supporté par le système. Sur la plupart des ordinateurs personnels, ce nombre est 2 147 483 647 (2 à la puissance 31, moins 1). Cette propriété peut servir à initialiser des variables utilisées dans des boucles ou pour limiter certains tests. Pour utiliser des nombres supérieurs à la plage d’entiers utilisables, utilisez des nombres à virgule flottante. Ces nombres ne sont pas traités aussi rapidement que les nombres entiers, mais permettent d’utiliser une plus grande plage de valeurs. Exemple L’instruction suivante crée un tableau dans la fenêtre Messages contenant les valeurs décimales maximales pouvant être représentées par un certain nombre de chiffres binaires : on afficherLesValeursMax b = 31 v = the maxInteger repeat while v > 0 put b && "-" && v b = b-1 v = v/2 end repeat end maxSpeed Syntaxe member(quelActeur).modelResource(quelleRessDeMod).\ emitter.maxSpeed Description Propriété 3D ; utilisée avec une ressource de modèle de type #particle, cette propriété permet d’obtenir et de définir la vitesse maximum à laquelle les particules sont émises. La vitesse initiale de chaque particule est sélectionnée de façon aléatoire et est comprise entre les propriétés minSpeed et maxSpeed de l’émetteur. Cette valeur est un nombre à virgule flottante et doit être supérieure à 0.0. Exemple Dans l’exemple suivant, systèmeThermique est une ressource de modèle de type #particle. L’instruction suivante donne à la propriété maxSpeed de systèmeThermique la valeur 15, qui entraîne les particules les plus rapides de systèmeThermique à se déplacer relativement rapidement. Dans un système de particules donné, plus une particule se déplace rapidement, plus elle couvre de distance. member("Feux").modelResource("systèmeThermique").emitter.maxSpeed=15 Voir aussi minSpeed, emitter 389 mci Syntaxe 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é. 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" me Syntaxe 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 dans 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_Examples, lui-même dans le dossier de Director. Exemples 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. 390 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 media Syntaxe member(quelActeur).media the media of member quelActeur Description Propriété d’acteur ; identifie l’acteur spécifié comme un jeu de numéros. La définition de la propriété d’acteur media utilisant une grande quantité de mémoire, il est préférable de ne l’utiliser que pendant la programmation. Vous pouvez utiliser la propriété d’acteur media pour copier le contenu d’un acteur dans un autre en donnant à la valeur media du deuxième acteur une valeur identique à la valeur media du premier acteur. Pour un acteur boucle, la propriété d’acteur media spécifie une sélection d’images et de pistes du scénario. Pour permuter des médias dans une projection, il est plus efficace de définir la propriété d’imageobjet member. Exemple L’instruction suivante copie le contenu de l’acteur leverDeSoleil dans l’acteur Aube en définissant la valeur de la propriété d’acteur media de Aube sur la même valeur que la propriété d’acteur media de leverDeSoleil : member("Aube").media = member("leverDeSoleil").media Voir aussi type (propriété d’acteur), media 391 mediaReady Syntaxe member(quelActeur).mediaReady the mediaReady of member quelActeur sprite(quelNuméroDimageObjet).mediaReady the mediaReady of sprite quelNuméroDimageObjet Description Propriété d’acteur ou d’image-objet ; détermine si le contenu d’une image-objet, d’un acteur, d’un fichier d’animation ou de distribution ou d’un acteur lié a été complètement téléchargé depuis Internet et est disponible sur le disque dur local (TRUE) ou non (FALSE). Cette propriété n’est utile que lors du transfert en flux continu d’un fichier d’animation ou de distribution. Pour activer le transfert d’une animation, choisissez l’option Lire pendant le téléchargement (option par défaut) dans la boîte de dialogue Propriétés de lecture de l’animation du menu Modification. Pour une démonstration de la fonction mediaReady, consultez l’animation Shockwave en flux continu dans l’Aide de Director. Cette propriété peut être testée, mais pas définie. Exemple L’instruction suivante change les acteurs lorsque l’acteur souhaité est récupéré et disponible localement : if member("arrière-plan").mediaReady = TRUE then sprite(2).memberNum = 10 -- 10 est le numéro de l’acteur "arrière-plan" end if Voir aussi frameReady() mediaStatus Syntaxe sprite(quelleImageObjet).mediaStatus member(quelActeur).mediaStatus Description Propriété d’image-objet ou d’acteur RealMedia ; permet d’obtenir un symbole représentant l’état du train RealMedia. Cette propriété peut être testée, mais pas définie, et est dynamique en cours de lecture. Cette propriété peut avoir les valeurs suivantes : • #closed #closed • • #connecting • 392 indique que l’acteur RealMedia n’est pas actif. La valeur de mediaStatus reste jusqu’au début de la lecture. indique qu’une connexion au train RealMedia est en cours d’établissement. #opened indique qu’une connexion au train RealMedia a été établie et est ouverte. Il s’agit d’un état transitoire, rapidement suivi par #buffering. #buffering indique que le train RealMedia est en cours de chargement dans le tampon de lecture. Une fois la mise en tampon terminée (percentBuffered est égal à 100), la lecture du train RealMedia démarre si la propriété pausedAtStart a pour valeur FALSE. Pour plus d’informations, consultez percentBuffered. • • • • #playing indique que le train RealMedia est en cours de lecture. #seeking indique que la lecture a été interrompue par la commande seek. #paused indique que la lecture a été interrompue, par le bouton Arrêter de la fenêtre RealMedia ou par l’invocation de la méthode pause dans Lingo. #error indique que le train n’a lastError indique l’erreur. pas pu être connecté, mis en tampon ou lu. La propriété En fonction de la valeur de l’acteur state (RealMedia), une autre valeur de la propriété mediaStatus est renvoyée. Chaque valeur mediaStatus correspond à une seule valeur state. Pour plus d’informations, consultez l’entrée state (RealMedia). Exemples Les exemples suivants indiquent que l’élément RealMedia de l’image-objet 2 et l’acteur Real sont en cours de lecture. put sprite(2).mediaStatus -- #playing put member("Real").mediaStatus -- #playing Voir aussi state (RealMedia), percentBuffered, lastError member Syntaxe member(quelActeur).texture(quelleTexture).member member(quelActeur).model(quelModèle).shader.texture.member member(quelActeur).model(quelModèle).shaderList\ [indexDeListeDeMatériaux].textureList[indexDeListeDeTextures].member Description Propriété de texture 3D ; si la texture est de type #fromCastMember, cette propriété indique l’acteur utilisé comme source de texture. Cette propriété peut être testée et définie. Si la texture est de type #importedFromFile, la valeur de cette propriété est void et ne peut pas être définie. Si la texture est de type #fromImageObject, la valeur de cette propriété est void, mais peut néanmoins être définie. Exemple Le code Lingo suivant ajoute une nouvelle texture. La seconde instruction indique que l’acteur utilisé pour créer la texture gbTexture est l’acteur 16 de la distribution 1. member("Séquence").newTexture("gbTexture", #fromCastmember, \ member(16, 1)) put member("séquence").texture("Texture").member -- (member 16 of castLib 1) 393 member (mot-clé) Syntaxe member quelActeur member quelActeur of castLib quelleDistribution member(quelActeur, quelleDistribution) Description Mot-clé ; indique que l’objet spécifié par quelActeur est un acteur. Lorsque quelActeur est une chaîne, elle est utilisée comme nom d’acteur. Lorsque quelActeur est un nombre entier, il est utilisé comme numéro d’acteur. Lors de la lecture d’une animation sous forme d’applet, il est préférable de faire référence aux acteurs par leurs numéros plutôt que par leurs noms, cela améliorant les performances de l’applet. Lorsque utilisé seul, le mot-clé member est une référence spécifique à une distribution et à un de ses acteurs : put sprite(12).member -- (member 3 of castLib 2) Cette propriété est différente de la propriété d’image-objet memberNum, qui est toujours un nombre entier désignant la position d’un acteur dans une distribution, mais qui ne spécifie pas la distribution : put sprite(12).memberNum -- 3 Le numéro d’un acteur est également une référence absolue à un acteur spécifique d’une distribution particulière : put sprite(12).member.number -- 131075 Exemples L’instruction suivante donne à la propriété hilite de l’acteur bouton Appel d’offres la valeur TRUE : member("Appel d’offres").hilite = TRUE L’instruction suivante place le nom de l’acteur son 132 dans la variable nomDuSon : put member(132, "Viva Las Vegas").name L’instruction suivante vérifie le type de l’acteur Portrait de Napoléon dans la distribution Empereurs : typeDacteur = member("Portrait de Napoléon", "Empereurs").type L’instruction suivante détermine si l’acteur 9 possède un nom : if member(9).name = EMPTY then exit Vous pouvez vérifier l’existence d’un acteur en testant son numéro : vérifDeLacteur = member("Epiphanie").number if vérifDeLacteur = -1 then alert "Désolé, cet acteur n’existe pas." 394 Vous pouvez également vérifier l’existence d’un acteur en testant son type : vérifDeLacteur = member("Epiphanie").type if vérifDeLacteur = #empty then alert "Désolé, cet acteur n’existe pas." Voir aussi memberNum member (propriété audio) Syntaxe sound(numéroDePiste).member the member of sound(numéroDePiste) Description Cette propriété en lecture seule est l’acteur son en cours de lecture dans la piste audio numéroDePiste. Cette propriété renvoie une valeur nulle si aucun son n’est en cours de lecture. Exemple L’instruction suivante affiche le nom de l’acteur correspondant au son lu dans la piste 2 dans la fenêtre Messages : put sound(2).member -- (member 4 of castLib 1) Voir aussi getPlaylist(), queue() member (propriété d’image-objet) Syntaxe sprite(quelleImageObjet).member the member of sprite quelleImageObjet Description Propriété d’image-objet ; spécifie l’acteur et la distribution d’une image-objet. La propriété d’image-objet member est différente de la propriété d’image-objet memberNum, qui ne spécifie que le numéro de l’image-objet pour identifier sa position dans la distribution, mais ne spécifie pas la distribution elle-même. La propriété d’image-objet member est également différente des propriétés mouseMember et castNum (obsolète), qui ne spécifient pas non plus la distribution de l’image-objet. Lorsque vous affectez la propriété d’image-objet member, utilisez l’un des formats suivants : • Spécifiez la description complète de l’acteur et de la distribution (sprite(x).member = member(A, B). • Spécifiez le nom de l’acteur (sprite(x).member = member ("MELODIE "). • Spécifiez le nombre entier unique qui inclut toutes les bibliothèques de distributions et correspond à la fonction mouseMember (sprite(x).member = 132). Si vous n’utilisez que le nom de l’acteur, Director trouve le premier acteur portant ce nom dans toutes les distributions courantes. Si ce nom se répète dans deux distributions, seul le premier nom est utilisé. 395 Pour spécifier un acteur par son numéro uniquement lorsqu’il existe plusieurs distributions, utilisez la propriété d’image-objet memberNum, qui change la position de l’acteur dans sa distribution sans affecter la distribution de l’image-objet (set the memberNum of sprite x to 132). Vous pouvez déterminer la propriété d’image-objet memberNum à partir de la propriété d’imageobjet member à l’aide de l’instruction the number of the member of sprite x. Vous pouvez également récupérer d’autres propriétés d’acteurs à l’aide d’instructions telles que the name of the member of sprite x ou the rect of the member of sprite x. L’acteur affecté à une piste d’image-objet n’est qu’une des propriétés de cette image-objet. Celle-ci possède d’autres propriétés, qui varient selon le type de médias de cette piste du scénario. Par exemple, si vous remplacez un bitmap par une forme vide en définissant la propriété d’imageobjet member, la propriété d’image-objet lineSize de l’image-objet forme ne change pas automatiquement. Vous ne verrez probablement pas la forme. Des problèmes de correspondance semblables peuvent se produire si vous changez l’acteur d’une image-objet champ en acteur vidéo. Bien que vous puissiez changer toutes les propriétés d’imagesobjets avec la propriété d’image-objet type, il est généralement plus utile et plus sûr de remplacer les acteurs avec des acteurs du même type. Par exemple, remplacer des images-objets bitmap par des acteurs bitmap. Cette propriété peut être testée et définie. Exemples L’instruction suivante affecte l’acteur 3 de la distribution 4 à l’image-objet 15 : sprite(15).member = member(3, 4) Le gestionnaire suivant utilise la fonction mouseMember dans la propriété sprite.member afin de découvrir si la souris est positionnée sur une image-objet spécifique : on exitFrame MM = the mouseMember target = sprite(1).member if target = MM then put "au-dessus de la zone référencée" go the frame end Voir aussi castLibNum, memberNum memberNum Syntaxe sprite(quelleImageObjet).memberNum the memberNum of sprite quelleImageObjet Description Propriété d’image-objet ; identifie la position de l’acteur (mais n’identifie pas sa distribution) associé à l’image-objet spécifiée par quelleImageObjet. Sa valeur est le numéro de l’acteur uniquement, car la distribution de l’acteur n’est pas spécifiée. La propriété memberNum est pratique pour permuter les acteurs affectés à une image-objet lorsqu’ils appartiennent tous à la même distribution. Pour permuter des acteurs appartenant à des distributions différentes, utilisez la propriété d’image-objet member. Pour que la valeur définie par Lingo dure au-delà de l’image-objet courante, celle-ci doit être un esclave. 396 Cette propriété est également pratique pour permuter les acteurs lorsque l’utilisateur clique sur une image-objet et simuler ainsi l’image inversée qui apparaît lorsque l’utilisateur clique sur un bouton standard. Vous pouvez également décider de ce qui se passe dans l’animation en fonction de l’acteur associé à une image-objet spécifique. Si vous définissez cette propriété dans un script alors que la tête de lecture ne bouge pas, utilisez la commande updateStage pour redessiner la scène. Cette propriété peut être testée et définie. Exemples L’instruction suivante remplace l’acteur affecté à l’image-objet 3 par l’acteur 35 de la même distribution : sprite(3).memberNum = 35 L’instruction suivante affecte l’acteur Narrateur à l’image-objet 10 en donnant le numéro de l’acteur Narrateur à la propriété d’image-objet memberNum. L’acteur Narrateur est dans la même distribution que l’acteur actuel de l’image-objet. sprite(10).memberNum = member("Narrateur").number Le gestionnaire suivant permute les bitmaps lorsque l’utilisateur clique sur un bouton ou le survole. Le dessin du bouton enfoncé doit suivre immédiatement celui du bouton relâché dans la même distribution. on mouseDown boutonHaut = sprite(the clickOn).memberNum boutonBas = boutonHaut + 1 repeat while the stillDown if rollover(the clickOn) then sprite(the clickOn).memberNum = boutonBas else sprite(the clickOn).memberNum = boutonHaut end if updateStage end repeat if rollover (the clickOn) then put "Le bouton a été activé" end Voir aussi castLib, member (propriété d’image-objet), number (propriété d’acteur), member (mot-clé) members Consultez number of members 397 memorySize Syntaxe the memorySize Description Propriété système ; renvoie la quantité totale de mémoire affectée au programme, qu’elle soit disponible ou non. Elle est utile pour vérifier la quantité de mémoire minimale requise. La valeur est exprimée en octets. Sous Windows, cette valeur correspond à la mémoire physique disponible ; sur le Macintosh, elle représente la partition complète allouée à l’application. Exemple L’instruction suivante vérifie si l’ordinateur alloue moins de 500 Ko de mémoire et, le cas échéant, affiche un message d’alerte : if the memorySize < 500 * 1024 then alert "Mémoire insuffisante." Voir aussi freeBlock(), freeBytes(), ramNeeded(), size menu Syntaxe menu: nomDeMenu nomDélément | script nomDélément | script ... – ou – 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. Sur le Macintosh, vous pouvez utiliser des caractères spéciaux pour définir des menus personnalisés. Ces caractères spéciaux différencient les majuscules des minuscules. 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é. 398 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. Symbole Exemple Description @ menu: @ *Sur le 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 le Macintosh, place une coche (Option+v) près du menu. <B Gras<B *Sur le Macintosh, donne à l’élément de menu le style Gras. <I Italique<I *Sur le Macintosh, définit le style Italique. <U Souligné<U *Sur le Macintosh, définit le style Souligné. <O Relief<O *Sur le Macintosh, définit le style Relief. <S Ombré<S *Sur le Macintosh, définit le style Ombré. | 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 le 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 Ouvrir/O | go to frame "Ouvrir" Fermer/W | go to frame "Fermer" Convertir/C | convertirCeci (Quitter/Q | go to frame "Quitter" Voir aussi installMenu, name (propriété de menu), name (propriété d’élément de menu), number (éléments de menu), checkMark, enabled, script mesh (propriété) Syntaxe 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 : 399 • • • colorList 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. 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). Exemples 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("univers").model("Avion").meshDeform.mesh.count -- 4 Voir aussi meshDeform (modificateur), colorList, textureCoordinateList, textureLayer, normalList, vertexList (déformation de maille), face meshDeform (modificateur) Syntaxe 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). • 400 face.count renvoie le nombre total de faces du modèle référencé. • • mesh.count 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. Exemples 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 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 milliseconds Syntaxe the milliseconds Description Propriété système ; renvoie l’heure courante en millisecondes (1/1000ème de seconde). Le compte commence à partir du démarrage de l’ordinateur. Exemples L’instruction suivante convertit des millisecondes en secondes et minutes en divisant le nombre de millisecondes par 1 000, puis le résultat par 60, et affecte la variable minutesCourantes au résultat de l’opération : secondesCourantes = milliseconds/1000 minutesCourantes = secondesCourantes/60 La précision du calcul dépend de l’ordinateur et du système d’exploitation. Le gestionnaire suivant compte les millisecondes et affiche un message d’alerte si vous travaillez depuis trop longtemps. on idle if the milliseconds > 1000 * 60 * 60 * 4 then alert "Faites une pause" end if end Voir aussi ticks, time(), timer 401 min Syntaxe liste.min min(liste) min (a1, a2, a3...) Description Fonction ; indique la valeur minimale de la liste spécifiée par liste. 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() minSpeed Syntaxe member(quelActeur).modelResource(quelleRessDeMod).emitter.minSpeed Description Propriété 3D ; utilisée avec une ressource de modèle de type #particle, cette propriété permet d’obtenir et de définir la vitesse minimum à laquelle les particules sont émises. La vitesse initiale de chaque particule est sélectionnée de façon aléatoire et est comprise entre les propriétés minSpeed et maxSpeed de l’émetteur. Cette valeur est un nombre à virgule flottante et doit être supérieure à 0.0. Exemple Dans l’exemple suivant, systèmeThermique est une ressource de modèle de type #particle. L’instruction suivante donne à la propriété minSpeed de systèmeThermique la valeur 5, qui entraîne les particules les plus lentes de systèmeThermique à se déplacer relativement lentement. Dans un système de particules donné, plus une particule se déplace lentement, moins elle couvre de distance. member("Feux").modelResource("systèmeThermique").emitter.\ minSpeed = 5 Voir aussi maxSpeed, emitter 402 missingFonts Syntaxe member(acteurTexte).missingFonts Description Propriété d’acteur texte ; contient une liste des noms de polices utilisées dans le texte mais non disponibles sur le système. Cette propriété permet aux développeurs de vérifier si une police spécifique est disponible ou non pendant l’exécution. Cette propriété peut être testée, mais pas définie. Voir aussi substituteFont mod Syntaxe expressionEntière1 mod expressionEntière2 Description Opérateur mathématique ; calcule le reste de la division de deux entiers. Dans l’opération suivante, expressionEntière1 est divisée par expressionEntière2. La valeur de l’expression entière obtenue correspond au reste de la division sous forme d’entier. Ce nombre est toujours accompagné du signe (positif ou négatif ) de expressionEntière1. Cet opérateur arithmétique a un niveau de priorité de 4. Exemples L’instruction suivante divise 7 par 4, puis affiche le reste dans la fenêtre Messages : put 7 mod 4 Le résultat est 3. Le gestionnaire suivant donne à toutes les images-objets impaires l’effet d’encre copy (dont le numéro est 0). Le gestionnaire commence par vérifier si l’image-objet de la variable monImageObjet est une image-objet impaire en divisant son numéro par 2, puis vérifie si le reste de la division est 1. Le cas échéant, le gestionnaire définit l’effet d’encre sur copy. on définirLencre repeat with monImageObjet = 1 to the lastChannel if (monImageObjet mod 2) = 1 then sprite(monImageObjet).ink = 0 else sprite(monImageObjet).ink = 8 end if end repeat end définirLencre 403 Le gestionnaire suivant change régulièrement l’acteur d’une image-objet en choisissant un autre acteur parmi un certain nombre de bitmaps : on exitFrame global gCompteur -- exemples de valeurs des numéros d’acteurs bitmaps lesBitmaps = [2,3,4,5,6,7] -- spécifier la piste d’image-objet affectée laPiste = 1 -- cycle dans la liste d’acteurs gCompteur = 1 + (gCompteur mod lesBitmaps.count) sprite(laPiste).memberNum = lesBitmaps[gCompteur] go the frame end modal Syntaxe window "fenêtre".modal the modal of window "fenêtre" Description Propriété de fenêtre ; spécifie si les animations peuvent répondre aux événements se produisant à l’extérieur de la fenêtre spécifiée par fenêtre. • Lorsque la propriété de fenêtre modal a pour valeur TRUE, les animations ne peuvent pas répondre aux événements se produisant à l’extérieur de la fenêtre. • Lorsque la propriété de fenêtre modal a pour valeur FALSE, les animations peuvent répondre aux événements se produisant à l’extérieur de la fenêtre. Lorsque la propriété de fenêtre modal a pour valeur TRUE, vous pouvez faire d’une animation spécifique lue dans une fenêtre la seule animation avec laquelle une interaction utilisateur est permise. Cette propriété fonctionne également dans l’environnement auteur. Si vous donnez à la propriété de fenêtre modal la valeur TRUE, vous ne pourrez pas non plus utiliser les autres fenêtres de Director de manière interactive. Vous pouvez toujours fermer une fenêtre modale en utilisant le raccourci clavier Ctrl+Alt+point (Windows) ou Cmd+point (Macintosh). Exemple L’instruction suivante permet aux animations de répondre aux événements extérieurs à la fenêtre Palette des outils : window("Palette des outils").modal = FALSE mode (émetteur) Syntaxe member(quelActeur).modelResource(quelleRessDeMod).emitter.mode Description Propriété 3D ; utilisée avec une ressource de modèle de type #particle, cette propriété permet d’obtenir et de définir la propriété mode de l’émetteur de particules de la ressource. 404 Cette propriété peut avoir la valeur #burst ou #stream (valeur par défaut). Lorsque mode a pour valeur #burst, toutes les particules sont émises en même temps, alors qu’avec la valeur #stream, un groupe de particules est émis à chaque image. Le nombre de particules émises à chaque image est déterminé au moyen de l’équation suivante : particulesParImage = objetRessource.émetteur.nombreDeParticules \ (objetRessource.duréeDeVie x millisecondesParImageRendue) Exemple Dans l’exemple suivant, systèmeThermique est une ressource de modèle de type #particle. L’instruction suivante donne à la propriété emitter.mode de systèmeThermique la valeur #burst, ce qui entraîne l’émission en éclats des particules de systèmeThermique. Pour créer une seule explosion de particules, choisissez emitter.mode = #burst et emitter.loop = 0. member("Feux").modelResource("systèmeThermique").emitter.mode = #burst Voir aussi emitter mode (collision) Syntaxe member(quelActeur).model(quelModèle).collision.mode Description Propriété 3D de modificateur de collision ; indique la géométrie à utiliser dans l’algorithme de détection de collision. L’utilisation d’une géométrie plus simple, telle qu’une sphère de délimitation, permet une meilleure performance. Les valeurs possibles de cette propriété sont : • #mesh • #box utilise la boîte de délimitation du modèle. Cette valeur est utile pour les objets, tels qu’un utilise la géométrie de maille réelle de la ressource de modèle. Cette valeur offre une précision unitriangulaire et est généralement plus lente que #box ou #sphere. mur, qui logent plus facilement dans une boîte que dans une sphère. • #sphere est le mode le plus rapide, car il utilise la sphère de délimitation du modèle. Il s’agit de la valeur par défaut de cette propriété. Exemple Les instructions suivantes ajoutent le modificateur de collision au modèle votreModèle et donnent à la propriété le mode #mesh : member("3d").model("votreModèle").addModifier(#collision) member("3d").model("votreModèle").collision.mode = #mesh 405 model Syntaxe 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. Exemples 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 modelA Syntaxe collisionData.modelA Description Propriété 3D collisionData ; indique un des modèles impliqués dans une collision, l’autre modèle étant modelB. L’objet collisionData est envoyé comme argument avec les événements #collideWith et #collideAny au gestionnaire spécifié dans les commandes registerForEvent, registerScript et setCollisionCallback. Les événements #collideWith et #collideAny sont envoyés lors d’une collision entre deux modèles associés à des modificateur de collision. La propriété resolve des modificateurs de modèles doit être TRUE. Cette propriété peut être testée, mais pas définie. 406 Exemple L’exemple suivant est constitué de trois parties. La première partie est la première ligne de code, qui enregistre le gestionnaire #placerDétails de l’événement #collideAny. La deuxième partie est le gestionnaire #placerDétails. Lorsque les deux modèles de l’acteur maSéquence entrent en collision, le gestionnaire #placerDétails est appelé, et l’argument collisionData lui est envoyé. Ce gestionnaire affiche les propriétés de modelA et modelB de l’objet collisionData dans la fenêtre Messages. La troisième partie de l’exemple affiche les résultats de la fenêtre Messages. Le modèle nommé balleVerte est modelA et balleJaune est modelB. member("maSéquence").registerForEvent(#collideAny, #placerDétails, 0) on placerDétails me, collisionData put collisionData.modelA put collisionData.modelB end -- model("balleVerte") -- model("balleJaune") Voir aussi registerScript(), registerForEvent(), sendEvent, modelB, setCollisionCallback() modelB Syntaxe collisionData.modelB Description Propriété 3D collisionData ; indique un des modèles impliqués dans une collision, l’autre modèle étant modelA. L’objet collisionData est envoyé comme argument avec les événements #collideWith et #collideAny au gestionnaire spécifié dans les commandes registerForEvent, registerScript et setCollisionCallback. Les événements #collideWith et #collideAny sont envoyés lors d’une collision entre deux modèles associés à des modificateur de collision. La propriété resolve des modificateurs des modèles doit être TRUE. Cette propriété peut être testée, mais pas définie. 407 Exemple L’exemple suivant est constitué de trois parties. La première partie est la première ligne de code, qui enregistre le gestionnaire #placerDétails de l’événement #collideAny. La deuxième partie est le gestionnaire #placerDétails. Lorsque les deux modèles de l’acteur maSéquence entrent en collision, le gestionnaire #placerDétails est appelé, et l’argument collisionData lui est envoyé. Ce gestionnaire affiche les propriétés de modelA et modelB de l’objet collisionData dans la fenêtre Messages. La troisième partie de l’exemple affiche les résultats de la fenêtre Messages. Le modèle nommé balleVerte est modelA et balleJaune est modelB. member("maSéquence").registerForEvent(#collideAny, #placerDétails, 0) on placerDétails me, collisionData put collisionData.modelA put collisionData.modelB end -- model("balleVerte") -- model("balleJaune") Voir aussi registerScript(), registerForEvent(), sendEvent, modelA, collisionNormal, setCollisionCallback() modelResource Syntaxe 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. Exemples 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") 408 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 Syntaxe member(quelActeur).camera(quelleCaméra).modelsUnderLoc\ (pointDansLimageObjet {, nombreMaximumDeModèles, précision}) Description Commande 3D ; renvoie une liste des modèles situés sous le point spécifié par pointDansLimageObjet à l’intérieur du rect d’une image-objet utilisant la caméra référencée. L’emplacement de pointDansLimageObjet est calculé en fonction du coin supérieur gauche de l’image-objet, en pixels. Le paramètre facultatif nombreMaximumDeModèles vous permet de limiter la longueur 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é. Le paramètre facultatif précision vous permet de spécifier la précision des informations renvoyées. Le paramètre précision peut avoir les valeurs suivantes : #simple renvoie une liste contenant les références des modèles situés sous le point. C’est la valeur par défaut. 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 : #detailed • • • • • #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 #isectNormal est un vecteur représentant la position du point d’intersection dans l’univers. 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. 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é. Une seule intersection (la plus proche) est renvoyée par modèle. 409 La commande renvoie une liste vide s’il n’existe aucun modèle sous le point spécifié. 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. on mouseUp pt = the mouseLoc - point(sprite(5).left, sprite(5).top) m = sprite(5).camera.modelsUnderLoc(pt, 3, #detailed) put m end Voir aussi modelsUnderRay, modelUnderLoc modelsUnderRay Syntaxe 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 de la position spécifiée par vecteurDemplacement, en direction de vecteurDeDirection ; les deux vecteurs étant spécifiés en coordonnées relatives à l’univers. Le paramètre facultatif nombreMaximumDeModèles vous permet de limiter la longueur 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é. Le paramètre facultatif précision vous permet de spécifier la précision des informations renvoyées. Le paramètre précision peut avoir les valeurs suivantes : #simple renvoie une liste contenant les références des modèles situés sous le point. C’est la valeur par défaut. 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 : #detailed 410 • • #model • • • #isectPosition est une référence à l’objet de modèle rencontré. est la distance séparant la position d’univers spécifiée par vecteurDemplacement du point d’intersection avec le modèle. #distance #isectNormal est un vecteur représentant la position du point d’intersection dans l’univers. 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. Dans la liste renvoyée, le premier modèle listé est le plus proche de la position spécifiée par et le dernier modèle listé est le plus éloigné de cette position. vecteurDemplacement 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é. 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 Syntaxe member(quelActeur).camera(quelleCaméra).\ modelUnderLoc(pointDansLimageObjet) Description Commande 3D ; renvoie une référence au premier modèle situé sous le point spécifié par pointDansLimageObjet à l’intérieur du rect d’une image-objet utilisant la caméra référencée. L’emplacement de pointDansLimageObjet est calculé en fonction du coin supérieur gauche de l’image-objet, en pixels. 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. 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. on mouseUp pt = the mouseLoc - point(sprite(5).left, sprite(5).top) m = sprite(5).camera.modelUnderLoc(pt) put m end Voir aussi modelsUnderLoc, modelsUnderRay 411 modified Syntaxe member(quelActeur).modified the modified of member quelActeur Description Propriété d’acteur ; indique si l’acteur spécifié par quelActeur a été modifié depuis sa lecture depuis le fichier de l’animation. • Lorsque la propriété d’acteur modified a pour valeur TRUE, l’acteur a été modifié depuis sa lecture depuis le fichier de l’animation. • Lorsque la propriété d’acteur modified a pour valeur FALSE, l’acteur n’a pas été modifié depuis sa lecture depuis le fichier de l’animation. La fonction d’acteur modified renvoie toujours FALSE dans le cas des acteurs d’une animation lue sous forme d’applet. Exemple L’instruction suivante vérifie si l’acteur Introduction a été modifié depuis sa lecture à partir du fichier de l’animation : return member("Introduction").modified modifiedBy Syntaxe quelActeur.modifiedBy the modifiedBy of quelActeur Description Propriété d’acteur ; enregistre le nom de l’utilisateur qui a effectué la dernière modification de l’acteur. Cette information provient des coordonnées fournies au cours de l’installation de Director. Vous pouvez modifier cette information dans la boîte de dialogue Préférences générales de Director. Cette propriété peut être testée, mais pas définie. Elle s’avère utile pour assurer le suivi et la coordination des projets Director à plusieurs auteurs et peut également être affichée dans le volet Acteur de l’inspecteur des propriétés. Exemple L’instruction suivante affiche le nom de la personne qui a effectué la modification la plus récente de l’acteur 1 : put member(1).modifiedBy -- "Jean Laforêt" Voir aussi comments, creationDate, modifiedDate 412 modifiedDate Syntaxe Acteur.modifiedDate the modifiedDate of Acteur Description Propriété d’acteur ; indique la date et l’heure de la dernière modification de l’acteur, à l’aide de l’heure système de l’ordinateur. Cette propriété s’avère utile pour assurer le suivi et la coordination des projets Director. Cette propriété peut être testée, mais pas définie. Elle peut également être affichée dans le volet Acteur de l’inspecteur des propriétés, ou dans la fenêtre Distribution en mode d’affichage sous forme de liste. Exemple L’instruction suivante affiche la date de la modification la plus récente de l’acteur 1 : put member(1).modifiedDate -- date( 2002, 12, 8 ) Voir aussi comments, creationDate, modifiedBy modifier Syntaxe member(quelActeur).model(quelModèle).modifier member(quelActeur).model(quelModèle).modifier.count Description Propriété 3D de modèle ; renvoie une liste des modificateurs associés au modèle spécifié. Tout comme modifier.count, la commande renvoie le nombre de modificateurs associés au modèle. Veuillez noter que, si les modificateurs toon et inker sont tous les deux appliqués à un modèle, seul celui qui a été ajouté en premier est renvoyé. Cette propriété peut être testée, mais pas définie. Utilisez les commandes addModifier et removeModifier pour ajouter des modificateurs aux modèles ou en retirer. Exemple L’instruction suivante indique les modificateurs qui sont associés au modèle Jongleur. put member("Parc").model("Jongleur").modifier -- [#bonesPlayer, #lod] Voir aussi modifier[], modifiers, addModifier, removeModifier 413 modifier[] Syntaxe member(quelActeur).model(quelModèle).modifier[index] Description Propriété 3D de modèle ; renvoie le type du modificateur situé à la position spécifiée par index dans la liste des modificateurs associés au modèle. La valeur renvoyée est un symbole. Si aucun modificateur n’est situé à la position spécifiée, la valeur de cette propriété est void. Pour plus d’informations sur la liste des modificateurs associés à un modèle, utilisez la propriété modifier. L’accès direct aux propriétés d’un modificateur associé n’est pas supporté par cette commande. Exemple put member("Univers 3D").model("boîte").modifier[1] -- #lod Voir aussi modifier, modifiers, addModifier, removeModifier modifiers Syntaxe getRendererServices().modifiers Description Propriété 3D globale ; renvoie une liste des modificateurs disponibles pour tous les modèles d’acteurs 3D. Exemple L’instruction suivante renvoie la liste de tous les modificateurs actuellement disponibles. put getRendererServices().modifiers -- [#collision, #bonesPlayer, #keyFramePlayer, #toon, #lod, \ #meshDeform, #sds, #inker] Voir aussi getRendererServices(), addModifier mostRecentCuePoint Syntaxe sprite(quelleImageObjet).mostRecentCuePoint the mostRecentCuePoint of sprite quelleImageObjet sound(numéroDePiste).mostRecentCuePoint the mostRecentCuePoint of sound numéroDePiste Description Propriété d’acteur, de piste audio et d’image-objet ; pour les acteurs son, vidéo numérique QuickTime et les Xtras supportant les points de repère, indique le numéro du point de repère de l’image-objet ou du son rencontré en dernier. Sa valeur correspond au nombre ordinal du point de repère. Si aucun point de repère n’a été passé, sa valeur est de 0. 414 Pour les pistes audio, la valeur renvoyée concerne l’acteur son en cours de lecture sur la piste audio. Les sons Shockwave Audio (SWA) peuvent apparaître sous forme d’images-objets dans les pistes d’images-objets, mais sont lus dans les pistes audio. Il est conseillé de faire référence aux imagesobjets audio SWA par le numéro de leur piste d’image-objet plutôt que par celui de leur piste audio. Exemples L’instruction suivante affiche dans la fenêtre Messages le numéro du point de repère passé en dernier dans l’image-objet de la piste d’image-objet 1 : put sprite(1).mostRecentCuePoint L’instruction suivante renvoie le nombre ordinal du point de repère le plus récent dans le son en cours de lecture sur la piste audio 2 : put sound(2).mostRecentCuePoint Voir aussi cuePointNames, isPastCuePoint(), cuePointTimes, on cuePassed motion Syntaxe 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. Exemples 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) 415 motionQuality Syntaxe sprite(quelleImageObjetQTVR).motionQuality motionQuality of sprite quelleImageObjetQTVR Description Propriété d’image-objet QuickTime VR ; qualité de codec utilisée lorsque l’utilisateur clique sur une image-objet QuickTime VR et la fait glisser. La valeur de cette propriété peut être #minQuality, #maxQuality ou #normalQuality. Cette propriété peut être testée et définie. Exemple L’instruction suivante donne à motionQuality de l’image-objet 1 la valeur #minQuality. sprite(1).motionQuality = #minQuality mouseChar Syntaxe the mouseChar Description Propriété système ; s’utilise avec les images-objets champ. Elle contient le numéro du caractère se trouvant sous le curseur lorsqu’elle est appelée. Le compte démarre au début du champ. Si la souris ne se trouve pas sur un champ ou se trouve sur la bordure d’un champ, le résultat est -1. La valeur de la propriété mouseChar peut changer dans un gestionnaire ou une boucle de répétition. Lorsqu’un gestionnaire ou une boucle utilise cette propriété plusieurs fois, il est d’usage d’appeler cette dernière une seule fois et d’affecter sa valeur à une variable locale. Exemples L’instruction suivante détermine si le curseur est placé sur une image-objet champ et, si ce n’est pas le cas, donne à l’acteur champ Instructions le contenu Veuillez pointer sur un caractère: if the mouseChar = -1 then member("Instructions").text = "Veuillez pointer sur un caractère." L’instruction suivante affecte à la variable caractèreActuel le caractère du champ spécifié qui se trouve sous le curseur : caractèreActuel = member(the mouseMember).char[the mouseChar] Le gestionnaire suivant met en surbrillance le caractère qui se trouve sous le curseur lorsque l’image-objet contient un acteur texte : property spriteNum on mouseWithin me if sprite(spriteNum).member.type = #field then MC = the mousechar if MC < 1 then exit -- si sur une bordure, ligne de fin, etc. hilite char MC of field sprite(spriteNum).member else alert "hilite et mouseChar : uniquement pour les champs." end Voir aussi mouseItem, mouseLine, mouseWord, char...of, number (caractères) 416 on mouseDown (gestionnaire d’événement) Syntaxe on mouseDown instruction(s) end 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 Lingo faisant clignoter des images, déclenchant des effets sonores ou provoquant le déplacement d’images-objets 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’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 mouseDown en plaçant un autre gestionnaire on mouseDown 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. Lorsque 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. Exemples 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 : on mouseDown if the clickOn = 0 then go to frame "additionnerLaSomme" end 417 Le gestionnaire suivant, affecté à un script d’image-objet, lit un son lorsque l’utilisateur clique sur l’image-objet : on mouseDown puppetSound "Grillons" end Voir aussi clickOn, mouseDownScript, mouseUpScript the mouseDown (propriété système) Syntaxe the mouseDown Description Propriété système ; indique si l’utilisateur est en train d’appuyer sur le bouton de la souris (TRUE) ou non (FALSE). Le lecteur Director pour Java ne met pas à jour la propriété mouseDown lorsque Lingo exécute une boucle de répétition. Si vous tentez de tester mouseDown dans une boucle de répétition d’une applet, celle-ci s’arrête. Exemple Le gestionnaire suivant émet un bip sonore jusqu’à ce que l’utilisateur clique sur la souris : on enterFrame repeat while the mouseDown = FALSE beep end repeat end L’instruction suivante fait sortir Lingo de la boucle de répétition ou du gestionnaire dans lequel il se trouve lorsque l’utilisateur appuie sur le bouton de la souris : if the mouseDown then exit Voir aussi mouseH, the mouseUp (propriété système), mouseV, on mouseDown (gestionnaire d’événement), on mouseUp (gestionnaire d’événement) mouseDownScript Syntaxe the mouseDownScript Description Propriété système ; spécifie le code Lingo exécuté lorsque l’utilisateur appuie sur le bouton de la souris. Ce code est rédigé sous forme d’une chaîne encadrée de guillemets droits et peut être une simple instruction ou le script d’appel d’un gestionnaire. Sa valeur par défaut est EMPTY, ce qui signifie que la propriété mouseDownScript n’est associée à aucune expression Lingo. 418 Lorsque l’utilisateur appuie sur le bouton de la souris et que la propriété mouseDownScript est définie, Lingo exécute en premier les instructions spécifiées dans la propriété mouseDownScript. A moins que les instructions ne contiennent la commande pass autorisant la transmission du message mouseDown vers d’autres objets de l’animation, aucun autre gestionnaire on mouseDown ne sera exécuté. L’utilisation de la propriété mouseDownScript équivaut à utiliser la commande when mouseDown des versions précédentes de Director. then Pour désactiver les instructions spécifiées pour la propriété mouseDownScript, utilisez l’instruction set the mouseDownScript to empty. Cette propriété peut être testée et définie. Exemple Dans l’instruction suivante, la tête de lecture passe au repère suivant de l’animation à chaque fois que l’utilisateur appuie sur le bouton de la souris : the mouseDownScript = "suivant" Dans l’instruction suivante, l’ordinateur émet un bip sonore à chaque fois que l’utilisateur clique à un endroit quelconque de la scène : the mouseDownScript = "if the clickOn = 0 then beep" L’instruction suivante paramètre la propriété mouseDownScript sur le gestionnaire personnalisé monGestionnairePersonnalisé. Un gestionnaire Lingo personnalisé doit toujours être encadré de guillemets droits lorsqu’il est utilisé avec la propriété mouseDownScript. the mouseDownScript = "monGestionnairePersonnalisé" Voir aussi stopEvent, mouseUpScript, on mouseDown (gestionnaire d’événement), on mouseUp (gestionnaire d’événement) on mouseEnter Syntaxe on mouseEnter instruction(s) end 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. Lorsque 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. 419 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 : property spriteNum on mouseEnter me -- détermine l’acteur courant, passe à l’acteur suivant de la distr. acteurCourant = sprite(spritenum).member.number sprite(spritenum).member = acteurCourant +1 end on mouseLeave me -- détermine l’acteur courant, passe à l’acteur précédent de la distr. acteurCourant = sprite(spritenum).member.number sprite(spritenum).member = acteurCourant - 1 end Voir aussi on mouseLeave, on mouseWithin mouseH Syntaxe the mouseH mouseH() Description Propriété et fonction système ; indique la position horizontale du pointeur de la souris. La valeur de mouseH correspond au nombre de pixels entre le curseur et le bord gauche de la scène. La fonction mouseH est pratique pour déplacer des images-objets au même niveau horizontal que le pointeur de la souris et pour vérifier si celui-ci se trouve sur la scène. L’utilisation combinée des fonctions mouseH et mouseV vous permet de déterminer la position exacte du curseur. Le lecteur Director pour Java ne met pas à jour la fonction mouseH lorsque Lingo exécute une boucle de répétition. Cette fonction peut être testée, mais pas définie. Exemples Le gestionnaire suivant place l’image-objet 10 à la position du pointeur et met la scène à jour chaque fois que l’utilisateur appuie sur le bouton de la souris : on mouseDown sprite(10).locH = the mouseH sprite(10).locV = the mouseV updateStage end L’instruction suivante vérifie si le curseur se trouve à plus de 10 pixels à droite ou à gauche d’un point de départ et, le cas échéant, donne à la variable glissementSuffisant la valeur TRUE : if abs(mouseH() - startH) > 10 then glissementSuffisant = TRUE Voir aussi locH, locV, mouseV, mouseLoc 420 mouseItem Syntaxe the mouseItem Description Propriété système ; lorsque appelée et que le curseur se trouve au-dessus d’une image-objet champ, renvoie le numéro de l’élément situé sous le curseur. Un élément est toute séquence de caractères délimitée par le séparateur courant défini dans la propriété the itemDelimiter. Le compte démarre au début du champ. Si la souris ne se trouve pas sur un champ, le résultat est -1. La valeur de la propriété mouseItem peut changer dans un gestionnaire ou une boucle. Si le gestionnaire ou la boucle utilise la valeur initiale de mouseItem lorsqu’il ou elle démarre, appelez la propriété une seule fois et affectez sa valeur à une variable locale. Exemples L’instruction suivante détermine si le curseur se trouve au-dessus d’une image-objet champ. Si ce n’est pas le cas, elle remplace le contenu de l’acteur champ Instructions par Veuillez pointer sur un élément : if the mouseItem = -1 then member("Instructions") = "Veuillez pointer sur un élément" end if L’instruction suivante affecte à la variable élémentCourant l’élément situé en-dessous du curseur dans le champ spécifié : élémentCourant = member(mouseMember).item(mouseItem) Le gestionnaire suivant met en surbrillance l’élément placé sous le pointeur à chaque fois que l’utilisateur appuie sur le bouton de la souris : on mouseDown ceChamp = sprite(the clickOn).member if the mouseItem < 1 then exit dernierElément = 0 repeat while the stillDown MI = the mouseItem if MI < 1 then next repeat if MI <> dernierElément then ceChamp.item[MI].hilite() dernierElément = MI end if end repeat end Voir aussi item...of, mouseChar, mouseLine, mouseWord, number (éléments), itemDelimiter 421 on mouseLeave Syntaxe on mouseLeave instruction(s) end 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. Lorsque 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 : property spriteNum on mouseEnter me -- détermine l’acteur courant, passe à l’acteur suivant de la distr. acteurCourant = sprite(spritenum).member.number sprite(spritenum).member = acteurCourant +1 end on mouseLeave me -- détermine l’acteur courant, passe à l’acteur précédent de la distr. acteurCourant = sprite(spritenum).member.number sprite(spritenum).member = acteurCourant - 1 end Voir aussi on mouseEnter, on mouseWithin mouseLevel Syntaxe sprite(quelleImageObjetQuickTime).mouseLevel the mouseLevel of sprite quelleImageObjetQuickTime Description Propriété d’image-objet QuickTime ; contrôle la manière dont Director passe les clics de la souris sur une image-objet QuickTime à QuickTime. La possibilité de passer les clics de la souris sur le rectangle de délimitation de l’image-objet peut se révéler pratique avec les médias interactifs comme QuickTime VR. La propriété d’image-objet mouseLevel peut avoir les valeurs suivantes : • #controller – Ne passe que les clics de la souris sur le contrôleur de l’animation à QuickTime. Director ne répond qu’aux clics de la souris qui se produisent à l’extérieur du contrôleur. Il s’agit du comportement normal des images-objets QuickTime autres que QuickTime VR. • #all – Passe tous les clics de la souris se produisant à l’intérieur du rectangle de délimitation de l’image-objet à QuickTime. Aucun clic n’est passé aux autres gestionnaires Lingo. 422 • #none – Ne passe aucun clic de la souris à QuickTime. Director répond à tous les clics de la souris. • #shared – Passe tous les clics de la souris sur le rectangle de délimitation d’une image-objet QuickTime VR à QuickTime, puis passe ces événements aux gestionnaires Lingo. Il s’agit de la valeur par défaut pour QuickTime VR. Cette propriété peut être testée et définie. Exemple Le script d’image suivant vérifie si le nom de l’image-objet QuickTime de la piste 5 contient la chaîne QTVR. Le cas échéant, le script donne à mouseLevel la valeur #all. Sinon, il donne à mouseLevel la valeur #none. on prepareFrame if sprite(5).member.name contains "QTVR" then sprite(5).mouseLevel = #all else sprite(5).mouseLevel = #none end if end mouseLine Syntaxe the mouseLine Description Propriété système ; lorsque appelée et que le curseur se trouve au-dessus d’une image-objet champ, renvoie le numéro de la ligne sur laquelle se trouve le pointeur. Le compte commence au début du champ. Une ligne est définie par un retour de chariot et non par un retour à la ligne automatique. Si la souris ne se trouve pas au-dessus d’une image-objet champ, le résultat est -1. La valeur de la propriété mouseLine peut changer dans un gestionnaire ou une boucle de répétition. Lorsqu’un gestionnaire ou une boucle utilise cette propriété plusieurs fois, il est d’usage d’appeler cette dernière une seule fois et d’affecter sa valeur à une variable locale. Exemples L’instruction suivante détermine si le curseur se trouve au-dessus d’une image-objet champ et remplace le contenu de l’acteur champ Instructions par Veuillez pointer sur une ligne si ce n’est pas le cas : if the mouseLine = -1 then member("Instructions").text = "Veuillez pointer sur une ligne" L’instruction suivante affecte à la variable ligneCourante le contenu de la ligne placée sous le curseur dans le champ spécifié : ligneCourante = member(the mouseMember).line[the mouseLine] 423 Le gestionnaire suivant met en surbrillance la ligne placée sous le pointeur à chaque fois que l’utilisateur appuie sur le bouton de la souris : on mouseDown ceChamp = sprite(the clickOn).member if the mouseLine < 1 then exit dernièreLigne = 0 repeat while the stillDown ML = the mouseLine if ML < 1 then next repeat if ML <> dernièreLigne then ceChamp.line[ML].hilite() dernièreLigne = ML end if end repeat end Voir aussi mouseChar, mouseItem, mouseWord, line...of, number (lignes) mouseLoc Syntaxe the mouseLoc Description Fonction ; renvoie la position actuelle de la souris sous forme d’un point(). L’emplacement du point est indiqué sous forme de deux coordonnées, d’abord l’emplacement horizontal, puis l’emplacement vertical. Voir aussi mouseH, mouseV mouseMember Syntaxe the mouseMember Description Propriété système ; lorsque appelée, renvoie l’acteur associé à l’image-objet qui se trouve sous le pointeur. Si le pointeur ne se trouve pas au-dessus d’une image-objet, elle renvoie le résultat VOID. La propriété mouseMember remplace la propriété mouseCast des versions précédentes de Director. Vous pouvez utiliser cette fonction pour que l’animation effectue des actions spécifiques lorsque le pointeur survole une image-objet et que celle-ci utilise un acteur particulier. La valeur de la propriété mouseMember peut changer fréquemment. Pour utiliser cette propriété plusieurs fois dans un gestionnaire avec une valeur constante, placez la valeur de mouseMember dans une variable locale lorsque le gestionnaire démarre et utilisez cette variable à la place. Pour les distributions autres que la distribution 1, mouseMember renvoie une valeur ne distinguant pas le numéro de l’acteur de celui de la distribution. Pour faire la différence entre le numéro de l’acteur et celui de la distribution, utilisez l’expression member (the mouseMember). Toutefois, si l’utilisateur ne clique pas sur une image-objet, cette expression produit une erreur de script. 424 Exemples L’instruction suivante vérifie si l’acteur Hors limites est l’acteur associé à l’image-objet qui se trouve sous le curseur et affiche un message d’alerte si c’est le cas. Cet exemple illustre comment vous pouvez spécifier une action en fonction de l’acteur associé à une image-objet. if the mouseMember = member "Hors limites" then alert "Gardez vos distances !" L’instruction suivante affecte l’acteur de l’image-objet qui se trouve sous le curseur à la variable dernierActeur : dernierActeur = the mouseMember Voir aussi member (propriété d’image-objet), memberNum, clickLoc, mouseChar, mouseItem, mouseLine, mouseWord, rollOver(), number (propriété d’acteur) mouseOverButton Syntaxe sprite quelleImageObjetFlash.mouseOverButton the mouseOverButton of sprite quelleImageObjetFlash Description Propriété d’image-objet Flash ; indique si le curseur de la souris se trouve sur un bouton dans une image-objet d’animation Flash spécifiée par le paramètre quelleImageObjetFlash (TRUE) ou s’il se trouve en-dehors de l’image-objet ou encore à l’intérieur de l’image-objet, mais sur un élément autre qu’un bouton, comme un arrière-plan par exemple (FALSE). Cette propriété peut être testée, mais pas définie. Exemple Le script d’image suivant vérifie si le curseur de la souris se trouve sur un bouton de navigation de l’animation Flash dans l’image-objet 3. Le cas échéant, le script met à jour un champ de texte en affichant un message approprié. Sinon, le script efface le message. on enterFrame case sprite(3).mouseOverButton of TRUE: member("message").text = "Cliquez ici pour passer à la page suivante." FALSE: member("message").text = " " end case updatestage end on mouseUp (gestionnaire d’événement) Syntaxe on mouseUp instruction(s) end Description Message système et gestionnaire d’événement ; contient les instructions exécutées lorsque le bouton de la souris est relâché. 425 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. 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. Lorsque 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 : on mouseUp sprite(10).member = member "Gris" end Voir aussi on mouseDown (gestionnaire d’événement) the mouseUp (propriété système) Syntaxe the mouseUp Description Propriété système ; indique si le bouton de la souris est relâché (TRUE) ou enfoncé (FALSE). Le lecteur Director pour Java ne met pas à jour la propriété mouseUp lorsque Lingo exécute une boucle de répétition. 426 Exemples Le gestionnaire suivant entraîne la lecture de l’animation jusqu’à ce que l’utilisateur clique sur la souris. La tête de lecture s’arrête lorsque l’utilisateur relâche le bouton de la souris. on exitFrame me if the mouseUp then go the frame end if end L’instruction suivante fait sortir Lingo de la boucle de répétition ou du gestionnaire qu’il est en train d’exécuter lorsque l’utilisateur relâche le bouton de la souris : if the mouseUp then exit Voir aussi the mouseDown (propriété système), mouseH, mouseV, the mouseUp (propriété système) on mouseUpOutside Syntaxe on mouseUpOutside me instruction(s) end 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. 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 : on mouseUpOutside me puppetSound "Professeur Machin" end Voir aussi on mouseEnter, on mouseLeave, on mouseWithin mouseUpScript Syntaxe the mouseUpScript Description Propriété système ; spécifie le code Lingo exécuté lorsque l’utilisateur relâche le bouton de la souris. Le code Lingo est rédigé sous forme d’une chaîne encadrée de guillemets droits et peut être une instruction simple ou un script d’appel d’un gestionnaire. Lorsque l’utilisateur relâche le bouton de la souris et que la propriété mouseUpScript est définie, Lingo exécute en premier les instructions spécifiées dans la propriété mouseUpScript. A moins que les instructions ne contiennent la commande pass autorisant la transmission du message mouseUp vers d’autres objets de l’animation, aucun autre gestionnaire on mouseUp ne sera exécuté. 427 Lorsque les instructions spécifiées pour la propriété mouseUpScript ne sont plus appropriées, désactivez-les à l’aide de l’instruction set the mouseUpScript to empty. L’utilisation de la propriété mouseUpScript produit le même résultat que la commande when des versions précédentes de Director. mouseUp then Cette propriété peut être testée et définie. La valeur par défaut est EMPTY. Exemples Lorsque l’instruction suivante est activée et que l’animation est sur pause, la lecture de l’animation reprend dès que l’utilisateur relâche le bouton de la souris : the mouseUpScript = "go to the frame +1" L’instruction suivante provoque l’émission d’un bip sonore à chaque fois que l’utilisateur relâche le bouton de la souris après avoir cliqué sur un endroit quelconque de la scène : the mouseUpScript = "if the clickOn = 0 then beep" L’instruction suivante affecte la propriété mouseUpScript au gestionnaire personnalisé monGestionnairePersonnalisé. Un gestionnaire personnalisé Lingo doit être encadré de guillemets droits lorsque utilisé avec la propriété mouseUpScript. the mouseUpScript = "monGestionnairePersonnalisé" Voir aussi stopEvent, mouseDownScript, on mouseDown (gestionnaire d’événement), on mouseUp (gestionnaire d’événement) mouseV Syntaxe the mouseV mouseV() Description Propriété système ; indique la position verticale du curseur de la souris, en pixels, calculée à partir du haut de la scène. Cette valeur augmente lorsque le curseur se déplace vers le bas et diminue lorsqu’il se déplace vers le haut. La propriété mouseV est pratique pour aligner les images-objets avec la position verticale du curseur de la souris et vérifier si celui-ci se trouve sur une zone de la scène. L’utilisation conjointe des propriétés mouseH et mouseV permet d’identifier la position exacte du curseur. Le lecteur Director pour Java ne met pas à jour la propriété mouseV lorsque Lingo exécute une boucle de répétition. Cette propriété peut être testée, mais pas définie. Exemples Le gestionnaire suivant place l’image-objet 1 à la position du pointeur et met la scène à jour chaque fois que l’utilisateur appuie sur le bouton de la souris : on mouseDown sprite(1).locH = the mouseH sprite(1).locV = the mouseV updateStage end 428 L’instruction suivante vérifie si le pointeur se trouve à plus de 10 pixels au-dessus ou en dessous d’un point de départ et, le cas échéant, donne à la variable glissementSuffisant la valeur TRUE : if abs(the mouseV - startV) > 10 then glissementSuffisant = TRUE Voir aussi mouseH, locH, locV, mouseLoc on mouseWithin Syntaxe on mouseWithin instruction(s) end 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. Lorsque 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 : on mouseWithin member("Affichage").text = string(the mouseH) end mouseWithin Voir aussi on mouseEnter, on mouseLeave mouseWord Syntaxe the mouseWord Description Propriété système ; lorsque appelée et que le curseur se trouve au-dessus d’une image-objet champ, renvoie le numéro du mot sur lequel se trouve le pointeur. Le compte commence au début du champ. Si la souris n’est pas dans un champ, le résultat est -1. La valeur de la propriété mouseWord peut changer dans un gestionnaire ou une boucle de répétition. Lorsqu’un gestionnaire ou une boucle utilisent cette propriété plusieurs fois, il est d’usage d’appeler cette dernière une seule fois et d’affecter sa valeur à une variable locale. 429 Exemples L’instruction suivante vérifie si le pointeur se trouve au-dessus d’une image-objet champ et, si ce n’est pas le cas, remplace le contenu de l’acteur champ Instructions par Veuillez pointer sur un mot : if the mouseWord = -1 then member("Instructions").text = "Veuillez pointer sur un mot" else member("Instructions").text = "Merci." end if L’instruction suivante affecte à la variable motCourant le numéro du mot qui se trouve sous le pointeur dans le champ spécifié. motCourant = member(the mouseMember).word[the mouseWord] Le gestionnaire suivant met en surbrillance le mot placé sous le pointeur à chaque fois que l’utilisateur appuie sur le bouton de la souris : on mouseDown ceChamp = sprite(the clickOn).member if the mouseWord < 1 then exit dernierMot = 0 repeat while the stillDown MW = the mouseWord if MW < 1 then next repeat if MW <> dernierMot then ceChamp.word[MW].hilite() dernierMot = MW end if end repeat end Voir aussi mouseChar, mouseItem, mouseLine, number (mots), word...of moveableSprite Syntaxe sprite(quelleImageObjet).moveableSprite the moveableSprite of sprite quelleImageObjet Description Propriété d’image-objet ; indique si une image-objet peut être déplacée par l’utilisateur (TRUE) ou non (FALSE). Vous pouvez rendre une image-objet déplaçable en sélectionnant l’option Déplaçable dans le scénario. Toutefois, pour contrôler si une image-objet est déplaçable et permettre ou non son déplacement, utilisez Lingo. Par exemple, pour permettre à l’utilisateur de faire glisser des imagesobjets une par une, puis l’empêcher de les déplacer une fois qu’elles sont positionnées à l’endroit souhaité, vous pouvez activer et désactiver la propriété moveableSprite au moment approprié. Remarque Pour permettre un contrôle personnalisé tel que le retour automatique des images-objets à leur position d’origine ou leur animation pendant le glissement, créez un comportement permettant de gérer ces fonctionnalités supplémentaires. Cette propriété peut être testée et définie. 430 Exemples Le gestionnaire suivant rend les images-objets de la piste 5 déplaçables : on spriteMove sprite(5).moveableSprite = TRUE end L’instruction suivante vérifie si une image-objet est déplaçable et affiche un message si elle ne l’est pas : if sprite(13).moveableSprite = FALSE then member("Notice").text = "Impossible de déplacer cet élément avec la souris." Voir aussi mouseLoc move member Syntaxe member(quelActeur).move() member(quelActeur).move(member quelEmplacement) move member quelActeur {,member quelEmplacement} Description Commande ; place l’acteur spécifié par quelActeur dans la première position vide de la fenêtre Distribution (si aucun paramètre n’est défini) ou dans la position spécifiée par quelEmplacement. Pour obtenir les meilleurs résultats, il est préférable d’utiliser cette commande 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 de l’animation. 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. Exemples L’instruction suivante déplace l’acteur Temple vers la première position vide de la fenêtre Distribution : member("Temple").move() L’instruction suivante déplace l’acteur Temple vers l’emplacement 20 de la fenêtre Distribution Bitmaps : member("Temple").move(20, "Bitmaps") moveToBack Syntaxe window("quelleFenêtre ").MoveToBack() moveToBack window quelleFenêtre Description Commande ; place la fenêtre spécifiée par quelleFenêtre derrière toutes les autres fenêtres. 431 Exemples Les instructions suivantes placent la première fenêtre de la liste windowList derrière toutes les autres fenêtres : maFenêtre = the windowList[1] moveToBack maFenêtre Si vous connaissez le nom de la fenêtre à déplacer, utilisez la syntaxe suivante : window("Fenêtre Démo").moveToBack() moveToFront Syntaxe window("quelleFenêtre ").MoveToFront() moveToFront window quelleFenêtre Description Commande ; place la fenêtre spécifiée par quelleFenêtre devant toutes les autres fenêtres. Exemples Les instructions suivantes placent la première fenêtre de la liste windowList devant toutes les autres fenêtres : maFenêtre = the windowList[1] moveToFront maFenêtre Si vous connaissez le nom de la fenêtre à placer au premier plan, utilisez la syntaxe suivante : window("Fenêtre Démo").moveToFront() moveVertex() Syntaxe member(RéfDacteur). MoveVertex(indiceDeSommet, changementX, changementY) moveVertex(member RéfDacteur, indiceDeSommet, 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. 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 : member("Archie").moveVertex(1, 25, 10) Voir aussi addVertex, deleteVertex(), moveVertexHandle(), originMode, vertexList 432 moveVertexHandle() Syntaxe moveVertexHandle(member réfDacteur, IndiceDeSommet, IndiceDePoigné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. 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 : MoveVertexHandle(member "Archie", 2, 1, 15, -5) Voir aussi addVertex, deleteVertex(), originMode, vertexList on moveWindow Syntaxe on moveWindow instruction(s) end 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 : on moveWindow put "Déplacement de la fenêtre contenant"&&the movieName end Voir aussi activeWindow, movieName, windowList movie Cette propriété est obsolète. Utilisez movieName. 433 movieAboutInfo Syntaxe the movieAboutInfo Description Propriété d’animation ; permet de saisir une chaîne dans la boîte de dialogue Propriétés de l’animation pendant la programmation. Cette propriété permettra des améliorations dans de futures versions de Shockwave. Cette propriété peut être définie, mais pas testée. Voir aussi movieCopyrightInfo movieCopyrightInfo Syntaxe the movieCopyrightInfo Description Propriété d’animation ; permet de saisir une chaîne dans la boîte de dialogue Propriétés de l’animation pendant la programmation. Cette propriété permettra des améliorations dans de futures versions de Shockwave. Cette propriété peut être testée, mais pas définie. Exemple L’instruction suivante affiche les informations sur le copyright dans un acteur texte : member("Affichage").text = "Copyright"&&the movieCopyrightInfo Voir aussi movieAboutInfo movieFileFreeSize Syntaxe the movieFileFreeSize Description Propriété d’animation ; renvoie le nombre d’octets inutilisés dans l’animation courante par suite de modifications apportées aux acteurs et distributions de cette animation. Les commandes Enregistrer et compresser et Enregistrer sous suppriment automatiquement les espaces inutilisés du fichier de l’animation. Si l’animation ne contient aucun espace inutilisé, la fonction movieFileFreeSize renvoie 0. Exemple L’instruction suivante affiche le nombre d’octets inutilisés dans le fichier de l’animation courante : put the movieFileFreeSize 434 movieFileSize Syntaxe the movieFileSize Description Propriété d’animation ; renvoie le nombre d’octets du fichier de l’animation courante enregistré sur le disque dur. Il s’agit du même nombre que celui qui est affiché lorsque vous utilisez Propriétés du fichier (Windows) ou Lire les informations (dans le Finder du Macintosh). Exemple L’instruction suivante affiche le nombre d’octets de l’animation courante : put the movieFileSize movieFileVersion Syntaxe the movieFileVersion Description Propriété d’animation ; indique la version de Director dans laquelle l’animation a été le plus récemment enregistrée. Le résultat est une chaîne. Exemple L’instruction suivante affiche la version de Director dans laquelle l’animation a été enregistrée pour la dernière fois : put the movieFileVersion -- "800" movieImageCompression Syntaxe the movieImageCompression Description Propriété d’animation ; indique le type de compression que Director applique aux acteurs bitmap internes (non liés) lors de l’enregistrement de l’animation au format Shockwave. Cette propriété ne peut être définie que lors de la programmation et n’a aucun effet tant que l’animation n’est pas enregistrée au format Shockwave. Sa valeur peut être constituée de l’un de ces symboles : Valeur Signification #standard Utilise le format de compression interne standard de Director. #jpeg Utilise la compression JPEG (voir imageCompression). Vous devez normalement définir cette propriété dans la boîte de dialogue Paramètres de publication de Director. Vous pouvez supplanter ce paramètre pour certains acteurs bitmap en définissant leurs propriétés d’acteur imageCompression et imageQuality. Voir aussi imageCompression, imageQuality, movieImageQuality 435 movieImageQuality Syntaxe the movieImageQuality Description Propriété d’animation ; indique le niveau de compression à utiliser lorsque la propriété movieImageCompression est définie sur #jpeg. La plage de valeurs admises s’étend de 0 à 100. Zéro produit la qualité d’image la moins bonne et le plus haut degré de compression, tandis que 100 produit la meilleure qualité d’image et le degré de compression le plus bas. Cette propriété ne peut être définie que lors de la programmation et n’a aucun effet tant que l’animation n’est pas enregistrée au format Shockwave. Les différents acteurs peuvent supplanter cette propriété d’animation en utilisant la propriété d’acteur imageCompression. Voir aussi imageCompression, imageQuality, movieImageCompression movieName Syntaxe the movieName Description Propriété d’animation ; indique le nom simple de l’animation courante. Dans l’environnement auteur de Director, cette propriété affecte une chaîne vide à toute nouvelle animation non encore enregistrée. Exemple L’instruction suivante affiche le nom de l’animation courante dans la fenêtre Messages : put the movieName Voir aussi moviePath moviePath Syntaxe the moviePath Description Propriété d’animation ; indique le chemin d’accès du dossier de l’animation courante. Pour les noms de fichiers fonctionnant sur Windows et Macintosh, utilisez l’opérateur de chemin d’accès @. Vous pourrez voir un exemple de moviePath dans une animation en consultant l’animation Read and Write Text du dossier Learning/Lingo_Examples, lui-même dans le dossier de Director. Exemples L’instruction suivante affiche le chemin d’accès du dossier de l’animation courante : put the moviePath 436 L’instruction suivante lit le fichier son Violon.aif stocké dans le sous-dossier Sons du dossier de l’animation courante. Notez le délimiteur de chemin, qui indique l’environnement Windows : sound playFile 1, the moviePath&"Sons/Violon.aif" Voir aussi @ (chemin d’accès), movieName movieRate Syntaxe sprite(quelleImageObjet).movieRate the movieRate of sprite quelleImageObjet Description Propriété d’image-objet vidéo numérique ; contrôle la vitesse de lecture de la vidéo numérique dans une piste spécifique. movieRate est une valeur qui dirige la lecture d’une vidéo numérique. Une valeur de 1 spécifie une lecture normale vers l’avant, une valeur de -1 spécifie une lecture en arrière, et une valeur de 0 spécifie l’arrêt de la lecture. Vous pouvez utiliser des valeurs plus ou moins élevées. Par exemple, une valeur de 0,5 provoque une lecture plus lente que la normale. Notez cependant qu’il peut arriver que certaines images soient ignorées lorsque la valeur de la propriété d’image-objet movieRate dépasse 1. La quantité d’images ignorées dépend d’autres facteurs, tels que les performances de l’ordinateur sur lequel l’animation est lue ou de l’étirement possible de l’image-objet vidéo numérique. Cette propriété peut être testée et définie. Vous pourrez voir un exemple de movieRate dans une animation en consultant l’animation QT et Flash du dossier Learning/Lingo_Examples, lui-même dans le dossier de Director. Exemples L’instruction suivante définit une vitesse de lecture normale de la vidéo numérique contenue dans l’image-objet vidéo numérique de la piste 9 : sprite(9).movieRate = 1 L’instruction suivante provoque la lecture en sens inverse de la vidéo numérique de l’image-objet de la piste 9 : sprite(9).movieRate = -1 Voir aussi duration, movieTime movieTime Syntaxe sprite(quelleImageObjet).movieTime the movieTime of sprite quelleImageObjet Description Propriété d’image-objet vidéo numérique ; détermine la position temporelle courante de l’animation vidéo numérique exécutée dans la piste spécifiée par quelleImageObjet. La valeur de movieTime est mesurée en battements. Cette propriété peut être testée et définie. 437 Vous pourrez voir un exemple de movieTime dans une animation en consultant l’animation QT et Flash du dossier Learning/Lingo_Examples, lui-même dans le dossier de Director. Exemples L’instruction suivante affiche dans la fenêtre Messages la durée actuelle de l’animation QuickTime de la piste 9 : put sprite(9).movieTime L’instruction suivante affecte à la variable Poster la valeur de position temporelle actuelle de l’animation QuickTime de la piste 9 : sprite(9).movieTime = Poster Voir aussi duration movieXtraList Syntaxe the movieXtraList Description Propriété d’animation ; affiche une liste linéaire de tous les Xtras ajoutés à l’animation dans la boîte de dialogue Xtras de l’animation. • #name – Spécifie le nom de fichier de l’Xtra sur la plate-forme courante. Il est possible que cette liste ne contienne aucune entrée #name, si l’Xtra n’existe que sur une seule plate-forme. • #packagefiles – Ne s’utilise que lorsque l’Xtra sélectionné doit être téléchargé. La valeur de cette propriété est une autre liste contenant la liste de propriétés de chaque fichier du dossier de téléchargement pour la plate-forme utilisée. Les propriétés de cette liste de sous-propriétés sont #name et #version et contiennent les mêmes informations que la liste xtraList. Deux propriétés différentes peuvent figurer dans la propriété movieXtraList : Exemple L’instruction suivante affiche les données de movieXtraList dans la fenêtre Messages : put the movieXtraList -- [[#name: "Mix Services"], [#name: "Sound Import Export"], [#name: "SWA Streaming \ PPC Xtra"], [#name: "TextXtra PPC"], [#name: "Font Xtra PPC"],[#name: "Flash Asset \ Options PPC"], [#name: "Font Asset PPC"], [#name: "Flash Asset PPC", \ #packagefiles: [[#fileName: "Flash Asset PPC", #version: "1.0.3"]]]] Voir aussi xtraList multiply() Syntaxe 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 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("Séquence").model("Pluton").transform.multiply(member("Séquence")\ .model("Mars").transform) multiSound Syntaxe the multiSound Description Propriété système ; spécifie si le système supporte plusieurs pistes audio et si une carte audio multipistes est requise sur un ordinateur Windows (TRUE) ou non (FALSE). Exemple L’instruction suivante lit le fichier audio Musique dans la piste audio 2 si l’ordinateur supporte plus d’une piste audio : if the multiSound then sound playFile 2, "Musique.wav" name Syntaxe member(quelActeur).texture(quelleTexture).name member(quelActeur).shader(quelMatériau).name member(quelActeur).motion(quelMouvement).name member(quelActeur).modelResource(quelleRessDeMod).name member(quelActeur).model(quelModèle).name member(quelActeur).light(quelleLumière).name member(quelActeur).camera(quelleCaméra).name member(quelActeur).group(quelGroupe).name nœud.name Description Propriété 3D ; utilisée avec une référence d’objet, cette propriété permet d’obtenir le nom de l’objet référencé. Vous ne pouvez qu’obtenir le nom, qui ne peut pas être changé. Tous les noms doivent être uniques. S’il est créé avec du code Lingo, le nom renvoyé est celui donné par la fonction de constructeur. S’il est créé par une application de programmation 3D, il se peut que le nom renvoyé soit le nom du modèle. Exemple L’instruction suivante donne à la cinquième caméra de l’acteur scèneDeTable le nom camOiseau. member("scèneDeTable").camera[5].name = "camOiseau" 439 name (propriété de distribution) Syntaxe castLib (quelleDistribution).name the name of castLib quelleDistribution Description Propriété de distribution ; renvoie le nom de la distribution spécifiée. Cette propriété peut être testée et définie. Exemple L’instruction suivante passe en revue toutes les distributions de l’animation et affiche leurs noms dans la fenêtre Messages : totalDesDistributions = the number of castLibs repeat with distrCourante = 1 to totalDesDistributions put "La distribution"&&distrCourante&&"s’appelle"&&castLib(distrCourante).name end repeat Voir aussi && (opérateur de concaténation) name (propriété d’acteur) Syntaxe member(quelActeur).name the name of member quelActeur Description Propriété d’acteur ; détermine le nom de l’acteur spécifié. L’argument quelActeur est une chaîne lorsqu’il sert à désigner le nom d’un acteur ou un nombre entier lorsqu’il sert à désigner le numéro d’un acteur. Ce nom est une chaîne descriptive créée par le développeur. L’utilisation de cette propriété équivaut à saisir le nom de l’acteur dans la boîte de dialogue Propriétés de l’acteur. Cette propriété peut être testée et définie. Exemples L’instruction suivante donne à l’acteur Activé le nom Désactivé : member("Activé").name = "Désactivé" L’instruction suivante donne à l’acteur 15 le nom Fond Sonore : member(15).name = "Fond Sonore" L’instruction suivante donne à la variable sonNom le nom de l’acteur qui suit l’acteur dont le numéro est identique à la variable i: sonNom = member(i + 1).name Voir aussi number (propriété d’acteur) 440 name (propriété de menu) Syntaxe the name of menu(quelMenu) the name of menu quelMenu Description Propriété de menu ; renvoie une chaîne contenant le nom du menu spécifié. Cette propriété peut être testée, mais pas définie. Utilisez la commande installMenu pour créer une barre de menu personnalisée. Remarque Les menus ne sont pas disponibles dans Shockwave. Exemples L’instruction suivante affecte le nom du menu numéro 1 à la variable premierMenu : premierMenu = menu(1).name Le gestionnaire suivant renvoie une liste de noms de menus, à raison d’un par ligne : on listeDesMenus laListe = [] repeat with i = 1 to the number of menus laListe[i] = the name of menu i end repeat return laListe end listeDesMenus Voir aussi number (menus), name (propriété d’élément de menu) name (propriété d’élément de menu) Syntaxe the name of menuItem(quelElément) of menu(quelMenu) the name of menuItem quelElément of menu quelMenu Description Propriété de menu ; détermine le texte qui apparaît dans l’élément de menu spécifié par quelElément du menu spécifié par quelMenu. L’argument quelElément est le nom ou le numéro de l’article de menu et quelMenu correspond au nom ou au numéro du menu. Cette propriété peut être testée et définie. Remarque Les menus ne sont pas disponibles dans Shockwave. Exemples L’instruction suivante donne à la variable nomDélément le nom du huitième élément du menu Edition : set nomDélément = the name of menuItem(8) of menu("Edition") L’instruction suivante fait suivre la commande Ouvrir du menu Fichier par un nom de fichier spécifique : the name of menuItem("Ouvrir") of menu("menuFichier") = "Ouvrir" && fileName Voir aussi name (propriété de menu), number (éléments de menu) 441 name (propriété de fenêtre) Syntaxe window (quelleFenêtre).name the name of window quelleFenêtre Description Propriété de fenêtre ; détermine le nom de la fenêtre spécifiée dans windowList. La propriété title détermine le titre qui apparaît dans la barre de titre de la fenêtre. Cette propriété peut être testée et définie. Exemple L’instruction suivante donne à la fenêtre Hier le nom Aujourd’hui : window("Hier").name = "Aujourd’hui" name (propriété système) Syntaxe xtra (quelXtra).name the name of xtra quelXtra Description Propriété système ; indique le nom de l’Xtra Lingo spécifié. Les Xtras offrant des services d’assistance ou d’autres fonctions qui ne sont pas disponibles pour Lingo ne supportent pas cette propriété. Cette propriété peut être testée, mais pas définie. Exemple L’instruction suivante affiche le nom du premier Xtra dans la fenêtre Messages : put xtra(1).name name (propriété de temporisation) Syntaxe objetDeTemporisation.name Description Cette propriété de temporisation est le nom de l’objet de temporisation tel qu’il a été défini lors de la création de l’objet. La commande new() permet de créer des objets de temporisation. Exemple Le gestionnaire de temporisation suivant affiche une alerte contenant le nom de la temporisation qui a transmis l’événement : on gestionDeTemporisation objetDeTemporisation alert "Délai dépassé :" && objetDeTemporisation.name end Voir aussi forget, new(), period, persistent, target, time (propriété d’objet de temporisation), timeout(), timeoutHandler, timeoutList 442 name (propriété XML) Syntaxe nœudXML.name Description Propriété XML ; renvoie le nom du nœud XML spécifié. Exemple Avec le code XML suivant : <?xml version="1.0"?> <e1> <nomDeBalise attr1="val1" attr2="val2"/> <e2>élément 2</e2> <e3>élément 3</e3> </e1> L’instruction Lingo suivante renvoie le nom de la seconde balise imbriquée dans la balise <e1> : put gObjetDanalyse.child[1].child[2].name -- "e2" Voir aussi attributeName NAN Description Valeur de renvoi Lingo ; indique qu’une 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 : put (-1).sqrt -- NAN Voir aussi INF near (brouillard) Syntaxe member(quelActeur).camera(quelleCaméra).fog.near référenceDeCaméra.fog.near member(quelActeur).camera(quelleCaméra).fog.far référenceDeCaméra.fog.far Description Propriété 3D ; permet d’obtenir ou de définir la distance séparant l’avant de la caméra du point où le brouillard commence si fog.enabled a pour valeur TRUE. La valeur par défaut de cette propriété est 0.0. 443 Exemple L’instruction suivante donne à la propriété near du brouillard de la caméra vueParDéfaut la valeur 100. Si la propriété enabled du brouillard a pour valeur TRUE et que sa propriété decayMode a pour valeur #linear, le brouillard apparaîtra à 100 unités d’univers devant la caméra. member("Univers 3D").camera("vueParDéfaut").fog.near = 100.0 Voir aussi fog, far (brouillard), enabled (brouillard), decayMode nearFiltering Syntaxe member(quelActeur).texture(quelleTexture).nearFiltering member(quelActeur).shader(quelMatériau).\ texture(quelleTexture).nearFiltering member(quelActeur).model(quelModèle).shader.texture\ (quelleTexture).nearFiltering member(quelActeur).model(quelModèle).shaderList\ [indexDeListeDeMatériaux].texture(quelleTexture).nearFiltering Description Propriété 3D de texture ; permet de savoir ou de définir si le filtrage bilinéaire est utilisé pour le rendu d’une texture projetée qui couvre une plus grande partie de l’écran que l’original. Le filtrage bilinéaire estompe les erreurs de texture pour en améliorer l’apparence. Le filtrage bilinéaire estompe les erreurs en deux dimensions. Le filtrage trilinéaire estompe les erreurs en trois dimensions. Le filtrage améliore l’apparence au détriment des performances, le filtrage bilinéaire étant toutefois plus rapide que le filtrage trilinéaire. Lorsque la propriété a pour valeur TRUE, le filtrage bilinéaire est utilisé. Lorsque la propriété a pour valeur FALSE, le filtrage bilinéaire n’est pas utilisé. La valeur par défaut est TRUE. Exemple L’instruction suivante désactive le filtrage bilinéaire pour la texture gbTexture dans l’acteur Séquence : member("Séquence").texture("gbTexture").nearFiltering = FALSE neighbor Syntaxe 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?]. 444 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. Voir aussi meshDeform (modificateur) netAbort Syntaxe 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(). 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. Exemple L’instruction suivante passe un identifiant de réseau à netAbort pour annuler une opération réseau particulière : on mouseUp netAbort(monIDRéseau) end Voir aussi getNetText(), postNetText netDone() Syntaxe 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 putNetText) 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. 445 Exemples 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. on exitFrame if netDone() = 1 then member("Affichage du texte").text = netTextResult() end if end 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 : 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 Voir aussi getNetText(), netTextResult(), gotoNetMovie, preloadNetThing() netError() Syntaxe 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. • 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 : 446 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. Lorsque l’animation est lue sous forme d’applet, cette fonction renvoie toujours une chaîne. Cette chaîne est une chaîne vide ou contient le texte décrivant l’erreur. Le contenu de la chaîne provient de Java et peut varier selon le système d’exploitation ou le navigateur utilisé. Il ne peut pas être traduit dans la langue locale. 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 : on exitFrame global monIDRéseau if netError(monIDRéseau)<>"OK" then beep end netLastModDate() Syntaxe 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. 447 Lorsque l’animation est lue sous forme d’applet, le format de date de cette fonction peut être différent de celui que Shockwave utilise ; la date est toujours dans le format que la fonction Java Date.asString renvoie. Ce format peut également varier sur les systèmes utilisant des langues différentes. Exemple Les instructions suivantes vérifient la date d’un fichier téléchargé depuis Internet : if netDone() then laDate = netLastModDate() if laDate.char[6..11] <> "30 Jan" then alert "Ce fichier est périmé." end if end if Voir aussi netDone(), netError() netMIME() Syntaxe 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. Exemple Le gestionnaire suivant vérifie le type MIME d’un fichier téléchargé depuis Internet et répond en conséquence : 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 Voir aussi netDone(), netError(), getNetText(), postNetText, preloadNetThing() 448 netPresent Syntaxe netPresent() the netPresent Description Propriété système ; détermine si les Xtras requis pour accéder à Internet sont disponibles, mais n’indique pas si une connexion à Internet est actuellement active. Si les Xtras réseau ne sont pas disponibles, netPresent fonctionnera correctement, mais son utilisation provoquera une erreur de script. Exemple L’instruction suivante envoie un message d’alerte si les Xtras ne sont pas disponibles : if not (the netPresent) then alert "Désolé, les Xtras réseau sont introuvables." end if netStatus Syntaxe 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. Exemple L’instruction suivante place la chaîne Test dans la zone d’état du navigateur web dans lequel l’animation est lue : on exitFrame netStatus "Test" end netTextResult() Syntaxe 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. 449 Lorsqu’une animation est lue sous forme d’applet, cette fonction renvoie les résultats valides des dernières 10 demandes. Lorsque l’animation est lue sous forme d’animation Shockwave, cette fonction ne renvoie que les résultats valides de l’opération getNetText() la plus récente. 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. 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 Voir aussi netDone(), netError(), postNetText netThrottleTicks Syntaxe the netThrottleTicks Description Propriété système ; dans un environnement auteur Macintosh, permet de contrôler la fréquence de service d’une opération réseau. La valeur par défaut est de 15. Plus cette valeur est élevée, plus la lecture de l’animation et des effets animés est régulière, mais le temps passé à desservir les opérations réseau est diminué. Une valeur plus faible permet de passer plus de temps à desservir les opérations réseau, mais affecte négativement les performances de lecture des animations et des effets animés. Cette propriété n’affecte l’environnement auteur et les projections que sur le Macintosh. Elle n’a aucun effet sous Windows ou dans Shockwave sur le Macintosh. new() Syntaxe 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. Le lecteur Director pour Java ne supporte cette fonction que pour la création d’objets enfants. Lorsqu’une animation est lue sous forme d’applet, vous ne pouvez pas utiliser la fonction new pour créer des acteurs. 450 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 instantanément 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, et renvoyer 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. Vous pourrez voir un exemple de new() dans une animation en consultant les animations Parent Scripts et Read and Write Text du dossier Learning/Lingo_Examples, lui-même dans le dossier de Director. Exemples 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) 451 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 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() 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() 452 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 appellera le 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 (propriété d’acteur), timeout() newCamera Syntaxe member(quelActeur).newCamera(nomDeNouvelleCaméra) Description Commande 3D ; crée une caméra, nomDeNouvelleCaméra, dans l’acteur. Le nom spécifié pour nomDeNouvelleCamé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") newCurve() Syntaxe acteurVecteur.newCurve(positionDansLaListeDesSommets) newCurve(acteurVecteur, positionDansLaListeDesSommets) Description Fonction ; ajoute un symbole #newCurve à la liste vertexList de acteurVecteur, qui ajoute une nouvelle forme à la forme vectorielle. Le symbole #newCurve est ajouté à positionDansLaListeDesSommets. Vous pouvez fractionner une forme existante en appelant newCurve() positionné au milieu d’une série de sommets. Exemple L’instruction Lingo suivante ajoute 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. member(2).newCurve(3) member(2).curve[2]=member(2).curve[3] curve, vertexList newGroup Syntaxe member(quelActeur).newGroup(nomDeNouveauGroupe) Description Commande 3D ; crée un groupe, nomDeNouveauGroupe, et l’ajoute à la palette des groupes. Deux groupes d’une même palette ne peuvent pas avoir le même nom. 453 Exemple L’instruction suivante crée le groupe gbGroupe2 dans l’acteur Séquence et une référence à ce groupe dans la variable ng. ng = member("Séquence").newGroup("gbGroupe2") newLight Syntaxe member(quelActeur).newLight(nomDeNouvelleLumière, #indicateurDeType) Description Commande 3D ; crée une lumière, nomDeNouvelleLumière, de type #indicateurDeType, et l’ajoute à la palette des lumières. Deux lumières d’une même palette ne peuvent pas avoir le même nom. Les valeurs possibles du paramètre #indicateurDeType sont les suivantes : • • • • #ambient est une lumière généralisée dans l’univers 3D. #directional #point #spot est une lumière émise dans une direction spécifique. est une source lumineuse similaire à une ampoule. est un effet de projecteur. 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) newMesh Syntaxe member(quelActeur).newMesh(nom, nombreDeFaces, nombreDeSommets, nombreDeNormales,nombreDeCouleurs,nombreDeCoordonnéesDeTexture) Description Commande 3D ; crée une ressource de modèle de maille avec les arguments fournis. Veuillez noter qu’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. Les paramètres de newMesh sont les suivants : • • • 454 nombreDeFaces est le nombre total de triangles devant apparaître dans la maille. nombreDeSommets est le nombre total, facultatif, des sommets utilisés par toutes les faces (triangulaires). Un sommet peut être partagé par plus d’une face. est le nombre total, facultatif, 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 cet argument si vous prévoyez d’utiliser la commande generateNormals() de la maille pour générer les normales. nombreDeNormales • nombreDeCouleurs • nombreDeCoordonnéesDeTexture est le nombre total, facultatif, des 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. Entez 0 ou ignorez cet argument pour obtenir la couleur blanche par défaut pour chaque coin de face. est le nombre total, facultatif, des coordonnées de texture spécifié par l’utilisateur utilisées par toutes les faces. Entrez 0 ou ignorez cet argument 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 de coordonnées de textures n’est pas défini. 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. 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,1,2 ] nm.face[2].vertices = [ 4,2,3 ] nm.face[3].vertices = [ 5,2,1 ] nm.face[4].vertices = [ 5,3,2 ] nm.face[5].vertices = [ 5,4,3 ] nm.face[6].vertices = [ 5,1,4 ] nm.face[1].colors = [3,2,3] nm.face[2].colors = [3,3,2] nm.face[3].colors = [1,3,2] nm.face[4].colors = [1,2,3] nm.face[5].colors = [1,3,2] nm.face[6].colors = [1,2,3] nm.generateNormals(#flat) nm.build() nm = member("Formes").newModel("Pyramide1", nm) Voir aussi newModelResource 455 newModel Syntaxe member( quelActeur ).newModel( nomDeNouveauModèle \ {, quelleRessDeMod } ) Description Commande 3D ; crée un modèle dans l’acteur référencé. Le nomDeNouveauModèle doit être unique, car la commande échoue si un modèle de ce nom existe déjà. La propriété de ressource de tous les nouveaux modèles est nulle par défaut. Vous pouvez utiliser le second paramètre facultatif pour spécifier une ressource de modèle à partir de laquelle créer le modèle. Exemples 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", \ Univers 3D").modelResource("grandeBoîte")) newModelResource Syntaxe member(quelActeur).newModelResource(nomDeNouvRessDeModèle\ { ,#type, #faisantFaceA }) Description Commande 3D ; crée une ressource de modèle, du #type et #faisantFaceA (si spécifié), et l’ajoute à la palette de ressources de modèle. Le paramètre #type peut être une des primitives suivantes : #plane #box #sphere #cylinder #particle 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 seront généré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. Le paramètre #faisantFaceA peut avoir l’une des valeurs suivantes : • • • #front #back #both 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). 456 Exemples 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 L’instruction suivante crée une ressource de modèle en forme de boîte, appelée « boîteAchapeaux4 ». member("Etagère").newModelResource("boîteAchâpeaux4", #box) Voir aussi primitives newMotion() Syntaxe member(quelActeur).newMotion(nom) Description Commande 3D ; crée un mouvement dans l’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(). Tous les mouvements d’un acteur référencé doivent avoir un nom unique. 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() Syntaxe réfDimageObjetFlash.newObject("typeDobjet" {, arg1, arg2 ....}) newObject("typeDobjet" {, arg1, arg2 ....}) Description Commande d’image-objet Flash ; crée un objet ActionScript du type spécifié. Tous les paramètres d’initialisation requis par l’objet peuvent être définis après le type d’objet. Chaque argument doit être séparé des autres par une virgule. La commande renvoie une référence au nouvel objet. La syntaxe suivante crée un objet dans une image-objet Flash : réfDimageObjetFlash.newObject("typeDobjet" {, arg1, arg2 ....}) 457 La syntaxe suivante crée un objet global : newObject("typeDobjet" {, arg1, arg2 ....}) 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 dans Shockwave et dans les projections. Les Xtras sont ajoutés à la liste des Xtras via Modification > Animation > Xtras. Pour plus d’informations, consultez la section Gestion des Xtras des animations distribuées dans l’aide de Director (Aide > Utilisation de Director > Options de distribution des animations). Exemples Cette instruction Lingo 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 : tObjetDeConnexionLocale = sprite(3).newObject("ConnexionLocale") L’instruction Lingo 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. tObjetTableau = sprite(3).newObject("Array",23,34,19) Voir aussi setCallback(), clearAsObjects() newShader Syntaxe member(quelActeur).newShader(nomDeNouveauMatériau, #typeDeMatériau) Description Commande 3D ; crée un matériau du #typeDeMatériau spécifié dans la liste des matériaux de l’acteur référencé et renvoie une référence au nouveau matériau. Tous les matériaux de la liste de matériaux doivent avoir un nom unique. L’argument #typeDeMatériau détermine le style d’application du matériau et ses valeurs possibles sont les suivantes : • 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. 458 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. Exemple L’instruction suivante crée le matériau #painter nouveauPeintre. nouveauPeintre = member("Univers 3D").newShader("nouveauPeintre",#painter) Voir aussi shadowPercentage newTexture Syntaxe 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. Toutes les textures de la palette de textures de l’acteur doivent avoir un nom unique. Les paramètres #indicateurDeType et référenceDobjetSource sont facultatifs et, s’ils ne sont pas spécifiés, une nouvelle texture sans type ni source sera créée. Les textures d’acteur ne fonctionnent que lorsque vous spécifiez l’acteur dans le constructeur newTexture. Le paramètre #indicateurDeType peut avoir deux valeurs, #fromCastMember (un acteur) ou #fromImageObject (un objet image Lingo). Le paramètre référenceDobjetSource doit être une référence à un acteur si vous spécifiez #fromCastMember ou un objet image Lingo si vous spécifiez #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") next Syntaxe next Description Mot-clé ; fait référence au repère suivant de l’animation et revient à utiliser la phrase the marker (+ 1). Exemples L’instruction suivante envoie la tête de lecture sur le repère suivant de l’animation : go next 459 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 the keyCode = 124 then go next if the keyCode = 123 then go previous end keyUp Voir aussi loop (mot-clé), go previous next repeat Syntaxe 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 node Syntaxe sprite(quelleImageObjetQTVR).node the node of sprite quelleImageObjetQTVR Description Propriété d’image-objet QuickTime VR ; renvoie l’identifiant de nœud affiché par l’image-objet. Cette propriété peut être testée et définie. nodeEnterCallback Syntaxe sprite(quelleImageObjetQTVR).nodeEnterCallback the nodeEnterCallback of sprite quelleImageObjetQTVR Description Propriété d’image-objet QuickTime VR ; contient le nom du gestionnaire exécuté lorsque l’animation QuickTime VR est passée à un nouveau nœud actif de la scène. Ce message a deux arguments : le paramètre me et l’ identifiant du nœud affiché. L’image-objet QuickTime VR reçoit le message en premier. Pour annuler l’appel, donnez à cette propriété une valeur de 0. 460 Pour des performances optimales, ne définissez de propriété d’appel que lorsque absolument nécessaire. Cette propriété peut être testée et définie. nodeExitCallback Syntaxe sprite(quelleImageObjetQTVR).nodeExitCallback the nodeExitCallback of sprite quelleImageObjetQTVR Description Propriété d’image-objet QuickTime VR ; contient le nom du gestionnaire exécuté lorsque l’animation QuickTime VR est sur le point de passer à un nouveau nœud actif de la scène. Le message contient trois arguments : le paramètre me, l’identifiant du nœud que l’animation est sur le point de quitter et celui du nœud auquel elle s’apprête à passer. La valeur renvoyée par le gestionnaire détermine si l’animation passe ou non au nœud suivant. Si le gestionnaire renvoie #continue, l’image-objet QuickTime VR passe normalement au nœud suivant. Par contre, s’il renvoie #cancel, la transition n’a pas lieu et l’animation reste sur le nœud d’origine. Cette propriété doit être réglée sur 0 pour effacer l’instruction d’appel. L’image-objet QuickTime VR reçoit le message en premier. Pour des performances optimales, ne définissez de propriété d’appel que lorsque absolument nécessaire. Cette propriété peut être testée et définie. nodeType Syntaxe sprite(quelleImageObjetQTVR).nodeType nodeType of sprite quelleImageObjetQTVR Description Propriété d’image-objet QuickTime VR ; renvoie le type du nœud de l’image-objet spécifiée actuellement sur la scène. Les valeurs possibles sont #object, #panorama ou #unknown. #unknown correspond à la valeur d’une image-objet qui n’est pas une image-objet QuickTime VR. Cette propriété peut être testée, mais pas définie. normalize Syntaxe 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. 461 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, 0.0000, 1.0000 ) Voir aussi getNormalized, randomVector, magnitude normalList Syntaxe member(quelActeur).modelResource(quelleRessDeMod).\ normalList model.meshDeform.mesh[index].normalList Description Propriété 3D ; utilisée avec une ressource de modèle de type #mesh, cette propriété permet d’obtenir ou de définir la propriété normalList de la ressource de modèle. La propriété normalList est une liste de vecteurs linéaire à partir de laquelle vous pouvez spécifier des normales de sommets pour la construction des faces de votre maille. Cette propriété doit être définie à l’aide d’une liste comprenant exactement le même nombre de vecteurs que dans l’appel newMesh(). Autrement, la propriété normalList peut être générée par la méthode generateNormals() des ressources de modèle de maille. De même, dans le cas du modificateur meshDeform, la propriété normalList est une liste de vecteurs linéaire à partir de laquelle vous pouvez spécifier les normales des sommets pour déformer votre maille. Pour plus d’informations sur les normales de faces et de sommets, consultez normals. Exemples put member(5,2).modelResource("carré de maille").normalList -- [vector(0,0,1)] member(2).modelResource("maille3").normalList[2] = vector\ (205.0000, -300.0000, 27.0000) Voir aussi face, meshDeform (modificateur) 462 normals Syntaxe member(quelActeur).modelResource(quelleRessDeMod).\ face[index].normals Syntaxe Propriété 3D de face ; pour les ressources de modèle de type #mesh (créées à l’aide de la commande newMesh), cette propriété permet d’obtenir et de définir la liste des vecteurs de normales utilisés par la face spécifiée par le paramètre index. Définissez cette propriété à l’aide d’une liste linéaire de nombres entiers correspondant à la position d’index de chaque normale de sommet dans la propriété normalList de la ressource de modèle. Cette propriété doit être définie à la même longueur que la liste face[index].vertices ou peut être une liste vide [ ]. Ne définissez aucune valeur pour cette propriété si vous prévoyez de générer les vecteurs de normales à l’aide de la commande generateNormals(). Si vous apportez des modifications à cette propriété ou utilisez la commande generateNormals(), vous devrez appeler la commande build() pour reconstruire la maille. Exemple L’instruction suivante définit la propriété normals de la cinquième face de la ressource de modèle Lecteur à l’aide d’une liste de nombres entiers. member("3D").modelResource("Lecteur").face[5].normals = [2,32,14] Voir aussi face, normalList, vertices not Syntaxe not expressionLogique Description Opérateur ; effectue la négation logique d’une expression logique. Elle revient à donner à une valeur TRUE la valeur FALSE et à donner à une valeur FALSE la valeur TRUE. Elle est pratique pour vérifier si une certaine condition connue existe ou non. Cet opérateur logique a un niveau de priorité de 5. Exemples L’instruction suivante détermine si 1 n’est pas inférieur à 2 : put not (1 < 2) Puisque 1 est inférieur à 2, le résultat est 0, ce qui indique que la valeur de l’expression est FALSE. L’instruction suivante détermine si 1 n’est pas supérieur à 2 : put not (1 > 2) Puisque 1 n’est pas supérieur à 2, le résultat est 1, ce qui indique que la valeur de l’expression est TRUE. 463 Le gestionnaire suivant donne à la propriété the checkMark de l’article Gras du menu Style l’inverse de sa valeur courante : on razDeLélémentDeMenu the checkMark of menuItem("Gras") of menu("Style") = \ not (the checkMark of menuItem("Gras") of menu("Style")) end razDeLélémentDeMenu Voir aussi and, or nothing Syntaxe 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. Exemples L’instruction imbriquée if...then...else du gestionnaire suivant utilise la commande nothing à la suite de la clause else de l’instruction : 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 Avec le gestionnaire suivant, l’animation n’évolue pas tant que l’utilisateur appuie sur le bouton de la souris : on mouseDown repeat while the stillDown nothing end repeat end mouseDown Voir aussi if 464 nudge Syntaxe sprite(quelleImageObjetQTVR).nudge(#direction ) nudge(sprite quelleImageObjetQTVR, #direction) Description Commande QuickTime VR ; déplace la perspective de l’image-objet QuickTime VR spécifiée dans la direction spécifiée par la valeur #direction. Les valeurs possibles de #direction sont #down, #downLeft, #downRight, #left, #right, #up, #upLeft et #upRight. 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. 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. on mouseDown me repeat while the stillDown sprite(1).nudge(#left) end repeat end number (propriété de distribution) Syntaxe the number of castLib quelleDistribution Description Propriété de distribution ; indique le numéro de la distribution spécifiée. Par exemple, 2 est le numéro de castLib de la Distribution 2. Cette propriété peut être testée, mais pas définie. Exemple La boucle suivante utilise la fenêtre Messages pour afficher le nombre d’acteurs contenus dans chaque distribution de l’animation : repeat with n = 1 to the number of castLibs put castLib(n).name && "contient" && the number of \ members of castLib(n) && "acteurs." end repeat number (propriété d’acteur) Syntaxe member(quelActeur).number the number of member quelActeur Description Propriété d’acteur ; indique le numéro de l’acteur spécifié par quelActeur : ce peut être un nom, si quelActeur est une chaîne, ou un nombre, si quelActeur est un nombre entier. Cette propriété est un identifiant unique de l’acteur. C’est un nombre entier décrivant l’emplacement et la position de l’acteur dans la distribution. Cette propriété peut être testée, mais pas définie. 465 Remarque Si vous utilisez la première syntaxe, member(quelActeur).number, une erreur se produit si l’acteur n’existe pas. Si vous n’êtes pas certain de l’existence d’un acteur, utilisez l’autre syntaxe pour éviter cette erreur. Exemples L’instruction suivante donne le numéro de l’acteur Interrupteur à la variable quelActeur : quelActeur = member("Interrupteur").number L’instruction suivante affecte l’acteur Ballon rouge à l’image-objet 1 : sprite(1).member = member("Ballon rouge").number L’instruction suivante vérifie l’existence d’un acteur avant de changer l’acteur associé à l’imageobjet : property spriteNum on mouseUp me if (member("Visage").number > 0) then sprite(spriteNum).member = "Visage" end if end Voir aussi member (propriété d’image-objet), memberNum, number of members number (caractères) Syntaxe the number of chars in expressionSousChaîne Description Expression de sous-chaîne ; renvoie le nombre total de caractères d’une expression de sous-chaîne. Une expression de sous-chaîne peut être un caractère (y compris des espaces et des caractères de contrôle tels que Tab et Retour), un mot, un élément ou la ligne d’un conteneur de caractères. Les conteneurs peuvent être des acteurs champ 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. Remarque La fonction count() est plus pratique pour déterminer le nombre de caractères d’une sous-chaîne. Exemples L’instruction suivante affiche le nombre de caractères de la chaîne Macromedia, la société multimédia dans la fenêtre Messages : put the number of chars in "Macromedia, la société multimédia" Le résultat est 33. L’instruction suivante donne à la variable compteurDeCaractères le nombre de caractères du mot i de la chaîne Noms : compteurDeCaractères = the number of chars in member("Noms").word[i] Vous pouvez obtenir les mêmes résultats avec les acteurs texte en utilisant la syntaxe suivante : compteurDeCaractères = member("Noms").word[i].char.count Voir aussi length(), char...of, count(), number (éléments), number (lignes), number (mots) 466 number (éléments) Syntaxe the number of items in expressionSousChaîne Description Sous-chaîne ; renvoie le nombre total d’éléments d’une expression de sous-chaîne. Un élément de sous-chaîne est une série de caractères délimitée par des virgules. Une expression de sous-chaîne peut être un caractère, un mot, un élément ou la ligne d’un conteneur de caractères. Les conteneurs peuvent être des acteurs champ 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. Remarque La fonction count() est plus pratique pour déterminer le nombre de caractères d’une expression de sous-chaîne. Exemples L’instruction suivante affiche le nombre d’éléments de la chaîne Macromedia, la société multimédia dans la fenêtre Messages : put the number of items in "Macromedia, la société multimédia" Le résultat est 2. L’instruction suivante donne à la variable compteurDéléments le nombre d’éléments du champ Noms : compteurDéléments = the number of items in member("Noms").text Vous pouvez obtenir les mêmes résultats avec les acteurs texte en utilisant la syntaxe suivante : compteurDéléments = member("Noms").item.count Voir aussi item...of, count(), number (caractères), number (lignes), number (mots) number (lignes) Syntaxe the number of lines in expressionSousChaîne Description Sous-chaîne ; renvoie le nombre total de lignes d’une expression de sous-chaîne. Les lignes sont délimitées par des retours de chariot et non par des retours à la ligne automatiques. Une expression de sous-chaîne peut être un caractère, un mot, un élément ou la ligne d’un conteneur de caractères. Les conteneurs peuvent être des acteurs champ 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. Remarque La fonction count() est plus pratique pour déterminer le nombre de lignes d’une sous-chaîne. Exemples L’instruction suivante affiche le nombre de lignes contenues dans la chaîne Macromedia, la société multimédia dans la fenêtre Messages : put the number of lines in "Macromedia, la société multimédia" 467 Le résultat est 1. L’instruction suivante donne à la variable compteurDeLignes le nombre de lignes contenues dans le champ Noms : compteurDeLignes = the number of lines in member("Noms").text Vous pouvez obtenir les mêmes résultats avec les acteurs texte en utilisant la syntaxe suivante : compteurDeLignes = member("Noms").line.count Voir aussi line...of, count(), number (caractères), number (éléments), number (mots) number (menus) Syntaxe the number of menus Description Propriété de menu ; indique le nombre de menus de l’animation courante. Cette propriété peut être testée, mais non définie. Utilisez la commande installMenu pour créer une barre de menu personnalisée. Remarque Les menus ne sont pas disponibles dans Shockwave. Exemples L’instruction suivante détermine si l’animation contient des menus personnalisés et, si ce n’est pas le cas, installe le menu barreDeMenus : if the number of menus = 0 then installMenu "barreDeMenus" L’instruction suivante affiche le nombre de menus de l’animation courante dans la fenêtre Messages : put the number of menus Voir aussi installMenu, number (éléments de menu) number (éléments de menu) Syntaxe the number of menuItems of menu quelMenu Description Propriété de menu ; indique le nombre d’articles du menu personnalisé spécifié par quelMenu. Le paramètre quelMenu peut être un nom ou un numéro de menu. Cette propriété peut être testée, mais non définie. Utilisez la commande installMenu pour créer une barre de menu personnalisée. Remarque Les menus ne sont pas disponibles dans Shockwave. 468 Exemples L’instruction suivante donne à la variable élémentsDeFichier le nombre d’éléments du menu personnalisé Fichier : élémentsDeFichier = the number of menuItems of menu "Fichier" L’instruction suivante donne à la variable compteDesEléments le nombre d’éléments du menu personnalisé dont le numéro est égal à la variable i : compteDesEléments = the number of menuItems of menu i Voir aussi installMenu, number (menus) number (propriété système) Syntaxe the number of castLibs Description Propriété système ; renvoie le nombre de distributions de l’animation courante. Cette propriété peut être testée, mais pas définie. Exemple La boucle suivante utilise la fenêtre Messages pour afficher le nombre d’acteurs contenus dans chaque distribution de l’animation : repeat with n = 1 to the number of castLibs put castLib(n).name && "contient" && the number of \ members of castLib(n) && "acteurs." end repeat number (mots) Syntaxe the number of words in expressionSousChaîne Description Expression de sous-chaîne ; renvoie le nombre de mots dans l’expression de sous-chaîne spécifiée par expressionSousChaîne. Une expression de sous-chaîne peut être un caractère, un mot, un élément ou une ligne d’un conteneur de caractères. Les conteneurs peuvent être des acteurs champ 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. Pour compter le nombre de mots contenus dans les acteurs texte, consultez count. Remarque La fonction count() est plus pratique pour déterminer le nombre de mots d’une sous-chaîne. Exemples L’instruction suivante affiche le nombre de mots de la chaîne Macromedia, la société multimédia dans la fenêtre Messages : put the number of words in "Macromedia, la société multimédia" Le résultat est 4. 469 Le gestionnaire suivant inverse l’ordre des mots spécifiés par l’argument listeDeMots : on reverse listeDeMots laListe = EMPTY repeat with i = 1 to the number of words in listeDeMots put word i of listeDeMots & " " before laListe end repeat delete laListe.char[laListe.char.count] return laListe end Voir aussi count(), number (caractères), number (éléments), number (lignes), word...of number of members Syntaxe the number of members of castLib quelleDistribution Description Propriété d’acteur ; indique le numéro du dernier acteur de la distribution spécifiée. Cette propriété peut être testée, mais pas définie. Exemple L’instruction suivante affiche le type de chaque acteur de la distribution Distribution Centrale dans la fenêtre Messages. La propriété number of members of castLib est utilisée pour déterminer le nombre de répétitions de la boucle. repeat with i = 1 to the number of members of castLib("Distribution Centrale") put "L’acteur" && i && "est un" && member(i, "Distribution Centrale").type end repeat number of xtras Syntaxe the number of xtras Description Propriété système ; renvoie le nombre d’Xtras de programmation disponibles pour l’animation. Ces Xtras peuvent avoir été ouverts avec la commande openxlib ou se trouver dans le dossier standard des Xtras. Cette propriété peut être testée, mais pas définie. Exemple L’instruction suivante affiche le nombre d’Xtras de programmation disponibles pour l’animation dans la fenêtre Messages : put the number of xtras 470 numChannels Syntaxe member(quelActeur).numChannels the numChannels of member quelActeur Description Propriété d’acteur Shockwave Audio (SWA) ; renvoie le nombre de pistes de l’acteur SWA spécifié lu en flux continu. Les valeurs sont 1 pour mono ou 2 pour stéréo. Cette propriété n’est disponible qu’après le début de la lecture en flux continu de l’acteur SWA ou après le préchargement du fichier avec la commande preLoadBuffer. Cette propriété peut être testée, mais pas définie. Exemple Dans l’exemple suivant, le nombre de pistes audio de l’acteur SWA transféré Duke Ellington est affecté à l’acteur champ Affichage des pistes : maVariable = member("Duke Ellington").numChannels if maVariable = 1 then member("Affichage des pistes").text = "Mono" else member("Affichage des pistes").text = "Stereo" end if numParticles Syntaxe member(quelActeur).modelResource(quelleRessDeMod).\ emitter.numParticles référenceDobjetDeRessourceDeModèle.emitter.numParticles Description Propriété 3D ; utilisée avec une ressource de modèle de type #particle, cette propriété permet d’obtenir ou de définir la propriété numParticles de l’émetteur de particules de la ressource. La valeur doit être supérieure à 0 et inférieure ou égale à 100 000, la valeur par défaut étant 1000. Exemple Dans l’exemple suivant, systèmeThermique est une ressource de modèle de type #particle. L’instruction suivante donne au nombre de particules de systèmeThermique la valeur 50 000. member("Feux").modelResource("systèmeThermique").emitter.\ numParticles = 50000 Voir aussi emitter numSegments Syntaxe member(quelActeur).modelResource(quelleRessDeMod).\ numSegments Description Propriété 3D ; utilisée avec une ressource de modèle de type #cylinder, cette propriété permet d’obtenir ou de définir la propriété numSegments de la ressource de modèle. 471 La propriété numSegments détermine le nombre de segments entre l’extrémité supérieure et l’extrémité inférieure du cylindre. Cette propriété doit être supérieure ou égale à la valeur par défaut de 2. Le lissé de la surface du cylindre dépend de la valeur spécifiée pour cette propriété. Plus la valeur de la propriété est élevée, plus la surface du cylindre apparaît lisse. Exemple L’instruction suivante donne à la propriété numSegments de la ressource de modèle Cylindre03 la valeur 10. member("Univers 3D").modelResource("Cylindre03").numSegments = 10 numToChar() Syntaxe numToChar(expressionEntière) Description Fonction ; affiche une chaîne contenant le caractère dont le code ASCII est la valeur de expressionEntière. 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. Exemples 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 : 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 Voir aussi charToNum() 472 obeyScoreRotation Syntaxe member(acteurFlash).obeyScoreRotation Description Propriété d’acteur Flash ; définie comme TRUE ou FALSE pour déterminer si l’image-objet animation Flash utilise les informations de rotation du scénario ou l’ancienne propriété de rotation des éléments Flash. Cette propriété est automatiquement définie comme FALSE pour toutes les animations créées par des versions de Director antérieures à 7 afin de conserver l’ancienne fonctionnalité consistant à utiliser la propriété de rotation d’acteurs pour toutes les images-objets contenant cet acteur Flash. La propriété des nouveaux éléments créés par la version 7 ou ultérieure est automatiquement définie comme TRUE. Si définie comme TRUE, la propriété de rotation de l’acteur est ignorée et ce sont les paramètres de rotation du scénario qui sont utilisés. Exemple Le script d’image-objet suivant définit la propriété obeyScoreRotation de l’acteur Dalmatien sur 1 (TRUE) et fait ensuite pivoter de 180° l’image-objet qui contient l’acteur. on mouseUp me member("dalmatien").obeyScoreRotation = 1 sprite(1).rotation = sprite(1).rotation + 180 end Cette propriété peut être testée et définie. Voir aussi rotation objectP() Syntaxe objectP(expression) Description Fonction ; indique si l’expression spécifiée par expression 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. Vous pourrez voir un exemple de objectP() dans une animation en consultant l’animation Read and Write Text du dossier Learning/Lingo_Examples, lui-même dans le dossier de Director. 473 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. if objectP(gBaseDeDonnées) then nothing else gBaseDeDonnées = script("Contrôleur de base de données").new() end if Voir aussi floatP(), ilk(), integerP(), stringP(), symbolP() of Le mot of fait partie de nombreuses propriétés Lingo, telles que foreColor, number, name, etc. offset() (fonction de chaîne) Syntaxe offset(expressionChaîne1, expressionChaîne2) Description Fonction ; renvoie un nombre entier indiquant la position du premier caractère de expressionChaîne1 dans expressionChaîne2. Cette fonction renvoie 0 si expressionChaîne1 ne se trouve pas dans expressionChaîne2. Lingo considère les espaces comme des caractères dans les deux chaînes. Sur le Macintosh, la comparaison des chaînes ne tient pas compte de la casse. Ainsi, Lingo considère a et Å comme identiques sur le Macintosh. Exemples 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. 474 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 sortie, puis les remplace par la chaîne représentée par chaîneAinsérer. 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 Voir aussi chars(), length(), contains, starts offset() (fonction de rectangle) Syntaxe rectangle.offset(changementHorizontal, changementVertical) offset (rectangle, changementHorizontal, changementVertical) Description Fonction ; produit un rectangle décalé par rapport au rectangle spécifié par rectangle. Le décalage horizontal est la valeur spécifiée par changementHorizontal ; le décalage vertical est la valeur spécifiée par changementVertical. • 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. • 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. Les valeurs de changementVertical et de changementHorizontal sont exprimées en pixels. Exemple Le gestionnaire suivant déplace l’image-objet 1 de cinq pixels vers la droite et de cinq pixels vers le bas. on mouvementDiagonal nouveauRect=sprite(1).rect.offset(5, 5) sprite(1).rect=nouveauRect end 475 on Syntaxe 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. open Syntaxe open {quelDocument with} quelleApplication Description Commande ; lance l’application spécifiée par la chaîne quelleApplication. Utilisez quelDocument pour spécifier un document que l’application ouvre lorsqu’elle est lancée. Si l’application ou le document à ouvrir se trouvent dans un autre dossier que l’animation courante, vous devez spécifier leur chemin d’accès complet. L’ordinateur doit avoir assez de mémoire pour exécuter simultanément Director et d’autres applications. Cette commande est une commande très simple d’ouverture d’une application ou d’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. Exemples L’instruction suivante vérifie si l’ordinateur est un Macintosh et, le cas échéant, ouvre l’application TextEdit : if the platform contains "Mac" then open "TextEdit" L’instruction suivante ouvre l’application TextEdit, qui se trouve dans le dossier Applications sur le disque dur, ainsi que le document Synopsis : open "Synopsis" with "HD:Applications:TextEdit" Voir aussi openXlib openResFile Obsolète. Utilisez recordFont. 476 open window Syntaxe window(quelleFenêtre).open() open window quelleFenêtre Description Commande de fenêtre ; ouvre l’objet fenêtre ou le fichier d’animation spécifié par quelleFenêtre et l’amène à l’avant de la scène. Si aucune animation n’est affectée à la fenêtre, la boîte de dialogue d’ouverture de fichier s’affiche. • Si vous remplacez quelleFenêtre par le nom d’un fichier d’animation, la fenêtre utilise ce nom de fichier. • Si vous remplacez quelleFenêtre par le nom d’une fenêtre, la fenêtre prend ce nom. Vous devez cependant affecter une animation à la fenêtre en utilisant set the fileName of window. Pour ouvrir une fenêtre qui utilise une animation provenant d’une adresse URL, il est judicieux de télécharger le fichier sur votre disque local à l’aide de la commande downloadNetThing, puis d’utiliser ce fichier depuis votre disque local. Ceci minimise les problèmes d’attente nécessaire au téléchargement. Pour les médias locaux, l’animation n’est chargée en mémoire qu’à l’exécution de la commande Ceci peut entraîner un retard important si vous n’utilisez pas preloadMovie pour charger au moins la première image de l’animation avant de lancer la commande open window. open movie. Remarque L’ouverture d’une animation dans une fenêtre n’est pas encore supportée pour la lecture dans un navigateur web. Exemple L’instruction suivante ouvre la fenêtre Tableau de commande et la place au premier plan : window("Tableau de commande").open()" Voir aussi close window, downloadNetThing, preLoadMovie on openWindow Syntaxe on openWindow instruction(s) end 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 Lingo à 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 : on openWindow puppetSound 2, "Hourra" end 477 openXlib Syntaxe openXlib quelFichier Description Commande ; ouvre le fichier Xlibrary spécifié par la chaîne quelFichier. Si le fichier n’est pas dans le dossier de l’animation courante, quelFichier doit inclure le chemin. 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. Sous Windows, l’extension .dll est facultative. Remarque Cette commande n’est pas supportée dans Shockwave. Exemples 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(), showXlib optionDown Syntaxe the optionDown Description Propriété système ; détermine si l’utilisateur a appuyé sur la touche Alt (Windows) ou Option (Macintosh) est enfoncée (TRUE) ou non (FALSE). Sous Windows, optionDown ne fonctionne pas dans les projections si la touche Alt est enfoncée sans autre touche normale (autre qu’une touche de modification). Evitez d’utiliser optionDown si vous prévoyez de diffuser une animation sous forme de projection Windows et que vous avez besoin de détecter uniquement l’enfoncement de la touche de modification ; utilisez controlDown ou shiftDown à la place. Sur le Macintosh, l’enfoncement de la touche Option change la valeur de key ; utilisez donc keyCode à la place. Si l’animation est lue avec le lecteur Director pour Java, cette fonction ne renvoie TRUE que si une deuxième touche est enfoncée en même temps que la touche Alt ou Option. Si seule la touche Alt ou Option est enfoncée, optionDown renvoie FALSE. 478 Le lecteur Director pour Java supporte les combinaisons de touches avec Alt ou Option. Le navigateur web reçoit cependant les signaux des touches avant la lecture de l’animation. Il y répond et intercepte toute combinaison servant également de raccourci clavier pour le navigateur. Exemple Le gestionnaire suivant vérifie si la touche Alt ou Option est enfoncée et, le cas échéant, appelle le gestionnaire toucheDoption : on keyDown if (the optionDown) then toucheDoption(key) end keyDown Voir aussi controlDown, commandDown, key(), keyCode(), shiftDown or Syntaxe expressionLogique1 or expressionLogique2 Description Opérateur ; effectue une opération OR logique sur deux expressions logiques ou plus pour déterminer si une expression est TRUE. Cet opérateur logique a un niveau de priorité de 4. Exemples L’instruction suivante indique dans la fenêtre Messages si l’une au moins des expressions 1 < 2 et 1 > 2 est TRUE : put (1 < 2) or (1 > 2) Puisque la première expression est TRUE, le résultat est 1 (équivalent numérique de TRUE). L’instruction suivante vérifie si le contenu de l’acteur champ appelé Département est Ariège ou Gironde et, le cas échéant, affiche un message d’alerte : if member("Département").text = "Ariège" or member("Etat").text = "Gironde" then alert "Vous vous êtes perdu !" end if Voir aussi and, not organizationName Syntaxe the organizationName Description Propriété d’animation ; contient le nom de société entré lors de l’installation de Director. Cette propriété est uniquement disponible dans l’environnement de programmation. Elle peut s’utiliser dans une animation dans une fenêtre personnalisée pour afficher des informations utilisateur. 479 Exemple Le gestionnaire suivant serait normalement placé dans un script d’animation d’une animation MIAW. Il place le nom de l’utilisateur et le numéro de série dans une zone d’affichage dès l’ouverture de la fenêtre : on prepareMovie chaîneAffichée = the userName put RETURN & the organizationName after chaîneAffichée put RETURN & the serialNumber after chaîneAffichée member("Infos utilisateur").text = chaîneAffichée end Voir aussi serialNumber, userName, window originalFont Syntaxe member(quelActeurPolice).originalFont the originalFont of member quelActeurPolice Description Propriété d’acteur police ; renvoie le nom exact de la police d’origine importée lors de la création de l’acteur concerné. Exemple L’instruction suivante affiche le nom de la police importée lors de la création de l’acteur 11 : put member(11).originalFont -- "Monaco" Voir aussi recordFont, bitmapSizes, characterSet originH Syntaxe sprite(quelleImageObjetVecteurOuFlash).originH the originH of sprite quelleImageObjetVecteurOuFlash member(quelleImageObjetVecteurOuFlash).originH the originH of member quelleImageObjetVecteurOuFlash Description Propriété d’acteur et d’image-objet ; contrôle la coordonnée horizontale du point d’origine d’une animation Flash ou d’une forme vectorielle, en pixels. La valeur peut être exprimée sous forme de nombre à virgule flottante. Le point d’origine est la coordonnée d’une animation Flash ou d’une forme vectorielle autour de laquelle la mise à l’échelle et la rotation se produisent. Le point d’origine peut être défini avec une précision à virgule flottante au moyen des propriétés séparées originH et originV ou avec une précision en nombre entier au moyen de la propriété unique originPoint. Vous ne pouvez définir la propriété originH que si la propriété originMode a pour valeur #point. Cette propriété peut être testée et définie. La valeur par défaut est 0. 480 Remarque Cette propriété doit avoir la valeur par défaut si la propriété scaleMode a pour valeur #autoSize. Sinon, l’image-objet n’est pas correctement affichée. Exemple Le script d’image-objet suivant utilise la propriété originMode pour définir une image-objet animation Flash de sorte que son point d’origine soit un point spécifique. Il définit ensuite les points d’origine horizontal et vertical. on beginSprite me sprite(spriteNum of me).originMode = #point sprite(spriteNum of me).originH = 100 sprite(spriteNum of me).originV = 80 end Voir aussi originV, originMode, originPoint, scaleMode originMode Syntaxe sprite(quelleImageObjetFlashOuFormeVectorielle ).originMode the originMode of sprite quelleImageObjetFlashOuFormeVectorielle member(quelleImageObjetFlashOuFormeVectorielle).originMode the originMode of member quelleImageObjetFlashOuFormeVectorielle Description Propriété d’acteur et d’image-objet ; définit le point d’origine autour duquel la mise à l’échelle et la rotation se produisent, comme suit : • • • #center (valeur par défaut) – Le point d’origine est au centre de l’animation Flash. #topleft – Le point d’origine est dans l’angle supérieur gauche de l’animation Flash. #point – originV. Le point d’origine est un point spécifié par les propriétés originPoint, originH et Cette propriété peut être testée et définie. Remarque Cette propriété doit avoir la valeur par défaut si la propriété scaleMode a pour valeur #autoSize. Sinon, l’image-objet n’est pas correctement affichée. Exemple Le script d’image-objet suivant utilise la propriété originMode pour définir une image-objet animation Flash de sorte que son point d’origine soit un point spécifique. Il définit ensuite les points d’origine horizontal et vertical. on beginSprite me sprite(spriteNum of me).originMode = #point sprite(spriteNum of me).originH = 100 sprite(spriteNum of me).originV = 80 end Voir aussi originH, originV, originPoint, scaleMode 481 originPoint Syntaxe sprite quelleImageObjetVecteurOuFlash.originPoint the originPoint of sprite quelleImageObjetVecteurOuFlash member(quelleImageObjetVecteurOuFlash).originPoint the originPoint of member quelleImageObjetVecteurOuFlash Description Propriété d’acteur et d’image-objet ; contrôle le point d’origine autour duquel la mise à l’échelle et la rotation se produisent dans une animation Flash ou une forme vectorielle. La propriété originPoint est spécifiée en tant que valeur d’un point de Director : par exemple, point (100,200). La définition du point d’origine d’une animation Flash ou d’une forme vectorielle au moyen de la propriété originPoint est équivalente à la définition individuelle des propriétés originH et originV. Ainsi, la définition de la propriété originPoint comme point(50,75) est équivalente à la définition de la propriété originH comme 50 et de la propriété originV comme 75. Les valeurs de point Director spécifiées pour la propriété originPoint doivent être des nombres des nombres entiers, alors que originH et originV peuvent être spécifiées au moyen de nombres à virgule flottante. Lorsque vous testez la propriété originPoint, les valeurs du point sont tronquées pour proposer des nombres entiers. En règle générale, utilisez les propriétés originH et originV pour la précision ; utilisez la propriété originPoint pour la rapidité et la facilité. Vous ne pouvez définir la propriété originPoint que si la propriété originMode est réglée sur #point. Cette propriété peut être testée et définie. La valeur par défaut est 0. Remarque Cette propriété doit avoir la valeur par défaut si la propriété scaleMode a pour valeur #autoSize. Sinon, l’image-objet n’est pas correctement affichée. Exemple Le script d’image-objet suivant utilise la propriété originMode pour définir une image-objet animation Flash de sorte que son point d’origine soit un point spécifique. Il définit ensuite les points d’origine. on beginSprite me sprite(me.spriteNum).scaleMode = #showAll sprite(me.spriteNum).originMode = #point sprite(me.spriteNum).originPoint = point(100, 80) end Voir aussi originH, originV, scaleMode 482 originV Syntaxe sprite(quelleImageObjetVecteurOuFlash).originV the originV of sprite quelleImageObjetVecteurOuFlash member(quelActeurVecteurOuFlash).originV the originV of member quelActeurVecteurOuFlash Description Propriété d’acteur et d’image-objet ; contrôle la coordonnée verticale en pixels du point d’origine d’une animation Flash ou d’une forme vectorielle, autour duquel la mise à l’échelle ou la rotation s’effectue. La valeur peut être exprimée sous forme de nombre à virgule flottante. Le point d’origine peut être défini avec une précision à virgule flottante au moyen des propriétés séparées originH et originV ou avec une précision en nombre entier au moyen de la propriété unique originPoint. Vous ne pouvez définir la propriété originV que si la propriété originMode est réglée sur #point. Cette propriété peut être testée et définie. La valeur par défaut est 0. Remarque Cette propriété doit avoir la valeur par défaut si la propriété scaleMode a pour valeur #autoSize. Sinon, l’image-objet n’est pas correctement affichée. Exemple Le script d’image-objet suivant utilise la propriété originMode pour définir une image-objet animation Flash de sorte que son point d’origine soit un point spécifique. Il définit ensuite les points d’origine horizontal et vertical. on beginSprite me sprite(me.spriteNum).scaleMode = #showAll sprite(me.spriteNum).originMode = #point sprite(me.spriteNum).originH = 100 sprite(me.spriteNum).originV = 80 end Voir aussi originH, originPoint, scaleMode otherwise Syntaxe 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 : 483 • 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 (the key) of "A": go to frame "Pomme" "B", "C": puppetTransition 99 go to frame "Oranges" otherwise: alert "Cette touche n’est pas valide." end case end keyDown orthoHeight Syntaxe member(quelActeur).camera(quelleCaméra).orthoHeight member(quelActeur).camera[indexDeCaméra].orthoHeight sprite(quelleImageObjet).camera.orthoHeight Description Propriété 3D ; lorsque camera.projection a pour valeur #orthographic, la valeur camera.orthoHeight renvoie le nombre d’unités perpendiculaires de l’univers tenant verticalement dans l’image-objet. Les unités de l’univers sont les unités de mesure de l’univers 3D concerné. Elles sont cohérentes en interne mais choisies arbitrairement et, de ce fait, susceptibles de varier d’un univers 3D à l’autre. Veuillez noter qu’il n’est pas utile de spécifier l’index de caméra (quelleCaméra) pour accéder à la première caméra de l’image-objet. La valeur par défaut de cette propriété est 200.0. Exemple L’instruction suivante donne à la propriété orthoHeight de la caméra de l’image-objet 5 la valeur 200. Cela signifie que 200 unités d’univers logeront verticalement dans l’image-objet. sprite(5).camera.orthoheight = 200.0 Voir aussi projection overlay Syntaxe member(quelActeur).camera(quelleCaméra).\ overlay[indexDeRecouvrement].nomDePropriété member(quelActeur).camera(quelleCaméra).overlay.count Description Propriété 3D de caméra ; permet d’obtenir et de définir l’accès aux propriétés des recouvrements contenus dans la liste des recouvrements de la caméra à afficher. Utilisée comme overlay.count, cette propriété renvoie le nombre total de recouvrements (contenus dans la liste des recouvrements de la caméra) à afficher. 484 Les recouvrements sont des textures affichées devant tous les modèles qui apparaissent dans le frustrum de vue d’une caméra donnée. Les recouvrements sont dessinés dans l’ordre dans lequel ils apparaissent dans la liste de recouvrements de la caméra ; le premier élément de la liste apparaît derrière tous les autres recouvrements alors que le dernier se trouve devant. Chaque recouvrement de la liste de recouvrements de la caméra a les propriétés suivantes : • loc • source permet d’obtenir ou de définir la texture utilisée comme image source du recouvrement. • scale • • rotation • blend permet d’obtenir ou de définir la position spécifique de la propriété regPoint du recouvrement, par rapport au coin supérieur gauche du rect de la caméra. permet d’obtenir ou de définir la valeur de l’échelle utilisée par le recouvrement. L’échelle détermine l’agrandissement du recouvrement, la valeur par défaut de cette propriété étant 1.0. permet d’obtenir ou de définir la rotation du recouvrement, en degrés. permet d’obtenir ou de définir le point d’alignement du recouvrement par rapport au coin supérieur gauche de la texture. regPoint permet d’obtenir ou de définir la fusion du recouvrement à l’aide d’un nombre entier compris entre 0 et 100, ce qui définit la transparence (0) ou l’opacité (100) du recouvrement. Exemple L’instruction suivante affiche la propriété d’échelle du troisième recouvrement de la liste des recouvrements de la caméra de l’image-objet. put sprite(5).camera.overlay[3].scale -- 0.5000 Voir aussi addOverlay, removeOverlay, bevelDepth pageHeight Syntaxe member(quelActeur).pageHeight the pageHeight of member quelActeur Description Propriété d’acteur champ ; renvoie la hauteur, en pixels, de la zone de l’acteur champ visible sur la scène. Cette propriété peut être testée, mais pas définie. Exemple L’instruction suivante renvoie la hauteur de la portion visible de l’acteur champ Nouvelles du jour : put member("Nouvelles du jour").pageHeight" 485 palette Syntaxe member(quelActeur).palette the palette of member quelActeur Description Propriété d’acteur ; détermine, pour les acteurs bitmap uniquement, la palette associée à l’acteur spécifié par quelActeur. Cette propriété peut être testée et définie. Exemple L’instruction suivante affiche la palette affectée à l’acteur Feuilles dans la fenêtre Messages : put member("Feuilles").palette" paletteMapping Syntaxe the paletteMapping Description Propriété d’animation ; détermine si l’animation convertit (TRUE) ou non (FALSE, valeur par défaut) la palette des acteurs si elle est différente de la palette courante de l’animation. Son effet est similaire à celui obtenu avec la case à cocher Conversion automatique des palettes de la boîte de dialogue Propriétés de l’animation. Pour afficher simultanément différents bitmaps avec des palettes différentes, donnez la valeur à paletteMapping. Director analyse la palette de référence de chaque acteur affiché (la palette affectée dans sa boîte de dialogue Propriétés de l’acteur) et, si elle diffère de la palette courante, trouve le plus proche équivalent pour chaque pixel dans la nouvelle palette. TRUE Les couleurs du bitmap ne correspondant pas seront proches des couleurs d’origine. La conversion est assez coûteuse en termes d’utilisation du processeur et il est généralement plus judicieux de régler la palette du bitmap à l’avance. La conversion peut aussi produire des résultats indésirables. Si la palette change au milieu d’une séquence d’image-objet, le bitmap passe immédiatement à la nouvelle palette et apparaît dans des couleurs incorrectes. Cependant, si quelque chose rafraîchit l’écran – une transition ou une image-objet passant sur la scène – le rectangle affecté de l’écran apparaît dans les nouvelles couleurs. Exemple L’instruction suivante indique à l’animation de toujours convertir à sa palette lorsque nécessaire : set the paletteMapping = TRUE 486 paletteRef Syntaxe member(quelActeur).paletteRef the paletteRef Description Propriété d’acteur bitmap ; détermine la palette associée à un acteur bitmap. Les palettes intégrées de Director sont indiquées par des symboles (#systemMac, #rainbow, etc.). Les acteurs palettes sont considérés comme des références d’acteurs. Cette propriété est différente du comportement de la propriété d’acteur palette, qui renvoie un nombre positif pour les palettes de distribution et un nombre négatif pour les palettes intégrées de Director. Cette propriété peut être testée et définie. Exemple L’instruction suivante affecte la palette système du Macintosh à l’acteur bitmap Coquille : member("Coquille").paletteRef = #systemMac pan (propriété QTVR) Syntaxe pan of sprite quelleImageObjetQTVR Description Propriété d’image-objet QuickTime VR ; le panoramique courant de l’animation QuickTime VR. La valeur est exprimée en degrés. Cette propriété peut être testée et définie. pan (propriété audio) Syntaxe sound(numéroDePiste).pan the pan of sound(numéroDePiste) Description Propriété ; indique la balance gauche/droite du son en cours de lecture sur la piste audio numéroDePiste. La plage de valeurs s’étend de –100 à 100. La valeur -100 indique la lecture de la piste gauche uniquement. La valeur 100 indique la lecture de la piste droite uniquement. La valeur 0 indique une balance gauche/droite, entraînant le centrage du son. Pour les sons mono, pan affecte le haut-parleur (gauche ou droite) par lequel passera le son. Vous pouvez modifier la balance d’un son à tout moment, mais si la piste audio exécute un fondu, la définition de la balance ne prendra effet qu’après l’exécution du fondu. Vous pourrez voir un exemple de pan (propriété audio) dans une animation en consultant l’animation Sound Control du dossier Learning/Lingo_Examples, lui-même dans le dossier de Director. 487 Exemple L’instruction suivante équilibre le son de la piste audio 2, de la piste gauche vers la piste droite : repeat with x = -100 to 100 sound(2).pan = x end repeat Voir aussi fadeIn(), fadeOut(), fadeTo(), volume (piste audio) paragraph Syntaxe expressionSousChaîne.paragraph[quelParagraphe] expressionSousChaîne.paragraph[premierParagraphe..dernierParagraphe] Description Propriété d’acteur texte ; cette expression de sous-chaîne permet d’accéder à différents paragraphes dans un acteur texte. Le paragraphe est délimité par un retour de chariot. put member("Texte Animé").paragraph[3] Voir aussi line...of param() Syntaxe param(positionDeParamètre) Description Fonction ; renvoie la valeur d’un paramètre transmis à un gestionnaire. L’expression positionDeParamètre représente la position du paramètre dans les arguments. Cette fonction peut s’utiliser pour déterminer le type d’un paramètre particulier afin d’éviter les erreurs dans un gestionnaire. Exemple Le gestionnaire suivant accepte un nombre quelconque d’arguments, fait le total du nombre transmis en paramètres, puis renvoie la somme : on ajouterLesNombres somme = 0 repeat with numDeParamCourant = 1 to the paramCount somme = somme + param(numDeParamCourant) end repeat return somme end 488 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() Syntaxe the paramCount Description Fonction ; indique le nombre de paramètres transmis au gestionnaire courant. Exemple L’instruction suivante définit la variable compteur en fonction du nombre de paramètres transmis au gestionnaire courant : set compteur = the paramCount parent Syntaxe member(quelActeur).model(quelModèle).parent member(quelActeur).camera(quelleCaméra).parent member(quelActeur).light(quelleLumière)parent member(quelActeur).group(quelGroupe).parent Description Propriété 3D ; utilisée avec une référence de modèle, caméra, lumière ou groupe, cette propriété permet d’obtenir ou de définir le nœud parent de l’objet référencé. Le nœud parent peut être tout autre objet de modèle, de caméra, de lumière ou de groupe. La propriété transform d’un objet définit son échelle, sa position et son orientation par rapport à son objet parent. Donner à la propriété de parent d’un objet la valeur Void revient à retirer l’objet de l’univers à l’aide de la commande removeFromWorld(). Donner à la propriété de parent d’un objet la valeur de l’objet de groupe Univers (group("Univers")) revient à ajouter un objet à l’univers à l’aide de la commande addToWorld(). Vous pouvez aussi modifier la valeur de cette propriété à l’aide de la commande addChild. 489 Exemple L’instruction suivante définit la propriété de parent du modèle Pneu. Son parent est le modèle Voiture. member("Séquence").model("Pneu").parent = \ member("Séquence").model("Voiture") Voir aussi child, addChild parseString() Syntaxe 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’analyse, le second paramètre étant la chaîne contenant les données XML. 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(). 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() Syntaxe 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 XML Parser, le second étant l’adresse URL à laquelle les données XML résident. 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. Le troisième paramètre facultatif est le nom d’un gestionnaire qui devrait être exécuté une fois l’URL entièrement analysée, le quatrième paramètre facultatif étant le nom de l’objet script contenant ce gestionnaire. Si le quatrième paramètre n’est pas transmis, le nom du gestionnaire du troisième paramètre est considéré comme étant un gestionnaire de l’animation. 490 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(). Exemples L’instruction suivante analyse le fichier exemple.xml qui se trouve sur www.monEntreprise.fr. Vous utiliserez doneParsing() pour être averti(e) de la fin de l’opération d’analyse. 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) 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() 491 pass Syntaxe 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é. Le lecteur Director pour Java ne supporte cette commande que dans les gestionnaires on keyDown et on keyUp liés à des images-objets modifiables. La commande pass passe à la position suivante dès son exécution. Aucun élément Lingo 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. Exemple Le gestionnaire suivant détermine les touches enfoncées et en permet la transmission à l’imageobjet texte modifiable s’il s’agit de caractères valides : on keyDown me caractèresAdmis = "1234567890" if caractèresAdmis contains the key then pass else beep end if end Voir aussi stopEvent password Syntaxe sprite(quelleImageObjet).password member(quelActeur).password sprite(quelleImageObjet).password = motDePasse member(quelActeur).password = motDePasse Description Propriété d’acteur et image-objet RealMedia ; permet de définir le mot de passe nécessaire à l’accès à un train RealMedia protégé. Vous ne pouvez pas utiliser cette propriété pour récupérer un mot de passe spécifié auparavant. Si un mot de passe a été défini, la valeur de cette propriété est la chaîne "********". Si aucun mot de passe n’encore été défini, la valeur de cette propriété est une chaîne vide. 492 Exemples Les exemples suivants indiquent que le mot de passe a été défini pour le train RealMedia de l’acteur Real ou de l’image-objet 2. put sprite(2).password -- "********" put member("Real").password -- "********" Les exemples suivants indiquent que le mot de passe n’a jamais été défini pour le train RealMedia de l’acteur Real ou de l’image-objet 2. put sprite(2).password -- "" put member("Real").password -- "" Les exemples suivants définissent le mot de passe pour le train RealMedia de l’image-objet 2 et l’acteur Real à abracadabra. sprite(2).password = "abracadabra" member("Real").password = "abracadabra" Voir aussi userName (RealMedia) pasteClipBoardInto Syntaxe member(quelActeur). pasteClipBoardInto() pasteClipBoardInto member quelActeur Description Commande ; colle le contenu du Presse-papiers dans l’acteur spécifié par quelActeur et efface l’acteur existant. Par exemple, le collage d’un bitmap sur un acteur champ transforme le bitmap en acteur et efface l’acteur champ. 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é. La commande pasteClipBoardInto 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. Remarque Lorsque vous utilisez cette commande dans Shockwave ou dans l’environnement auteur et les 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. Exemple L’instruction suivante colle le contenu du Presse-papiers dans l’acteur bitmap Temple : member("Temple").pasteClipBoardInto() Voir aussi safePlayer 493 path Syntaxe member(quelActeur).modelResource(quelleRessDeMod).\ emitter.path Description Propriété 3D ; utilisée avec une ressource de modèle de type #particle, cette propriété permet d’obtenir ou de définir la propriété path de l’émetteur de particules de la ressource. Cette propriété est une liste de vecteurs qui définit le chemin suivi par les particules tout au long de leur existence. La valeur par défaut de cette propriété est une liste vide []. Exemple Dans l’exemple suivant, systèmeThermique est une ressource de modèle de type #particle. L’instruction suivante spécifie que les particules de systèmeThermique suivront le chemin décrit par la liste de vecteurs. member("Feux").modelResource("systèmeThermique").emitter.path = \ [vector(0,0,0), vector(15,0,0), vector(30,30,-10)] Voir aussi pathStrength, emitter pathName (propriété d’acteur) Syntaxe member(quelActeurFlash).pathName the pathName of member quelActeurFlash Description Propriété d’acteur ; contrôle l’emplacement d’un fichier externe dans lequel sont stockés les éléments d’un acteur animation Flash. Vous pouvez lier une animation Flash à un chemin d’accès sur un disque local ou réseau, ou vers une URL. La définition du chemin d’accès d’un acteur non lié le convertit en un acteur lié. Cette propriété peut être testée et définie. La propriété pathName d’un acteur non lié est une chaîne vide. Cette propriété est identique à la propriété fileName pour d’autres types d’acteurs, fileName pouvant s’utiliser à la place de pathName. Exemple 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 member(new(#flash)).pathName = \ "http://www.uneURL.com/monFlash.swf" end Voir aussi fileName (propriété d’acteur), linked 494 pathName (propriété d’animation) Obsolète. Utilisez moviePath. pathStrength Syntaxe member(quelActeur).modelResource(quelleRessDeMod).\ emitter.pathStrength Description Propriété 3D ; utilisée avec une ressource de modèle de type #particle, cette propriété détermine la façon dont les particules suivent le chemin spécifié par la propriété path de l’émetteur. Sa valeur peut être comprise entre 0.0 (aucune force – les particules ne seront pas attirées par le chemin) et l’infini. Sa valeur par défaut est 0.1. Donner à la propriété pathStrength la valeur 0.0 est utile pour désactiver temporairement le chemin. Plus la valeur de pathStrength sera élevée, plus le système de particules sera rigide. Des valeurs pathStrength élevées provoqueront le rebondissement très rapide des particules, à moins qu’une force modératrice soit également utilisée, telle que la propriété de particule drag. Cette propriété peut être testée et définie. Exemple Dans l’exemple suivant, systèmeThermique est une ressource de modèle de type #particle. L’instruction suivante donne à la propriété pathStrength de systèmeThermique la valeur 0.97. Si un chemin est indiqué par la propriété emitter.path de systèmeThermique, les particules suivront ce chemin de très près. member("Feux").modelResource("systèmeThermique").emitter.\ pathStrength = 0.97 Voir aussi path, emitter pattern Syntaxe member(quelActeur).pattern the pattern of member quelActeur Description Propriété d’acteur ; détermine le motif associé à la forme spécifiée. Les valeurs possibles sont les nombres correspondant aux puces de la palette des motifs de la fenêtre Outils. Si l’acteur forme est vide, le motif est appliqué à son bord externe. Le lecteur Director pour Java ne peut affecter que les motifs des puces 1 et 15 de la palette des motifs de Director. Cette propriété peut être utile dans les animations Shockwave pour changer des images en modifiant la mosaïque appliquée à une forme, ce qui permet d’économiser la mémoire requise par des bitmaps plus grands. Cette propriété peut être testée et définie. 495 Exemples Les instructions suivantes font de l’acteur forme Zone cible une forme remplie et lui affectent le motif 1, qui est une couleur unie : member("Zone cible").filled = TRUE member("Zone cible").pattern = 1 Le gestionnaire suivant effectue un cycle sur huit mosaïques, en décalant le numéro de chacune par rapport au précédent, ce qui permet de créer des animations utilisant des bitmaps de plus petite taille : on exitFrame motifActuel = member("Arrière-plan").pattern motifSuivant = 57 + ((motifActuel - 56) mod 8) member("Arrière-plan").pattern = motifSuivant go the frame end pause (lecture d’animation) Obsolète. Utilisez go to the frame. pause() (3D) Syntaxe 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. Exemple L’instruction suivante met l’animation courante du modèle fourmi3 en pause. member("Picnic").model("fourmi3").bonesplayer.pause() Voir aussi play() (3D), playing (3D), playlist pause (RealMedia) Syntaxe sprite(quelleImageObjet).pause() member(quelActeur).pause() Description Méthode d’acteur ou d’image-objet RealMedia ; interrompt la lecture du train multimédia. La valeur de mediaStatus devient #paused. 496 L’appel de cette méthode, lors de la lecture du train RealMedia, 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 train RealMedia en tampon. Exemples Les exemples suivants arrêtent la lecture de l’image-objet 2 ou de l’acteur Real. sprite(2).pause() member("Real").pause() Voir aussi mediaStatus, play (RealMedia), seek, stop (RealMedia) pause() (lecture audio) Syntaxe sound(numéroDePiste).pause() pause(sound(numéroDePiste)) Description Cette commande interrompt la lecture du son courant dans la piste audio numéroDePiste. Une prochaine commande play() entraînera la reprise de la lecture. Exemple L’instruction suivante met en pause la lecture de l’acteur son lu dans la piste audio 1 : sound(1).pause() Voir aussi breakLoop(), isBusy(), play() (audio), playNext(), queue(), rewind(), status, stop() (audio) pausedAtStart (Flash, vidéo numérique) Syntaxe member(quelActeurFlashOuVidéoNumérique).pausedAtStart the pausedAtStart of member quelActeurFlashOuVidéoNumérique Description Propriété d’acteur ; contrôle si la vidéo numérique ou l’animation Flash est lue lorsqu’elle apparaît sur la scène. Si cette propriété est TRUE, la vidéo numérique ou l’animation Flash n’est pas lue lorsqu’elle apparaît. Si elle est FALSE, la vidéo numérique ou l’animation Flash est lue dès qu’elle apparaît. Pour un acteur vidéo numérique, la propriété spécifie si la case En pause de la boîte de dialogue Propriétés de l’acteur vidéo numérique est cochée ou non. Cette propriété peut être testée et définie. 497 Exemple L’instruction suivante coche la case En pause dans la boîte de dialogue Propriétés de l’acteur vidéo numérique pour l’animation QuickTime Chaise pivotante : member("Chaise pivotante").pausedAtStart = TRUE Voir aussi play pausedAtStart (RealMedia) Syntaxe sprite(quelleImageObjet).pausedAtStart member(quelActeur).pausedAtStart Description Propriété d’acteur ou image-objet RealMedia ; permet d’obtenir ou de définir si la lecture d’un train RealMedia présent sur la scène démarre automatiquement à la fin de la mise en tampon (FALSE) ou non (TRUE). Cette propriété peut être définie en tant qu’expression évaluant TRUE ou FALSE. Les valeurs entières autres que 1 ou 0 sont traitées comme TRUE. Le paramètre par défaut de cette propriété est FALSE. Vous pouvez définir cette propriété sur TRUE en sélectionnant En pause dans l’affichage graphique de l’inspecteur des propriétés. Si cette propriété est définie sur FALSE, vous devez cliquer sur le bouton Lire dans la fenêtre RealMedia (ou sur un bouton que vous avez créé dans ce but dans votre animation), ou appeler la commande Lingo play pour lire l’image-objet une fois la mise en tampon effectuée. Cette propriété n’affecte que la lecture basée sur le scénario, et non la lecture dans la fenêtre RealMedia. Exemples Les exemples suivants indiquent que la propriété pausedAtStart de l’image-objet 2 et de l’acteur Real a pour valeur FALSE, ce qui signifie que le train RealMedia sera automatiquement lu à la fin de la mise en tampon. put sprite(2).pausedAtStart -- 0 put member("Real").pausedAtStart -- 0 Les exemples suivants donnent à la propriété pausedAtStart de l’image-objet 2 et de l’acteur Real la valeur TRUE, ce qui signifie que le train RealMedia ne sera pas lu jusqu’à l’appel de la commande play. sprite(2).pausedAtStart = TRUE member("Real").pausedAtStart = TRUE 498 L’exemple suivant utilise la propriété pausedAtStart pour mettre en tampon une image-objet RealMedia hors de la scène, puis la lire sur la scène, une fois la mise en tampon effectuée. Dans cet exemple, la propriété pausedAtStart de l’acteur RealMedia est définie sur TRUE. Une occurrence de cet acteur est située en dehors de la scène, sur la piste d’image-objet 1. Le script d’image suivant doit être placé dans la plage de l’image-objet : on exitFrame me if sprite(1).state > 3 then -- vérifier si la mise en tampon est effectuée sprite(1).locH = 162 sprite(1).locV = 118 sprite(1).play() -- positionner et lire l’image-objet end if end L’image-objet RealMedia sera mise en tampon en dehors de la scène, puis apparaîtra sur la scène et sera lue dès que la mise en tampon sera effectuée. pause member Syntaxe member(quelActeur). pause() pause member ("quelActeur") Description Commande ; met en pause le flux d’un acteur Shockwave Audio (SWA). Lorsque le son est en état de pause, la propriété state de l’acteur est égale à 4. La lecture de la portion du son déjà téléchargée et disponible se poursuit jusqu’à épuisement du cache. Exemple Le gestionnaire suivant peut servir de bouton lecture/pause. Si le son est en cours de lecture, le gestionnaire le met en pause ; sinon, le gestionnaire lit le son lié à l’acteur son SWA en flux continu. on mouseDown quelEtat = member("SWA").state if quelEtat = 3 then member("SWA").pause() else member("SWA").play() end if end Voir aussi play member, stop member pause sprite Syntaxe sprite(quelNuméroDimageObjetGIF).pause() pause(sprite quelNuméroDimageObjetGIF) Description Commande ; met en pause la lecture d’une image-objet GIF animée et reste sur l’image courante. 499 Exemple sprite(1).pause() Voir aussi resume sprite, rewind sprite percentBuffered Syntaxe sprite(quelleImageObjet).percentBuffered member(quelActeur).percentBuffered Description Propriété d’acteur ou d’image-objet RealMedia ; renvoie le pourcentage du tampon rempli par le train RealMedia chargé à partir d’un fichier local ou du serveur. Lorsque cette propriété atteint 100, la mémoire tampon est remplie et la lecture du train RealMedia démarre si la propriété pausedAtStart n’est pas définie sur TRUE. Cette propriété est dynamique en cours de lecture et ne peut pas être définie. La mémoire tampon est un type de mémoire cache qui contient la partie de l’animation qui va être lue, généralement les premières secondes. Le train entre en mémoire tampon lors de sa lecture en flux continu dans RealPlayer et quitte la mémoire tampon dès le démarrage de la lecture du clip. La mémoire tampon permet de visualiser le contenu sans télécharger l’ensemble du fichier, permet d’éviter les congestions sur le réseau et empêche que des défaillances de disponibilité de la bande passante interrompent la lecture. Le processus de mise en mémoire tampon est initialisé par la commande play et la lecture de la section du train comprise dans la mémoire tampon démarre une fois la mémoire tampon remplie à 100 %. Le processus de mise en mémoire tampon prenant quelques secondes, on notera un délai entre l’appel de la commande play et le début réel de la lecture du train. L’utilisation de la commande pausedAtStart permet de lire le train en dehors de la scène pendant le processus de mise en mémoire tampon, puis d’afficher le train sur la scène lorsque la lecture démarre. Pour plus d’informations, consultez l’entrée pausedAtStart (RealMedia). Exemples Les exemples suivants indiquent que 56 % du train RealMedia de l’image-objet 2 et de l’acteur Real a été mis en tampon. put sprite(2).percentBuffered -- 56 put member("Real").percentBuffered -- 56 Voir aussi mediaStatus, pausedAtStart (RealMedia), state (RealMedia) pauseState Syntaxe the pauseState Description Propriété d’animation ; détermine si l’animation est actuellement interrompue (TRUE) ou non (FALSE) avec la commande pause. 500 La commande pause étant obsolète, cette propriété est rarement utilisée. Exemple L’instruction suivante vérifie si l’animation est interrompue et, le cas échéant, en continue la lecture : if the pauseState = TRUE then go the frame + 1 Voir aussi pause (lecture d’animation) percentPlayed Syntaxe member(quelActeur).percentPlayed the percentPlayed of member quelActeur Description Propriété d’acteur Shockwave Audio (SWA) ; renvoie le pourcentage du fichier SWA spécifié qui a été lu. Cette propriété ne peut être lue qu’une fois la lecture du son SWA déclenchée ou lorsqu’il a été préchargé à l’aide de la commande preLoadBuffer. Cette propriété ne peut pas être définie. Exemple Le gestionnaire suivant affiche le pourcentage de l’acteur SWA Frank Sinatra lu en flux continu et place cette valeur dans l’acteur champ Pourcentage lu : on exitFrame quelEtat = member("Frank Sinatra").state if quelEtat > 1 AND quelEtat < 9 then member("Pourcentage lu").text = / string(member("Frank Sinatra").percentPlayed) end if end Voir aussi percentStreamed percentStreamed Syntaxe member(quelActeurSWAouFlash).percentStreamed the percentStreamed of member quelActeurSWAouFlash sprite(quelleImageObjetQuickTime).percentStreamed Description Propriété d’acteur Shockwave Audio (SWA) et Flash, et propriété d’image-objet QuickTime. Pour les sons SWA en flux continu, prend la valeur du pourcentage d’un fichier SWA déjà lu en flux continu d’un serveur HTTP ou FTP. Pour les sons SWA, cette propriété diffère de la propriété percentPlayed en cela qu’elle indique la quantité du fichier mise en tampon mais pas encore lue. Cette propriété ne peut être lue qu’une fois la lecture du son SWA déclenchée ou lorsqu’il a été préchargé à l’aide de la commande preLoadBuffer. Pour les acteurs animation Flash, cette propriété a pour valeur le pourcentage d’une animation Flash lue en flux continu dans la mémoire. 501 Pour les images-objets QuickTime, cette propriété prend la valeur du pourcentage du fichier QuickTime lu. Cette propriété est une valeur comprise entre 0 et 100 %. Pour un fichier situé sur un disque local, la valeur est 100. Pour les fichiers lus en continu depuis Internet, la valeur percentStreamed augmente au fur et à mesure de la réception des octets. Cette propriété ne peut pas être définie. Exemple L’exemple suivant indique le pourcentage de l’acteur SWA Ray Charles lu en flux continu déjà récupéré et l’affiche dans un champ : on exitFrame quelEtat = member("Ray Charles").state if quelEtat > 1 AND quelEtat < 9 then member("Affichage du pourcentage lu").text = \ string(member("Ray Charles").percentStreamed) end if end Le script d’image suivant impose une boucle à la tête de lecture dans l’image courante tant que moins de 60 % de l’animation Flash appelée Ecran d’accueil ont été transférés en mémoire : on exitFrame if member("Ecran d’accueil").percentStreamed < 60 then go to the frame end if end Voir aussi percentPlayed percentStreamed (3D) Syntaxe member(quelActeur).percentStreamed Description Propriété 3D ; permet d’obtenir le pourcentage d’un acteur 3D qui a été chargé en mémoire. Cette propriété indique la quantité qui a été chargée du fichier initial ou du dernier fichier demandé. La valeur renvoyée est un nombre entier compris entre 0 et 100. Il n’y a pas de valeur par défaut pour cette propriété. Exemple L’instruction suivante indique que le chargement de l’acteur séquenceDeFête est terminé. put member("séquenceDeFête").percentStreamed -- 100 period Syntaxe objetDeTemporisation.period Description Propriété d’objet ; nombre de millisecondes compris entre les événements de temporisation transmis par l’objetDeTemporisation au gestionnaire de temporisation. 502 Cette propriété peut être testée et définie. Exemple Le gestionnaire de temporisation suivant diminue la valeur period de temporisation d’une seconde à chaque appel, jusqu’au moment où une période minimale de 2 secondes (2 000 millisecondes) est atteinte : on gestionDeTemporisation objetDeTemporisation if objetDeTemporisation.period > 2000 then objetDeTemporisation.period = objetDeTemporisation.period - 1000 end if end handleTimeout Voir aussi name (propriété de temporisation), persistent, target, time (propriété d’objet de temporisation), timeout(), timeoutHandler, timeoutList perpendicularTo Syntaxe vecteur1.perpendicularTo(vecteur2) Description Commande 3D de vecteur ; renvoie un vecteur perpendiculaire au vecteur d’origine et à un second vecteur (vecteur2). Cette commande équivaut à la commande de vecteur crossProduct. Pour plus d’informations, consultez crossProduct(). 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 persistent Syntaxe objetDeTemporisation.persistent Description Propriété d’objet ; détermine si l’objetDeTemporisation est supprimé de la liste timeoutList lors de l’arrêt de l’animation en cours. Si la valeur est TRUE, objetDeTemporisation reste actif. Si la valeur est FALSE, l’objet de temporisation est supprimé lors de l’arrêt de l’animation. La valeur par défaut est FALSE. La définition de cette propriété sur TRUE permet à un objet de temporisation de continuer à générer des événements de temporisation dans d’autres animations. Ceci peut s’avérer pratique lorsqu’une animation passe à une autre animation par l’intermédiaire de la commande go to movie. 503 Exemple Le gestionnaire prepareMovie suivant crée un objet de temporisation qui restera actif après la déclaration d’arrêt de l’animation : on prepareMovie -- génère un objet de temp. qui envoie un événement toutes les 60 min. timeout("reste").new(1000 * 60 * 60, #gestionnaireDuReste) timeout("reste").persistent = TRUE end Voir aussi name (propriété de temporisation), period, target, time (propriété d’objet de temporisation), timeout(), timeoutHandler, timeoutList PI Syntaxe 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 : set vSurface = PI*power(vRayon,2) picture (propriété d’acteur) Syntaxe member(quelActeur).picture the picture of member quelActeur Description Propriété d’acteur ; détermine l’image associée à un acteur bitmap, texte ou PICT. Pour mettre à jour le point d’alignement d’un acteur ou les modifications d’une image après l’avoir lié de nouveau au moyen de la propriété fileName, utilisez l’instruction suivante : member(quelActeur).picture = member(quelActeur).picture où vous remplacez quelActeur par le nom ou le numéro de l’acteur. Les modifications effectuées sur les acteurs étant conservées en RAM, cette propriété trouve une meilleure utilisation au cours de la phase de programmation. Evitez de l’utiliser dans les projections. Cette propriété peut être testée et modifiée. 504 Exemple L’instruction suivante associe la variable contenuPict à l’image de l’acteur Crépuscule : contenuPict = member("Crépuscule").picture Voir aussi type (propriété d’image-objet) picture (propriété de fenêtre) Syntaxe the stage.picture the picture of the stage window quelleFenêtre.picture the picture of window quelleFenêtre Description Propriété de fenêtre ; offre un moyen d’obtenir un aperçu du contenu courant d’une fenêtre (la fenêtre Scène ou une animation dans une fenêtre). Vous pouvez appliquer les données du bitmap résultant à un bitmap existant ou les utiliser pour en créer un nouveau. Cette propriété peut être testée, mais pas définie. Exemple L’instruction suivante saisit le contenu courant de la scène et le place dans un acteur bitmap : member("Image de la scène").picture = (the stage).picture Voir aussi media, picture (propriété d’acteur) pictureP() Syntaxe 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. 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. set valeurDimage to the picture of member "Temple" put pictureP(valeurDimage) Le résultat est 1, équivalent numérique de TRUE. 505 platform Syntaxe the platform Description Propriété système ; indique le type de plate-forme pour lequel la projection a été créée. Cette propriété peut être testée, mais pas définie. Les valeurs possibles sont : Valeur possible Plate-forme correspondante Macintosh,PowerPC Macintosh PowerPC Windows,32 Windows 95 ou Windows NT Pour assurer une compatibilité future et permettre l’addition de valeurs, il est préférable d’utiliser contains. Lorsque l’animation est lue en tant qu’applet Java convertie, la valeur de cette propriété indique le navigateur web et le système d’exploitation dans lesquels elle est lue. La valeur de la propriété respecte la syntaxe suivante lorsque l’animation est lue en tant qu’applet : Java versionJava, navigateurWeb, systèmeDexploitation Les valeurs possibles pour les paramètres de cette propriété sont les suivantes : • • • versionJava : 1.0 ou 1.1. navigateurWeb : IE, Netscape ou UnknownBrowser systèmeDexploitation : Macintosh, Windows ou UnknownOS Par exemple, si une applet est lue dans Internet Explorer avec Java 1.1 sous Windows, platform a la valeur Java 1.1, IE, Windows. Exemple L’instruction suivante détermine si une projection a été créée pour Windows 95 ou Windows NT : on exitFrame if the platform contains "Windows,32" then castLib("Graphiques Win95").name = "Interface" end if end Voir aussi runMode 506 play Syntaxe sprite(quelleImageObjetFlash).play() play [frame] quelleImage play movie quelleAnimation play frame quelleImage of movie quelleAnimation play sprite quelleImageObjetFlash Description Commande ; fait passer la tête de lecture à l’image spécifiée de l’animation sélectionnée ou lance la lecture d’une image-objet animation Flash. Dans le premier cas, l’expression quelleImage peut être soit un repère de chaîne, soit un numéro entier d’image. L’expression quelleAnimation doit être une chaîne spécifiant un fichier d’animation. Si l’animation se trouve dans un autre dossier, quelleAnimation doit spécifier son chemin d’accès. La commande play est similaire à la commande go to à la différence que lorsque la séquence en cours termine sa lecture, la commande play déplace automatiquement la tête de lecture sur l’image à partir de laquelle la commande play a été appelée. Si la commande play est issue d’un script d’image, la tête de lecture revient à l’image suivante ; si elle est issue d’un script d’image-objet ou d’un gestionnaire, la tête de lecture revient à la même image. Une séquence de lecture est terminée lorsque la tête de lecture atteint la fin de l’animation ou lorsque la commande play done est émise. Pour lire une animation depuis une adresse URL, utilisez downloadNetThing ou preloadNetThing() pour télécharger le fichier sur un disque local. Utilisez ensuite la commande play pour lire l’animation sur le disque local. Cette procédure permet de réduire le temps de chargement du fichier. La commande play peut également servir à lire plusieurs animations à partir d’un même gestionnaire. L’exécution du gestionnaire est interrompue pendant la lecture de chaque animation, pour reprendre à la fin de chacune. Par comparaison, une série de commandes go appelées par un gestionnaire lisent la première image de chaque animation. L’exécution du gestionnaire n’est pas interrompue pendant la lecture de l’animation, mais se poursuit sans délai. Lorsque la commande play est utilisée pour lire une image-objet animation Flash, cette animation est lue à partir de son image courante si elle est arrêtée ou à partir de sa première image si elle est déjà sur la dernière. Chaque commande play doit être associée à une commande play done correspondante afin d’éviter de saturer la mémoire si vous ne retournez pas au script d’appel initial. Pour ce faire, vous pouvez utiliser une variable globale spécifiant où l’animation doit reprendre. Exemples L’instruction suivante place la tête de lecture sur le repère Clignotement : play "Clignotement" L’instruction suivante place la tête de lecture sur le repère suivant : play marker(1) L’instruction suivante déplace la tête de lecture jusqu’à une autre animation : play movie "Mon disque:Autres animations:" & nouvelleAnimation 507 Le script d’image suivant détermine si l’image-objet animation Flash de la piste 5 est en cours de lecture. Dans la négative, il démarre l’animation : on enterFrame if not sprite(5).playing then sprite(5).play() end if end Voir aussi downloadNetThing play() (3D) Syntaxe member(quelActeur).model(quelModèle).bonesPlayer.play() member(quelActeur).model(quelModèle).keyframePlayer.play() member(quelActeur).model(quelModèle).bonesPlayer.\ play(nomDuMouvement {, enBoucle, posInitiale, posFinale, échelle, décalage}) member(quelActeur).model(quelModèle).keyframePlayer.\ play(nomDuMouvement {, enBoucle, posInitiale, posFinale, é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(). Lorsque play() est appelée et que seul le paramètre nomDeMouvement est spécifié, le mouvement est exécuté par le modèle, une fois du début à la fin, à la cadence définie par la propriété playRate du modificateur. Les paramètres facultatifs de la commande play sont les suivants : enBoucle spécifie si le mouvement est lu une seule fois (FALSE) ou continuellement (TRUE). posInitiale 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 à posFinale, avec toutes les répétitions suivantes du mouvement démarrant à posInitiale et se terminant à posFinale. posFinale 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 posFinale. Lorsque enBoucle a pour valeur TRUE, la première itération de la boucle commence à décalage et se termine à posFinale, avec toutes les répétitions suivantes démarrant à posInitiale et se terminant à posFinale. Donnez à posFinale la valeur -1 si le mouvement doit être lu jusqu’à la fin. échelle est multiplié 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. 508 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 posFinale. Lorsque enBoucle a pour valeur TRUE, la première itération de la boucle commence à décalage et se termine à posFinale, avec toutes les répétitions suivantes démarrant à posInitiale et se terminant à posFinale. 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. décalage 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. 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) 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, playlist, pause() (3D), removeLast(), playing (3D) play (RealMedia) Syntaxe sprite(quelleImageObjet).play() member(quelActeur).play() Description Méthode d’acteur ou d’image-objet RealMedia ; démarre le processus de lecture en flux continu pour le train RealMedia si le train est fermé ou reprend la lecture si le train est en pause. Si nécessaire, le train sera mis en mémoire tampon avant le début de la lecture. La valeur de mediaStatus devient #playing. 509 Exemples Les exemples suivants démarrent le processus de lecture en flux continu de l’image-objet 2 et de l’acteur Real. sprite(2).play() member("Real").play() Voir aussi mediaStatus, pause (RealMedia), seek, stop (RealMedia) play() (audio) Syntaxe sound(numéroDePiste).play() sound(numéroDePiste).play(member (quelActeur)) sound(numéroDePiste).play([#member: member(quelActeur), {#startTime: millisecondes, #endTime: millisecondes, #loopCount: nombreDeBoucles, #loopStartTime: millisecondes, #loopEndTime: millisecondes, #preloadTime: millisecondes}]) Description Cette fonction entame la lecture de tous les sons placés en file d’attente dans objetAudio ou place l’acteur donné en file d’attente et en entame la lecture. Le chargement des acteurs son en mémoire RAM requiert un certain temps avant de pouvoir entamer la lecture. 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 fonction. 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. La définition de ces propriétés est facultative : 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. Pour plus d’informations, consultez 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. Vous pourrez voir un exemple de play() (son) dans une animation en consultant l’animation Sound Control du dossier Learning/Lingo_Examples, lui-même dans le dossier de Director. 510 Exemples L’instruction suivante lit l’acteur son Intro sur la piste audio 1 : 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. sound(2).play([#member: member("Crédits"), #startTime: 4000, \ #endTime: 15000, #loopCount: 6, #loopStartTime: 10500, #loopEndTime: 14000]) Voir aussi setPlaylist(), isBusy(), pause() (lecture audio), playNext(), preLoadTime, queue(), rewind(), stop() (audio) playBackMode Syntaxe sprite(quelleImageObjetFlash).playBackMode the playBackMode of sprite quelleImageObjetFlash member(quelActeurAnimationGIF).playBackMode the playBackMode of member quelActeurAnimationGIF Description Propriété d’acteur et d’image-objet ; contrôle la cadence d’un acteur animation Flash ou d’un acteur GIF animé selon les valeurs suivantes : • #normal (valeur par défaut) – Lit l’animation Flash ou le fichier GIF à une cadence aussi proche que possible de la cadence originale. • • #lockStep – Lit l’animation Flash ou le fichier GIF à la cadence de l’animation Director. #fixed – Lit fixedRate. l’animation Flash ou le fichier GIF à la cadence spécifiée par la propriété Cette propriété peut être testée et définie. Exemple Le script d’image-objet suivant définit la cadence d’une image-objet d’animation Flash comme étant celle de l’animation Director : property spriteNum on beginSprite me sprite(spriteNum).playBackMode = #lockStep end Voir aussi fixedRate 511 play done Syntaxe play done Description Commande ; indique la fin de la séquence lancée par la commande play la plus récente. La commande play done renvoie la tête de lecture à la position où la séquence initiale avait lancé la commande play. Si la commande play est issue d’un script d’image, la tête de lecture revient à l’image suivante ; si elle est issue d’un script d’image-objet, la tête de lecture revient à la même image. Chaque commande play doit être associée à une commande play done correspondante afin d’éviter de saturer la mémoire si vous ne retournez pas au script d’appel initial. Pour ce faire, vous pouvez utiliser une variable globale spécifiant où l’animation doit reprendre. La commande play done n’a aucun effet sur les animations dans une fenêtre. Exemple Le gestionnaire suivant renvoie la tête de lecture sur l’image de l’animation qui était lue avant le début de l’animation courante : on exitFrame play done end Voir aussi play playing Syntaxe sprite(quelleImageObjetFlash).playing the playing of sprite quelleImageObjetFlash Description Propriété d’image-objet Flash ; indique si une animation Flash est en cours de lecture (TRUE) ou arrêtée (FALSE). Cette propriété peut être testée, mais pas définie. Exemple Le script d’image suivant détermine si l’image-objet animation Flash de la piste 5 est en cours de lecture. Dans la négative, il démarre l’animation : on enterFrame if not sprite(5).playing then sprite(5).play() end if end 512 playing (3D) Syntaxe member(quelActeur).model(quelModèle).keyframePlayer.playing member(quelActeur).model(quelModèle).bonesPlayer.playing Description Propriété de modificateur 3D #keyframePlayer et #bonesPlayer ; indique si le moteur de lecture d’animation du modificateur est en marche (TRUE) ou en pause (FALSE). Cette propriété peut être testée, mais pas définie. Exemple L’instruction suivante indique que le moteur de lecture d’animation #keyframePlayer du modèle Martien3 est actuellement en marche. put member("nouveauMartiens").model("Martien3").keyframePlayer.playing -- 1 Voir aussi play() (3D), pause() (3D), playlist, queue() (3D) playlist Syntaxe member(quelActeur).model(quelModèle).keyframePlayer.playlist member(quelActeur).model(quelModèle).bonesPlayer.playlist Description Propriété de modificateur 3D #keyframePlayer et #bonesPlayer ; renvoie une liste linéaire de listes de propriétés, chacune représentant un mouvement dont la lecture est mise en pause par le modificateur. Chaque liste de propriétés doit contenir les propriétés suivantes : • • • • #name est le nom du mouvement à lire. #loop indique si le mouvement doit être lu en boucle. • #scale est le taux de lecture du mouvement qui doit être multiplié par la propriété playRate du modificateur pour déterminer la cadence réelle de la lecture du mouvement. #startTime est le moment, en millisecondes, où la lecture de l’animation doit commencer. est le moment, en millisecondes, où la lecture de l’animation se termine ou le moment où le mouvement doit être mis en boucle. Une valeur négative indique que le mouvement doit être lu jusqu’à la fin. #endTime La propriété playlist peut être testée mais pas définie. Utilisez les commandes queue(), play(), playNext() et removeLast() pour la manipuler. 513 Exemple L’instruction suivante affiche les mouvements mis en attente pour le modèle Promeneur dans la fenêtre Messages. Deux mouvements sont actuellement en attente : Marche et Saut. put member("Parc").model("Promeneur").bonesPlayer.playList -- [[#nom: "Marche", #loop: 1, #startTime: 1500, #endTime: 16000, \ #scale:1.0000, #offset: 0], [#nom: "Saut", #loop: 1, \ #startTime: 0, #endTime: 1200, #scale: 1.0000, #offset: 0]] Voir aussi play() (3D), playNext() (3D), removeLast(), queue() (3D) play member Syntaxe member(quelActeur).play() play member quelActeur Description Commande ; lance la lecture en flux continu d’un acteur Shockwave Audio (SWA). Si le son SWA n’a pas été préchargé à l’aide de la commande preLoadBuffer, il est préchargé avant le début de sa lecture. Pendant la lecture du son, la propriété d’acteur state est égale à 3. Veuillez noter que, pour supporter cette fonctionnalité, les Xtras doivent être inclus lors de la lecture d’un son en flux continu. Exemple Le gestionnaire suivant lance la lecture de l’acteur Orchestre : on mouseDown member("Orchestre").play() end Voir aussi pause member, stop member playNext() Syntaxe sound(numéroDePiste).playNext() playNext(sound(numéroDePiste)) Description Cette commande 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. Exemple L’instruction suivante exécute la lecture sur la piste audio 2 du son suivant placé en file d’attente. sound(2).playNext() Voir aussi pause() (lecture audio), play() (audio), stop() (audio) 514 playNext() (3D) Syntaxe 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("séquence").model[1].bonesPlayer.playnext() Voir aussi blend (3D), playlist playRate Syntaxe member(quelActeur).model(quelModèle).bonesPlayer.playRate member(quelActeur).model(quelModèle).keyframePlayer.playRate Description Propriété 3D de modificateur #keyframePlayer et #bonesPlayer ; multiplicateur d’échelle pour le temps local des mouvements lorsqu’ils sont lus. Cette propriété ne détermine que partiellement la cadence à laquelle les mouvements sont exécutés par le modèle. La lecture d’un mouvement par un modèle est le résultat de la commande play() ou queue(). Le paramètre scale de la commande play() ou queue() est multiplié par la propriété playRate du modificateur et la valeur résultante est la cadence à laquelle le mouvement en question sera lu. Exemple L’instruction suivante donne à la propriété playRate du modificateur keyframePlayer du modèle martienVert la valeur 3. member("nouveauMartiens").model("MartienVert").keyframePlayer.playRate = 3 Voir aussi play() (3D), queue() (3D), playlist, currentTime (3D) 515 point() Syntaxe point(horizontal, vertical) Description Fonction et type de données ; fournit un point dont les coordonnées horizontale et verticale sont spécifiées par horizontal et vertical. Un point a une propriété locH et une propriété locV. Les coordonnées d’un point peuvent être changées par des opérations arithmétiques. Vous pourrez voir un exemple de point() dans une animation en consultant les animations Imaging et Vector Shapes du dossier Learning/Lingo_Examples, lui-même dans le dossier de Director. Exemples L’instruction suivante définit la variable dernièrePosition au point (250, 400) : set dernièrePosition = point(250, 400) L’instruction suivante ajoute 5 pixels à la coordonnée horizontale du point affecté à la variable monPoint : monPoint.locH = monPoint.locH + 5 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. sprite(the clickOn).loc = point(the mouseH, the mouseV) + point(10, 10) sprite(the clickOn).loc = the mouseLoc + 10 Le gestionnaire suivant place une image-objet nommée à l’endroit sur lequel l’utilisateur clique : end mouseDown on mouseDown -- définissez ces variables selon votre animation imageObjet = 1 -- Définissez l’image-objet à déplacer étapes = 40 -- Définissez le nombre d’étapes du déplacement emplacementInitial = sprite(imageObjet).loc delta = (the clickLoc - emplacementInitial) / étapes repeat with i = 1 to étapes sprite(ImageObjet).loc = emplacementInitial + (i * delta) updateStage end repeat end mouseDown Voir aussi mouseLoc, flashToStage(), rect(), stageToFlash() 516 pointAt Syntaxe 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 la position relative à l’univers spécifiée par positionDuVecteur, puis fait pivoter l’objet référencé pour que son vecteur vertical pointe vers la position relative à l’univers spécifiée par vecteurVertical. La valeur de positionDuVecteur peut également être une référence de nœud. Le paramètre facultatif vecteurVertical est 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é, cette commande 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. Le vecteur vertical et le vecteur horizontal de l’objet sont définis par la propriété de l’objet. pointAtOrientation Exemples 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("Séquence").model("Mars").worldPosition member("Séquence").camera("camMars").pointAt(posDansCetUnivers) member("Séquence").light("Spot").pointAt(posDansCetUnivers) member("Séquence").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. 517 • Supprimez votre propriété d’échelle avant d’utiliser 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 non par défaut nœud.transform.scale = scale Voir aussi pointAtOrientation pointAtOrientation Syntaxe member(quelActeur).model(quelModèle).pointAtOrientation member(quelActeur).group(quelGroupe).pointAtOrientation member(quelActeur).light(quelleLumière).pointAtOrientation member(quelActeur).camera(quelleCaméra).pointAtOrientation Description Propriété 3D de modèle, de groupe, de lumière et de caméra ; permet d’obtenir ou de définir la réponse de l’objet référencé à la commande pointAt. Cette propriété est une liste linéaire de deux vecteurs relatifs à l’objet, le premier définissant la direction avant de l’objet et le second la direction vers le haut de l’objet. Les directions avant et vers le haut de l’objet n’ont pas besoin d’être perpendiculaires, mais ne doivent pas être parallèles. Exemple L’instruction suivante affiche le vecteur de direction avant et le vecteur vertical relatif à l’objet du modèle bip01 : put member("séquence").model("bip01").pointAtOrientation -- [vector(0.0000, 0.0000, -1.0000), vector(0.0000, 1.0000, 0.0000)] Voir aussi pointAt pointInHyperlink() Syntaxe sprite(quelNuméroDimageObjet).pointInHyperlink(point) pointInHyperlink(sprite quelNuméroDimageObjet, 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. Voir aussi cursor (commande), mouseLoc 518 pointOfContact Syntaxe collisionData.pointOfContact Description Propriété 3D collisionData ; renvoie un vecteur décrivant le point de contact d’une collision entre deux modèles. L’objet collisionData est envoyé comme argument avec les événements #collideWith et #collideAny au gestionnaire spécifié dans les commandes registerForEvent, registerScript et setCollisionCallback. Les événements #collideWith et #collideAny sont envoyés lors d’une collision entre deux modèles associés à des modificateur de collision. La propriété resolve des modificateurs des modèles doit être TRUE. Cette propriété peut être testée, mais pas définie. Exemple L’exemple suivant est constitué de deux parties. La première partie est la première ligne de code, qui enregistre le gestionnaire #explose de l’événement #collideAny. La seconde partie est le gestionnaire #explose. Lorsque deux modèles de l’acteur maSéquence entrent en collision, le gestionnaire #explose est appelé, et l’argument collisionData lui est envoyé. Les neuf premières lignes du gestionnaire #explose créent la ressource de modèle sourceDétincelles et en définissent les propriétés. Cette ressource de modèle est une simple explosion de particules. La dixième ligne du gestionnaire crée un modèle modèleDétincelles à l’aide de la ressource de modèle sourceDétincelles. La dernière ligne du gestionnaire définit la position de modèleDétincelles à l’emplacement de la collision. L’effet général est une explosion d’étincelles causée par une collision. member("maSéquence").registerForEvent(#collideAny, #explose, 0) on explose me, collisionData nmr = member("maSéquence").newModelResource("sourceDétincelles", #particle) nmr.emitter.mode = #burst nmr.emitter.loop = 0 nmr.emitter.minSpeed = 30 nmr.emitter.maxSpeed = 50 nmr.emitter.direction = vector(0, 0, 1) nmr.colorRange.start = rgb(0, 0, 255) nmr.colorRange.end = rgb(255, 0, 0) nmr.lifetime = 5000 nm = member("maSéquence").newModel("modèleDétincelles", nmr) nm.transform.position = collisionData.pointOfContact end Voir aussi modelA, modelB 519 pointToChar() Syntaxe pointToChar(sprite numéroDimageObjet, pointAConvertir) Description Fonction ; renvoie un nombre entier représentant la position du caractère situé dans l’image-objet texte ou champ numéroDimageObjet à la coordonnée d’écran de pointAConvertir ou renvoie 1 si le point n’est pas dans le texte. Cette fonction permet de déterminer le caractère sous le curseur. Exemple L’instruction suivante affiche le numéro du caractère cliqué, ainsi que la lettre, dans la fenêtre Messages : property spriteNum on mouseDown me pointCliqué = the 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 Voir aussi mouseLoc, pointToWord(), pointToItem(), pointToLine(), pointToParagraph() pointToItem() Syntaxe sprite(quelNuméroDimageObjet).pointToItem(pointAconvertir) pointToItem(sprite numéroDimageObjet, pointAconvertir) Description Fonction ; renvoie un nombre entier représentant la position de l’élément situé dans l’image-objet texte ou champ numéroDimageObjet à la coordonnée d’écran de pointAConvertir 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. 520 Exemple L’instruction suivante affiche le numéro de l’élément cliqué, ainsi que son texte, dans la fenêtre Messages : property spriteNum on mouseDown me pointCliqué = the mouseLoc acteurCourant = sprite(spriteNum).member numéroDélément = sprite(numéroDimageObjet).pointToItem(pointCliqué) texteDélément = acteurCourant.item[numéroDélément] put "Elément sélectionné" && numéroDélément & ", le texte" && texteDélément end Voir aussi itemDelimiter, mouseLoc, pointToChar(), pointToWord(), pointToItem(), pointToLine(), pointToParagraph() pointToLine() Syntaxe sprite(quelNuméroDimageObjet).pointToLine(pointAconvertir) pointToLine(sprite numéroDimageObjet, pointAconvertir) Description Fonction ; renvoie un nombre entier représentant la ligne de l’élément situé dans l’image-objet texte ou champ numéroDimageObjet à la coordonnée d’écran de pointAConvertir 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. Exemple L’instruction suivante affiche le numéro de la ligne cliquée, ainsi que son texte, dans la fenêtre Messages : property spriteNum on mouseDown me pointCliqué = the mouseLoc acteurCourant = sprite(spriteNum).member numDeLigne = sprite(numéroDimageObjet).pointToLine(pointCliqué) texteDeLigne = acteurCourant.line[numDeLigne] put "Ligne sélectionnée" && numDeLigne & ", le texte" && texteDeLigne end Voir aussi itemDelimiter, mouseLoc, pointToChar(), pointToWord(), pointToItem(), pointToLine(), pointToParagraph() 521 pointToParagraph() Syntaxe sprite(quelNuméroDimageObjet).pointToParagraph(pointAconvertir) pointToParagraph(sprite numéroDimageObjet, pointAconvertir) Description Fonction ; renvoie un nombre entier représentant le numéro du paragraphe situé dans l’imageobjet texte ou champ numéroDimageObjet à la coordonnée d’écran de pointAConvertir 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. Exemple L’instruction suivante affiche le numéro du paragraphe cliqué, ainsi que son texte, dans la fenêtre Messages : property spriteNum on mouseDown me pointCliqué = the mouseLoc acteurCourant = sprite(spriteNum).member numDeParagraphe = sprite(spriteNum).pointToParagraph(pointCliqué) texteDuParagraphe = acteurCourant.paragraph[numDeParagraphe] put "Paragraphe sélectionné" && numDeParagraphe & ", le texte" && texteDuParagraphe end Voir aussi itemDelimiter, mouseLoc, pointToChar(), pointToWord(), pointToItem(), pointToLine() pointToWord() Syntaxe sprite(quelNuméroDimageObjet).pointToWord(pointAconvertir) pointToWord(sprite numéroDimageObjet, pointAconvertir) Description Fonction ; renvoie un nombre entier représentant le numéro du mot situé dans l’image-objet texte ou champ numéroDimageObjet à la coordonnée d’écran de pointAConvertir 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. 522 Exemple L’instruction suivante affiche le numéro du mot cliqué, ainsi que son texte, dans la fenêtre Messages : property spriteNum on mouseDown me pointCliqué = the mouseLoc acteurCourant = sprite(spriteNum).member numDuMot = sprite(numéroDimageObjet).pointToWord(pointCliqué) texteDuMot = acteurCourant.word[numDuMot] put "Mot sélectionné" && numDuMot & ", le texte" && texteDuMot end Voir aussi itemDelimiter, mouseLoc, pointToChar(), pointToItem(), pointToLine(), pointToParagraph() position (transformation) Syntaxe member(quelActeur).node(quelNœud).transform.position member(quelActeur).node(quelNœud).getWorldTransform().\ position transformation.position Description Propriété 3D ; permet d’obtenir ou de définir le composant de position d’une transformation. Une transformation définit une échelle, une position et une rotation au sein d’un cadre de référence donné. La valeur par défaut de cette propriété est vector(0,0,0). Un nœud peut être un objet de caméra, groupe, lumière ou modèle. La définition de la position d’une transformation de nœud définit la position de cet objet dans le cadre de référence de la transformation. La définition de la propriété position de la transformation relative à l’univers d’un objet à l’aide de getWorldTransform().position définit la position de l’objet par rapport à l’origine de l’univers. La définition de la propriété position de la transformation relative à l’univers d’un objet à l’aide de transform.position définit la position de l’objet par rapport à son nœud parent. La propriété worldPosition d’un objet de modèle, de lumière, de caméra ou de groupe, est un raccourci de la version getWorldTransform().position de cette propriété pour cet objet. Exemples L’instruction suivante affiche la position relative au parent du modèle Pneu. put member("Séquence").model("Pneu").transform.position --vector(-15.000, -2.5000, 20.0000) L’instruction suivante affiche la position relative à l’univers du modèle Pneu. put member("Séquence").model("Pneu").getWorldTransform().position --vector(5.0000, -2.5000, -10.0000) 523 Les instructions suivantes enregistrent d’abord la transformation d’univers du modèle Pneu dans la variable transformTemp, puis affichent le composant de position de cette transformation. transformTemp = member("Séquence").model("Pneu").getWorldTransform() put transformTemp.position --vector(5.0000, -2.5000, -10.0000) Voir aussi transform (propriété), getWorldTransform(), rotation (transformation), scale (transformation) positionReset Syntaxe member(quelActeur).model(quelModèle).bonesPlayer.\ positionReset member(quelActeur).model(quelModèle).keyframePlayer.\ positionReset Description Propriété 3D de modificateur keyframePlayer et bonesPlayer ; indique si le modèle retourne à sa position de départ à la fin d’un mouvement (TRUE) ou non (FALSE). La valeur par défaut de cette propriété est TRUE. Exemple L’instruction suivante empêche le modèle Monstre de retourner à sa position originale lorsqu’il finit l’exécution d’un mouvement. member("nouveauMartien").model("Monstre").keyframePlayer.\ positionReset = FALSE Voir aussi currentLoopState posterFrame Syntaxe member(quelActeurFlash).posterFrame the posterFrame of member quelActeurFlash Description Propriété d’acteur Flash ; contrôle l’image d’un acteur animation Flash utilisée pour son image miniature. Cette propriété spécifie un nombre entier correspondant au numéro d’une image de l’animation Flash. Cette propriété peut être testée et définie. La valeur par défaut est 1. Exemple Le gestionnaire suivant accepte comme paramètres une référence à un acteur animation Flash et un numéro d’image, puis place la miniature de l’animation spécifiée sur le numéro d’image spécifié : on redéfinirLaMiniature quelleAnimationFlash, quelleImage member(quelleAnimationFlash).posterFrame = quelleImage end 524 postNetText Syntaxe postNetText(url, listeDePropriétés {,chaîneOSduServeur} {,chaîneJeuCarServeur}) postNetText(url, textePosté {,chaîneOSduServeur} {,chaîneJeuCarServeur}) Description Commande ; envoie une requête POST à url, qui est une adresse URL HTTP, avec textePosté comme donné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. 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. 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é. 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. Le paramètre facultatif chaîneOSduServeur prend la valeur par défaut UNIX mais peut recevoir Win ou Mac comme valeur et convertit les retours chariot de l’argument textePosté 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 chaîneJeuCarServeur 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. 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 L’utilisation de postNetText pour afficher des données dans un domaine différent de celui dans lequel l’animation est lue déclenche une alerte de sécurité lors de la lecture sous Shockwave. Vous pourrez voir un exemple de postNetText dans une animation en consultant l’animation Forms and Post du dossier Learning/Lingo_Examples, lui-même dans le dossier de Director. 525 Exemples 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() Syntaxe power(base, exposant) Description Fonction mathématique ; calcule la valeur du nombre spécifié par base à la puissance spécifiée par exposant. Exemple L’instruction suivante donne à la variable vRésultat la valeur du cube de 4 : set vRésultat = power(4,3) preferred3DRenderer Syntaxe the preferred3DRenderer Description Propriété 3D d’animation ; permet d’obtenir ou de définir le moteur de rendu par défaut utilisé pour tracer des images-objets 3D d’une animation particulière si ce moteur de rendu est disponible sur la machine cliente. Si le moteur de rendu n’est pas disponible sur la machine cliente, l’animation sélectionne le moteur de rendu disponible le plus approprié. Les valeurs possibles de cette propriété sont les suivantes : #openGL spécifie les pilotes openGL d’accélération matérielle fonctionnant sur les plates-formes Macintosh et Windows. #directX7_0 spécifie les pilotes DirectX 7 d’accélération matérielle fonctionnant uniquement sur les plates-formes Windows. #directX5_2 spécifie les pilotes DirectX 5.2 d’accélération matérielle fonctionnant uniquement sur les plates-formes Windows. spécifie le moteur de rendu logiciel intégré à Director fonctionnant avec les platesformes Macintosh et Windows. #software 526 #auto spécifie que le moteur de rendu le plus approprié doit être choisi. Il s’agit de la valeur par défaut de cette propriété. La valeur définie pour cette propriété est utilisée par défaut pour la propriété renderer de l’objet de services de rendu. Cette propriété diffère de la propriété renderer de l’objet getRendererServices() car preferred3dRenderer spécifie le moteur de rendu préféré à utiliser, alors que la propriété renderer de l’objet getRendererServices() indique le moteur de rendu actuellement utilisé par l’animation. Shockwave permet de spécifier le moteur de rendu à l’aide du menu contextuel correspondant. Si l’utilisateur sélectionne l’option visant à respecter les paramètres de contenu, le moteur de rendu spécifié par les propriétés renderer ou preferred3DRenderer est utilisé pour dessiner l’animation (s’il est disponible sur le système de l’utilisateur) ; sinon, c’est le moteur de rendu sélectionné par l’utilisateur qui est utilisé. Exemple L’instruction suivante permet à l’animation de choisir le meilleur moteur de rendu 3D disponible sur le système de l’utilisateur. the preferred3dRenderer = #auto Voir aussi renderer, getRendererServices(), rendererDeviceList preLoad (3D) Syntaxe member(quelActeur).preload référenceDacteur.preload Description Propriété 3D ; permet de savoir ou de définir si les données sont chargées avant la lecture (TRUE) ou si leur chargement s’effectue en flux continu pendant la lecture (FALSE). Cette propriété ne peut être utilisée qu’avec des fichiers liés. La valeur par défaut est FALSE. Dans Director, la définition de la propriété preLoad sur TRUE entraîne le chargement complet de l’acteur avant le début de la lecture. Dans Shockwave, la définition de la propriété preLoad sur TRUE entraîne la mise en flux continu de l’acteur au début de la lecture. Avant d’exécuter les opérations Lingo dans un acteur 3D en cours de lecture en flux continu, vérifiez si la propriété state de l’acteur a une valeur supérieure ou égale à 2. Exemple L’instruction suivante donne à la propriété preload de l’acteur séquenceDeFête la valeur FALSE, ce qui permet la lecture en flux continu des médias externes liés à l’animation dans l’acteur séquenceDeFête en cours de lecture. member("séquenceDeFête").preload = FALSE member("Univers 3D").preload Voir aussi state (3D) 527 preLoad (commande) Syntaxe preLoad preLoad numDimageFinale preLoad imageInitiale, numDimageFinale Description Commande ; 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, la commande 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 (imageFinale), précharge tous les acteurs utilisés dans la plage d’images depuis l’image courante jusqu’à l’image numDimageFinale, comme spécifié par le numéro ou le nom de l’image. • Si deux arguments sont fournis (imageInitiale et numDimageFinale, précharge tous les acteurs utilisés dans la plage d’images depuis l’image imageInitiale jusqu’à l’image numDimageFinale, comme spécifié par le numéro ou le nom de l’image. La commande preLoad renvoie aussi le numéro de la dernière image qu’il a été possible de charger. Utilisez la fonction result pour obtenir cette valeur. Exemples L’instruction suivante précharge les acteurs utilisés depuis l’image courante jusqu’à l’image contenant le repère suivant : preLoad marker (1) L’instruction suivante précharge les acteurs utilisés de l’image 10 à l’image 50 : preLoad 10, 50 Voir aussi preLoadMember preLoad (propriété d’acteur) Syntaxe member(quelActeur).preLoad the preLoad of member quelActeur Description Propriété d’acteur ; détermine si l’acteur vidéo numérique spécifié par quelActeur peut être préchargé en mémoire (TRUE) ou non (FALSE, valeur par défaut). L’état TRUE a le même effet que la sélection de Activer le préchargement dans la boîte de dialogue Propriétés de l’acteur vidéo numérique. 528 Pour les acteurs animation Flash, cette propriété détermine si une animation Flash doit être entièrement chargée en RAM avant l’affichage de la première image d’une image-objet (TRUE) ou si l’animation peut être transférée en mémoire pendant sa lecture (FALSE, valeur par défaut). Cette propriété ne fonctionne qu’avec les animations Flash liées dont les éléments sont stockés dans un fichier externe ; elle n’a aucun effet sur les acteurs dont les éléments sont stockés dans la distribution. Les propriétés streamMode et bufferSize déterminent comment l’acteur est transféré en mémoire. Cette propriété peut être testée et définie. Exemples L’instruction suivante indique dans la fenêtre Messages si l’animation QuickTime Chaise pivotante peut être préchargée en mémoire : 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 : on startMovie member("Démo Flash").preload = FALSE member("Démo Flash").bufferSize = 65536 end Voir aussi bufferSize, streamMode preLoadBuffer member Syntaxe member(quelActeur).preLoadBuffer() preLoadBuffer member quelActeur 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. Exemple L’instruction suivante charge l’acteur Jacques Brel en mémoire : member("Jacques Brel").preLoadBuffer() Voir aussi preLoadTime 529 preLoadEventAbort Syntaxe the preLoadEventAbort Description Propriété d’animation ; spécifie si le fait d’appuyer sur une touche ou de cliquer avec la souris peut arrêter le préchargement des acteurs (TRUE) ou non (FALSE, valeur par défaut). Cette propriété peut être testée et définie. La modification de cette propriété affecte l’animation courante. Exemple L’instruction suivante permet à l’utilisateur d’arrêter le préchargement des acteurs en appuyant sur des touches ou en cliquant avec la souris : set the preLoadEventAbort = TRUE Voir aussi preLoad (commande), preLoadMember preLoadMember Syntaxe preLoadMember member(quelActeur).preLoad() preLoadMember quelActeur member(premierActeur).preLoad(dernierActeur) preLoadMember premierActeur, dernierActeur Description Commande ; 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. La commande preLoadMember renvoie le numéro du dernier acteur chargé qu’il a été possible de charger. Utilisez la fonction result pour obtenir cette valeur. En l’absence d’arguments, preLoadMember précharge tous les acteurs de l’animation. Si l’argument quelActeur est fourni, preLoadMember ne précharge que cet acteur. Si est un nombre entier, il n’est fait référence qu’à la première distribution. Si est une chaîne, le premier acteur possédant cette chaîne comme nom est utilisé. quelActeur quelActeur Si les deux arguments deLacteur et aLacteur sont fournis, la commande preLoadMember précharge tous les acteurs dans la plage spécifiée par les noms ou numéros des acteurs. Exemples L’instruction suivante précharge l’acteur 20 de la première distribution (interne) : member(20).preLoad() L’instruction suivante précharge dans la fenêtre Distribution l’acteur Temple et les 10 acteurs qui le suivent : member("Temple").preLoad(member("Temple").number + 10) Pour précharger un acteur particulier d’une distribution spécifique, utilisez la syntaxe suivante : member("Jean", "Membres de la famille").preLoad() 530 preLoadMode Syntaxe castLib(quelleDistribution).preLoadMode the preLoadMode of castLib quelleDistribution Description Propriété d’acteur ; détermine le mode de préchargement de la distribution spécifiée. Elle produit le même effet que la commande de chargement de la distribution de la boîte de dialogue Propriétés de la distribution. Les valeurs possibles sont : • • • 0 – Charger la distribution au fur et à mesure. 1 – Charger la distribution avant l’image 1. 2 – Charger la distribution après l’image 1. La valeur par défaut pour les acteurs est 0, au fur et à mesure. Un gestionnaire on prepareMovie est généralement un bon endroit pour placer un Lingo déterminant quand les acteurs sont chargés. Cette propriété peut être testée et définie. Exemple L’instruction suivante demande à Director de charger les acteurs de la distribution Boutons avant que l’animation n’entre dans l’image 1 : CastLib("Boutons").preLoadMode = 1 preLoadMovie Syntaxe preLoadMovie quelleAnimation Description Commande ; 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 à la suite d’une commande go to movie ou play movie. Pour 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. Exemple L’instruction suivante précharge l’animation Introduction, qui est située dans le même dossier que l’animation courante : preLoadMovie "Introduction" 531 preloadNetThing() Syntaxe 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. Remplacez url par un nom de fichier Internet valide, tel qu’une animation Director, un graphique ou l’adresse d’un serveur FTP. La valeur renvoyée est un identifiant réseau à utiliser pour suivre le déroulement de l’opération. Le lecteur Director pour Java ne supporte pas cette commande car le modèle de sécurité de Java ne permet pas d’écrire sur le disque local. 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. 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() preLoadRAM Syntaxe the preLoadRAM Description Propriété système ; spécifie la quantité de mémoire RAM pouvant être utilisée pour le préchargement d’une vidéo numérique. Cette propriété peut être définie et testée. 532 Cette propriété est utile pour la gestion de la mémoire, puisqu’elle limite les acteurs vidéo numérique à une certaine quantité de mémoire, pour permettre le préchargement d’autres types d’acteurs. Lorsque preLoadRAM reçoit la valeur FALSE, toute la mémoire disponible peut être utilisée pour le préchargement des acteurs vidéo numérique. Il n’est cependant pas possible de prédire de manière fiable la RAM qu’une vidéo numérique préchargée va exiger, la mémoire requise étant affectée par le contenu de l’animation, le taux de compression utilisé, le nombre d’images-clés, la modification des images, etc. Il est généralement possible de précharger sans crainte les deux ou trois premières secondes d’une vidéo puis de continuer la lecture en flux continu à partir de cet endroit. Si vous connaissez le taux de transfert de votre animation, vous pouvez estimer le paramétrage de preLoadRAM. Par exemple, si votre animation utilise un taux de transfert de 300 Ko par seconde, réglez preLoadRAM sur 600 Ko pour précharger les 2 premières secondes du fichier vidéo. Même s’il ne s’agit que d’une estimation, elle convient dans la plupart des situations. Exemple L’instruction suivante règle preLoadRAM sur 600 Ko, pour précharger les 2 premières secondes d’une animation dont le taux de transfert est de 300 Ko par seconde : set the preLoadRAM = 600 Voir aussi loop (mot-clé), next preLoadTime Syntaxe member(quelActeur).preLoadTime the preLoadTime of member quelActeur sound(numéroDePiste).preLoadTime Description Propriété d’acteur et de piste audio ; pour les acteurs, spécifie la quantité (en secondes) de l’acteur Shockwave Audio (SWA) en flux continu à télécharger avant que sa lecture ne commence ou, lors de l’utilisation d’une commande preLoadBuffer. La valeur par défaut est 5 secondes. Cette propriété ne peut être définie que si l’acteur SWA lu en flux continu est arrêté. Pour les pistes audio, la valeur concerne le son défini dans la file d’attente ou le son courant, si aucun son n’est spécifié. Exemples Le gestionnaire suivant définit à 6 secondes le temps de préchargement de l’acteur SWA Louis Armstrong lu en flux continu. Le préchargement réel se produit lorsqu’une commande preLoadBuffer ou play est émise. on mouseDown member("Louis Armstrong").stop() ember("Louis Armstrong").preLoadTime = 6 end 533 L’instruction suivante renvoie la valeur preLoadTime de l’acteur son lu dans la piste 1. put sound(1).preLoadTime Voir aussi preLoadBuffer member preMultiply Syntaxe transformation1.preMultiply(transformation2) Description Commande 3D de transformation ; modifie transformation1 en appliquant au préalable les effets de positionnement, de rotation et de redimensionnement de transformation2. 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. Exemple L’instruction suivante exécute un calcul qui applique la transformation du modèle Mars à la transformation du modèle Pluton : member("Séquence").model("Pluton").transform.preMultiply\ (member("Séquence").model("Mars").transform) on prepareFrame Syntaxe on prepareFrame instruction(s) end 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. Les commandes go, play et updateStage sont désactivées dans un gestionnaire on prepareFrame. 534 Exemple Le gestionnaire suivant définit la propriété locH de l’image-objet à laquelle le comportement est lié : on prepareFrame me sprite(me.spriteNum).locH end = the mouseH Voir aussi on enterFrame on prepareMovie Syntaxe on prepareMovie instruction(s) end 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és 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 où placer un Lingo 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 et updateStage sont désactivées dans un gestionnaire on prepareMovie. Exemple Le gestionnaire suivant crée une variable globale lorsque l’animation débute : on prepareMovie global ScoreActuel set ScoreActuel = 0 end Voir aussi on enterFrame, on startMovie 535 preRotate Syntaxe 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, 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 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. Exemple L’instruction suivante effectue une rotation de 20° sur chaque axe. La propriété transform du modèle étant 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("séquence").model("bip01").transform.preRotate(20, 20, 20) Veuillez noter que la ligne précédente équivaut à la suivante : member("Séquence").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("Séquence").camera[1].transform.position t.preRotate(vector(100, 0, 0), vector(0, 1, 0), 180) member("Séquence").camera[1].transform = t Voir aussi rotate previous Consultez go previous 536 preScale() Syntaxe 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. 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 sa rotation autour de la planète aurait lieu deux fois plus souvent 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("Séquence").model("Lune1").transform.duplicate() t.preScale(2,2,2) t.rotate(180,0,0) member("Séquence").model("Lune2").transform = t preTranslate() Syntaxe 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. 537 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. Notez que model.transform.pretranslate(x, y, z) est équivalent à 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. Exemple t = transform() t.transform.identity() t.transform.rotate(0, 90, 0) t.transform.preTranslate(100, 0, 0) gbModèle = member("séquence").model("Mars") gbModèle.transform = t put gbModèle.transform.position --vector(0.0000, 0.0000, -100.0000) primitives Syntaxe getRendererServices().primitives Description Fonction 3D ; renvoie une liste des types de primitives qui peuvent être utilisés pour créer de nouvelles ressources de modèle. Exemple L’instruction suivante affiche les types de primitives disponibles. put getRendererServices().primitives -- [#sphere, #box, #cylinder, #plane, #particle] Voir aussi getRendererServices(), newModelResource print() Syntaxe sprite(quelleImageObjet).print({"nomDeCible", #limitesDimpression}) Description Commande ; appelle la commande print ActionScript correspondante, qui est une commande qui a fait son apparition avec Flash 5. Toutes les images de l’animation Flash libellées #p sont imprimées. Si aucune image individuelle n’a été libellée, toute l’animation est imprimée. Les deux arguments de cette fonction sont facultatifs. L’animation cible est l’animation ou le clip d’animation à imprimer. Si vous ne spécifiez pas de cible (ou si vous spécifiez la cible 0), c’est l’animation Flash principale qui est imprimée. 538 Les deux valeurs possibles des limites d’impression sont #bframe et #bmax. Avec #bmax, les limites d’impression forment un cadre virtuel de dimensions suffisantes pour contenir toutes les images à imprimer. Avec #bframe, les limites d’impression de chaque image sont modifiées en fonction de l’image à imprimer. Si aucune limite d’impression n’est spécifiée, les limites de l’animation cible sont utilisées. 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. printAsBitmap() Syntaxe sprite(quelleImageObjet).printAsBitmap({"nomDeCible", #limitesDimpression}) Description Commande ; fonctionne de façon semblable à la commande print. Cependant, la commande printAsBitmap peut être utilisée pour imprimer des objets contenant des informations alpha. printFrom Syntaxe printFrom imageInitiale {,imageFinale} {,réduction} Description Commande ; 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 imageInitiale. Vous pouvez, si vous le voulez, indiquer l’imageFinale et la réduction (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. Exemples L’instruction suivante imprime le contenu de la scène à l’image 1 : printFrom 1 L’instruction suivante imprime le contenu de chaque image de la scène, du repère Intro au repère Conte. La valeur de réduction est de 50 %. printFrom label("Intro"), label("Conte"), 50 projection Syntaxe sprite(quelleImageObjet).camera.projection camera(quelleCaméra).projection member(quelActeur).camera(quelleCaméra).projection Description Propriété 3D ; permet d’obtenir ou de définir le style de projection de la caméra. Les valeurs possibles sont #perspective (la valeur par défaut) et #orthographic. 539 Lorsque la projection a pour valeur #perspective, les objets les plus proches de la caméra apparaissent plus grands que les objets les plus éloignés, et les propriétés projectionAngle ou fieldOfView spécifient l’angle de projection verticale (ce qui détermine l’espace visible de l’univers). L’angle de projection horizontale est déterminé par le rapport hauteur/largeur de la propriété rect de la caméra. Lorsque la projection a pour valeur #orthographic, la taille apparente des objets ne dépend pas de la distance de la caméra et la propriété orthoHeight spécifie le nombre d’unités d’univers qui logent verticalement dans l’image-objet (ce qui détermine l’espace visible de l’univers). La largeur de la projection orthographique est déterminée par le rapport hauteur/largeur de la propriété rect de la caméra. Exemple L’instruction suivante donne à la propriété de projection de la caméra de l’image-objet 5 la valeur #orthographic. sprite(5).camera.projection = #orthographic Voir aussi fieldOfView (3D), orthoHeight, projectionAngle projectionAngle Ce terme Lingo est obsolète. Utilisez fieldOfView. Voir aussi fieldOfView (3D) property Syntaxe 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. Déclarez les variables de propriétés au début du script parent ou du script de 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. 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 540 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_Examples, lui-même dans le dossier de Director. Exemples 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 set ancestor = new(script "Ancien", spriteNum) end Voir aussi me, ancestor, spriteNum proxyServer Syntaxe proxyServer typeDeServeur, "adresseIP", numDePort proxyServer() Description Commande ; définit les valeurs d’un serveur proxy FTP ou HTTP comme suit : • • • typeDeServeur adresseIP – #ftp ou #http – Chaîne contenant l’adresse IP numéroDePort – Entier correspondant au numéro du port Si vous utilisez la syntaxe proxyServer(), cet élément renvoie les valeurs d’un serveur proxy FTP ou HTTP. Exemples 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 541 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) L’instruction suivante désactive un serveur proxy FTP : proxyServer #ftp,#stop ptToHotSpotID() Syntaxe ptToHotSpotID(quelleImageObjetQTVR, 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. puppet Syntaxe sprite(quelleImageObjet).puppet the puppet of sprite quelleImageObjet Description Propriété d’image-objet ; détermine si la piste d’image-objet spécifiée par quelleImageObjet est un esclave contrôlé par Lingo (TRUE) ou non (FALSE, valeur par défaut). • Si une piste d’image-objet est asservie, toute modification apportée par Lingo 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 Lingo à l’imageobjet ne dure que jusqu’à la fin de l’image-objet courante. Tant que la tête de lecture reste dans la même image-objet, le fait de donner à la propriété puppet de la piste d’image-objet la valeur FALSE rend à l’image-objet les propriétés définies dans le scénario. Le fait d’asservir une piste d’image-objet permet de contrôler depuis Lingo 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. La définition de la propriété d’image-objet puppet équivaut à l’utilisation de la commande puppetSprite. Par exemple, les instructions suivantes sont équivalentes : set the puppet of sprite 1 to TRUE et puppetSprite 1, TRUE. Cette propriété peut être testée et définie. Exemples L’instruction suivante asservit l’image-objet dont le numéro est i + 1 : sprite(i + 1).puppet = TRUE 542 L’instruction suivante enregistre si l’image-objet 5 est asservie en affectant la valeur de la propriété d’image-objet puppet à la variable. Si l’image-objet 5 est asservie, estEsclave prend la valeur TRUE. Dans le cas contraire, estEsclave prend la valeur FALSE. estEsclave = sprite(5).puppet Voir aussi puppetSprite puppetPalette Syntaxe puppetPalette quellePalette {, vitesse} {,nImages} Description Commande ; asservit la piste des palettes et permet à Lingo d’avoir priorité sur les paramètres de la piste des palettes du scénario ainsi que d’affecter des palettes à l’animation. La commande puppetPalette définit comme palette courante l’acteur palette spécifié par l’expression quellePalette. Si quellePalette est une chaîne, elle spécifie le nom d’acteur de la palette. Si quellePalette est un nombre entier, elle spécifie le numéro d’acteur de la palette. Pour optimiser les résultats, utilisez la commande puppetPalette avant de passer à l’image sur laquelle l’effet se produira, afin que Director puisse effectuer une conversion dans 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 nImages par un nombre entier correspondant au nombre d’images. Une palette asservie reste active jusqu’au moment de sa désactivation par le biais de la commande Aucune autre modification de palette ne sera apportée dans le scénario lorsque la palette asservie est active. puppetPalette 0. Remarque Le navigateur web contrôle la palette pour toute la page web. Ainsi, Shockwave et le lecteur Director pour Java utilisent toujours la palette du navigateur web. Pour obtenir des couleurs fiables pour la création d’une animation destinée au lecteur Director pour Java, utilisez la palette par défaut du système auteur. Exemples L’instruction suivante fait d’Arc-en-ciel la palette de l’animation : puppetPalette "Arc-en-ciel" L’instruction suivante fait de Niveaux de gris la palette de l’animation. La transition vers la palette Niveaux de gris s’effectue pendant un laps de temps de 15 et entre les images intitulées Gris et Couleur. puppetPalette "Niveaux de gris", 15, label("Gris") - label("Couleur") 543 puppetSound Syntaxe puppetSound puppetSound puppetSound puppetSound puppetSound quellePiste, quelActeur quelActeur member quelActeur 0 quellePiste, 0 Description Commande ; asservit la piste audio, lit l’acteur son spécifié par quelActeur et permet à Lingo d’avoir priorité sur tous les sons affectés dans les pistes audio du scénario. Spécifiez une piste audio en remplaçant quellePiste par un numéro de piste. La lecture du son démarre dès que la tête de lecture se met en mouvement ou que la commande updateStage est exécutée. L’utilisation de 0 comme argument de numéro dans la distribution empêche la lecture du son. Elle rend également le contrôle de la piste audio au scénario. Les sons esclaves peuvent s’avérer utiles pour lire un son tandis qu’une animation différente est chargée en mémoire. Le lecteur Director pour Java supporte les versions suivantes de la commande puppetSound : • • puppetSound quellePiste, quelActeur puppetSound 0 ou puppetSound quelActeur – Lit un son. ou puppetSound quellePiste, 0 – Arrête un son. Exemples L’instruction suivante lit le son Vent sous le contrôle de Lingo : puppetSound "Vent" L’instruction suivante désactive le son lu dans la piste 2 : puppetSound 2, 0 Voir aussi sound fadeIn, sound fadeOut, sound playFile, sound stop puppetSprite Syntaxe puppetSprite quelleImageObjet, état Description Commande ; détermine si la piste d’image-objet spécifiée par quelleImageObjet est un esclave contrôlé par Lingo (TRUE) ou non (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 commande puppetSprite quelleImageObjet, 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 commande puppetSprite. Vous pouvez utiliser Lingo pour modifier les propriétés d’imageobjet comme suit : • Si une piste d’image-objet est asservie, toute modification apportée par Lingo 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. 544 • Si une piste d’image-objet n’est pas asservie, toute modification apportée par Lingo à l’imageobjet ne dure que jusqu’à la fin de l’image-objet courante. La piste doit contenir une image-objet lorsque vous utilisez la commande puppetSprite. Le fait d’asservir la piste d’image-objet vous permet de contrôler depuis Lingo de nombreuses propriétés d’image-objet, telles que memberNum, locH et width, une fois la tête de lecture sortie de l’image-objet. Utilisez la commande puppetSprite quelleImageObjet, FALSE pour rendre le contrôle au scénario lorsque vous avez fini de contrôler une piste d’image-objet depuis Lingo et pour éviter des résultats imprévisibles qui peuvent se produire lorsque la tête de lecture se trouve dans des images qui ne sont pas 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. Exemples L’instruction suivante asservit l’image-objet de la piste 15 : puppetSprite 15, TRUE L’instruction suivante libère de son état d’asservissement l’image-objet de la piste numéro i + 1 : puppetSprite i + 1, FALSE Voir aussi backColor, bottom, constraint, cursor (commande), foreColor, height, ink, left, lineSize, locH, locV, memberNum, puppet, right, top, type (propriété d’image-objet), width puppetTempo Syntaxe puppetTempo imagesParSeconde Description Commande ; asservit la piste des cadences et règle la cadence sur le nombre d’images spécifié par imagesParSeconde. Lorsque la piste des cadences est asservie, Lingo peut avoir priorité sur le paramètre de cadence du scénario et modifier la cadence de l’animation. 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 commande puppetTempo, cela ne serait possible qu’avec très peu d’animation et une machine très puissante. Exemples L’instruction suivante fixe la cadence de l’animation à 30 images par seconde : puppetTempo 30 L’instruction suivante augmente l’ancienne cadence de l’animation de 10 images par seconde : puppetTempo ancienneCadence + 10 545 puppetTransition Syntaxe puppetTransition member quelActeur puppetTransition quelleTransition {,temps} {, tailleDeBlocs} {, zoneModifiée} Description Commande ; exécute la transition spécifiée entre l’image courante et la suivante. Pour utiliser un Xtra de transition, utilisez puppetTransition member suivi du nom ou du numéro de l’acteur. Pour utiliser une transition Director intégrée, remplacez quelleTransition 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 tailleDeBlocs 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. 546 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 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 32 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* 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 tailleDeBlocs et durée. Par exemple, si tailleDeBlocs a une valeur d’un pixel, la transition prend plus de temps, quelle que soit la valeur de durée, car cette opération représente un travail intense l’ordinateur. Pour accélérer les transitions, augmentez la taille des blocs au lieu de réduire la durée. Remplacez zoneModifiée 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 zoneModifiée est une zone dans laquelle les images-objets ont changé. Exemple L’instruction suivante effectue une transition de type balayage vers la droite. Comme aucune valeur n’est spécifiée pour zoneModifiée, la transition se produit sur toute la scène, qui correspond au choix par défaut. puppetTransition 1 L’instruction suivante effectue une transition sur toute la scène, de type balayage, d’une durée d’une seconde, la taille de blocs étant de 20 : puppetTransition 2, 4, 20, FALSE purgePriority Syntaxe member(quelActeur).purgePriority the purgePriority of member quelActeur Description Propriété d’acteur ; spécifie la priorité de purge de l’acteur spécifié par quelActeur. Les priorités de purge des acteurs déterminent l’ordre de priorité suivi par Director pour sélectionner les acteurs à supprimer de la mémoire lorsque celle-ci est saturée. Plus la priorité de purge est élevée, plus il est probable que l’acteur sera supprimé. Les valeurs suivantes sont disponibles pour purgePriority : • • • • 0 – Jamais 1 – Dernier 2 – Suivant 3 – Normale Le paramètre Normale (valeur par défaut) permet à Director de purger la mémoire des acteurs d’une manière aléatoire. Les paramètres Suivant, Dernier et Jamais permettent de contrôler plus ou moins la purge. Cependant, si vous réglez les paramètres Dernier ou Jamais pour de nombreux acteurs, votre animation risque de se trouver à court de mémoire. 547 En réglant la propriété purgePriority des acteurs, vous serez à même de gérer la mémoire lorsque la taille de la distribution de l’animation dépasse la mémoire disponible. En règle générale, vous pouvez minimiser les pauses pendant que l’animation charge les acteurs et réduire le nombre de nouveaux chargements d’acteurs que Director doit exécuter en affectant une faible priorité de purge aux acteurs fréquemment utilisés au cours de l’animation. Exemple L’instruction suivante affecte la valeur 3 à la priorité de purge de l’acteur Arrière-plan, ce qui signifie qu’il sera l’un des premiers acteurs à être purgés lorsque Director aura besoin de mémoire : member("Arrière-plan").purgePriority = 3 put Syntaxe put expression Description Commande ; évalue l’expression spécifiée par expression et affiche le résultat dans la fenêtre Messages. Cette commande peut servir d’outil de débogage pour suivre la valeur des variables au cours de la lecture d’une animation. Le lecteur Director pour Java affiche le message dans la fenêtre de la console Java du navigateur web après la commande put. L’accès à la fenêtre de la console dépend du navigateur web. Exemples L’instruction suivante affiche l’heure dans la fenêtre Messages : put the time -- "9:10" L’instruction suivante affiche la valeur affectée à la variable Devis dans la fenêtre Messages : put Devis -- "Dubois" Voir aussi put...after, put...before, put...into put...after Syntaxe 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. 548 Exemples 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 Syntaxe 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. Exemples 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 put...into Syntaxe 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. 549 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. Exemples 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...= 550 qtRegisterAccessKey Syntaxe 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. Remarque Pour raisons de sécurité, il est impossible d’afficher la liste de toutes les clés enregistrées. Voir aussi qtUnRegisterAccessKey qtUnRegisterAccessKey Syntaxe 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 quad Syntaxe sprite(quelNuméroDimageObjet).quad Description Propriété d’image-objet ; contient une liste de quatre points, qui sont les valeurs flottantes servant à décrire les coins d’une image-objet sur la scène. Ces points sont organisés dans l’ordre suivant : supérieur gauche, supérieur droit, inférieur droit et inférieur gauche. Les points eux-mêmes peuvent être manipulés pour obtenir des effets de perspective et autres distorsions des images. Si vous manipulez le quadrilatère d’une image-objet, vous pouvez lui redonner les valeurs du scénario en désactivant l’esclave de l’image-objet au moyen de puppetSprite quelNuméroDimageObjet, FALSE. La désactivation du quadrilatère d’une image-objet interdit d’autre part de la faire pivoter ou de l’incliner. 551 Exemples L’instruction suivante affiche une liste type décrivant une image-objet : put sprite(1).quad -- [point(153.0000, 127.0000), point(231.0000, 127.0000), \ point(231.0000, 242.0000), point(153.0000, 242.0000)] Lorsque vous modifiez la propriété d’image-objet quad, n’oubliez pas que vous devez rétablir la liste de points si vous modifiez l’une de ces valeurs. En effet, lorsque vous affectez la valeur d’une propriété à une variable, vous placez une copie de la liste, et non la liste elle-même, dans la variable. Pour appliquer un changement, utilisez une syntaxe comme : -- obtenir le contenu de la propriété courante listeQuadCourante = sprite(5).quad -- ajouter 50 pixels aux positions horiz et vert du premier point de la liste listeQuadCourante[1] = listeQuadCourante[1] + point(50, 50) -- réinitialiser la propriété réelle sur la nouvelle position calculée sprite(5).quad = listeQuadCourante Voir aussi rotation, skew quality Syntaxe sprite(quelleImageObjetFlash).quality the quality of sprite quelleImageObjetFlash member(quelleImageObjetFlash).quality the quality of member quelleImageObjetFlash Description Propriété d’acteur et d’image-objet Flash ; contrôle si Director utilise l’anti-aliasing pour le rendu d’une image-objet animation Flash, produisant une haute qualité de rendu, mais aussi une lecture plus lente. La propriété quality peut prendre les valeurs suivantes : • #autoHigh – Director commence par effectuer le rendu de l’image-objet avec l’anti-aliasing. Si la cadence d’images tombe en dessous de celle spécifiée pour l’animation, Director désactive l’anti-aliasing. Ce réglage donne priorité à la vitesse de lecture sur la qualité visuelle. • #autoLow • • #high – Director commence par effectuer le rendu de l’animation sans anti-aliasing. Le lecteur Flash active l’anti-aliasing s’il détermine que le processeur de l’ordinateur est capable de le gérer. Ce réglage donne priorité à la qualité visuelle si cela est possible. #low (valeur par défaut) – L’animation est toujours lue avec anti-aliasing. – L’animation est toujours lue sans anti-aliasing. La propriété quality peut être testée et définie. Exemple Le script d’image-objet suivant détermine le nombre de couleurs de l’ordinateur sur lequel l’animation est lue. Si le nombre de couleurs est réglé sur 8 bits ou moins (256 couleurs), le scénario règle la qualité de l’image-objet dans la piste 5 sur #low. on beginSprite me if the colorDepth <= 8 then sprite(1).quality = #low end if end 552 quality (3D) Syntaxe member(quelActeur).texture(quelleTexture).quality member(quelActeur).shader(quelMatériau).texture\ (quelleTexture).quality member(quelActeur).model(quelModèle).shader.texture\ (quelleTexture).quality member( quelActeur ).model( quelModèle ).\ shader.texturelist[indexDeListeDeTextures].quality member(quelActeur).model(quelModèle).shaderList\ [indexDeListeDeMatériaux]. texture(quelleTexture).quality member( quelActeur ).model( quelModèle ).shaderList\ [ indexDeListeDeMatériaux ].texturelist[ indexDeListeDeTextures ].quality Description Propriété de texture 3D ; permet d’obtenir ou de définir la qualité d’image d’une texture en contrôlant le niveau de mipmapping qui lui est appliqué. Le mipmapping est un processus qui crée des versions supplémentaires de l’image de texture, créées de tailles variées et plus petites que l’image d’origine. L’Xtra 3D affiche ensuite à l’écran la version la plus appropriée de l’image en fonction de la taille courante du modèle et change la version de l’image utilisée selon les besoins. Le mipmapping trilinéaire produit une qualité supérieure au mipmapping bilinéaire mais demande aussi plus de mémoire. Le mipmapping est différent du filtrage, bien que les deux processus améliorent l’apparence de la texture. Le filtrage répartit les erreurs sur l’ensemble de la texture pour qu’elles soient moins concentrées. Le mipmapping rééchantillonne l’image pour lui donner la taille appropriée. Cette propriété peut avoir les valeurs suivantes : • • • #low correspond à la désactivation, le mipmapping n’étant pas utilisé pour la texture. #medium #high définit un mipmapping de faible qualité (bilinéaire) pour la texture. définit un mipmapping de qualité élevée (trilinéaire) pour la texture. La valeur par défaut est #low. Exemple L’instruction suivante donne à la propriété quality de la texture de placageMars la valeur #medium. member("Séquence").texture("placageMars").quality = #medium Voir aussi nearFiltering 553 queue() Syntaxe sound(numéroDePiste).queue(member(quelActeur)) sound(numéroDePiste).queue([#member: member(quelActeur), {#startTime: millisecondes, #endTime: millisecondes, #loopCount: nombreDeBoucles, #loopStartTime: millisecondes, #loopEndTime: millisecondes, #preloadTime: millisecondes}]) queue(sound(numéroDePiste), member(quelActeur)) queue(objetAudio, [#member: member(quelActeur), {#startTime: millisecondes, #endTime: millisecondes, #loopCount: nombreDeBoucles, #loopStartTime: millisecondes, #loopEndTime: millisecondes, #preloadTime: millisecondes}]) Description Fonction ; ajoute l’acteur son à la file d’attente de la piste audio numéroDePiste. Dès qu’un son est placé en file d’attente, il peut être lu immédiatement à l’aide de la commande 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 commande 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 commande queue(). Vous pouvez spécifier ces propriétés à l’aide de la commande queue() : 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. Pour plus d’informations, consultez 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. Ces paramètres peuvent également être passés avec la commande setPlayList(). Vous pourrez voir un exemple de queue() dans une animation en consultant l’animation Sound Control du dossier Learning/Lingo_Examples, lui-même dans le dossier de Director. 554 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 de ses 3 secondes et exécute cinq lectures en boucle successives, de 8 secondes à 8,9 secondes, et s’arrête au point 10 secondes. on lireLaMusique sound(2).queue([#member: member("Carillons")]) sound(2).queue([#member: member("Intro"), #startTime: 3000,\ #endTime: 10000, #loopCount: 5, #loopStartTime: 8000, #loopEndTime: 8900]) sound(2).play() end Voir aussi startTime, endTime, loopCount, loopStartTime, loopEndTime, preLoadTime, setPlaylist(), play() (audio) queue() (3D) Syntaxe member(quelActeur).model(quelModèle).bonesPlayer.queue\ (nomDuMouvement {, enBoucle, posInitiale, posFinale, échelle, décalage}) member(quelActeur).model(quelModèle).keyframePlayer.\ queue(nomDuMouvement {, enBoucle, posInitiale, posFinale, échelle, décalage}) Description Commande 3D de modificateur keyframePlayer et bonesPlayer ; ajoute le mouvement spécifié par nomDeMouvement à 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. Les paramètres facultatifs de cette commande sont les suivants : enBoucle spécifie si le mouvement est lu une seule fois (FALSE) ou continuellement (TRUE). posInitiale 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 posFinale. Lorsque enBoucle a pour valeur TRUE, la première itération de la boucle démarre à décalage et se termine à posFinale. Toutes les répétitions suivantes démarrent à posInitiale et se terminent à posFinale. posFinale 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 posFinale. Lorsque enBoucle a pour valeur TRUE, la première itération de la boucle démarre à décalage et se termine à posFinale. Toutes les répétitions suivantes démarrent à posInitiale et se terminent à posFinale. Donnez à posFinale la valeur -1 si le mouvement doit être lu jusqu’à la fin. échelle est multiplié 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. 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 posFinale. Lorsque enBoucle a pour valeur TRUE, la première itération de la boucle démarre à décalage et se termine à posFinale. Toutes les répétitions suivantes démarrent à posInitiale et se terminent à posFinale. décalage 555 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) 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 quickTimeVersion() Syntaxe 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. Exemple L’instruction suivante utilise quickTimeVersion() pour afficher la version de QuickTime courante dans la fenêtre Messages : put quickTimeVersion() quit Syntaxe quit Description Commande ; permet de quitter Director ou une projection et de passer au bureau de Windows ou au Finder du Macintosh. 556 Exemple L’instruction suivante indique à l’ordinateur de quitter vers le bureau de Windows ou le Finder du Macintosh lorsque l’utilisateur appuie sur Ctrl+Q (Windows) ou sur Cmd+Q (Macintosh) : if the key = "q" and the commandDown then quit Voir aussi restart, shutDown QUOTE Syntaxe QUOTE 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. Exemple L’instruction suivante insère des guillemets dans une chaîne : put "Comment épelez-vous" && QUOTE & "Macromedia" & QUOTE && "?" Le résultat est un jeu de guillemets placés autour du mot Macromedia : Comment épelez-vous "Macromedia" ? radius Syntaxe référenceDobjetDeRessDeModèle.radius member(quelActeur).modelResource(quelleRessDeMod).radius Description Propriété de modèle 3D ; utilisée avec une ressource de modèle de type #sphere ou #cylinder, cette propriété permet d’obtenir ou de définir le rayon du modèle. La propriété radius détermine le rayon de balayage utilisé pour générer la ressource de modèle. La valeur de cette propriété doit toujours être supérieure à 0.0 et est définie par défaut à 25.0. Exemple L’exemple suivant indique que le rayon de la ressource de modèle sphère01 est 24.0. put member("Univers 3D").modelResource("sphère01").radius -- 24.0 ramNeeded() Syntaxe ramNeeded (premièreImage, dernièreImage) Description Fonction ; 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 kilo-octets. 557 Exemples L’instruction suivante affecte à la variable tailleDimage le nombre d’octets requis pour afficher les images 100 à 125 de l’animation : put ramNeeded (100, 125) into tailleDimage 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 : if ramNeeded (100, 125) > the freeBytes then play frame "8 bits" Voir aussi freeBytes(), size random() Syntaxe random(expressionEntière) Description Fonction ; renvoie un nombre entier aléatoire compris entre 1 et la valeur spécifiée par expressionEntière. 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. Exemples L’instruction suivante affecte des valeurs aléatoires à la variable dés : set 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 : 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 : on sélectionDeScène if random(2) = 2 then play frame "11a" else play frame "11-b" end if end Les instructions suivantes produisent des résultats dans une plage spécifique. L’instruction suivante produit un multiple aléatoire de cinq compris entre 5 et 100 : score = 5 * random(20) L’instruction suivante produit un multiple aléatoire de cinq compris entre 0 et 100 : score = 5 * (random(21) - 1) 558 L’instruction suivante génère des nombres entiers compris entre -10 et +10 : dirH = random(21) - 11 L’instruction suivante produit une valeur décimale aléatoire à deux chiffres après la virgule : the floatPrecision = 2 lesCentimes = random(100)/100.0 - .01 randomSeed Syntaxe the randomSeed Description Propriété système ; spécifie la valeur de départ utilisée pour générer des nombres aléatoires obtenus au moyen de la fonction random(). L’utilisation de la même valeur de départ produit la même séquence de nombres aléatoires. Cette propriété peut être utile pour le débogage au cours du développement. L’utilisation de la propriété ticks facilite la production d’une valeur de départ aléatoire unique étant donné qu’il est peu probable que la valeur de ticks soit répétée dans les utilisations suivantes. Cette propriété peut être testée et définie. Exemple L’instruction suivante affiche le nombre de départ aléatoire dans la fenêtre Messages : put the randomSeed Voir aussi random(), ticks randomVector Syntaxe 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. Exemples 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 559 rawNew() Syntaxe 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. Exemples 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 realPlayerNativeAudio() Syntaxe 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 lecteur Shockwave 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 (RealMedia) et d’utiliser les méthodes et propriétés audio standard de Lingo en vue du traitement du train 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. Pour plus d’informations sur l’utilisation de RealAudio, consultez Utilisation de contenu RealMedia dans Director, dans le mode d’emploi de Director. Pour plus d’informations sur l’audio dans Director, consultez les entrées correspondantes dans le dictionnaire Lingo. 560 Exemples 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. put realPlayerNativeAudio() -- 0 Le code suivant donne à la fonction realPlayerNativeAudio() la valeur TRUE, ce qui signifie que l’audio du train RealMedia sera traitée par RealPlayer et que le contrôle de Lingo sur la piste audio ne sera pas pris en compte. realPlayerNativeAudio(TRUE) Voir aussi soundChannel (RealMedia), audio (RealMedia) realPlayerPromptToInstall() Syntaxe 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() 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 pour déterminer si RealPlayer 8 est installé. Sous Windows, les numéros de version 6.0.8.132 ou supérieurs indiquent que RealPlayer 8 est installé. Sur le 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. Exemples 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. put 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. realPlayerPromptToInstall(FALSE) 561 realPlayerVersion() Syntaxe 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érieurs indiquent que RealPlayer 8 est installé. Sur le 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, si vous ne souhaitez pas utiliser celui qui est fourni par la fonction realPlayerPromptToInstall(). 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. 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 le 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(). 562 Exemple Le code suivant indique que le numéro de version de RealPlayer installé sur le système est 6.0.9.357. put realPlayerVersion() -- "6.0.9.357" recordFont Syntaxe recordFont(quelActeur, police {[,style]} {,[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. • • police – Nom de la police d’origine à enregistrer. style – Liste de symboles indiquant le style de la police d’origine, les valeurs possibles étant #plain, #bold, #italic. Si vous ne définissez aucune valeur pour cet argument, c’est #plain qui sera utilisé par défaut. • tailleDesBitmaps • sousEnsembleDeCaractères • nouveauNom – Liste d’entiers spécifiant les tailles pour lesquelles les bitmaps sont enregistrés. Cet argument peut être vide. Si vous omettez cet argument, 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. – Chaîne de caractères à coder. Seuls les caractères spécifiés seront disponibles dans la police. Si cet argument est fourni, tous les caractères qu’il contient 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. – Une chaîne utilisée comme nom de l’acteur police nouvellement enregistré. La commande crée une police shockée dans quelActeur en utilisant la police nommée dans l’argument 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. Exemples 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") 563 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 new() rect (caméra) Syntaxe sprite(quelleImageObjet).camera(quelleCaméra).rect Description Propriété 3D de caméra ; permet d’obtenir ou de définir le rectangle qui contrôle la taille et la position de la caméra. Ce rectangle est analogue à celui que vous observez dans le viseur d’une caméra réelle. La valeur par défaut de la propriété rect de toutes les caméras est rect(0,0,1,1) qui les rend invisibles jusqu’à la modification du paramètre. Cependant, lorsque sprite.camera(1) est rendu, son rect est réinitialisé à rect(0, 0, sprite(quelleImageObjet).width, sprite(quelleImageObjet).height) de façon à ce que la caméra remplisse l’écran. Toutes les coordonnées de cadre de caméra sont calculées par rapport au coin supérieur gauche de l’imageobjet. Veuillez noter que si la valeur de quelleCaméra est supérieure à 1, le rect n’est pas redimensionné en même temps que l’image-objet et il sera donc nécessaire, si vous le souhaitez, de gérer ce redimensionnement dans Lingo. Lorsque la valeur de quelleCaméra est supérieure à 1, les valeurs des propriétés rect.top et rect.left doivent être supérieures ou égales aux valeurs rect.top et rect.left de sprite.camera(1). Exemple L’instruction suivante donne au rectangle de la caméra par défaut de l’image-objet 5 la valeur rect(0, 0, 200, 550) : sprite(5).camera.rect = rect(0, 0, 200, 550) Voir aussi cameraPosition, cameraRotation 564 rect() Syntaxe rect(gauche, haut, droite, bas) rect(point1, point2) Description Fonction et type de données ; définit un rectangle. Le format rect(gauche, haut, droite, bas) définit un rectangle dont les côtés sont spécifiés par gauche, haut, droite et bas. Les valeurs gauche et droite spécifient le nombre de pixels à partir du bord gauche de la scène. Les valeurs haut et bas spécifient le nombre de pixels à partir du bord supérieur de la scène. Le format rect(point1, point2) définit un rectangle qui renferme les points spécifiés par et point2. point1 Vous pouvez faire référence aux composants de rectangles avec les syntaxes de liste ou de propriétés. Par exemple, les deux expressions suivantes sont équivalentes : largeurCible = rectCible.right - rectCible.left largeurCible = rectCible[3] - rectCible[1] Vous pouvez effectuer des opérations arithmétiques sur les rectangles. Si vous ajoutez une seule valeur à un rectangle, Lingo l’ajoute à chaque élément du rectangle. Vous pourrez voir un exemple de rect() dans une animation en consultant l’animation Imaging du dossier Learning/Lingo_Examples, lui-même dans le dossier de Director. Exemples 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 : set nouvelleZone = rect(100, 150, 300, 400) L’instruction suivante définit la variable nouvelleZone comme un rectangle défini par les points premierPoint et deuxièmePoint. Les coordonnées de premierPoint sont (100, 150) ; celles de deuxièmePoint sont (300, 400). Notez que cette instruction crée le même rectangle que celui créé dans l’exemple précédent : put rect(premierPoint, deuxièmePoint) Les instructions suivantes ajoutent et soustraient des valeurs aux rectangles : 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) L’instruction suivante ajoute 80 à chaque coordonnée d’un rectangle : put rect(60, 40, 120, 200) + 80 --rect (140, 120, 200, 280) L’instruction suivante divise chaque coordonnée d’un rectangle par 3 : put rect(60, 40, 120, 200) / 3 -- rect(20, 13, 40, 66) Voir aussi point(), quad 565 rect (image) Syntaxe objetImage.rect Description Propriété en lecture seule ; renvoie un rectangle décrivant la taille de l’objet image concerné. Les coordonnées sont calculées par rapport au coin supérieur gauche de l’image. Les valeurs gauche et supérieure du rectangle s’élèvent donc à 0 et les valeurs inférieure et droite constituent la largeur et la hauteur de l’acteur. Exemples L’instruction suivante affiche le rectangle de l’acteur Lever de soleil de 300 x 400 pixels dans la fenêtre Messages : put member("Lever de soleil").image.rect --rect (0, 0, 300, 400) L’instruction Lingo suivante examine les 50 premiers acteurs et affiche le rectangle et le nom de chaque acteur bitmap : on afficherTousLesRects repeat with x = 1 to 50 if member(x).type = #bitmap then put member(x).image.rect && "-" && member(x).name end if end repeat end Voir aussi height, width rect (acteur) Syntaxe member(quelActeur).rect the rect of member quelActeur Description Propriété d’acteur ; spécifie les coordonnées gauche, supérieure, droite et inférieure, sous la forme d’un rectangle, du rectangle de n’importe quel acteur graphique, tel qu’un bitmap, une forme, une animation ou une vidéo numérique. Pour un bitmap, la propriété d’acteur rect est mesurée à partir du coin supérieur gauche du bitmap, et non à partir du coin supérieur gauche du bord de la fenêtre Dessin. Pour un acteur Xtra, la propriété d’acteur rect est un rectangle dont le coin supérieur gauche est à (0,0). Le lecteur Director pour Java ne peut pas définir la propriété d’acteur rect. Cette propriété peut être testée. Elle ne peut être définie que pour les acteurs champ. Exemples L’instruction suivante affiche les coordonnées de l’acteur bitmap 20 : put member(20).rect 566 L’instruction suivante définit les coordonnées de l’acteur bitmap Bandeau : member("Bandeau").rect = rect(100, 150, 300, 400) Voir aussi rect(), rect (image-objet) rect (image-objet) Syntaxe sprite quelleImageObjet.rect the rect of sprite quelleImageObjet Description Propriété d’image-objet ; spécifie les coordonnées gauche, supérieure, droite et inférieure, sous la forme d’un rectangle, du rectangle de n’importe quel image-objet graphique, tel qu’un bitmap, une forme, une animation ou une vidéo numérique. Cette propriété peut être testée et définie. Exemple L’instruction suivante affiche les coordonnées de l’image-objet bitmap 20 : put sprite(20).rect rect (fenêtre) Syntaxe window quelleFenêtre.rect the rect of window quelleFenêtre Description Propriété de fenêtre ; spécifie les coordonnées gauche, supérieure, droite et inférieure, renvoyées sous la forme d’un rectangle, de la fenêtre spécifiée par quelleFenêtre. Si la taille du rectangle spécifié est inférieure à celle de la scène sur laquelle l’animation a été créée, l’animation est recadrée dans la fenêtre, mais n’est pas mise à l’échelle. Pour effectuer un panoramique ou une mise à l’échelle de l’animation lue dans la fenêtre, modifiez la propriété drawRect ou sourceRect de la fenêtre. Cette propriété peut être testée et définie. Exemple L’instruction suivante affiche les coordonnées de la fenêtre Tableau_de_commande : put window("Tableau_de_commande").rect Voir aussi drawRect, sourceRect 567 ref Syntaxe expressionSousChaîne.ref Description Propriété d’expression de sous-chaîne de texte ; offre un raccourci pratique permettant de faire référence à une expression de sous-chaîne dans un acteur texte. Exemples En l’absence de références, vous devriez utiliser une instruction telle que : member(acteurTexte).line[ligne].word[premMot..derMot].font = "Palatino" member(acteurTexte).line[ligne].word[premMot..derMot].fontSize = 36 member(acteurTexte).line[ligne].word[premMot..derMot].fontStyle = [#bold] Avec une propriété ref, en revanche, vous pouvez faire référence à la même sous-chaîne, tel que : maRéf = member(acteurTexte).line[ligne].word[premMot..derMot].ref La variable maRéf est maintenant un raccourci pour toute l’expression de sous-chaîne. Cela permet quelque chose comme : put maRéf.font -- "Palatino" Vous pouvez aussi définir une propriété de la sous-chaîne avec : maRéf.fontSize = 18 maRéf.fontStyle = [#italic] Vous pouvez accéder à la chaîne indiquée par la référence en utilisant sa propriété texte : put maRéf.text Cela produirait les données réelles de la chaîne et non les informations la concernant. reflectionMap Syntaxe member(quelActeur).shader(quelMatériau).reflectionMap Description Propriété 3D de matériau ; permet d’obtenir et de définir la texture utilisée pour créer des reflets à la surface d’un modèle. Cette texture est appliquée à la troisième couche de texture du matériau. Cette propriété est ignorée si le modificateur toon est appliqué à la ressource de modèle. Cette propriété fournit une interface plus simple pour la définition d’une utilisation commune du placage de réflexion. Les propriétés suivantes produisent le même effet : shader.textureModeList[3] = shader.blendFunctionList[3] shader.blendSourceList[3] = shader.blendConstantList[3] #reflection = #blend #constant = 50.0 Cette propriété, lorsque testée, renvoie la texture associée à la troisième couche de texture du modèle. La valeur par défaut est void. 568 Exemple L’instruction suivante entraîne le reflet de la texture Portrait sur la surface du modèle sphèreEnVerre. member("planète3D").model("sphèreEnVerre").shader.reflectionMap = \ member("planète3D").texture("Portrait") Voir aussi textureModeList, blendFunctionList, blendConstantList reflectivity Syntaxe member(quelActeur).reflectivity Description Propriété 3D de matériau ; permet d’obtenir ou de définir le niveau de brillant du matériau par défaut de l’acteur référencé. Cette valeur à virgule flottante représente le pourcentage, de 0.0 à 100.00, de lumière à refléter sur la surface d’un modèle utilisant le matériau par défaut. La valeur par défaut est 0.0. Exemple L’instruction suivante définit de degré de brillant du matériau par défaut à 50 % pour l’acteur Séquence : member("Séquence").reflectivity = 50 region Syntaxe member(quelActeur).modelResource(quelleRessDeMod).\ emitter.region référenceDobjetDeRessourceDeModèle.emitter.region Description Propriété 3D d’émission ; utilisée avec une ressource de modèle de type #particle, cette propriété permet d’obtenir et de définir la propriété region de l’émetteur de particules de la ressource. Cette propriété de région définit la position à partir de laquelle les particules sont émises. Si sa valeur est un seul vecteur, ce vecteur en question est utilisé pour définir un point à partir duquel les particules vont être émises dans l’univers 3D. Si sa valeur est une liste de deux vecteurs, ces vecteurs sont utilisés pour définir les points d’extrémité d’un segment de ligne à partir duquel les particules vont être émises. Si sa valeur est une liste de quatre vecteurs, ces vecteurs sont utilisés pour définir les sommets du quadrilatère à partir duquel les particules vont être émises. La valeur par défaut de cette propriété est [vector(0,0,0)]. 569 Exemple Dans l’exemple suivant, systèmeThermique est une ressource de modèle de type #particle. L’instruction suivante spécifie les quatre coins du rectangle d’où proviennent les particules de systèmeThermique. member("Feux").modelResource("systèmeThermique").emitter.region = \ [vector(20,90,100), vector(30,90,100), vector(30,100,100), \ vector(20,100,100)] Voir aussi emitter registerForEvent() Syntaxe 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(). Le paramètre nomDeGestionnaire est le nom du gestionnaire qui sera appelé ; ce gestionnaire se trouve dans l’objet de script indiqué par objetScript. Si 0 est spécifié pour objetScript, c’est le premier gestionnaire d’événement portant le nom donné qui est appelé. Le paramètre nomDévénement peut être n’importe lequel des événements Lingo prédéfinis suivants ou tout événement personnalisé : • • #collideAny • #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. 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. 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é 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. autoBlend 570 • #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. Le gestionnaire que vous spécifiez reçoit les arguments suivants : type est toujours 0. delta 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 un é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. Remarque Vous pouvez associer l’enregistrement d’un script à un nœud particulier plutôt qu’à un acteur, à l’aide de la commande registerScript(). Exemples L’instruction suivante enregistre le gestionnaire d’événement interrogerUtil détecté dans un script d’animation pour un appel à deux reprises, à un intervalle de cinq secondes : member("Séquence").registerForEvent(#timeMS, #interrogerUtil, 0, \ 5000, 5000, 2) L’instruction suivante enregistre le gestionnaire d’événement interrogerUtil détecté dans un script d’animation pour un appel à chaque fois qu’une collision a lieu au sein de l’acteur Séquence : member("Séquence").registerForEvent(#collideAny, #interrogerUtil, 0) L’instruction suivante déclare que le gestionnaire on interrogerUtil 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 Séquence : member("Séquence").registerForEvent(#collideWith, #interrogerUtil, me, \ member("Séquence").model("Pluton")) Voir aussi setCollisionCallback(), registerScript(), play() (3D), playNext() (3D), autoblend, blendTime, sendEvent, unregisterAllEvents 571 registerScript() Syntaxe 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(). Le paramètre nomDeGestionnaire est le nom du gestionnaire qui sera appelé ; ce gestionnaire se trouve dans l’objet de script indiqué par objetScript. Si 0 est spécifié pour objetScript, c’est le premier gestionnaire d’événement portant le nom donné qui est appelé. Le paramètre nomDévénement peut être n’importe lequel des événements Lingo prédéfinis suivants ou tout événement personnalisé : • #collideAny est un événement de collision généré lorsque deux entités du système entrent en collision et que le modificateur #collision est associé à ces deux entités. • #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é 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. autoBlend 572 • #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. Le gestionnaire que vous spécifiez reçoit les arguments suivants : type est toujours 0. delta 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 un é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. Exemples 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’utilisateu