flash.displayFrameLabel L’objet FrameLabel contient des propriétés qui spécifient un numéro d’image et le nom d’étiquette correspondant.Object L’objet FrameLabel contient des propriétés qui spécifient un numéro d’image et le nom d’étiquette correspondant. La classe Scene inclut la propriété labels, qui correspond à un tableau d’objets FrameLabel pour la séquence. Scene.labelsMovieClip.currentLabelMovieClip.currentSceneMovieClip.scenesMovieClip.gotoAndPlay()MovieClip.gotoAndStop()frame Numéro de l’image qui contient l’étiquette.int Numéro de l’image qui contient l’étiquette. name Nom de l’étiquette.String Nom de l’étiquette. InteractiveObject La classe InteractiveObject correspond à la classe de base abstraite de l’ensemble des objets d’affichage avec lesquels l’utilisateur peut interagir à l’aide de la souris, du clavier ou d’autres périphériques de saisie utilisateur.flash.display:DisplayObject La classe InteractiveObject correspond à la classe de base abstraite de l’ensemble des objets d’affichage avec lesquels l’utilisateur peut interagir à l’aide de la souris, du clavier ou d’autres périphériques de saisie utilisateur.

Il est impossible d’instancier directement la classe InteractiveObject. Tout appel au constructeur new InteractiveObject() renvoie une exception ArgumentError.

La classe InteractiveObject n’inclut pas d’API pour le rendu de contenu à l’écran. Pour créer une sous-classe personnalisée de la classe InteractiveObject, étendez l’une des sous-classes disposant d’API pour le rendu du contenu à l’écran, telles que Sprite, SimpleButton, TextField ou MovieClip.

L’exemple suivant utilise la classe InteractiveObjectExample, qui en retour utilise la classe ChildSprite pour dessiner un rectangle et le manipule en fonction des différents événements de la souris. Pour ce faire, procédez comme suit :
  1. Dans le constructeur InteractiveObjectExample, un nouvel objet ChildSprite de type Sprite appelé child est créé, qui en retour appelle la méthode de constructeur ChildSprite pour dessiner la forme et ajoute des événements de souris à la forme (comme expliqué au cours des étapes suivantes). L’objet child est ajouté dans la partie supérieure de la liste d’affichage aux coordonnées x = 0, y = 0.
  2. Dans la classe ChildSprite, déclarez les propriétés size et overSize qui sont utilisées par la suite par les méthodes draw() et MouseEvent.
  3. Déclare des propriétés qui définissent la couleur de fond sur orange, la couleur de survol de la souris sur jaune et la couleur clic sur bleu clair.
  4. Dans le constructeur ChildSprite, un carré orange est dessiné à l’aide des méthodes de la classe Graphics et de la méthode draw().
  5. Le constructeur ajoute quatre méthodes d’écouteur d’événements MouseEvent :
    • mouseOverHandler : dessine de nouveau un carré plus grand, de 60x60 pixels, en jaune plus sombre et aux coordonnées d’origine.
    • mouseOutHandler : rétablit la couleur et la taille d’origine du carré.
    • mouseDownHandler : dessine de nouveau un carré plus grand, de 60x60 pixels, en bleu clair et aux coordonnées d’origine.
    • mouseUpHandler : identique à mouseOverHandler.
package { import flash.display.Sprite; public class InteractiveObjectExample extends Sprite { public function InteractiveObjectExample() { var child:Sprite = new ChildSprite(); addChild(child); } } } import flash.display.Sprite; import flash.events.MouseEvent; class ChildSprite extends Sprite { private var size:uint = 50; private var overSize:uint = 60; private var backgroundColor:uint = 0xFFCC00; private var overColor:uint = 0xCCFF00; private var downColor:uint = 0x00CCFF; public function ChildSprite() { buttonMode = true; draw(size, size, backgroundColor); addEventListener(MouseEvent.MOUSE_OVER, mouseOverHandler); addEventListener(MouseEvent.MOUSE_OUT, mouseOutHandler); addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler); addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler); } private function draw(w:uint, h:uint, bgColor:uint):void { graphics.clear(); graphics.beginFill(bgColor); graphics.drawRect(0, 0, w, h); graphics.endFill(); } public function mouseOverHandler(event:MouseEvent):void { trace("mouseOverHandler"); draw(overSize, overSize, overColor); } public function mouseOutHandler(event:MouseEvent):void { trace("mouseOutHandler"); draw(size, size, backgroundColor); } public function mouseDownHandler(event:MouseEvent):void { trace("mouseDownHandler"); draw(overSize, overSize, downColor); } public function mouseUpHandler(event:MouseEvent):void { trace("mouseUpHandler"); draw(overSize, overSize, overColor); } }
softKeyboardDeactivate Distribué immédiatement après la disparition du clavier logiciel.flash.events.SoftKeyboardEvent.SOFT_KEYBOARD_DEACTIVATEflash.events.SoftKeyboardEventDistribué immédiatement après la disparition du clavier logiciel. Distribué immédiatement après la disparition du clavier logiciel. flash.events.SoftKeyboardEventsoftKeyboardActivate Distribué immédiatement après l’affichage du clavier logiciel.flash.events.SoftKeyboardEvent.SOFT_KEYBOARD_ACTIVATEflash.events.SoftKeyboardEventDistribué immédiatement après l’affichage du clavier logiciel. Distribué immédiatement après l’affichage du clavier logiciel. flash.events.SoftKeyboardEventsoftKeyboardActivating Distribué immédiatement avant l’affichage du clavier logiciel.flash.events.SoftKeyboardEvent.SOFT_KEYBOARD_ACTIVATINGflash.events.SoftKeyboardEventDistribué immédiatement avant l’affichage du clavier logiciel. Distribué immédiatement avant l’affichage du clavier logiciel. flash.events.SoftKeyboardEventtextInput Distribué lorsqu’un utilisateur entre un ou plusieurs caractères de texte.flash.events.TextEvent.TEXT_INPUTflash.events.TextEvent Distribué lorsqu’un utilisateur entre un ou plusieurs caractères de texte. Différentes méthodes de saisie de texte peuvent générer cet événement, ce qui inclut les claviers standard, les éditeurs de méthode d’entrée (IME), les systèmes de reconnaissance vocale, voire même la copie de texte simple sans formatage ni ajout de style. imeStartComposition Cet événement est distribué à une application cliente prenant en charge la saisie en ligne avec un éditeur IME. flash.events.IMEEvent Cet événement est distribué à une application cliente prenant en charge la saisie en ligne avec un éditeur IME. contextMenu Distribué lorsque l’action d’un utilisateur active le menu contextuel associé à cet objet interactif dans une application AIR.flash.events.MouseEvent.CONTEXT_MENUflash.events.MouseEvent Distribué lorsque l’action d’un utilisateur active le menu contextuel associé à cet objet interactif dans une application AIR. contextMenunativeDragComplete Distribué par l’initiateur glisser InteractiveObject lorsque l’utilisateur arrête l’opération glisser.flash.events.NativeDragEvent.NATIVE_DRAG_COMPLETEflash.events.NativeDragEvent Distribué par l’initiateur glisser InteractiveObject lorsque l’utilisateur arrête l’opération glisser.

La propriété dropAction de l’événement indique l’action définie par l’objet cible drag ; une valeur "none" (DragActions.NONE) indique que l’opération déposer a été annulée ou refusée.

Le gestionnaire d’événement nativeDragComplete est un espace pratique permettant de mettre à jour l’état de l’objet d’affichage déclencheur, notamment en supprimant un élément d’une liste (sur un mouvement de glissement) ou en changeant les propriétés visuelles.

nativeDragUpdate Distribué lors d’une opération glisser par l’objet InteractiveObject spécifié comme initiateur de l’action glisser dans l’appel DragManager.doDrag().flash.events.NativeDragEvent.NATIVE_DRAG_UPDATEflash.events.NativeDragEvent Distribué lors d’une opération glisser par l’objet InteractiveObject spécifié comme initiateur de l’action glisser dans l’appel DragManager.doDrag().

Les événements nativeDragUpdate ne sont pas distribués sous Linux.

nativeDragStart Distribué au début d’une opération glisser par l’objet InteractiveObject spécifié comme initiateur de l’action glisser dans l’appel DragManager.doDrag().flash.events.NativeDragEvent.NATIVE_DRAG_STARTflash.events.NativeDragEvent Distribué au début d’une opération glisser par l’objet InteractiveObject spécifié comme initiateur de l’action glisser dans l’appel DragManager.doDrag(). nativeDragExit Distribué par un InteractiveObject lorsqu’une opération glisser sort des limites.flash.events.NativeDragEvent.NATIVE_DRAG_EXITflash.events.NativeDragEvent Distribué par un InteractiveObject lorsqu’une opération glisser sort des limites. nativeDragDrop Distribué par l’objet InteractiveObject cible lorsqu’un objet glissé est déposé dessus et que l’opération déposer a été acceptée avec un appel à DragManager.acceptDragDrop().flash.events.NativeDragEvent.NATIVE_DRAG_DROPflash.events.NativeDragEvent Distribué par l’objet InteractiveObject cible lorsqu’un objet glissé est déposé dessus et que l’opération déposer a été acceptée avec un appel à DragManager.acceptDragDrop().

Accédez aux données déposées à l’aide de la propriété clipboard de l’objet d’événement.

Le gestionnaire de cet événement doit régler la propriété DragManager.dropAction pour fournir des informations à l’objet déclencheur sur l’action glisser effectuée. Si aucune valeur n’est réglée, le DragManager sélectionne une valeur par défaut dans la liste des actions autorisées.

nativeDragOver Distribué par un objet InteractiveObject de façon continue lorsqu’une opération glisser reste dans ses limites.flash.events.NativeDragEvent.NATIVE_DRAG_OVERflash.events.NativeDragEvent Distribué par un objet InteractiveObject de façon continue lorsqu’une opération glisser reste dans ses limites.

Les événements nativeDragOver sont distribués dès que la souris est déplacée. Sous Windows et Mac, ils sont également distribués après quelques secondes, même lorsque la souris n’a pas été déplacée.

Gérez les événements nativeDragOver ou nativeDragEnter pour permettre à l’objet d’affichage de devenir la cible déposer.

Pour déterminer si l’objet d’affichage de distribution peut accepter l’opération déposer, vérifiez si les données dans la propriété clipboard de l’objet d’événement sont adaptées, et les actions glisser dans la propriétéallowedActions.

nativeDragEnter Distribué par un InteractiveObject lorsqu’une opération glisser entre dans ses limites.flash.events.NativeDragEvent.NATIVE_DRAG_ENTERflash.events.NativeDragEvent Distribué par un InteractiveObject lorsqu’une opération glisser entre dans ses limites.

Gérez les événements nativeDragEnter ou nativeDragOver pour permettre à l’objet d’affichage de devenir la cible déposer.

Pour déterminer si l’objet d’affichage de distribution peut accepter l’opération déposer, vérifiez si les données dans la propriété clipboard de l’objet d’événement sont adaptées, et les actions glisser dans la propriétéallowedActions.

tabIndexChange Distribué lorsque la valeur de la propriété tabIndex de l’objet change.flash.events.Event.TAB_INDEX_CHANGEflash.events.Event Distribué lorsque la valeur de la propriété tabIndex de l’objet change. tabEnabledChange Distribué lorsque l’indicateur tabEnabled de l’objet change.flash.events.Event.TAB_ENABLED_CHANGEflash.events.Event Distribué lorsque l’indicateur tabEnabled de l’objet change. tabChildrenChange Distribué lorsque la valeur de l’indicateur tabChildren de l’objet change.flash.events.Event.TAB_CHILDREN_CHANGEflash.events.Event Distribué lorsque la valeur de l’indicateur tabChildren de l’objet change. keyUp Distribué lorsque l’utilisateur relâche une touche.flash.events.KeyboardEvent.KEY_UPflash.events.KeyboardEvent Distribué lorsque l’utilisateur relâche une touche. La concordance entre les touches et des caractères spécifiques dépend du périphérique et du système d’exploitation. Ce type d’événement est généré lors du mappage, mais avant le traitement d’un éditeur de méthode d’entrée (IME). Les IME permettent d’entrer des caractères, tels que les idéogrammes chinois, que le clavier AZERTY standard ne permet pas de produire. Cet événement se produit après un événement keyDown et présente les caractéristiques suivantes : keyDown Distribué lorsque l’utilisateur appuie sur une touche.flash.events.KeyboardEvent.KEY_DOWNflash.events.KeyboardEvent Distribué lorsque l’utilisateur appuie sur une touche. La concordance entre les touches et des caractères spécifiques dépend du périphérique et du système d’exploitation. Ce type d’événement est généré lors du mappage, mais avant le traitement d’un éditeur de méthode d’entrée (IME). Les IME permettent d’entrer des caractères, tels que les idéogrammes chinois, que le clavier AZERTY standard ne permet pas de produire. Cet événement se produit avant l’événement keyUp.

Dans AIR, l’annulation de cet événement empêche le caractère d’être inséré dans un champ de texte.

rightMouseUp Distribué lorsqu’un utilisateur relâche le bouton du périphérique de pointage sur une occurrence InteractiveObject.flash.events.MouseEvent.RIGHT_MOUSE_UPflash.events.MouseEvent Distribué lorsqu’un utilisateur relâche le bouton du périphérique de pointage sur une occurrence InteractiveObject. rightMouseDown Distribué lorsqu’un utilisateur appuie sur le bouton du périphérique de pointage sur une occurrence InteractiveObject.flash.events.MouseEvent.RIGHT_MOUSE_DOWNflash.events.MouseEvent Distribué lorsqu’un utilisateur appuie sur le bouton du périphérique de pointage sur une occurrence InteractiveObject. rightClick Distribué lorsque l’utilisateur appuie sur le bouton droit de son périphérique de pointage et le relâche sur la même occurrence de InteractiveObject.flash.events.MouseEvent.RIGHT_CLICKflash.events.MouseEvent Distribué lorsque l’utilisateur appuie sur le bouton droit de son périphérique de pointage et le relâche sur la même occurrence de InteractiveObject. Pour qu’un événement rightClick se produise, il doit toujours suivre cette série d’événements dans l’ordre suivant : événement rightMouseDown, puis rightMouseUp. L’objet cible doit être identique pour ces deux événements, sans quoi l’événement rightClick ne se produit pas. Quel que soit le nombre d’autres événements de souris effectués entre les événements rightmouseDown et rightmouseUp, l’événement rightclick se produit. middleMouseUp Distribué lorsqu’un utilisateur relâche le bouton du périphérique de pointage sur une occurrence InteractiveObject.flash.events.MouseEvent.MIDDLE_MOUSE_UPflash.events.MouseEvent Distribué lorsqu’un utilisateur relâche le bouton du périphérique de pointage sur une occurrence InteractiveObject. middleMouseDown Distribué lorsqu’un utilisateur appuie sur le bouton du périphérique de pointage central sur une occurrence InteractiveObject.flash.events.MouseEvent.MIDDLE_MOUSE_DOWNflash.events.MouseEvent Distribué lorsqu’un utilisateur appuie sur le bouton du périphérique de pointage central sur une occurrence InteractiveObject. middleClick Distribué lorsque l’utilisateur appuie sur le bouton central de son périphérique de pointage et le relâche sur la même occurrence de InteractiveObject.flash.events.MouseEvent.MIDDLE_CLICKflash.events.MouseEvent Distribué lorsque l’utilisateur appuie sur le bouton central de son périphérique de pointage et le relâche sur la même occurrence de InteractiveObject. Pour qu’un événement middleClick se produise, il doit toujours suivre cette série d’événements dans l’ordre suivant : événement middleMouseDown, puis middleMouseUp. L’objet cible doit être identique pour ces deux événements, sans quoi l’événement middleClick ne se produit pas. Quel que soit le nombre d’autres événements de souris effectués entre les événements middleMouseDown et middleMouseUp, l’événement middleClick se produit. gestureSwipe Distribué lorsque l’utilisateur effectue un mouvement de glissement sur un point de contact à l’aide d’une occurrence d’InteractiveObject (par exemple, lorsqu’il pose trois doigts puis les déplace parallèlement sur l’objet d’affichage d’un téléphone portable ou d’une tablette munis d’un écran tactile).flash.events.TransformGestureEvent.GESTURE_SWIPEflash.events.TransformGestureEvent Distribué lorsque l’utilisateur effectue un mouvement de glissement sur un point de contact à l’aide d’une occurrence d’InteractiveObject (par exemple, lorsqu’il pose trois doigts puis les déplace parallèlement sur l’objet d’affichage d’un téléphone portable ou d’une tablette munis d’un écran tactile). Bien que le déplacement parallèle de plusieurs doigts soit un mouvement de glissement commun, chaque périphérique ou système d’exploitation peut avoir sa propre méthode de glissement. Certains périphériques peuvent également interpréter ce contact comme une combinaison de plusieurs événements de souris.

De façon plus spécifique, si un utilisateur pose ses doigts sur un objet InteractiveObject, puis les déplace simultanément, l’occurrence d’InteractiveObject peut distribuer un événement rollOver et un événement rollOut (entre autres) en plus de l’événement gestureSwipe, ou tous ces événements si l’environnement actuel le permet. Choisissez la manière dont vous souhaitez gérer l’interaction de l’utilisateur. Si vous choisissez de gérer l’événement rollOver, le gestionnaire d’événement sera exécuté sur un périphérique tactile et sur un périphérique de type souris. Toutefois, si vous choisissez de gérer l’événement gestureSwipe, vous pouvez concevoir votre gestionnaire d’événement de façon à répondre aux besoins spécifiques d’un environnement tactile et à fournir aux utilisateurs des fonctionnalités tactiles avancées. Vous pouvez également gérer ces deux événements de façon indépendante pour fournir une réponse différente selon qu’il s’agit d’un événement tactile ou d’un événement de souris.

Lors de la gestion des propriétés de l’objet d’événement, notez que les propriétés localX et localY sont définies sur le point de contact principal. Les propriétés offsetX et offsetY représentent la distance jusqu’au point de contact où se termine le mouvement de glissement.

Remarque : bien que certains périphériques qui utilisent le système d’exploitation Mac OS soient capables d’interpréter un glissement à quatre doigts, cette API prend en charge un glissement à trois doigts uniquement.

L’exemple suivant illustre la gestion d’événements pour les événements GESTURE_SWIPE. Lorsque l’utilisateur effectue un mouvement de glissement sur le périphérique tactile, myTextField se remplit avec la phase all (unique phase pour les événements de glissement). Multitouch.inputMode = MultitouchInputMode.GESTURE; var mySprite = new Sprite(); mySprite.addEventListener(TransformGestureEvent.GESTURE_SWIPE , onSwipe); mySprite.graphics.beginFill(0x336699); mySprite.graphics.drawRect(0, 0, 100, 80); var myTextField = new TextField(); myTextField.y = 200; addChild(mySprite); addChild(myTextField); function onSwipe(evt:TransformGestureEvent):void { if (evt.offsetX == 1 ) { myTextField.text = "right"; } if (evt.offsetY == -1) { myTextField.text = "up"; } myTextField.text = evt.phase; }
Evénement rollOverEvénement touchOverflash.ui.Multitouch
gestureZoom Distribué lorsque l’utilisateur effectue un mouvement de zoom sur un point de contact à l’aide d’une occurrence d’InteractiveObject (par exemple, lorsqu’il pose deux doigts, puis les écarte rapidement sur l’objet d’affichage d’un téléphone portable ou d’une tablette munis d’un écran tactile).flash.events.TransformGestureEvent.GESTURE_ZOOMflash.events.TransformGestureEvent Distribué lorsque l’utilisateur effectue un mouvement de zoom sur un point de contact à l’aide d’une occurrence d’InteractiveObject (par exemple, lorsqu’il pose deux doigts, puis les écarte rapidement sur l’objet d’affichage d’un téléphone portable ou d’une tablette munis d’un écran tactile). Bien que cette manière d’effectuer un zoom soit commune, chaque périphérique et système d’exploitation peut avoir sa propre méthode de zoom. Certains périphériques peuvent également interpréter ce contact comme une combinaison de plusieurs événements de souris.

De façon plus spécifique, si un utilisateur pose ses doigts sur un objet InteractiveObject, puis les écarte, l’occurrence d’InteractiveObject peut distribuer un événement mouseOver et un événement click (entre autres) en plus de l’événement gestureZoom, ou tous ces événements si l’environnement actuel le permet. Choisissez la manière dont vous souhaitez gérer l’interaction de l’utilisateur. Utilisez la classe flash.ui.Multitouch pour gérer les événements tactiles (activez la gestion des événements de mouvements tactiles ou la gestion des événements de points tactiles simples, ou désactivez les événements tactiles afin de ne distribuer que les événements de souris). Si vous choisissez de gérer l’événement mouseOver, le gestionnaire d’événement sera exécuté sur un périphérique tactile et sur un périphérique de type souris. Toutefois, si vous choisissez de gérer l’événement gestureZoom, vous pouvez concevoir votre gestionnaire d’événement de façon à répondre aux besoins spécifiques d’un environnement tactile et à fournir aux utilisateurs des fonctionnalités tactiles avancées. Vous pouvez également gérer ces deux événements de façon indépendante pour fournir une réponse différente selon qu’il s’agit d’un événement tactile ou d’un événement de souris.

Lors de la gestion des propriétés de l’objet d’événement, notez que les propriétés localX et localY sont définies sur le point de contact principal. Les propriétés offsetX et offsetY représentent la distance jusqu’au point de contact où le mouvement de zoom se termine.

Remarque : voir la classe Multitouch pour plus d’informations sur la compatibilité de l’environnement.

L’exemple suivant illustre la gestion d’événements pour les événements GESTURE_ZOOM. Lorsque l’utilisateur effectue un mouvement de zoom sur le périphérique tactile, myTextField se remplit avec la phase actuelle. Multitouch.inputMode = MultitouchInputMode.GESTURE; var mySprite = new Sprite(); mySprite.addEventListener(TransformGestureEvent.GESTURE_ZOOM , onZoom); mySprite.graphics.beginFill(0x336699); mySprite.graphics.drawRect(0, 0, 100, 80); var myTextField = new TextField(); myTextField.y = 200; addChild(mySprite); addChild(myTextField); function onZoom(evt:TransformGestureEvent):void { evt.target.scaleX++; if (evt.phase==GesturePhase.BEGIN) { myTextField.text = "Begin"; } if (evt.phase==GesturePhase.UPDATE) { myTextField.text = "Update"; } if (evt.phase==GesturePhase.END) { myTextField.text = "End"; } }
Evénement mouseOverEvénement touchOverflash.ui.Multitouch
gestureRotate Distribué lorsque l’utilisateur effectue un mouvement de rotation sur un point de contact à l’aide d’une occurrence d’InteractiveObject (par exemple, lorsqu’il pose deux doigts sur l’objet d’affichage d’un téléphone portable ou d’une tablette munis d’un écran tactile, puis les fait pivoter).flash.events.TransformGestureEvent.GESTURE_ROTATEflash.events.TransformGestureEvent Distribué lorsque l’utilisateur effectue un mouvement de rotation sur un point de contact à l’aide d’une occurrence d’InteractiveObject (par exemple, lorsqu’il pose deux doigts sur l’objet d’affichage d’un téléphone portable ou d’une tablette munis d’un écran tactile, puis les fait pivoter). Bien que cette manière d’effectuer une rotation soit commune, chaque périphérique et système d’exploitation peut avoir sa propre méthode de rotation. Certains périphériques peuvent également interpréter ce contact comme une combinaison de plusieurs événements de souris.

De façon plus spécifique, si un utilisateur déplace ses doigts sur un objet InteractiveObject, l’occurrence d’InteractiveObject peut distribuer un événement mouseOver et un événement click (entre autres) en plus de l’événement gestureRotate, ou tous ces événements si l’environnement actuel le permet. Choisissez la manière dont vous souhaitez gérer l’interaction de l’utilisateur. Utilisez la classe flash.ui.Multitouch pour gérer les événements tactiles (activez la gestion des événements de mouvements tactiles ou la gestion des événements de points tactiles simples, ou désactivez les événements tactiles afin de ne distribuer que les événements de souris). Si vous choisissez de gérer l’événement mouseOver, le gestionnaire d’événement sera exécuté sur un périphérique tactile et sur un périphérique de type souris. Toutefois, si vous choisissez de gérer l’événement gestureRotate, vous pouvez concevoir votre gestionnaire d’événement de façon à répondre aux besoins spécifiques d’un environnement tactile et à fournir aux utilisateurs des fonctionnalités tactiles avancées. Vous pouvez également gérer ces deux événements de façon indépendante pour fournir une réponse différente selon qu’il s’agit d’un événement tactile ou d’un événement de souris.

Lors de la gestion des propriétés de l’objet d’événement, notez que les propriétés localX et localY sont définies sur le point de contact principal. Les propriétés offsetX et offsetY représentent la distance jusqu’au point de contact où le mouvement de rotation se termine.

Remarque : voir la classe Multitouch pour plus d’informations sur la compatibilité de l’environnement.

L’exemple suivant illustre la gestion d’événements pour les événements GESTURE_ROTATE. Lorsque l’utilisateur effectue un mouvement de rotation sur le périphérique tactile, mySprite pivote et myTextField se remplit avec la phase actuelle. Multitouch.inputMode = MultitouchInputMode.GESTURE; var mySprite = new Sprite(); mySprite.addEventListener(TransformGestureEvent.GESTURE_ROTATE , onRotate ); mySprite.graphics.beginFill(0x336699); mySprite.graphics.drawRect(0, 0, 100, 80); var myTextField = new TextField(); myTextField.y = 200; addChild(mySprite); addChild(myTextField); function onRotate(evt:TransformGestureEvent):void { evt.target.rotation -= 45; if (evt.phase==GesturePhase.BEGIN) { myTextField.text = "Begin"; } if (evt.phase==GesturePhase.UPDATE) { myTextField.text = "Update"; } if (evt.phase==GesturePhase.END) { myTextField.text = "End"; } }
Evénement mouseOverEvénement touchOverflash.ui.Multitouch
gesturePressAndTap Distribué lorsque l’utilisateur crée un point de contact à l’aide d’une occurrence d’InteractiveObject, puis appuie brièvement sur un périphérique tactile (notamment lorsqu’il place plusieurs doigts sur l’objet d’affichage d’un téléphone portable ou d’une tablette munis d’un écran tactile pour ouvrir un menu, puis appuie brièvement avec un doigt pour sélectionner une option de menu).flash.events.PressAndTapGestureEvent.GESTURE_PRESS_AND_TAPflash.events.PressAndTapGestureEvent Distribué lorsque l’utilisateur crée un point de contact à l’aide d’une occurrence d’InteractiveObject, puis appuie brièvement sur un périphérique tactile (notamment lorsqu’il place plusieurs doigts sur l’objet d’affichage d’un téléphone portable ou d’une tablette munis d’un écran tactile pour ouvrir un menu, puis appuie brièvement avec un doigt pour sélectionner une option de menu). Certains périphériques peuvent également interpréter ce contact comme une combinaison de plusieurs événements de souris.

De façon plus spécifique, si un utilisateur déplace ses doigts sur un objet InteractiveObject, puis appuie brièvement dessus avec un doigt, l’occurrence d’InteractiveObject peut distribuer un événement mouseOver et un événement click (entre autres) en plus de l’événement gesturePressAndTap, ou tous ces événements si l’environnement actuel le permet. Choisissez la manière dont vous souhaitez gérer l’interaction de l’utilisateur. Utilisez la classe flash.ui.Multitouch pour gérer les événements tactiles (activez la gestion des événements de mouvements tactiles ou la gestion des événements de points tactiles simples, ou désactivez les événements tactiles afin de ne distribuer que les événements de souris). Si vous choisissez de gérer l’événement mouseOver, le gestionnaire d’événement sera exécuté sur un périphérique tactile et sur un périphérique de type souris. Toutefois, si vous choisissez de gérer l’événement gesturePressAndTap, vous pouvez concevoir votre gestionnaire d’événement de façon à répondre aux besoins spécifiques d’un environnement tactile et à fournir aux utilisateurs des fonctionnalités tactiles avancées. Vous pouvez également gérer ces deux événements de façon indépendante pour fournir une réponse différente selon qu’il s’agit d’un événement tactile ou d’un événement de souris.

Lors de la gestion des propriétés de l’objet d’événement, notez que les propriétés localX et localY sont définies sur le point de contact principal (l’« appui »). Les propriétés offsetX et offsetY représentent la distance au point de contact secondaire (l’« appui bref »).

Evénement mouseOverEvénement touchOverflash.ui.Multitouch
gesturePan Distribué lorsque l’utilisateur déplace un point de contact sur l’occurrence d’InteractiveObject d’un périphérique tactile (notamment lorsqu’il déplace un doigt de gauche à droite sur l’objet d’affichage d’un téléphone portable ou d’une tablette munis d’un écran tactile).flash.events.TransformGestureEvent.GESTURE_PANflash.events.TransformGestureEvent Distribué lorsque l’utilisateur déplace un point de contact sur l’occurrence d’InteractiveObject d’un périphérique tactile (notamment lorsqu’il déplace un doigt de gauche à droite sur l’objet d’affichage d’un téléphone portable ou d’une tablette munis d’un écran tactile). Certains périphériques peuvent également interpréter ce contact comme un événement mouseOver et comme un événement touchOver.

De façon plus spécifique, si un utilisateur déplace ses doigts sur un objet InteractiveObject, l’occurrence d’InteractiveObject peut distribuer un événement mouseOver, un événement touchOver ou un événement gesturePan, ou tous ces événements si l’environnement actuel le permet. Choisissez la manière dont vous souhaitez gérer l’interaction de l’utilisateur. Utilisez la classe flash.ui.Multitouch pour gérer les événements tactiles (activez la gestion des événements de mouvements tactiles ou la gestion des événements de points tactiles simples, ou désactivez les événements tactiles afin de ne distribuer que les événements de souris). Si vous choisissez de gérer l’événement mouseOver, le gestionnaire d’événement sera exécuté sur un périphérique tactile et sur un périphérique de type souris. Toutefois, si vous choisissez de gérer l’événement gesturePan, vous pouvez concevoir votre gestionnaire d’événement de façon à répondre aux besoins spécifiques d’un environnement tactile et à fournir aux utilisateurs des fonctionnalités tactiles avancées. Vous pouvez également gérer ces deux événements de façon indépendante pour fournir une réponse différente selon qu’il s’agit d’un événement tactile ou d’un événement de souris.

Remarque : voir la classe Multitouch pour plus d’informations sur la compatibilité de l’environnement.

L’exemple suivant illustre la gestion d’événements pour les événements GESTURE_PAN. Lorsque l’utilisateur effectue un mouvement de panoramique sur le périphérique tactile, myTextField se remplit avec la phase actuelle. Multitouch.inputMode = MultitouchInputMode.GESTURE; var mySprite = new Sprite(); mySprite.addEventListener(TransformGestureEvent.GESTURE_PAN , onPan); mySprite.graphics.beginFill(0x336699); mySprite.graphics.drawRect(0, 0, 100, 80); var myTextField = new TextField(); myTextField.y = 200; addChild(mySprite); addChild(myTextField); function onPan(evt:TransformGestureEvent):void { evt.target.localX++; if (evt.phase==GesturePhase.BEGIN) { myTextField.text = "Begin"; } if (evt.phase==GesturePhase.UPDATE) { myTextField.text = "Update"; } if (evt.phase==GesturePhase.END) { myTextField.text = "End"; } }
Evénement mouseOverEvénement touchOverflash.ui.Multitouch
gestureTwoFingerTap Distribué lorsque l’utilisateur appuie sur deux points de contact sur la même occurrence d’InteractiveObject sur un périphérique tactile (notamment lorsque l’utilisateur appuie avec deux doigts sur l’objet d’affichage d’un téléphone portable ou d’une tablette munis d’un écran tactile, puis les retire).flash.events.GestureEvent.GESTURE_TWO_FINGER_TAPflash.events.GestureEvent Distribué lorsque l’utilisateur appuie sur deux points de contact sur la même occurrence d’InteractiveObject sur un périphérique tactile (notamment lorsque l’utilisateur appuie avec deux doigts sur l’objet d’affichage d’un téléphone portable ou d’une tablette munis d’un écran tactile, puis les retire). Certains périphériques peuvent également interpréter ce contact comme un événement doubleClick.

De façon plus spécifique, si un utilisateur appuie brièvement avec deux doigts sur un objet InteractiveObject, l’occurrence d’InteractiveObject peut distribuer un événement doubleClick ou un événement gestureTwoFingerTap, ou les deux si l’environnement actuel le permet. Choisissez la manière dont vous souhaitez gérer l’interaction de l’utilisateur. Utilisez la classe flash.ui.Multitouch pour gérer les événements tactiles (activez la gestion des événements de mouvements tactiles ou la gestion des événements de points tactiles simples, ou désactivez les événements tactiles afin de ne distribuer que les événements de souris). Si vous choisissez de gérer l’événement doubleClick, le gestionnaire d’événement sera exécuté sur un périphérique tactile et sur un périphérique de type souris. Toutefois, si vous choisissez de gérer l’événement gestureTwoFingerTap, vous pouvez concevoir votre gestionnaire d’événement de façon à répondre aux besoins spécifiques d’un environnement tactile et à fournir aux utilisateurs des fonctionnalités tactiles avancées. Vous pouvez également gérer ces deux événements de façon indépendante pour fournir une réponse différente selon qu’il s’agit d’un événement tactile ou d’un événement de souris.

Remarque : voir la classe Multitouch pour plus d’informations sur la compatibilité de l’environnement.

Evénement doubleClickflash.ui.Multitouch
touchTap Distribué lorsque l’utilisateur lève le point de contact sur la même occurrence d’InteractiveObject sur laquelle le contact a été lancé sur un périphérique tactile (notamment lorsqu’il appuie avec un doigt à partir d’un point de contact unique sur l’objet d’affichage d’un téléphone portable ou d’une tablette munis d’un écran tactile, puis le retire).flash.events.TouchEvent.TOUCH_TAPflash.events.TouchEvent Distribué lorsque l’utilisateur lève le point de contact sur la même occurrence d’InteractiveObject sur laquelle le contact a été lancé sur un périphérique tactile (notamment lorsqu’il appuie avec un doigt à partir d’un point de contact unique sur l’objet d’affichage d’un téléphone portable ou d’une tablette munis d’un écran tactile, puis le retire). Certains périphériques peuvent également interpréter ce contact comme un événement click.

De façon plus spécifique, si un utilisateur appuie brièvement avec deux doigts sur un objet InteractiveObject, l’occurrence d’InteractiveObject peut distribuer un événement click ou un événement touchTap, ou les deux si l’environnement actuel le permet. Choisissez la manière dont vous souhaitez gérer l’interaction de l’utilisateur. Utilisez la classe flash.ui.Multitouch pour gérer les événements tactiles (activez la gestion des événements de mouvements tactiles ou la gestion des événements de points tactiles simples, ou désactivez les événements tactiles afin de ne distribuer que les événements de souris). Si vous choisissez de gérer l’événement click, le gestionnaire d’événement sera exécuté sur un périphérique tactile et sur un périphérique de type souris. Toutefois, si vous choisissez de gérer l’événement touchTap, vous pouvez concevoir votre gestionnaire d’événement de façon à répondre aux besoins spécifiques d’un environnement tactile et à fournir aux utilisateurs des fonctionnalités tactiles avancées. Vous pouvez également gérer ces deux événements de façon indépendante pour fournir une réponse différente selon qu’il s’agit d’un événement tactile ou d’un événement de souris.

Remarque : voir la classe Multitouch pour plus d’informations sur la compatibilité de l’environnement.

L’exemple suivant affiche un message lorsque l’utilisateur appuie sur le carré dessiné sur mySprite sur un écran tactile : Multitouch.inputMode=MultitouchInputMode.TOUCH_POINT; var mySprite:Sprite = new Sprite(); var myTextField:TextField = new TextField(); mySprite.graphics.beginFill(0x336699); mySprite.graphics.drawRect(0,0,40,40); addChild(mySprite); mySprite.addEventListener(TouchEvent.TOUCH_TAP, taphandler); function taphandler(e:TouchEvent): void { myTextField.text = "I've been tapped"; myTextField.y = 50; addChild(myTextField); }
Evénement clickflash.ui.Multitouch
touchRollOver Distribué lorsque l’utilisateur déplace le point de contact sur une occurrence d’InteractiveObject sur un périphérique tactile (notamment lorsqu’il fait glisser un doigt d’un point se trouvant en dehors d’un objet d’affichage vers un point sur l’objet d’affichage d’un téléphone portable ou d’une tablette munis d’un écran tactile).flash.events.TouchEvent.TOUCH_ROLL_OVERflash.events.TouchEvent Distribué lorsque l’utilisateur déplace le point de contact sur une occurrence d’InteractiveObject sur un périphérique tactile (notamment lorsqu’il fait glisser un doigt d’un point se trouvant en dehors d’un objet d’affichage vers un point sur l’objet d’affichage d’un téléphone portable ou d’une tablette munis d’un écran tactile). Certains périphériques peuvent également interpréter ce contact comme un événement rollOver.

De façon plus spécifique, si un utilisateur déplace un doigt sur un objet InteractiveObject, l’occurrence d’InteractiveObject peut distribuer un événement rollOver ou un événement touchRollOver, ou les deux si l’environnement actuel le permet. Choisissez la manière dont vous souhaitez gérer l’interaction de l’utilisateur. Utilisez la classe flash.ui.Multitouch pour gérer les événements tactiles (activez la gestion des événements de mouvements tactiles ou la gestion des événements de points tactiles simples, ou désactivez les événements tactiles afin de ne distribuer que les événements de souris). Si vous choisissez de gérer l’événement rollOver, le gestionnaire d’événement sera exécuté sur un périphérique tactile et sur un périphérique de type souris. Toutefois, si vous choisissez de gérer l’événement touchRollOver, vous pouvez concevoir votre gestionnaire d’événement de façon à répondre aux besoins spécifiques d’un environnement tactile et à fournir aux utilisateurs des fonctionnalités tactiles avancées. Vous pouvez également gérer ces deux événements de façon indépendante pour fournir une réponse différente selon qu’il s’agit d’un événement tactile ou d’un événement de souris.

Remarque : voir la classe Multitouch pour plus d’informations sur la compatibilité de l’environnement.

Evénement rollOverflash.ui.Multitouch
touchRollOut Distribué lorsque l’utilisateur retire le point de contact d’une occurrence d’InteractiveObject sur un périphérique tactile (notamment lorsqu’il fait glisser un doigt d’un se trouvant sur l’objet d’affichage d’un téléphone portable ou une tablette munis d’un écran tactile vers un point se trouvant en dehors de cet objet).flash.events.TouchEvent.TOUCH_ROLL_OUTflash.events.TouchEvent Distribué lorsque l’utilisateur retire le point de contact d’une occurrence d’InteractiveObject sur un périphérique tactile (notamment lorsqu’il fait glisser un doigt d’un se trouvant sur l’objet d’affichage d’un téléphone portable ou une tablette munis d’un écran tactile vers un point se trouvant en dehors de cet objet). Certains périphériques peuvent également interpréter ce contact comme un événement rollOut.

De façon plus spécifique, si un utilisateur déplace un doigt sur un objet InteractiveObject, l’occurrence d’InteractiveObject peut distribuer un événement rollOut ou un événement touchRollOut, ou les deux si l’environnement actuel le permet. Choisissez la manière dont vous souhaitez gérer l’interaction de l’utilisateur. Utilisez la classe flash.ui.Multitouch pour gérer les événements tactiles (activez la gestion des événements de mouvements tactiles ou la gestion des événements de points tactiles simples, ou désactivez les événements tactiles afin de ne distribuer que les événements de souris). Si vous choisissez de gérer l’événement rollOut, le gestionnaire d’événement sera exécuté sur un périphérique tactile et sur un périphérique de type souris. Toutefois, si vous choisissez de gérer l’événement touchRollOut, vous pouvez concevoir votre gestionnaire d’événement de façon à répondre aux besoins spécifiques d’un environnement tactile et à fournir aux utilisateurs des fonctionnalités tactiles avancées. Vous pouvez également gérer ces deux événements de façon indépendante pour fournir une réponse différente selon qu’il s’agit d’un événement tactile ou d’un événement de souris.

Remarque : voir la classe Multitouch pour plus d’informations sur la compatibilité de l’environnement.

Evénement rollOutflash.ui.Multitouch
touchOver Distribué lorsque l’utilisateur déplace le point de contact sur une occurrence d’InteractiveObject sur un périphérique tactile (notamment lorsqu’il fait glisser un doigt d’un point se trouvant en dehors d’un objet d’affichage vers un point sur l’objet d’affichage d’un téléphone portable ou d’une tablette munis d’un écran tactile).flash.events.TouchEvent.TOUCH_OVERflash.events.TouchEvent Distribué lorsque l’utilisateur déplace le point de contact sur une occurrence d’InteractiveObject sur un périphérique tactile (notamment lorsqu’il fait glisser un doigt d’un point se trouvant en dehors d’un objet d’affichage vers un point sur l’objet d’affichage d’un téléphone portable ou d’une tablette munis d’un écran tactile). Certains périphériques peuvent également interpréter ce contact comme un événement mouseOver.

De façon plus spécifique, si un utilisateur déplace un doigt sur un objet InteractiveObject, l’occurrence d’InteractiveObject peut distribuer un événement mouseOver ou un événement touchOver, ou les deux si l’environnement actuel le permet. Choisissez la manière dont vous souhaitez gérer l’interaction de l’utilisateur. Utilisez la classe flash.ui.Multitouch pour gérer les événements tactiles (activez la gestion des événements de mouvements tactiles ou la gestion des événements de points tactiles simples, ou désactivez les événements tactiles afin de ne distribuer que les événements de souris). Si vous choisissez de gérer l’événement mouseOver, le gestionnaire d’événement sera exécuté sur un périphérique tactile et sur un périphérique de type souris. Toutefois, si vous choisissez de gérer l’événement touchOver, vous pouvez concevoir votre gestionnaire d’événement de façon à répondre aux besoins spécifiques d’un environnement tactile et à fournir aux utilisateurs des fonctionnalités tactiles avancées. Vous pouvez également gérer ces deux événements de façon indépendante pour fournir une réponse différente selon qu’il s’agit d’un événement tactile ou d’un événement de souris.

Remarque : voir la classe Multitouch pour plus d’informations sur la compatibilité de l’environnement.

Evénement mouseOverflash.ui.Multitouch
touchOut Distribué lorsque l’utilisateur retire le point de contact d’une occurrence d’InteractiveObject sur un périphérique tactile (notamment lorsqu’il fait glisser un doigt d’un objet d’affichage vers un autre sur un téléphone portable ou une tablette munis d’un écran tactile).flash.events.TouchEvent.TOUCH_OUTflash.events.TouchEvent Distribué lorsque l’utilisateur retire le point de contact d’une occurrence d’InteractiveObject sur un périphérique tactile (notamment lorsqu’il fait glisser un doigt d’un objet d’affichage vers un autre sur un téléphone portable ou une tablette munis d’un écran tactile). Certains périphériques peuvent également interpréter ce contact comme un événement mouseOut.

De façon plus spécifique, si un utilisateur déplace un doigt sur un écran tactile, l’occurrence d’InteractiveObject peut distribuer un événement mouseOut ou un événement touchOut, ou les deux si l’environnement actuel le permet. Choisissez la manière dont vous souhaitez gérer l’interaction de l’utilisateur. Utilisez la classe flash.ui.Multitouch pour gérer les événements tactiles (activez la gestion des événements de mouvements tactiles ou la gestion des événements de points tactiles simples, ou désactivez les événements tactiles afin de ne distribuer que les événements de souris). Si vous choisissez de gérer l’événement mouseOut, le gestionnaire d’événement sera exécuté sur un périphérique tactile et sur un périphérique de type souris. Toutefois, si vous choisissez de gérer l’événement touchOut, vous pouvez concevoir votre gestionnaire d’événement de façon à répondre aux besoins spécifiques d’un environnement tactile et à fournir aux utilisateurs des fonctionnalités tactiles avancées. Vous pouvez également gérer ces deux événements de façon indépendante pour fournir une réponse différente selon qu’il s’agit d’un événement tactile ou d’un événement de souris.

Remarque : voir la classe Multitouch pour plus d’informations sur la compatibilité de l’environnement.

Evénement mouseOutflash.ui.Multitouch
touchMove Distribué lorsque l’utilisateur déplace le point de contact avec un périphérique tactile (notamment lorsqu’il fait glisser un doigt sur un téléphone portable ou une tablette munis d’un écran tactile).flash.events.TouchEvent.TOUCH_MOVEflash.events.TouchEvent Distribué lorsque l’utilisateur déplace le point de contact avec un périphérique tactile (notamment lorsqu’il fait glisser un doigt sur un téléphone portable ou une tablette munis d’un écran tactile). Certains périphériques peuvent également interpréter ce contact comme un événement mouseMove.

De façon plus spécifique, si un utilisateur déplace un doigt sur un écran tactile, l’occurrence d’InteractiveObject peut distribuer un événement mouseMove ou un événement touchMove, ou les deux si l’environnement actuel le permet. Choisissez la manière dont vous souhaitez gérer l’interaction de l’utilisateur. Utilisez la classe flash.ui.Multitouch pour gérer les événements tactiles (activez la gestion des événements de mouvements tactiles ou la gestion des événements de points tactiles simples, ou désactivez les événements tactiles afin de ne distribuer que les événements de souris). Si vous choisissez de gérer l’événement mouseMove, le gestionnaire d’événement sera exécuté sur un périphérique tactile et sur un périphérique de type souris. Toutefois, si vous choisissez de gérer l’événement touchMove, vous pouvez concevoir votre gestionnaire d’événement de façon à répondre aux besoins spécifiques d’un environnement tactile et à fournir aux utilisateurs des fonctionnalités tactiles avancées. Vous pouvez également gérer ces deux événements de façon indépendante pour fournir une réponse différente selon qu’il s’agit d’un événement tactile ou d’un événement de souris.

Remarque : voir la classe Multitouch pour plus d’informations sur la compatibilité de l’environnement.

L’exemple suivant illustre la gestion d’événements pour les événements TOUCH_BEGIN, TOUCH_MOVE et TOUCH_END. Lorsque le point de contact se déplace sur l’écran (onTouchMove), la coordonnée x par rapport à la scène est tracée à la sortie. Pour les paramètres sprite.startTouchDrag de la fonction onTouchBegin, la valeur de touchPointID correspond à la valeur affectée à l’objet d’événement. Le paramètre bounds correspond au rectangle qui définit les limites de l’objet d’affichage parent (bg est un objet d’affichage contenant MySprite). Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT; MySprite.addEventListener(TouchEvent.TOUCH_BEGIN, onTouchBegin); MySprite.addEventListener(TouchEvent.TOUCH_MOVE, onTouchMove); MySprite.addEventListener(TouchEvent.TOUCH_END, onTouchEnd); function onTouchBegin(eBegin:TouchEvent) { eBegin.target.startTouchDrag(eBegin.touchPointID, false, bg.getRect(this)); trace("touch begin"); } function onTouchMove(eMove:TouchEvent) { trace(eMove.stageX); } function onTouchEnd(eEnd:TouchEvent) { eEnd.target.stopTouchDrag(eEnd.touchPointID); trace("touch end"); }
mouseMove, événementflash.ui.Multitouch
touchEnd Distribué lorsque l’utilisateur cesse le contact avec un périphérique tactile (notamment lorsqu’il retire le doigt d’un téléphone portable ou d’une tablette munis d’un écran tactile).flash.events.TouchEvent.TOUCH_ENDflash.events.TouchEvent Distribué lorsque l’utilisateur cesse le contact avec un périphérique tactile (notamment lorsqu’il retire le doigt d’un téléphone portable ou d’une tablette munis d’un écran tactile). Certains périphériques peuvent également interpréter ce contact comme un événement mouseUp.

De façon plus spécifique, si un utilisateur retire le doigt d’un écran tactile, l’occurrence d’InteractiveObject peut distribuer un événement mouseEnd ou un événement touchEnd, ou les deux si l’environnement actuel le permet. Choisissez la manière dont vous souhaitez gérer l’interaction de l’utilisateur. Utilisez la classe flash.ui.Multitouch pour gérer les événements tactiles (activez la gestion des événements de mouvements tactiles ou la gestion des événements de points tactiles simples, ou désactivez les événements tactiles afin de ne distribuer que les événements de souris). Si vous choisissez de gérer l’événement mouseUp, le gestionnaire d’événement sera exécuté sur un périphérique tactile et sur un périphérique de type souris. Toutefois, si vous choisissez de gérer l’événement touchEnd, vous pouvez concevoir votre gestionnaire d’événement de façon à répondre aux besoins spécifiques d’un environnement tactile et à fournir aux utilisateurs des fonctionnalités tactiles avancées. Vous pouvez également gérer ces deux événements de façon indépendante pour fournir une réponse différente selon qu’il s’agit d’un événement tactile ou d’un événement de souris.

Remarque : voir la classe Multitouch pour plus d’informations sur la compatibilité de l’environnement.

L’exemple suivant illustre la gestion d’événements pour les événements TOUCH_BEGIN, TOUCH_MOVE et TOUCH_END. Lorsque le point de contact se déplace sur l’écran (onTouchMove), la coordonnée x par rapport à la scène est tracée à la sortie. Pour les paramètres sprite.startTouchDrag de la fonction onTouchBegin, la valeur de touchPointID correspond à la valeur affectée à l’objet d’événement. Le paramètre bounds correspond au rectangle qui définit les limites de l’objet d’affichage parent (bg est un objet d’affichage contenant MySprite). Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT; MySprite.addEventListener(TouchEvent.TOUCH_BEGIN, onTouchBegin); MySprite.addEventListener(TouchEvent.TOUCH_MOVE, onTouchMove); MySprite.addEventListener(TouchEvent.TOUCH_END, onTouchEnd); function onTouchBegin(eBegin:TouchEvent) { eBegin.target.startTouchDrag(eBegin.touchPointID, false, bg.getRect(this)); trace("touch begin"); } function onTouchMove(eMove:TouchEvent) { trace(eMove.stageX); } function onTouchEnd(eEnd:TouchEvent) { eEnd.target.stopTouchDrag(eEnd.touchPointID); trace("touch end"); }
Evénement mouseUpflash.ui.Multitouch
touchBegin Distribué lorsque l’utilisateur touche pour la première fois un périphérique tactile (notamment lorsqu’il pose un doigt sur un téléphone portable ou une tablette munis d’un écran tactile).flash.events.TouchEvent.TOUCH_BEGINflash.events.TouchEvent Distribué lorsque l’utilisateur touche pour la première fois un périphérique tactile (notamment lorsqu’il pose un doigt sur un téléphone portable ou une tablette munis d’un écran tactile). Certains périphériques peuvent également interpréter ce contact comme un événement mouseDown.

De façon plus spécifique, si un utilisateur pose le doigt sur écran tactile, l’occurrence d’InteractiveObject peut distribuer un événement mouseDown ou un événement touchBegin, ou les deux si l’environnement actuel le permet. Choisissez la manière dont vous souhaitez gérer l’interaction de l’utilisateur. Utilisez la classe flash.ui.Multitouch pour gérer les événements tactiles (activez la gestion des événements de mouvements tactiles ou la gestion des événements de points tactiles simples, ou désactivez les événements tactiles afin de ne distribuer que les événements de souris). Si vous choisissez de gérer l’événement mouseDown, le gestionnaire d’événement sera exécuté sur un périphérique tactile et sur un périphérique de type souris. Toutefois, si vous choisissez de gérer l’événement touchBegin, vous pouvez concevoir votre gestionnaire d’événement de façon à répondre aux besoins spécifiques d’un environnement tactile et à fournir aux utilisateurs des fonctionnalités tactiles avancées. Vous pouvez également gérer ces deux événements de façon indépendante pour fournir une réponse différente selon qu’il s’agit d’un événement tactile ou d’un événement de souris.

Remarque : voir la classe Multitouch pour plus d’informations sur la compatibilité de l’environnement.

L’exemple suivant illustre la gestion d’événements pour les événements TOUCH_BEGIN, TOUCH_MOVE et TOUCH_END. Lorsque le point de contact se déplace sur l’écran (onTouchMove), la coordonnée x par rapport à la scène est tracée à la sortie. Pour les paramètres sprite.startTouchDrag de la fonction onTouchBegin, la valeur de touchPointID correspond à la valeur affectée à l’objet d’événement. Le paramètre bounds correspond au rectangle qui définit les limites de l’objet d’affichage parent (bg est un objet d’affichage contenant MySprite). Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT; MySprite.addEventListener(TouchEvent.TOUCH_BEGIN, onTouchBegin); MySprite.addEventListener(TouchEvent.TOUCH_MOVE, onTouchMove); MySprite.addEventListener(TouchEvent.TOUCH_END, onTouchEnd); function onTouchBegin(eBegin:TouchEvent) { eBegin.target.startTouchDrag(eBegin.touchPointID, false, bg.getRect(this)); trace("touch begin"); } function onTouchMove(eMove:TouchEvent) { trace(eMove.stageX); } function onTouchEnd(eEnd:TouchEvent) { eEnd.target.stopTouchDrag(eEnd.touchPointID); trace("touch end"); }
mouseDown, événementflash.ui.Multitouch
rollOver Distribué lorsque l’utilisateur place un périphérique de pointage sur une occurrence de InteractiveObject.flash.events.MouseEvent.ROLL_OVERflash.events.MouseEvent Distribué lorsque l’utilisateur place un périphérique de pointage sur une occurrence d’InteractiveObject. L’événement a pour cible l’objet placé sous le périphérique de pointage ou un parent de cet objet. relatedObject correspond à l’objet précédemment placé sous le périphérique de pointage. Les événements rollOver sont envoyés de façon consécutive vers le bas de la chaîne parent de l’objet, en commençant par le parent de plus haut niveau qui ne constitue ni la racine, ni l’ancêtre de relatedObject et se termine par l’objet.

L’événement rollOver a pour objet de simplifier le codage des comportements de fin de sélection des conteneurs d’objet d’affichage avec enfants. Lorsque la souris pénètre dans la zone d’un objet d’affichage ou de l’un de ses enfants à partir d’un objet qui ne fait pas partie de ses enfants, l’objet d’affichage distribue l’événement rollOver. Ce comportement diffère de celui de l’événement mouseOver, qui est envoyé lorsque la souris entre dans la zone d’un objet enfant du conteneur d’objet d’affichage, même si la souris reste au-dessus d’un autre objet enfant du conteneur d’objet d’affichage.

rollOut Distribué lorsque l’utilisateur éloigne un périphérique de pointage d’une occurrence de InteractiveObject.flash.events.MouseEvent.ROLL_OUTflash.events.MouseEvent Distribué lorsque l’utilisateur éloigne un périphérique de pointage d’une occurrence d’InteractiveObject. L’événement a pour cible l’objet placé précédemment sous le périphérique de pointage ou un parent de cet objet. L’objet relatedObject correspond à l’objet sur lequel s’est placé le périphérique de pointage. Les événements rollOut sont envoyés de façon consécutive vers le haut de la chaîne parent de l’objet, en commençant par l’objet et en se terminant par le parent de plus haut niveau qui n’est ni la racine, ni l’ancêtre de relatedObject.

L’événement rollOut a pour objet de simplifier le codage des comportements de survol des conteneurs d’objet d’affichage avec enfants. Lorsque la souris quitte la zone d’un objet d’affichage ou de l’un de ses enfants pour atteindre un objet qui ne fait pas partie de ses enfants, l’objet d’affichage distribue l’événement rollOut. Ce comportement diffère de celui de l’événement mouseOut, qui est envoyé lorsque la souris quitte la zone d’un objet enfant du conteneur d’objet d’affichage, même si la souris reste au-dessus d’un autre objet enfant du conteneur d’objet d’affichage.

mouseWheel Distribué lorsque la molette d’une souris est actionnée sur une occurrence de InteractiveObject.flash.events.MouseEvent.MOUSE_WHEELflash.events.MouseEvent Distribué lorsque la molette d’une souris est actionnée sur une occurrence de InteractiveObject. Si la cible est un champ de texte, le comportement par défaut consiste à faire défiler le texte. Disponible uniquement sur les systèmes d’exploitation Microsoft Windows. mouseUp Distribué lorsqu’un utilisateur relâche le bouton du périphérique de pointage sur une occurrence InteractiveObject.flash.events.MouseEvent.MOUSE_UPflash.events.MouseEvent Distribué lorsqu’un utilisateur relâche le bouton du périphérique de pointage sur une occurrence InteractiveObject. Si la cible est une occurrence de SimpleButton, l’objet présente l’objet d’affichage upState. Si la cible est un champ de texte sélectionnable, le champ de texte termine la sélection, ce qui est son comportement par défaut. mouseOver Distribué lorsque l’utilisateur place un périphérique de pointage sur une occurrence de InteractiveObject.flash.events.MouseEvent.MOUSE_OVERflash.events.MouseEvent Distribué lorsque l’utilisateur place un périphérique de pointage sur une occurrence d’InteractiveObject. relatedObject correspond à l’objet précédemment placé sous le périphérique de pointage. Si la cible est une occurrence de SimpleButton, l’objet présente l’objet d’affichage overState ou upState, selon que le bouton de la souris est enfoncé ou non, comme comportement par défaut.

L’événement mouseOver est envoyé chaque fois que la souris pénètre dans la zone d’un objet enfant du conteneur d’objet d’affichage, même si la souris survolait déjà un autre objet enfant du conteneur d’objet d’affichage. Ce comportement est différent de celui de l’événement rollOver qui a pour objet de simplifier le codage des comportements de fin de sélection des conteneurs d’objet d’affichage avec enfants. Lorsque la souris pénètre dans la zone d’un objet d’affichage ou de l’un de ses enfants à partir d’un objet qui ne fait pas partie de ses enfants, l’objet d’affichage distribue l’événement rollOver. Les événements rollOver sont envoyés de façon consécutive vers le bas de la chaîne parent de l’objet, en commençant par le parent de plus haut niveau qui ne constitue ni la racine, ni l’ancêtre de relatedObject et se termine par l’objet.

mouseOut Distribué lorsque l’utilisateur éloigne un périphérique de pointage d’une occurrence de InteractiveObject.flash.events.MouseEvent.MOUSE_OUTflash.events.MouseEvent Distribué lorsque l’utilisateur éloigne un périphérique de pointage d’une occurrence d’InteractiveObject. L’événement a pour cible l’objet précédemment placé sous le périphérique de pointage. L’objet relatedObject correspond à l’objet sur lequel s’est placé le périphérique de pointage. Lorsque la cible est une occurrence de SimpleButton, le bouton présente l’objet d’affichage upState comme comportement par défaut.

L’événement mouseOut est envoyé chaque fois que la souris quitte la zone d’un objet enfant du conteneur d’objet d’affichage, même si la souris reste au-dessus d’un autre objet enfant du conteneur d’objet d’affichage. Ce comportement est différent de celui de l’événement rollOut qui a pour objet de simplifier le codage des comportements de survol des conteneurs d’objet d’affichage avec enfants. Lorsque la souris quitte la zone d’un objet d’affichage ou de l’un de ses enfants pour atteindre un objet qui ne fait pas partie de ses enfants, l’objet d’affichage distribue l’événement rollOut. Les événements rollOut sont distribués de façon consécutive vers le haut de la chaîne parent de l’objet, en commençant par l’objet et en se terminant par le parent de plus haut niveau qui n’est ni la racine, ni l’ancêtre de relatedObject.

mouseMove Distribué lorsque l’utilisateur déplace le périphérique de pointage placé sur une occurrence de InteractiveObject.flash.events.MouseEvent.MOUSE_MOVEflash.events.MouseEvent Distribué lorsque l’utilisateur déplace le périphérique de pointage placé sur une occurrence d’InteractiveObject. Si la cible est un champ de texte sélectionné par l’utilisateur, le comportement par défaut consiste à mettre à jour la sélection. mouseDown Distribué lorsqu’un utilisateur appuie sur le bouton du périphérique de pointage sur une occurrence InteractiveObject.flash.events.MouseEvent.MOUSE_DOWNflash.events.MouseEvent Distribué lorsqu’un utilisateur appuie sur le bouton du périphérique de pointage sur une occurrence InteractiveObject. Lorsque la cible est une occurrence de SimpleButton, celle-ci affiche l’objet d’affichage downState en tant que comportement par défaut. Si la cible est un champ de texte sélectionnable, le champ de texte commence la sélection, ce qui est son comportement par défaut. doubleClick Distribué lorsque l’utilisateur appuie sur le bouton principal d’un périphérique de pointage et le relâche deux fois de suite sur la même occurrence d’InteractiveObject si l’indicateur doubleClickEnabled de cet objet est réglé sur true.flash.events.MouseEvent.DOUBLE_CLICKflash.events.MouseEvent Distribué lorsque l’utilisateur appuie sur le bouton principal d’un périphérique de pointage et le relâche deux fois de suite sur la même occurrence d’InteractiveObject si l’indicateur doubleClickEnabled de cet objet est défini sur true. Pour qu’un événement doubleClick se produise, il doit suivre immédiatement la série d’événements ci-après : mouseDown, mouseUp, click, mouseDown, mouseUp. Tous ces événements doivent partager la même cible en tant qu’événement doubleClick. Le second clic, représenté par les seconds événements mouseDown et mouseUp, doit se produire dans un délai spécifique après l’événement click. La longueur autorisée de ce délai varie selon le système d’exploitation et peut souvent être configurée par l’utilisateur. Si la cible est un champ de texte sélectionnable, le comportement par défaut consiste à sélectionner le mot qui se trouve sous le pointeur. Si l’indicateur doubleClickEnabled de l’objet InteractiveObject cible n’est pas réglé sur true, celui-ci reçoit deux événements click.

La propriété doubleClickEnabled prend par défaut la valeur false.

Le comportement de sélection de texte par le biais d’un double clic d’un objet TextField n’est pas lié à l’événement doubleClick. Utilisez TextField.doubleClickEnabled pour contrôler les sélections TextField.

doubleClickEnabled
click Distribué lorsque l’utilisateur appuie sur le bouton principal de son périphérique de pointage et le relâche sur la même occurrence de InteractiveObject.flash.events.MouseEvent.CLICKflash.events.MouseEvent Distribué lorsque l’utilisateur appuie sur le bouton principal de son périphérique de pointage et le relâche sur la même occurrence de InteractiveObject. Pour qu’un événement clic se produise, il doit toujours suivre cette série d’événements dans l’ordre suivant : événement mouseDown, puis mouseUp. L’objet cible doit être identique pour ces deux événements, sans quoi l’événement click ne se produit pas. Quel que soit le nombre d’autres événements de souris effectués entre les événements mouseDown et mouseUp, l’événement click se produit. mouseFocusChange Distribué lorsque l’utilisateur tente de déplacer le focus à l’aide d’un périphérique de pointage.flash.events.FocusEvent.MOUSE_FOCUS_CHANGEflash.events.FocusEvent Distribué lorsque l’utilisateur tente de déplacer le focus à l’aide d’un périphérique de pointage. Le comportement par défaut de cet événement consiste à déplacer le focus et à distribuer les événements focusIn et focusOut correspondants.

Cet événement est distribué à l’objet qui possède actuellement le focus. L’objet apparenté de cet événement correspond à l’occurrence d’InteractiveObject qui reçoit le focus si vous ne bloquez pas le comportement par défaut. Pour éviter le déplacement du focus, appelez preventDefault() dans un écouteur d’événement correctement enregistré auprès de l’objet cible. La propriété shiftKey n’est pas utilisée. Le focus change et les événements focusIn et focusOut sont distribués par défaut.

keyFocusChange Distribué lorsque l’utilisateur tente de déplacer le focus à l’aide du clavier.flash.events.FocusEvent.KEY_FOCUS_CHANGEflash.events.FocusEvent Distribué lorsque l’utilisateur tente de déplacer le focus à l’aide du clavier. Le comportement par défaut de cet événement consiste à déplacer le focus et à distribuer les événements focusIn et focusOut correspondants.

Cet événement est distribué à l’objet qui possède actuellement le focus. L’objet apparenté de cet événement correspond à l’occurrence d’InteractiveObject qui reçoit le focus si vous ne bloquez pas le comportement par défaut. Pour éviter le déplacement du focus, appelez preventDefault() dans un écouteur d’événement correctement enregistré auprès de l’objet cible. Le focus change et les événements focusIn et focusOut sont distribués par défaut.

focusOut Distribué après la perte de focus par un objet d’affichage.flash.events.FocusEvent.FOCUS_OUTflash.events.FocusEvent Distribué après la perte de focus d’un objet d’affichage. Ce cas de figure se produit lorsqu’un utilisateur affiche en surbrillance un autre objet à l’aide d’un périphérique de pointage ou du clavier. L’objet qui perd le focus s’appelle l’objet cible de cet événement, tandis que l’occurrence d’InteractiveObject correspondante qui reçoit le focus porte le nom d’objet apparenté. Une référence à l’objet apparenté est enregistrée dans la propriété relatedObject de l’objet cible. La propriété shiftKey n’est pas utilisée. Cet événement précède la distribution de l’événement focusIn par l’objet apparenté. focusIn Distribué après la prise de focus par un objet d’affichage.flash.events.FocusEvent.FOCUS_INflash.events.FocusEvent Distribué après la prise de focus d’un objet d’affichage. Ce cas de figure se produit lorsqu’un utilisateur affiche l’objet en surbrillance à l’aide d’un périphérique de pointage ou du clavier. L’objet qui reçoit le focus s’appelle l’objet cible de cet événement, tandis que l’occurrence d’InteractiveObject correspondante qui perd le focus en raison de ce changement porte le nom d’objet apparenté. Une référence à l’objet apparenté est enregistrée dans la propriété relatedObject de l’objet cible. La propriété shiftKey n’est pas utilisée. Cet événement suit la distribution de l’événement focusOut de l’objet précédent. selectAll Distribué lorsque l’utilisateur active la combinaison de touches de raccourci propre à la plate-forme pour tout sélectionner ou choisit "Sélectionner tout" dans le menu contextuel.flash.events.Event.SELECT_ALLflash.events.Event Distribué lorsque l’utilisateur active la combinaison de touches de raccourci propre à la plate-forme pour tout sélectionner ou choisit "Sélectionner tout" dans le menu contextuel. Cet événement est distribué à l’objet qui possède actuellement le focus. Si l’objet qui a actuellement le focus est un TextField, le comportement par défaut de cet événement est de sélectionner l’ensemble du contenu du champ de texte. paste Distribué lorsque l’utilisateur active la combinaison de touches de raccourci propre à la plate-forme pour une opération de collage ou sélectionne "Coller" dans le menu contextuel.flash.events.Event.PASTEflash.events.Event Distribué lorsque l’utilisateur active la combinaison de touches de raccourci propre à la plate-forme pour une opération de collage ou sélectionne "Coller" dans le menu contextuel. Cet événement est distribué à l’objet qui possède actuellement le focus. Si l’objet qui a le focus est un TextField, le comportement par défaut de cet événement est de coller le contenu du presse-papiers dans le champ de texte, au niveau du point d’insertion actuel, en remplaçant éventuellement le texte actuellement sélectionné dans le champ de texte. cut Distribué lorsque l’utilisateur active la combinaison de touches de raccourci propre à la plate-forme pour une opération de coupage ou sélectionne "Couper" dans le menu contextuel.flash.events.Event.CUTflash.events.Event Distribué lorsque l’utilisateur active la combinaison de touches de raccourci propre à la plate-forme pour une opération de coupage ou sélectionne "Couper" dans le menu contextuel. Cet événement est distribué à l’objet qui possède actuellement le focus. Si l’objet qui a le focus est un TextField, le comportement par défaut de cet événement est de couper le texte actuellement sélectionné dans le champ de texte pour l’envoyer dans le presse-papiers. copy Distribué lorsque l’utilisateur active la combinaison de touches de raccourci propre à la plate-forme pour une opération de copie ou sélectionne "Copier" dans le menu contextuel.flash.events.Event.COPYflash.events.Event Distribué lorsque l’utilisateur active la combinaison de touches de raccourci propre à la plate-forme pour une opération de copie ou sélectionne "Copier" dans le menu contextuel. Cet événement est distribué à l’objet qui possède actuellement le focus. Si l’objet qui a le focus est un TextField, le comportement par défaut de cet événement est de copier le texte actuellement sélectionné dans le champ de texte pour l’envoyer dans le presse-papiers. clear Distribué lorsque l’utilisateur sélectionne ’Effacer’ (ou ’Supprimer’) dans le menu contextuel.flash.events.Event.CLEARflash.events.Event Distribué lorsque l’utilisateur sélectionne ’Effacer’ (ou ’Supprimer’) dans le menu contextuel. Cet événement est distribué à l’objet qui possède actuellement le focus. Si l’objet qui a le focus est un TextField, le comportement par défaut de cet événement est de supprimer le texte actuellement sélectionné dans le champ de texte. InteractiveObject L’appel du constructeur InteractiveObject() renvoie une exception ArgumentError. L’appel du constructeur new InteractiveObject() renvoie une exception ArgumentError. Vous pouvez cependant appeler des constructeurs pour les sous-classes suivantes de InteractiveObject :
  • new SimpleButton()
  • new TextField()
  • new Loader()
  • new Sprite()
  • new MovieClip()
requestSoftKeyboard Affiche un clavier virtuel.La valeur true signifie que la demande de clavier logiciel a été accordée, la valeur false que le clavier logiciel n’a pas été activé. BooleanSi le contexte actuel le permet, affiche le clavier. Affiche un clavier virtuel.

L’appel de cette méthode place le focus sur l’occurrence d’InteractiveObject et affiche le clavier logiciel, si nécessaire. La propriété needsSoftKeyboard doit également être définie sur true. Aucun clavier n’apparaît si un clavier matériel est disponible ou si le système client ne prend pas en charge les claviers virtuels.

Remarque : cette méthode n’est pas prise en charge dans les applications AIR sous iOS.

needsSoftKeyboard
accessibilityImplementation Implémentation d’accessibilité (AccessibilityImplementation) actuelle pour cette occurrence d’InteractiveObject.flash.accessibility:AccessibilityImplementation Implémentation d’accessibilité (AccessibilityImplementation) actuelle pour cette occurrence d’InteractiveObject. flash.accessibility.AccessibilityImplementationcontextMenu Spécifie le menu contextuel associé à l’objet.flash.display:NativeMenuMenu contextuel associé à l’objet. Spécifie le menu contextuel associé à l’objet.

Pour le contenu s’exécutant dans Flash Player, cette propriété est un objet ContextMenu. Dans le moteur d’exécution AIR, la classe ContextMenu étend la classe NativeMenu, mais Flash Player prend en charge la classe ContextMenu uniquement, pas la classe NativeMenu.

Remarque : les objets TextField incluent toujours un menu du Presse-papiers dans le menu contextuel. Le menu du Presse-papiers comporte les commandes Couper, Copier, Coller, Effacer et Sélectionner tout. Vous ne pouvez pas supprimer ces commandes du menu contextuel pour les objets TextField. Pour les objets TextField, la sélection de ces commandes (ou leurs équivalents clavier) ne génère pas d’événement clear, copy, cut, paste ou selectAll.

L’exemple suivant explique comment ajouter une option de menu contextuel personnalisée à un objet Sprite en définissant la propriété contextMenu du sprite sur un objet ContextMenu. Exemple fourni par ActionScriptExamples.com. var red_cmi:ContextMenuItem = new ContextMenuItem("red"); red_cmi.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, cmi_menuItemSelect); var cm:ContextMenu = new ContextMenu(); cm.customItems.push(red_cmi); cm.hideBuiltInItems(); var spr:Sprite = new Sprite(); spr.contextMenu = cm; spr.graphics.beginFill(0x000000); spr.graphics.drawRect(0, 0, 120, 90); spr.graphics.endFill(); spr.x = 10; spr.y = 10; addChild(spr); function cmi_menuItemSelect(evt:ContextMenuEvent):void { spr.graphics.clear(); spr.graphics.beginFill(0xFF0000); spr.graphics.drawRect(0, 0, 120, 90); spr.graphics.endFill(); }
doubleClickEnabled Spécifie si l’objet reçoit les événements doubleClick.BooleanSpécifie si cet objet reçoit les messages double clic. Spécifie si l’objet reçoit les événements doubleClick. La valeur par défaut est false, ce qui signifie que, par défaut, une occurrence d’InteractiveObject ne reçoit pas les événements doubleClick. Si la propriété doubleClickEnabled est réglée sur true, l’occurrence reçoit les événements doubleClick qui la concernent. La propriété mouseEnabled de l’occurrence d’InteractiveObject doit également être réglée sur true pour que l’objet reçoive les événements doubleClick.

Définir cette propriété ne distribue aucun événement. Vous devez utiliser la méthode addEventListener() pour ajouter un écouteur d’événement à l’événement doubleClick.

doubleClickmouseEnabledflash.display.DisplayObjectContainer.mouseChildren
focusRect Spécifie si l’objet affiche un rectangle de focus.Object Spécifie si l’objet affiche un rectangle de focus. Trois valeurs sont possibles : true, false ou null. Les valeurs true et false fonctionnent comme prévu, c’est-à-dire indiquent si le rectangle du focus s’affiche. La valeur null indique que cet objet dépend de la propriété stageFocusRect de la scène. mouseEnabled Spécifie si l’objet reçoit des messages de la souris ou d’un autre périphérique de saisie utilisateur.Boolean Spécifie si l’objet reçoit des messages de la souris ou d’un autre périphérique de saisie utilisateur. La valeur par défaut est true, ce qui signifie que, par défaut, toute occurrence d’InteractiveObject figurant dans la liste d’affichage reçoit des événements de souris ou d’autres événements de saisie utilisateur. Si la propriété mouseEnabled est définie sur false, l’occurrence ne reçoit aucun événement de souris (ni aucun autre événement de saisie utilisateur, tel qu’un événement de clavier). Aucun enfant de cette occurrence figurant dans la liste d’affichage n’est affecté. Pour modifier le comportement mouseEnabled de tous les enfants d’un objet figurant dans la liste d’affichage, utilisez flash.display.DisplayObjectContainer.mouseChildren.

Définir cette propriété ne distribue aucun événement. La méthode addEventListener() vous permet de créer une fonctionnalité interactive.

flash.display.DisplayObjectContainer.mouseChildren
needsSoftKeyboard Indique si un clavier virtuel (clavier logiciel à l’écran) doit s’afficher lorsque cette occurrence d’InteractiveObject reçoit le focus.Boolean Indique si un clavier virtuel (clavier logiciel à l’écran) doit s’afficher lorsque cette occurrence d’InteractiveObject reçoit le focus.

Par défaut, cette valeur est définie sur false ; placer le focus sur une occurrence d’InteractiveObject n’affiche pas de clavier logiciel. Si la propriété needsSoftKeyboard est définie sur true, le moteur d’exécution affiche un clavier logiciel lorsque l’occurrence d’InteractiveObject est prête à prendre en charge la saisie utilisateur. Une occurrence d’InteractiveObject est prête à prendre en charge la saisie utilisateur après un appel par programmation visant à définir la propriété focus de la scène ou une interaction utilisateur, telle qu’un appui bref. Si le système client dispose d’un clavier matériel ou ne prend pas en charge les claviers virtuels, le clavier logiciel n’apparaît pas.

L’occurrence d’InteractiveObject distribue les événements softKeyboardActivating, softKeyboardActivate et softKeyboardDeactivate lorsque le clavier logiciel apparaît ou disparaît.

Remarque : cette propriété n’est pas prise en charge dans les applications AIR sous iOS.

softKeyboardActivatingsoftKeyboardActivatesoftKeyboardDeactivate
softKeyboardInputAreaOfInterest Définit la zone qui doit rester à l’écran lorsqu’un clavier logiciel s’affiche.flash.geom:RectangleDéfinit la zone qui doit s’afficher lorsque le clavier logiciel s’ouvre. Définit la zone qui doit rester à l’écran lorsqu’un clavier logiciel s’affiche.

Si la propriété needsSoftKeyboard de cet objet InteractiveObject est définie sur true, le moteur d’exécution ajuste l’affichage en conséquence pour conserver l’objet en vue lorsque l’utilisateur effectue une saisie. En règle générale, le moteur d’exécution utilise les limites de l’objet obtenues à partir de la méthode DisplayObject.getBounds(). Vous pouvez spécifier une autre zone à l’aide de cette propriété softKeyboardInputAreaOfInterest.

Spécifiez la propriété softKeyboardInputAreaOfInterest dans les coordonnées de la scène.

Remarque : sous Android, la propriété softKeyboardInputAreaOfInterest n’est pas respectée en mode paysage.

flash.display.DisplayObject.getBounds()
tabEnabled Indique si cet objet est spécifié dans l’ordre de tabulation.BooleanIndique si cet objet est spécifié dans l’ordre de tabulation. Indique si cet objet est spécifié dans l’ordre de tabulation. Lorsque cet objet figure dans l’ordre de tabulation, la valeur est true. Sinon, elle est false. La valeur par défaut est false, sauf pour les éléments suivants :
  • Pour un objet SimpleButton, la valeur est true.
  • Pour un objet TextField avec type = "input", la valeur est true.
  • Pour un objet Sprite ou MovieClip avec buttonMode = true, la valeur true.
tabIndex Spécifie l’ordre de tabulation des objets dans un fichier SWF.intIndex de tabulation de l’objet. Spécifie l’ordre de tabulation des objets dans un fichier SWF. La propriété tabIndex est réglée sur -1 par défaut, ce qui signifie qu’aucun index de tabulation n’est associé à l’objet.

Si un objet actuellement affiché dans le fichier SWF contient une propriété tabIndex, l’ordre de tabulation automatique est désactivé : l’ordre de tabulation est alors calculé à partir des propriétés tabIndex des objets contenus dans le fichier SWF. L’ordre de tabulation personnalisé inclut uniquement les objets dotés de propriétés tabIndex.

La propriété tabIndex peut être un entier non négatif. Les objets sont triés selon leurs propriétés tabIndex, par ordre croissant. Un objet dont la valeur de tabIndex est définie sur 1 précède celui dont la valeur de tabIndex est 2. N’appliquez pas la même valeur tabIndex à plusieurs objets.

L’ordre de tabulation personnalisé défini par la propriété tabIndex est flat. Cela signifie que les relations hiérarchiques des objets contenus dans le fichier SWF ne sont pas prises en compte. Tous les objets du fichier SWF dotés de propriétés tabIndex sont placés dans l’ordre de tabulation, qui est déterminé par l’ordre des valeurs tabIndex.

Remarque : pour définir l’ordre de tabulation des occurrences de TLFTextField, distribuez l’objet d’affichage enfant de TLFTextField en tant qu’objet InteractiveObject, puis définissez la propriété tabIndex. Par exemple :

	 InteractiveObject(tlfInstance.getChildAt(1)).tabIndex = 3;
	 
Pour inverser l’ordre de tabulation par défaut pour trois occurrences d’un objet TLFTextField (tlfInstance1, tlfInstance2 et tlfInstance3), utilisez :
	 InteractiveObject(tlfInstance1.getChildAt(1)).tabIndex = 3;
	 InteractiveObject(tlfInstance2.getChildAt(1)).tabIndex = 2;
	 InteractiveObject(tlfInstance3.getChildAt(1)).tabIndex = 1;
	 

GraphicsTrianglePath Définit un ensemble ordonné de triangles pouvant être restitués à l’aide de coordonnées de remplissage (u,v) ou d’un remplissage normal.flash.display:IGraphicsPathflash.display:IGraphicsDataObject Définit un ensemble ordonné de triangles pouvant être restitués à l’aide de coordonnées de remplissage (u,v) ou d’un remplissage normal. Chaque triangle du tracé est représenté par trois jeux de coordonnées (x, y), correspondant chacun à un point du triangle.

Les sommets du triangle ne contiennent pas de coordonnées z et ne représentent pas nécessairement des faces 3D. Toutefois, un tracé de triangle peut être utilisé pour assurer le rendu d’une géométrie 3D dans un espace 2D.

flash.display.Graphics.drawTriangles()GraphicsTrianglePath Crée un nouvel objet GraphicsTrianglePath.verticesnullVecteur de Nombres où chaque paire de nombres est traitée comme un point (paire x, y). Obligatoire. indicesnullVecteur d’entiers ou d’index, où chaque groupe de trois index définit un triangle. uvtDatanullVecteur de coordonnées normalisées utilisées pour appliquer un mappage de texture. cullingStringnoneSpécifie si les triangles tournés vers une direction donnée doivent être restitués. Utilisé pour éviter de restituer les triangles que la vue en cours ne permet pas de voir. Peut être défini sur toute valeur définie par la classe TriangleCulling. Crée un nouvel objet GraphicsTrianglePath. cullingflash.display.TriangleCullingindices Vecteur d’entiers ou d’index, où chaque groupe de trois index définit un triangle. Vecteur d’entiers ou d’index, où chaque groupe de trois index définit un triangle. Si le paramètre indexes est défini sur null, chaque groupe de trois sommets (six paires de x,y dans le vecteur vertices) définit un triangle. Sinon, chaque index fait référence à un sommet, c’est-à-dire à une paire de nombres dans le vecteur vertices. Par exemple indexes[1] fait référence à (vertices[2], vertices[3]). uvtData Vecteur de coordonnées normalisées utilisées pour appliquer un mappage de texture. Vecteur de coordonnées normalisées utilisées pour appliquer un mappage de texture. Chaque coordonnée fait référence à un point sur l’image bitmap utilisée pour le remplissage. Il doit y avoir une coordonnée UV ou UVT par sommet.

Dans coordonnées UV, (0,0) est le coin supérieur gauche de l’image bitmap et (1,1) le coin inférieur droit.

Si la longueur de ce vecteur est le double de celle du vecteur vertices, les coordonnées normalisées sont utilisées sans correction de perspective.

Si la longueur de ce vecteur est le triple de la longueur du vecteur vertices, la troisième coordonnée est interprétée comme ’t’, distance séparant l’oeil de la texture dans l’espace visuel. Cela permet au moteur de rendu d’appliquer correctement la perspective lors du mappage des textures en 3D.

vertices Vecteur de Nombres, où chaque paire de nombres est traitée comme un point (paire x, y). Vecteur de Nombres, où chaque paire de nombres est traitée comme un point (paire x, y). culling Spécifie si les triangles tournés vers une direction donnée doivent être restitués. String Spécifie si les triangles tournés vers une direction donnée doivent être restitués. Utilisé pour éviter de restituer les triangles que la vue en cours ne permet pas de voir.

Peut être défini sur toute valeur définie par la classe TriangleCulling.

flash.display.TriangleCulling
DisplayObject La classe DisplayObject constitue la classe de base de tous les objets susceptibles d’être insérés dans la liste d’affichage.flash.display:IBitmapDrawableflash.events:EventDispatcher La classe DisplayObject constitue la classe de base de tous les objets susceptibles d’être insérés dans la liste d’affichage. La liste d’affichage gère tous les objets affichés dans les moteurs d’exécution de Flash. La classe DisplayObjectContainer permet d’organiser les objets d’affichage dans la liste d’affichage. Les objets DisplayObjectContainer peuvent posséder des objets enfant, tandis que d’autres objets d’affichage, tels que Shape et TextField, sont des nœuds terminaux qui possèdent uniquement des parents et des frères, mais pas d’enfant.

La classe DisplayObject prend en charge des fonctionnalités enfant, telles que la position x et y d’un objet, ainsi que les propriétés les plus avancées de l’objet, telles que sa matrice de transformation.

DisplayObject est une classe de base abstraite. De ce fait, il est impossible de l’appeler directement. Appeler new DisplayObject() renvoie une exception ArgumentError.

Tous les objets d’affichage héritent de la classe DisplayObject.

La classe DisplayObject n’inclut pas d’API pour le rendu de contenu à l’écran. Par conséquent, si vous devez créer une sous-classe personnalisée de la classe DisplayObject, vous devez étendre l’une de ses sous-classes qui dispose d’API de rendu de contenu à l’écran, telles que les classes Shape, Sprite, Bitmap, SimpleButton, TextField ou MovieClip.

La classe DisplayObject contient plusieurs événements de diffusion. En règle générale, la cible d’un événement spécifique correspond à une occurrence de DisplayObject. Par exemple, la cible d’un événement added correspond à l’occurrence de DisplayObject spécifique ajoutée à la liste d’affichage. Ne posséder qu’une seule cible réduit le placement des écouteurs d’événement à cette cible, et dans certains cas aux ancêtres de la cible sur la liste d’affichage. Néanmoins, s’il s’agit d’événements de diffusion, la cible ne correspond pas à une occurrence de DisplayObject spécifique, mais plutôt à toutes les occurrences de DisplayObject, y compris à celles qui ne figurent pas dans la liste d’affichage. Cela signifie que vous pouvez ajouter un écouteur à n’importe quelle occurrence de DisplayObject afin d’écouter les événements de diffusion. Outre les événements de diffusion répertoriés dans le tableau des événements de la classe DisplayObject, la classe DisplayObject hérite de la classe EventDispatcher les deux événements de diffusion suivants : activate et deactivate.

Certaines propriétés utilisées précédemment dans les classes MovieClip, TextField et Button d’ActionScript 1.0 et 2.0 (telles que _alpha, _height, _name, _width, _x, _y et autres) disposent d’équivalents dans la classe DisplayObject d’ActionScript 3.0 qui sont renommés de façon à commencer par le caractère souligné (_).

Pour plus d’informations, voir le chapitre « Programmation de l’affichage » du Guide du développeur d’ActionScript 3.0.

L’exemple suivant, utilise la classe DisplayObjectExample pour dessiner un carré orange dans le coin de la scène, puis répondre aux événements en affichant des informations sur le texte de chaque événement. Pour ce faire, procédez comme suit :
  1. Les propriétés de classe sont déclarées pour la couleur et la taille du carré.
  2. Le constructeur appelle la méthode draw() qui dessine un carré orange sur la scène aux coordonnées par défaut x = 0, y = 0.
  3. Les méthodes d’écouteur d’événements suivantes sont associées au carré :
    • addedHandler() écoute les événements added, appelés lorsque le carré est ajouté à la liste d’affichage.
    • enterFrameHandler() écoute les événements enterFrame, qui n’ont aucune signification réelle dans cet exemple.
    • removedHandler() écoute les événements removed, distribués lorsque le carré est supprimé de la liste d’affichage, ce qui se produit lorsque l’utilisateur clique sur le carré.
    • clickHandler() écoute les événements click, qui sont distribués lorsque l’utilisateur clique sur le carré orange.
    • renderHandler() écoute les événements render une fois la liste d’affichage mise à jour.
package { import flash.display.Sprite; public class DisplayObjectExample extends Sprite { public function DisplayObjectExample() { var child:CustomDisplayObject = new CustomDisplayObject(); addChild(child); } } } import flash.display.DisplayObject; import flash.display.Sprite; import flash.display.Stage; import flash.display.StageAlign; import flash.display.StageScaleMode; import flash.events.*; class CustomDisplayObject extends Sprite { private var bgColor:uint = 0xFFCC00; private var size:uint = 80; public function CustomDisplayObject() { draw(); addEventListener(Event.ADDED, addedHandler); addEventListener(Event.ENTER_FRAME, enterFrameHandler); addEventListener(Event.REMOVED, removedHandler); addEventListener(MouseEvent.CLICK, clickHandler); addEventListener(Event.RENDER, renderHandler); } private function draw():void { graphics.beginFill(bgColor); graphics.drawRect(0, 0, size, size); graphics.endFill(); } private function clickHandler(event:MouseEvent):void { trace("clickHandler: " + event); parent.removeChild(this); } private function addedHandler(event:Event):void { trace("addedHandler: " + event); stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = StageAlign.TOP_LEFT; stage.addEventListener("resize", resizeHandler); } private function enterFrameHandler(event:Event):void { trace("enterFrameHandler: " + event); removeEventListener("enterFrame", enterFrameHandler); } private function removedHandler(event:Event):void { trace("removedHandler: " + event); stage.removeEventListener("resize", resizeHandler); } private function renderHandler(event:Event):void { trace("renderHandler: " + event); } private function resizeHandler(event:Event):void { trace("resizeHandler: " + event); } }
flash.display.DisplayObjectContainerrender [événement de diffusion] Distribué lorsque la liste d’affichage est sur le point d’être mise à jour et restituée.flash.events.Event.RENDERflash.events.Event [événement de diffusion] Distribué lorsque la liste d’affichage est sur le point d’être mise à jour et restituée. Cet événement offre une dernière possibilité de modification des objets qui écoutent cet événement avant le rendu de la liste d’affichage. Vous devez appeler la méthode invalidate() de l’objet Stage chaque fois que vous souhaitez distribuer un événement render. Les événements Render ne sont distribués à un objet que s’il existe un lien d’approbation entre ce dernier et l’objet qui a appelé Stage.invalidate(). Cet événement est un événement de diffusion, ce qui signifie qu’il est distribué par tous les objets d’affichage avec un écouteur enregistré pour cet événement.

Remarque : cet événement n’est pas distribué si l’affichage n’effectue pas de rendu. Tel est le cas lorsque le contenu est réduit en icône ou masqué.

removedFromStage Distribué lorsqu’un objet d’affichage est sur le point d’être supprimé de la liste d’affichage de la scène, directement ou par l’intermédiaire de la suppression d’une arborescence secondaire qui contient l’objet d’affichage.flash.events.Event.REMOVED_FROM_STAGEflash.events.Event Distribué lorsqu’un objet d’affichage est sur le point d’être supprimé de la liste d’affichage de la scène, directement ou par l’intermédiaire de la suppression d’une arborescence secondaire qui contient l’objet d’affichage. Les deux méthodes de la classe DisplayObjectContainer génèrent cet événement : removeChild() et removeChildAt().

Les méthodes suivantes d’un objet DisplayObjectContainer génèrent également cet événement lorsqu’un objet doit être supprimé pour céder la place au nouvel objet : addChild(), addChildAt() et setChildIndex().

removed Distribué lorsqu’un objet d’affichage est sur le point d’être supprimé de la liste d’affichage.flash.events.Event.REMOVEDflash.events.Event Distribué lorsqu’un objet d’affichage est sur le point d’être supprimé de la liste d’affichage. Les deux méthodes de la classe DisplayObjectContainer génèrent cet événement : removeChild() et removeChildAt().

Les méthodes suivantes d’un objet DisplayObjectContainer génèrent également cet événement lorsqu’un objet doit être supprimé pour céder la place au nouvel objet : addChild(), addChildAt() et setChildIndex().

exitFrame [événement de diffusion] Distribué lorsque la tête de lecture quitte l’image en cours.flash.events.Event.EXIT_FRAMEflash.events.Event [événement de diffusion] Distribué lorsque la tête de lecture quitte l’image en cours. Tous les scripts d’image ont été exécutés. Lorsque la tête de lecture ne bouge pas ou lorsqu’il n’existe qu’une seule image, cet événement est distribué de façon continue, en fonction de la cadence. Cet événement est un événement de diffusion, ce qui signifie qu’il est distribué par tous les objets d’affichage avec un écouteur enregistré pour cet événement. frameConstructed [événement de diffusion] Distribué après l’exécution des constructeurs des objets d’affichage d’image, mais avant celle des scripts d’image.flash.events.Event.FRAME_CONSTRUCTEDflash.events.Event [événement de diffusion] Distribué après l’exécution des constructeurs des objets d’affichage d’image, mais avant celle des scripts d’image. Lorsque la tête de lecture ne bouge pas ou lorsqu’il n’existe qu’une seule image, cet événement est distribué de façon continue, en fonction de la cadence. Cet événement est un événement de diffusion, ce qui signifie qu’il est distribué par tous les objets d’affichage avec un écouteur enregistré pour cet événement. enterFrame [événement de diffusion] Distribué lorsque la tête de lecture est placée sur une nouvelle image.flash.events.Event.ENTER_FRAMEflash.events.Event [événement de diffusion] Distribué lorsque la tête de lecture est placée sur une nouvelle image. Lorsque la tête de lecture ne bouge pas ou lorsqu’il n’existe qu’une seule image, cet événement est distribué de façon continue, en fonction de la cadence. Cet événement est un événement de diffusion, ce qui signifie qu’il est distribué par tous les objets d’affichage avec un écouteur enregistré pour cet événement. addedToStage Envoyé lorsqu’un objet d’affichage est ajouté dans la liste d’affichage de la scène, directement ou par l’intermédiaire d’une arborescence secondaire qui contient l’objet d’affichage.flash.events.Event.ADDED_TO_STAGEflash.events.Event Envoyé lorsqu’un objet d’affichage est ajouté dans la liste d’affichage de la scène, directement ou par l’intermédiaire d’une arborescence secondaire qui contient l’objet d’affichage. Les méthodes suivantes déclenchent cet événement : DisplayObjectContainer.addChild(), DisplayObjectContainer.addChildAt(). flash.display.DisplayObjectContainer.addChild()flash.display.DisplayObjectContainer.addChildAt()added Distribué lorsqu’un objet d’affichage est ajouté à la liste d’affichage.flash.events.Event.ADDEDflash.events.Event Distribué lorsqu’un objet d’affichage est ajouté à la liste d’affichage. Les méthodes suivantes déclenchent cet événement : DisplayObjectContainer.addChild(), DisplayObjectContainer.addChildAt(). flash.display.DisplayObjectContainer.addChild()flash.display.DisplayObjectContainer.addChildAt()getBounds Renvoie un rectangle qui définit la zone de l’objet d’affichage relativement au système de coordonnées de l’objet targetCoordinateSpace.Le rectangle qui définit la zone de l’objet d’affichage par rapport au système de coordonnées de l’objet targetCoordinateSpace. flash.geom:RectangletargetCoordinateSpaceflash.display:DisplayObjectObjet d’affichage qui définit le système de coordonnées à utiliser. Renvoie un rectangle qui définit la zone de l’objet d’affichage relativement au système de coordonnées de l’objet targetCoordinateSpace. Consultez le code suivant, qui indique comment le rectangle renvoyé peut varier en fonction du paramètre targetCoordinateSpace que vous transmettez à la méthode : var container:Sprite = new Sprite(); container.x = 100; container.y = 100; this.addChild(container); var contents:Shape = new Shape(); contents.graphics.drawCircle(0,0,100); container.addChild(contents); trace(contents.getBounds(container)); // (x=-100, y=-100, w=200, h=200) trace(contents.getBounds(this)); // (x=0, y=0, w=200, h=200)

Remarque : utilisez les méthodes localToGlobal() et globalToLocal() pour convertir les coordonnées locales de l’objet d’affichage en coordonnées d’affichage, ou pour convertir les coordonnées d’affichage en coordonnées locales.

La méthode getBounds() est semblable à la méthode getRect(). Cependant, le rectangle renvoyé par la méthode getBounds() inclut les traits appliqués aux formes, contrairement au rectangle renvoyé par la méthode getRect(). Pour consulter un exemple d’utilisation de la méthode getRect(), reportez-vous à la description correspondante.

getRect()globalToLocal()localToGlobal()
getRect Renvoie un rectangle qui définit les limites de l’objet d’affichage, en se basant sur le système de coordonnées défini par le paramètre targetCoordinateSpace, moins tout trait appliqué aux formes.Le rectangle qui définit la zone de l’objet d’affichage par rapport au système de coordonnées de l’objet targetCoordinateSpace. flash.geom:RectangletargetCoordinateSpaceflash.display:DisplayObjectObjet d’affichage qui définit le système de coordonnées à utiliser. Renvoie un rectangle qui définit les limites de l’objet d’affichage, en se basant sur le système de coordonnées défini par le paramètre targetCoordinateSpace, moins tout trait appliqué aux formes. Les valeurs renvoyées par la méthode getRect() sont inférieures ou égales à celles qui sont renvoyées par la méthode getBounds().

Remarque : utilisez les méthodes localToGlobal() et globalToLocal() pour convertir les coordonnées locales de l’objet d’affichage en coordonnées de scène, ou pour convertir les coordonnées de scène en coordonnées locales.

L’exemple suivant indique comment la méthode getBounds() peut renvoyer un rectangle dont les dimensions sont supérieures à celles de la méthode getRect(), du fait de la zone supplémentaire qui est occupée par les traits. Dans ce cas, le sprite triangle inclut des traits supplémentaires en raison des paramètres width et jointStyle de la méthode lineStyle(). La sortie trace() (dans les deux dernières lignes) indique la différence entre les rectangles getRect() et getBounds() : import flash.display.CapsStyle; import flash.display.JointStyle; import flash.display.LineScaleMode; import flash.display.Sprite; import flash.geom.Rectangle; var triangle:Sprite = new Sprite(); var color:uint = 0xFF0044; var width:Number = 20; var alpha:Number = 1.0; var pixelHinting:Boolean = true; var scaleMode:String = LineScaleMode.NORMAL; var caps:String = CapsStyle.SQUARE; var joints:String = JointStyle.MITER; triangle.graphics.lineStyle(width, color, alpha, pixelHinting, scaleMode, caps, joints); var triangleSide:Number = 100; triangle.graphics.moveTo(0, 0); triangle.graphics.lineTo(0, triangleSide); triangle.graphics.lineTo(triangleSide, triangleSide); triangle.graphics.lineTo(0, 0); addChild(triangle); trace(triangle.getBounds(this)); // (x=-10, y=-24.1, w=134.10000000000002, h=134.1) trace(triangle.getRect(this)); // (x=0, y=0, w=100, h=100)
getBounds()
globalToLocal3D Convertit un point bidimensionnel à partir des coordonnées de scène (globales) vers les coordonnées d’un objet d’affichage tridimensionnel (locales).Objet Vector3D dont les coordonnées sont relatives à l’objet d’affichage tridimensionnel. flash.geom:Vector3Dpointflash.geom:PointObjet Point bidimensionnel représentant les coordonnés globales x et y. Convertit un point bidimensionnel à partir des coordonnées de scène (globales) vers les coordonnées d’un objet d’affichage tridimensionnel (locales).

Pour utiliser cette méthode, commencez par créer une occurrence de la classe Point. Les valeurs x et y que vous affectez à l’objet Point représentent des coordonnées globales dans la mesure où elles se rapportent à l’origine (0,0) de la zone d’affichage principale. Transmettez ensuite l’objet Point à la méthode globalToLocal3D() en tant que paramètre point. La méthode renvoie les coordonnées tridimensionnelles en tant qu’objet Vector3D contenant les valeurs x, y et z relatives à l’origine de l’objet d’affichage tridimensionnel.

globalToLocal Convertit l’objet point des coordonnées de scène (globales) vers les coordonnées de l’objet d’affichage (locales).Objet Point dont les coordonnées sont relatives à l’objet d’affichage. flash.geom:Pointpointflash.geom:PointObjet créé avec la classe Point. L’objet Point spécifie les coordonnées x et y en tant que propriétés. Convertit l’objet point des coordonnées de l’objet Stage (globales) vers les coordonnées de l’objet d’affichage (locales). Convertit l’objet point des coordonnées de scène (globales) vers les coordonnées de l’objet d’affichage (locales).

Pour utiliser cette méthode, commencez par créer une occurrence de la classe Point. Les valeurs x et y que vous affectez représentent des coordonnées globales dans la mesure où elles se référent à l’origine (0,0) de la zone d’affichage principal. Passez ensuite l’occurrence Point en tant que paramètre à la méthode globalToLocal(). La méthode renvoie un nouvel objet Point avec des valeurs x et y qui se rapportent à l’origine de l’objet d’affichage et non pas à l’origine de la scène.

Le code suivant crée un objet Shape et affiche le résultat de l’appel de la méthode hitTestPoint(), qui utilise différents points en tant que paramètres. La méthode globalToLocal() convertit le point provenant des coordonnées de l’objet Stage en espace de coordonnées de la forme : import flash.display.Shape; import flash.geom.Point; var circle:Shape = new Shape(); circle.graphics.beginFill(0x0000FF); circle.graphics.drawCircle(40, 40, 40); circle.x = 10; addChild(circle); var point1:Point = new Point(0, 0); trace(circle.hitTestPoint(point1.x, point1.y, true)); // false trace(circle.hitTestPoint(point1.x, point1.y, false)); // false trace(circle.globalToLocal(point1)); // [x=-10, y=0] var point2:Point = new Point(10, 1); trace(circle.hitTestPoint(point2.x, point2.y, true)); // false trace(circle.hitTestPoint(point2.x, point2.y, false)); // true trace(circle.globalToLocal(point2)); // [x=0, y=1] var point3:Point = new Point(30, 20); trace(circle.hitTestPoint(point3.x, point3.y, true)); // true trace(circle.hitTestPoint(point3.x, point3.y, false)); // true trace(circle.globalToLocal(point3)); // [x=20, y=20]
localToGlobal()Classe flash.geom.Point
hitTestObject Evalue le cadre de sélection de l’objet d’affichage pour savoir s’il recouvre ou recoupe le cadre de sélection de l’objet d’affichage obj.Définie sur true si les cadres de sélection des objets d’affichage se recoupent, sur false dans le cas contraire. Booleanobjflash.display:DisplayObjectObjet d’affichage à utiliser pour le test. Evalue le cadre de sélection de l’objet d’affichage pour savoir s’il recouvre ou recoupe le cadre de sélection de l’objet d’affichage transmis en tant que paramètre. Evalue le cadre de sélection de l’objet d’affichage pour savoir s’il recouvre ou recoupe le cadre de sélection de l’objet d’affichage obj. Le code suivant crée trois objets Shape et affiche le résultat de l’appel de la méthode hitTestObject(). Notez que même si les objets circle2 et circle3 ne se recoupent pas, leurs cadres de sélection, eux, se recoupent. Par conséquent, le test de recherche des objets circle2 et circle3 renvoie true. import flash.display.Shape; var circle1:Shape = new Shape(); circle1.graphics.beginFill(0x0000FF); circle1.graphics.drawCircle(40, 40, 40); addChild(circle1); var circle2:Shape = new Shape(); circle2.graphics.beginFill(0x00FF00); circle2.graphics.drawCircle(40, 40, 40); circle2.x = 50; addChild(circle2); var circle3:Shape = new Shape(); circle3.graphics.beginFill(0xFF0000); circle3.graphics.drawCircle(40, 40, 40); circle3.x = 100; circle3.y = 67; addChild(circle3); trace(circle1.hitTestObject(circle2)); // true trace(circle1.hitTestObject(circle3)); // false trace(circle2.hitTestObject(circle3)); // true hitTestPoint Evalue l’objet d’affichage pour savoir s’il recouvre ou recoupe le point spécifié par les paramètres x et y.true si l’objet d’affichage recouvre ou recoupe le point spécifié, false dans tous les autres cas. BooleanxNumberCoordonnée x à tester par rapport à l’objet. yNumberCoordonnée y à tester par rapport à l’objet. shapeFlagBooleanfalseIndique si la vérification doit porter sur les pixels réels de l’objet (true) ou du cadre de sélection (false). Evalue l’objet d’affichage pour savoir s’il recouvre ou recoupe le point spécifié par x et y. Evalue l’objet d’affichage pour savoir s’il recouvre ou recoupe le point spécifié par les paramètres x et y. Les paramètres x et y spécifient un point dans l’espace de coordonnées de la scène et non pas le conteneur d’objet d’affichage qui contient l’objet d’affichage (sauf si ce conteneur correspond à la scène). Le code suivant crée un objet Shape et affiche le résultat de l’appel de la méthode hitTestPoint(), qui utilise différents points en tant que paramètres. La méthode globalToLocal() convertit le point provenant des coordonnées de l’objet Stage en espace de coordonnées de la forme : import flash.display.Shape; import flash.geom.Point; var circle:Shape = new Shape(); circle.graphics.beginFill(0x0000FF); circle.graphics.drawCircle(40, 40, 40); circle.x = 10; addChild(circle); var point1:Point = new Point(0, 0); trace(circle.hitTestPoint(point1.x, point1.y, true)); // false trace(circle.hitTestPoint(point1.x, point1.y, false)); // false trace(circle.globalToLocal(point1)); // [x=-10, y=0] var point2:Point = new Point(10, 1); trace(circle.hitTestPoint(point2.x, point2.y, true)); // false trace(circle.hitTestPoint(point2.x, point2.y, false)); // true trace(circle.globalToLocal(point2)); // [x=0, y=1] var point3:Point = new Point(30, 20); trace(circle.hitTestPoint(point3.x, point3.y, true)); // true trace(circle.hitTestPoint(point3.x, point3.y, false)); // true trace(circle.globalToLocal(point3)); // [x=20, y=20] opaqueBackgroundlocal3DToGlobal Convertit un point tridimensionnel des coordonnées de l’objet d’affichage tridimensionnel (locales) vers un point bidimensionnel dans les coordonnées de scène (globales).Point bidimensionnel représentant un point tridimensionnel dans un espace bidimensionnel. flash.geom:Pointpoint3dflash.geom:Vector3DObjet Vector3D contenant soit un point tridimensionnel soit les coordonnées de l’objet d’affichage tridimensionnel. Convertit un point tridimensionnel des coordonnées de l’objet d’affichage tridimensionnel (locales) vers un point bidimensionnel dans les coordonnées de scène (globales).

Par exemple, vous pouvez utiliser uniquement des coordonnées bidimensionnelles (x,y) pour dessiner à l’aide des méthodes display.Graphics. Pour dessiner un objet tridimensionnel, vous devez mapper les coordonnées tridimensionnelles d’un objet d’affichage sur les coordonnées bidimensionnelles. Commencez par créer une occurrence de la classe Vector3D contenant les coordonnées x, y, et z de l’objet d’affichage tridimensionnel. Transmettez ensuite l’objet Vector3D à la méthode local3DToGlobal() en tant que paramètre point3d. La méthode renvoie un objet Point bidimensionnel pouvant être utilisé avec l’API graphique pour dessiner l’objet tridimensionnel.

Cet exemple dessine un cube tridimensionnel simple dans un espace bidimensionnel à l’aide des méthodes display.Graphics. L’emplacement de l’objet d’affichage this est décalé afin que le point d’alignement du cube soit en son centre. Un vecteur des objets Vector3D contient les coordonnées tridimensionnelles du cube. La partie supérieure du cube est dessinée en premier. Vient ensuite la partie inférieure. Enfin, les quatre coins supérieurs et inférieurs sont connectés. Pour utiliser la méthode local3DToGlobal(), vous devez ajouter le cube au conteneur d’objet d’affichage avant de dessiner le cube. package { import flash.display.MovieClip; import flash.display.Sprite; import flash.display.Graphics; import flash.geom.*; public class Local3DToGlobalExample extends MovieClip { private var myCube:Sprite = new Sprite(); private var v8:Vector.<Vector3D> = new Vector.<Vector3D>(8); public function Local3DToGlobalExample():void { this.x = -(this.stage.stageWidth / 2); this.y = -(this.stage.stageWidth / 2); v8[0] = new Vector3D(-40,-40,-40); v8[1] = new Vector3D(40,-40,-40); v8[2] = new Vector3D(40,-40,40); v8[3] = new Vector3D(-40,-40,40); v8[4] = new Vector3D(-40,100,-40); v8[5] = new Vector3D(40,100,-40); v8[6] = new Vector3D(40,100,40); v8[7] = new Vector3D(-40,100,40); myCube.x = (this.stage.stageWidth / 2); myCube.y = (this.stage.stageWidth / 2); myCube.z = 1; addChild(myCube); Cube(); } private function Cube():void { var ps:Point = new Point(0,0); myCube.graphics.lineStyle(2,0xFF0000); ps = myCube.local3DToGlobal(v8[0]); myCube.graphics.moveTo(ps.x, ps.y); ps = myCube.local3DToGlobal(v8[1]); myCube.graphics.lineTo(ps.x, ps.y); ps = myCube.local3DToGlobal(v8[2]); myCube.graphics.lineTo(ps.x, ps.y); ps = myCube.local3DToGlobal(v8[3]); myCube.graphics.lineTo(ps.x, ps.y); ps = myCube.local3DToGlobal(v8[0]); myCube.graphics.lineTo(ps.x, ps.y); ps = myCube.local3DToGlobal(v8[4]); myCube.graphics.moveTo(ps.x, ps.y); ps = myCube.local3DToGlobal(v8[5]); myCube.graphics.lineTo(ps.x, ps.y); ps = myCube.local3DToGlobal(v8[6]); myCube.graphics.lineTo(ps.x, ps.y); ps = myCube.local3DToGlobal(v8[7]); myCube.graphics.lineTo(ps.x, ps.y); ps = myCube.local3DToGlobal(v8[4]); myCube.graphics.lineTo(ps.x, ps.y); ps = myCube.local3DToGlobal(v8[0]); myCube.graphics.moveTo(ps.x, ps.y); ps = myCube.local3DToGlobal(v8[4]); myCube.graphics.lineTo(ps.x, ps.y); ps = myCube.local3DToGlobal(v8[1]); myCube.graphics.moveTo(ps.x, ps.y); ps = myCube.local3DToGlobal(v8[5]); myCube.graphics.lineTo(ps.x, ps.y); ps = myCube.local3DToGlobal(v8[2]); myCube.graphics.moveTo(ps.x, ps.y); ps = myCube.local3DToGlobal(v8[6]); myCube.graphics.lineTo(ps.x, ps.y); ps = myCube.local3DToGlobal(v8[3]); myCube.graphics.moveTo(ps.x, ps.y); ps = myCube.local3DToGlobal(v8[7]); myCube.graphics.lineTo(ps.x, ps.y); } } }
localToGlobal Convertit l’objet point des coordonnées de l’objet d’affichage (locales) vers les coordonnées de la scène (globales).Objet Point dont les coordonnées sont relatives à la scène. flash.geom:Pointpointflash.geom:PointLe nom ou l’identificateur d’un point créé avec la classe Point, qui spécifie les coordonnées x et y en tant que propriétés. Convertit l’objet point des coordonnées de l’objet d’affichage (locales) vers les coordonnées de la scène (globales).

Cette méthode permet de convertir les coordonnées x et y des valeurs qui se rapportent à l’origine (0,0) d’un objet d’affichage spécifique (coordonnées locales) en valeurs qui se rapportent à l’origine de la scène (coordonnées globales).

Pour utiliser cette méthode, commencez par créer une occurrence de la classe Point. Les valeurs x et y que vous affectez représentent des coordonnées locales dans la mesure où elles se référent à l’origine de l’objet d’affichage principal.

Vous transmettez ensuite l’occurrence de Point que vous avez créée en tant que paramètre à la méthode localToGlobal(). La méthode renvoie un nouvel objet Point avec des valeurs x et y qui se rapportent à l’origine de la scène et non pas à l’origine de l’objet d’affichage.

Le code suivant crée un objet Sprite. Les propriétés mouseX et mouseY du sprite figurent dans l’espace de coordonnées de l’objet d’affichage. Ce code utilise la méthode localToGlobal() pour convertir ces propriétés en coordonnées globales (scène) : import flash.display.Sprite; import flash.events.MouseEvent; import flash.geom.Point; var square:Sprite = new Sprite(); square.graphics.beginFill(0xFFCC00); square.graphics.drawRect(0, 0, 100, 100); square.x = 100; square.y = 200; addChild(square); square.addEventListener(MouseEvent.CLICK, traceCoordinates) function traceCoordinates(event:MouseEvent):void { var clickPoint:Point = new Point(square.mouseX, square.mouseY); trace("display object coordinates:", clickPoint); trace("stage coordinates:", square.localToGlobal(clickPoint)); }
globalToLocal()Classe flash.geom.Point
accessibilityProperties Options d’accessibilité actuelles de l’objet d’affichage.flash.accessibility:AccessibilityProperties Options d’accessibilité actuelles de l’objet d’affichage. Si vous modifiez la propriété accessibilityProperties ou l’un de ses champs dans accessibilityProperties, vous devez appeler la méthode Accessibility.updateProperties() pour appliquer vos modifications.

Remarque : pour tout objet créé dans l’environnement de création de Flash, la valeur de accessibilityProperties est préremplie avec les informations que vous avez entrées dans le panneau Accessibilité pour cet objet.

L’exemple suivant indique comment joindre un objet AccessibilityProperties simple à une occurrence TextField : import flash.text.TextField; import flash.accessibility.AccessibilityProperties; import flash.accessibility.Accessibility; import flash.system.Capabilities; var tf:TextField = new TextField(); tf.text = "hello"; var accessProps:AccessibilityProperties = new AccessibilityProperties(); accessProps.name = "Greeting"; tf.accessibilityProperties = accessProps; if (Capabilities.hasAccessibility) { Accessibility.updateProperties(); } trace(tf.accessibilityProperties.name); // Greeting
flash.accessibility.Accessibility.updateProperties()flash.accessibility.AccessibilityProperties
alpha Indique la valeur de transparence alpha de l’objet spécifié.Number Indique la valeur de transparence alpha de l’objet spécifié. Les valeurs gérées sont comprises entre 0 (entièrement transparent) et 1 (entièrement opaque). La valeur par défaut est 1. Les objets d’affichage où alpha est défini sur 0 sont actifs, même s’ils sont invisibles. Le code suivant définit la propriété alpha d’un sprite sur 50 % lorsque la souris survole le sprite : import flash.display.Sprite; import flash.events.MouseEvent; var circle:Sprite = new Sprite(); circle.graphics.beginFill(0xFF0000); circle.graphics.drawCircle(40, 40, 40); addChild(circle); circle.addEventListener(MouseEvent.MOUSE_OVER, dimObject); circle.addEventListener(MouseEvent.MOUSE_OUT, restoreObject); function dimObject(event:MouseEvent):void { event.target.alpha = 0.5; } function restoreObject(event:MouseEvent):void { event.target.alpha = 1.0; } blendMode Valeur de la classe BlendMode qui spécifie le mode de fusion à utiliser.String Valeur de la classe BlendMode qui spécifie le mode de fondu à utiliser. Une image bitmap peut être dessinée en interne de deux manières. Si un mode de fondu ou un masque de découpage externe est activé, l’image bitmap est dessinée en ajoutant une forme carrée remplie avec l’image bitmap au rendu vectoriel. Si vous tentez de définir cette propriété sur une valeur non valide, les moteurs d’exécution de Flash la remplacent par BlendMode.NORMAL.

La propriété blendMode affecte chaque pixel de l’objet d’affichage. Chaque pixel est composé de trois couleurs élémentaires (rouge, vert et bleu), chacune de ces couleurs ayant une valeur située entre 0x00 et 0xFF. Flash Player ou Adobe AIR compare chaque couleur constituante d’un pixel dans le clip à la couleur correspondante du pixel d’arrière-plan. Par exemple si blendMode est défini sur BlendMode.LIGHTEN, Flash Player ou Adobe AIR compare la valeur rouge de l’objet d’affichage avec la valeur rouge de l’arrière-plan, et utilise la plus claire des deux comme valeur pour le composant rouge de la couleur affichée.

Le tableau suivant répertorie les réglages blendMode. La classe BlendMode définit les valeurs de chaîne que vous pouvez utiliser. Les illustrations du tableau ci-dessous présentent les valeurs blendMode appliquées à un objet d’affichage (2) circulaire superposé sur un autre objet d’affichage (1).

Constante BlendModeIllustrationDescriptionBlendMode.NORMALL’objet d’affichage apparaît devant l’arrière-plan. Les valeurs de pixels de l’objet d’affichage écrasent celles de l’arrière-plan. Lorsque l’objet d’affichage est transparent, l’arrière-plan est visible.BlendMode.LAYERImpose la création d’un groupe de transparences pour l’objet d’affichage. Cela signifie que l’objet d’affichage est précomposé dans un tampon temporaire avant que son traitement ne se poursuive. Cette opération s’exécute automatiquement si l’objet d’affichage est préalablement placé en mémoire cache par le biais d’une mise en cache des bitmaps ou s’il correspond à un conteneur d’objet d’affichage qui possède au moins un objet enfant associé à un réglage blendMode autre que BlendMode.NORMAL. Pas de prise en charge sous le rendu sur GPU. BlendMode.MULTIPLYMultiplie les valeurs des couleurs élémentaires de l’objet d’affichage par celles de la couleur d’arrière-plan, puis les normalise en les divisant par 0xFF, ce qui donne des couleurs plus sombres. Ce réglage est souvent utilisé pour les effets d’ombre et de profondeur.

Par exemple, si une couleur élémentaire (comme le rouge) d’un pixel de l’objet d’affichage et la couleur correspondante du pixel de l’arrière-plan ont toutes les deux une valeur de 0x88, le résultat de la multiplication est 0x4840. La division par 0xFF donne une valeur de 0x48 pour cette couleur élémentaire, qui est plus sombre que celle de l’objet d’affichage ou de l’arrière-plan.

BlendMode.SCREENMultiplie le complément (l’inverse) de la couleur de l’objet d’affichage par le complément de la couleur d’arrière-plan, ce qui donne un effet de blanchissement. Ce réglage est couramment utilisé pour la mise en valeur ou pour supprimer les parties noires de l’objet d’affichage.BlendMode.LIGHTENSélectionne les plus claires des couleurs élémentaires de l’objet d’affichage et la couleur d’arrière-plan (celles qui ont les valeurs les plus élevées). Ce réglage est généralement utilisé pour les superpositions.

Par exemple, si l’objet d’affichage possède un pixel dont la valeur RVB est 0xFFCC33, et que le pixel d’arrière-plan possède une valeur RVB réglée sur 0xDDF800, la valeur RVB obtenue pour le pixel affiché est 0xFFF833 (car 0xFF > 0xDD, 0xCC < 0xF8 et 0x33 > 0x00 = 33). Pas de prise en charge sous le rendu sur GPU.

BlendMode.DARKENSélectionne les plus sombres des couleurs élémentaires de l’objet d’affichage et de l’arrière-plan (celles qui ont les valeurs les plus faibles). Ce réglage est généralement utilisé pour les superpositions.

Par exemple, si l’objet d’affichage possède un pixel dont la valeur RVB est 0xFFCC33, et que le pixel d’arrière-plan possède une valeur RVB réglée sur 0xDDF800, la valeur RVB obtenue pour le pixel affiché est 0xDDCC00 (car 0xFF > 0xDD, 0xCC < 0xF8 et 0x33 > 0x00 = 33). Pas de prise en charge sous le rendu sur GPU.

BlendMode.DIFFERENCECompare les couleurs élémentaires de l’objet d’affichage à celles de son arrière-plan et soustrait la valeur la plus sombre des deux couleurs élémentaires de la plus claire. Ce réglage est habituellement utilisé pour obtenir des couleurs plus vibrantes.

Par exemple, si l’objet d’affichage possède un pixel dont la valeur RVB est 0xFFCC33, et le pixel d’arrière-plan possède une valeur RVB réglée sur 0xDDF800, la valeur RVB résultante du pixel affiché est 0x222C33 (parce que 0xFF - 0xDD = 0x22, 0xF8 - 0xCC = 0x2C et 0x33 - 0x00 = 0x33).

BlendMode.ADDAjoute les valeurs des couleurs élémentaires de l’objet d’affichage à celles de son arrière-plan, en appliquant un plafond de 0xFF. Ce réglage est habituellement utilisé pour animer un fondu d’éclaircissement entre deux objets.

Par exemple, si l’objet d’affichage possède un pixel dont la valeur RVB est 0xAAA633, et que le pixel d’arrière-plan possède une valeur RVB réglée sur 0xDD2200, la valeur RVB résultante du pixel affiché est 0xFFC833 (parce que 0xAA + 0xDD > 0xFF, 0xA6 + 0x22 = 0xC8 et 0x33 + 0x00 = 0x33).

BlendMode.SUBTRACTSoustrait les valeurs des couleurs élémentaires de l’objet d’affichage de celles de la couleur d’arrière-plan, en appliquant un plancher de 0. Ce réglage est habituellement utilisé pour animer un fondu de plus en plus sombre entre deux objets.

Par exemple, si l’objet d’affichage possède un pixel dont la valeur RVB est 0xAA2233, et que le pixel d’arrière-plan a une valeur RVB réglée sur 0xDDA600, alors la valeur RVB obtenue pour le pixel affiché est 0x338400 (car 0xDD - 0xAA = 0x33, 0xA6 - 0x22 = 0x84 et 0x00 - 0x33 < 0x00).

BlendMode.INVERTInverse l’arrière-plan.BlendMode.ALPHAApplique la valeur alpha de chaque pixel de l’objet d’affichage à l’arrière-plan. Pour ce faire, le réglage blendMode de l’objet d’affichage parent doit être réglé sur BlendMode.LAYER. Par exemple, dans l’illustration, l’objet d’affichage parent, qui est un arrière-plan blanc, a un paramètre blendMode = BlendMode.LAYER. Pas de prise en charge sous le rendu sur GPU.BlendMode.ERASEEfface l’arrière-plan sur la base de la valeur alpha de l’objet d’affichage. Pour ce faire, le réglage blendMode de l’objet d’affichage parent doit être défini sur BlendMode.LAYER. Par exemple, dans l’illustration, l’objet d’affichage parent, qui est un arrière-plan blanc, a un paramètre blendMode = BlendMode.LAYER. Pas de prise en charge sous le rendu sur GPU.BlendMode.OVERLAYAjuste la couleur de chaque pixel sur la base de l’obscurité de l’arrière-plan. Si l’arrière-plan est plus clair qu’un gris à 50 %, les couleurs de l’objet d’affichage et de l’arrière-plan sont masquées, ce qui donne une couleur plus claire. Si l’arrière-plan est plus foncé qu’un gris à 50 %, les couleurs sont multipliées, ce qui donne une couleur plus sombre. Ce réglage est habituellement utilisé pour les effets d’ombrage. Pas de prise en charge sous le rendu sur GPU.BlendMode.HARDLIGHTAjuste la couleur de chaque pixel sur la base de l’obscurité de l’objet d’affichage. Si l’objet d’affichage est plus clair qu’un gris à 50 %, les couleurs de l’objet d’affichage et de l’arrière-plan sont masquées, ce qui permet d’obtenir une couleur plus claire. Si l’objet d’affichage est plus foncé qu’un gris à 50 %, les couleurs sont multipliées, ce qui donne une couleur plus sombre. Ce réglage est habituellement utilisé pour les effets d’ombrage. Pas de prise en charge sous le rendu sur GPU.BlendMode.SHADERS/OAjuste la couleur à l’aide d’une routine de shader personnalisée. Le shader utilisé est spécifié en tant qu’occurrence Shader affectée à la propriété blendShader. La définition de la propriété blendShader d’un objet d’affichage sur une occurrence Shader définit automatiquement la propriété blendMode de l’objet d’affichage sur BlendMode.SHADER. Si la propriété blendMode est définie sur BlendMode.SHADER sans que la propriété blendShader n’ait été définie auparavant, la propriété blendMode est définie sur BlendMode.NORMAL. Pas de prise en charge sous le rendu sur GPU.
Le code suivant crée deux objets sprite, un carré et un cercle, puis définit le mode de fondu du cercle (au premier plan) sur BlendMode.SUBTRACT lorsque le pointeur survole le cercle : import flash.display.Sprite; import flash.display.BlendMode; import flash.events.MouseEvent; var square:Sprite = new Sprite(); square.graphics.beginFill(0xFF88CC); square.graphics.drawRect(0, 0, 80, 80); addChild(square); var circle:Sprite = new Sprite(); circle.graphics.beginFill(0xAA0022); circle.graphics.drawCircle(40, 40, 40); addChild(circle); circle.addEventListener(MouseEvent.MOUSE_OVER, dimObject); circle.addEventListener(MouseEvent.MOUSE_OUT, restoreObject); function dimObject(event:MouseEvent):void { event.target.blendMode = BlendMode.SUBTRACT; } function restoreObject(event:MouseEvent):void { event.target.blendMode = BlendMode.NORMAL; }
flash.display.BlendModeblendShader
cacheAsBitmapMatrix S’il n’est pas nul, cet objet Matrix définit le mode de rendu d’un objet d’affichage lorsque cacheAsBitmap est définie sur true.flash.geom:MatrixMatrice de transformation utilisée lors du rendu d’une version mise en cache de l’image bitmap de cet objet d’affichage. S’il n’est pas nul, cet objet Matrix définit le mode de rendu d’un objet d’affichage lorsque cacheAsBitmap est définie sur true. L’application utilise cette matrice comme matrice de transformation appliquée lors du rendu de la version bitmap de l’objet d’affichage.

Prise en charge du profil AIR : cette fonctionnalité est prise en charge sur les périphériques mobiles, mais ne l’est pas sur les systèmes d’exploitation de bureau. Il possède également une prise en charge limitée sur les périphériques AIR pour TV. Plus précisément, sur les périphériques AIR pour TV, la prise en charge des transformations inclut la mise à l’échelle et la translation, mais pas la rotation ni l’inclinaison. Voir Prise en charge du profil AIR pour plus d’informations sur la prise en charge de l’API dans plusieurs profils.

Si la propriété cacheAsBitmapMatrix est définie, l’application conserve une image bitmap mise en cache lors de diverses transformations 2D, notamment la translation, la rotation et la mise à l’échelle. Si l’application utilise l’accélération matérielle, l’objet est stocké dans la mémoire vidéo comme texture. Ceci permet au GPU d’appliquer à l’objet les transformations prises en charge. Le processeur graphique peut effectuer ces transformations plus rapidement que l’unité centrale.

Pour utiliser l’accélération matérielle, définissez le rendu sur GPU dans l’onglet Général de la boîte de dialogue Paramètres iPhone de Flash Professional CS5. Vous pouvez également définir la propriété renderMode sur gpu dans le fichier descripteur de l’application. Notez que les périphériques AIR pour TV font automatiquement appel à l’accélération matérielle, si elle est disponible.

Par exemple, le code suivant envoie une représentation bitmap non transformée de l’objet d’affichage au GPU :

matrix:Matrix = new Matrix(); // creates an identity matrix mySprite.cacheAsBitmapMatrix = matrix; mySprite.cacheAsBitmap = true;

Généralement, la matrice d’identité (new Matrix()) suffit. Cependant, vous pouvez utiliser une autre matrice, notamment une matrice réduite, pour charger une autre image bitmap dans le GPU. Par exemple, l’exemple suivant applique une matrice cacheAsBitmapMatrix mise à l’échelle 0,5 sur les axes x et y. L’objet bitmap qu’utilise le processeur graphique est plus petit ; néanmoins, ce dernier ajuste la taille de l’objet en fonction de la propriété transform.matrix de l’objet d’affichage :

matrix:Matrix = new Matrix(); // creates an identity matrix matrix.scale(0.5, 0.5); // scales the matrix mySprite.cacheAsBitmapMatrix = matrix; mySprite.cacheAsBitmap = true;

En règle générale, vous devez sélectionner une matrice permettant de dimensionner l’objet d’affichage à la taille à laquelle il apparaîtra dans l’application. Par exemple, si votre application affiche la version bitmap du sprite réduit de moitié, utilisez une matrice qui réduit de moitié. Si votre application affiche le sprite plus grand que ses dimensions actuelles, utilisez une matrice qui effectue une augmentation à l’aide de ce facteur.

Remarque : la propriété cacheAsBitmapMatrix convient aux transformations 2D. Si vous devez appliquer des transformations en 3D, définissez une propriété 3D de l’objet et manipulez sa propriété transform.matrix3D. Si l’application est mise en package à l’aide du mode GPU, les transformations 3D sont appliquées à l’objet via le GPU. La propriété cacheAsBitmapMatrix est ignorée pour les objets 3D.

L’exemple suivant utilise la propriété cacheAsBitmapMatrix pour appliquer des transformations à une version bitmap du clip my_shape. import flash.geom.Matrix; import flash.display.*; import flash.utils.Timer; var my_shape:MovieClip = new MovieClip(); my_shape.graphics.beginFill(0xCCFF00); my_shape.graphics.drawRect(200, 0, 100, 100); addChild(my_shape); var my_timer:Timer = new Timer(250); my_timer.start(); my_timer.addEventListener(TimerEvent.TIMER, timerHandler); // make sure this Display Object remains cached for all 2D transforms my_shape.cacheAsBitmap = true; my_shape.cacheAsBitmapMatrix = new Matrix(); // rotation variables const initAngle:Number = 0; const pi:Number = 3.142; const incrAngle:Number = pi/10; // scaling variables const initScale:Number = 0.25; const incrScale: Number = 1.1; var initHeight : Number = my_shape.height; var initWidth : Number = my_shape.width; // translation variables var incrX : Number = root.width / 20; var incrY : Number = root.height / 10; // do some initial transforms var tempMat : Matrix = my_shape.transform.matrix; tempMat.rotate(initAngle); tempMat.scale(initScale, initScale); my_shape.transform.matrix = tempMat; function timerHandler(evt:TimerEvent):void { tempMat = my_shape.transform.matrix; tempMat.rotate(incrAngle); tempMat.translate(incrX, incrY); tempMat.scale(incrScale, incrScale); my_shape.transform.matrix = tempMat; // ensure we are still in a reasonable state or reset if(my_shape.height > stage.stageHeight/2) { my_shape.height = initHeight; } if(my_shape.width > stage.stageWidth/2) { my_shape.width = initWidth; } if(my_shape.x > stage.stageWidth) { my_shape.x = 0; } else if (my_shape.x < 0) { my_shape.x = stage.stageWidth; } if(my_shape.y > stage.stageHeight) { my_shape.y = 0; } else if (my_shape.y < 0) { my_shape.y = stage.stageHeight; } }
cacheAsBitmapflash.geom.Matrix3D
cacheAsBitmap Si la valeur true est définie, les moteurs d’exécution de Flash placent en mémoire cache une version bitmap interne de l’objet d’affichage.BooleanIndique si la mise en cache de cet objet DisplayObject sous forme de bitmap est activée ou non. Si la valeur true est définie, les moteurs d’exécution de Flash placent en mémoire cache une version bitmap interne de l’objet d’affichage. Cette mise en cache permet d’améliorer les performances des objets d’affichage qui intègrent du contenu vectoriel complexe.

Toutes les données vectorielles d’un objet d’affichage contenant une image bitmap en mémoire cache sont tracées sur l’image bitmap et non pas sur l’affichage principal. Si la propriété cacheAsBitmapMatrix est définie sur null ou n’est pas prise en charge, l’image bitmap est alors copiée sur l’affichage principal sous forme de pixels non étirés et non pivotés accrochés aux limites de pixels les plus proches. Les correspondances des pixels avec l’objet parent se font selon un rapport de 1 à 1. Si les limites de l’image bitmap changent, elle est recréée au lieu d’être étirée.

Si la propriété cacheAsBitmapMatrix n’est pas nulle et est prise en charge, l’objet est dessiné sur l’image bitmap hors écran à l’aide de cette matrice, et les résultats d’étirement et/ou de rotation de ce rendu sont utilisés pour dessiner l’objet sur l’affichage principal.

Aucune bitmap interne n’est créée sauf si la propriété cacheAsBitmap est définie sur true.

Après avoir défini la propriété cacheAsBitmap du bouton sur true, le rendu ne change pas, bien que l’objet d’affichage procède automatiquement à l’accrochage aux pixels. La vitesse d’animation peut être beaucoup plus importante selon la complexité du contenu vectoriel.

La propriété cacheAsBitmap est définie automatiquement sur true lorsque vous appliquez un filtre à l’objet d’affichage (lorsque son tableau filter n’est pas vide). Lorsqu’un objet d’affichage est filtré, cacheAsBitmap renvoie la valeur true pour cet objet d’affichage, même si vous l’aviez définie sur false. Si vous supprimez tous les filtres d’un objet d’affichage, le réglage cacheAsBitmap à sa position précédente.

Un objet d’affichage n’utilise pas d’image bitmap, même si la propriété cacheAsBitmap est définie sur true et procède au rendu à partir de données vectorielles dans les cas suivants :

  • L’image bitmap est trop grande : dans AIR 1.5 et Flash Player 10, la taille maximale d’une image bitmap est de 8 191 pixels en largeur ou en hauteur, et le nombre total de pixels ne peut pas excéder 16 777 215 pixels (ainsi, si la largeur d’une image bitmap est de 8 191 pixels, sa hauteur maximale doit être de 2 048 pixels). Dans Flash Player 9 et versions antérieures, la limite est de 2 880 pixels de haut sur 2 880 pixels de large.
  • L’image bitmap ne peut être allouée en mémoire (erreur liée à une saturation de la mémoire).

La propriété cacheAsBitmap est utilisée de préférence avec les clips dont le contenu est principalement statique et qui n’est ni redimensionné, ni pivoté de façon fréquente. Avec ce type de clip, cacheAsBitmap permet d’améliorer les performances lors de la conversion (lorsque les positions x et y sont changées).

L’exemple suivant applique un filtre d’ombre portée à une occurrence de l’objet Shape. Il présente ensuite la valeur de la propriété cacheAsBitmap définie sur true lorsqu’un filtre est appliqué : import flash.display.Sprite; import flash.filters.DropShadowFilter var circle:Sprite = new Sprite(); circle.graphics.beginFill(0xAA0022); circle.graphics.drawCircle(40, 40, 40); addChild(circle); trace(circle.cacheAsBitmap); // false var filter:DropShadowFilter = new DropShadowFilter(); circle.filters = [filter]; trace(circle.cacheAsBitmap); // true
cacheAsBitmapMatrixopaqueBackground
filters Tableau indexé contenant tous les objets filtre actuellement associés à l’objet d’affichage.ArrayLorsque filters comprend un ShaderFilter et que le type de sortie du shader n’est pas compatible avec cette opération (le shader doit spécifier une sortie pixel4). ArgumentErrorArgumentErrorLorsque filters comprend un ShaderFilter et que le shader ne spécifie aucune entrée d’image ou que la première entrée n’est pas une entrée image4. ArgumentErrorArgumentErrorLorsque filters comprend un ShaderFilter et que le shader spécifie une entrée d’image n’ont fournie. ArgumentErrorArgumentErrorLorsque filters comprend une occurrence de ShaderFilter, ByteArray ou Vector.<Number> en tant qu’entrée de shader, et les propriétés width et height ne sont pas spécifiées pour l’objet ShaderInput, ou les valeurs spécifiées ne correspondent pas à la quantité de données dans les données d’entrée. Voir la propriété ShaderInput.input pour plus d’informations. ArgumentErrorArgumentError Tableau indexé contenant tous les objets filtre actuellement associés à l’objet d’affichage. Le package flash.filters contient plusieurs classes qui définissent des filtres spécifiques.

Ces filtres peuvent s’appliquer dans Flash Professional pendant la phase de conception ou d’exécution à l’aide du code ActionScript. Pour appliquer un filtre avec ActionScript, vous devez créer une copie temporaire de l’intégralité du tableau filters, modifier le tableau temporaire, puis reporter les valeurs de ce tableau temporaire dans le tableau filters. Vous ne pouvez pas ajouter directement un nouvel objet filtre au tableau filters.

Pour ajouter un filtre à l’aide du code ActionScript, exécutez les opérations suivantes (supposons que l’objet d’affichage cible est appelé myDisplayObject) :

  1. Créez un objet filtre avec la méthode constructeur de la classe de filtre choisie.
  2. Assignez la valeur du tableau myDisplayObject.filters à un tableau temporaire, tel que celui qui est nommé myFilters.
  3. Ajoutez le nouvel objet filtre au tableau temporaire, myFilters.
  4. Affectez la valeur du tableau temporaire au tableau myDisplayObject.filters.

Si le tableau filters n’est pas défini, il n’est pas nécessaire d’utiliser un tableau temporaire. Par contre, vous pouvez affecter directement un littéral de tableau contenant un ou plusieurs des objets filtre que vous avez créés. Le premier exemple de la section Exemples ajoute un filtre d’ombre portée à l’aide du code qui traite à la fois les tableaux de filters définis et non définis.

Pour modifier un objet filtre, vous devez utiliser la technique de modification d’une copie du tableau filters :

  1. Assignez la valeur du tableau filters à un tableau temporaire, tel que celui qui est nommé myFilters.
  2. Modifiez la propriété avec le tableau temporaire, myFilters. Par exemple, pour définir la propriété quality du premier filtre du tableau, utilisez le code suivant : myFilters[0].quality = 1;
  3. Affectez la valeur du tableau temporaire au tableau filters.

Lors du chargement, si un objet d’affichage est associé à un filtre, ce bouton se place en mémoire cache en tant qu’image bitmap transparente. A partir de ce stade, tant que le clip possède une liste de filtres valide, le lecteur place le clip en mémoire cache au format bitmap. Cette image bitmap source est ensuite reprise en tant qu’image source pour les effets de filtrage. Tout objet d’affichage comporte généralement deux bitmaps : le premier avec l’objet d’affichage source non filtré d’origine et un autre pour l’image finale après filtrage. L’image finale est utilisée pour le rendu. Tant que l’objet d’affichage ne change pas, l’image source ne nécessite aucune mise à jour.

Le package flash.filters contient des classes de filtres. Par exemple, pour créer un filtre DropShadow, vous devez écrire le code suivant :

import flash.filters.DropShadowFilter var myFilter:DropShadowFilter = new DropShadowFilter (distance, angle, color, alpha, blurX, blurY, quality, inner, knockout)

Vous pouvez utiliser l’opérateur is pour déterminer le type de filtre affecté à chaque position d’index dans le tableau filter. Par exemple, le code suivant indique comment déterminer la position du premier filtre dans le tableau filters qui est DropShadowFilter :

import flash.text.TextField; import flash.filters.~~; var tf:TextField = new TextField(); var filter1:DropShadowFilter = new DropShadowFilter(); var filter2:GradientGlowFilter = new GradientGlowFilter(); tf.filters = [filter1, filter2]; tf.text = "DropShadow index: " + filterPosition(tf, DropShadowFilter).toString(); // 0 addChild(tf) function filterPosition(displayObject:DisplayObject, filterClass:Class):int { for (var i:uint = 0; i < displayObject.filters.length; i++) { if (displayObject.filters[i] is filterClass) { return i; } } return -1; }

Remarque : comme vous ne pouvez pas appliquer directement un nouvel objet filtre au tableau DisplayObject.filters, le code suivant n’a pas d’effet sur l’objet d’affichage cible, appelé myDisplayObject :

myDisplayObject.filters.push(myDropShadow);
Package flash.filtersflash.display.ShaderInput.input
height Indique la hauteur de l’objet d’affichage, en pixels.Number Indique la hauteur de l’objet d’affichage, en pixels. La hauteur est calculée en fonction des limites du contenu de l’objet d’affichage. Lorsque vous définissez la propriété height, la propriété scaleY est ajustée en conséquence, comme illustré dans le code suivant : var rect:Shape = new Shape(); rect.graphics.beginFill(0xFF0000); rect.graphics.drawRect(0, 0, 100, 100); trace(rect.scaleY) // 1; rect.height = 200; trace(rect.scaleY) // 2;

A l’exception des objets TextField et Video, un objet d’affichage sans contenu (comme un sprite vide) a une hauteur de 0, même si vous essayez de définir height sur une valeur différente.

Le code suivant crée deux objets TextField et règle la propriété height de chacun en fonction de leur propriété textHeight ; il place également le deuxième champ de texte en définissant sa propriété y : import flash.text.TextField; var tf1:TextField = new TextField(); tf1.text = "Text Field 1"; tf1.border = true; tf1.wordWrap = true; tf1.width = 40; tf1.height = tf1.textHeight + 5; addChild(tf1); var tf2:TextField = new TextField(); tf2.text = "Text Field 2"; tf2.border = true; tf2.wordWrap = true; tf2.width = 40; tf2.height = tf2.textHeight + 5; tf2.y = tf1.y + tf1.height + 5; addChild(tf2);
loaderInfo Renvoie un objet LoaderInfo qui contient des informations relatives au chargement du fichier auquel appartient cet objet d’affichage.flash.display:LoaderInfo Renvoie un objet LoaderInfo qui contient des informations relatives au chargement du fichier auquel appartient cet objet d’affichage. La propriété loaderInfo est définie uniquement pour l’objet d’affichage racine d’un fichier SWF ou d’une image bitmap chargée (et non pas d’une image bitmap dessinée avec le code ActionScript). Pour trouver l’objet loaderInfo associé avec le fichier SWF qui contient un objet d’affichage myDisplayObject, utilisez myDisplayObject.root.loaderInfo.

Un grand fichier SWF peut superviser son téléchargement en appelant this.root.loaderInfo.addEventListener(Event.COMPLETE, func).

Le code suivant suppose que this se rapporte à un objet d’affichage. Le code renvoie l’URL du fichier SWF racine pour l’objet d’affichage : trace (this.loaderInfo.url);
Classe LoaderInfo
mask L’objet d’affichage appelant est masqué par l’objet mask spécifié.flash.display:DisplayObjectDéfinit un masque pour l’objet d’affichage. L’objet d’affichage appelant est masqué par l’objet mask spécifié. Afin de vous assurer que le masquage fonctionne lorsque la scène est redimensionnée, l’objet d’affichage mask doit figurer dans la section active de la liste d’affichage. L’objet mask en tant que tel n’est pas dessiné. Réglez mask sur null pour supprimer le masque.

Pour pouvoir redimensionner un objet masque, il doit figurer dans la liste d’affichage. Pour faire glisser un objet Sprite de masque (à l’aide de sa méthode startDrag()), vous devez placer ce dernier dans la liste d’affichage. Pour appeler la méthode startDrag() d’un sprite de masque en fonction d’un événement mouseDown en cours de distribution par le sprite, définissez la propriété buttonMode du sprite sur true.

Lorsque les objets d’affichage sont mis en cache en définissant la propriété cacheAsBitmap sur true et la propriété cacheAsBitmapMatrix sur un objet Matrix, le masque et l’objet d’affichage en cours de masquage doivent appartenir à la même image bitmap en mémoire cache. Par conséquent, si l’objet d’affichage est mis en cache, le masque doit être un enfant de l’objet d’affichage. Si un ancêtre de l’objet d’affichage sur la liste d’affichage est mis en cache, le masque doit être un enfant de cet ancêtre ou de l’un de ses descendants. Si plusieurs ancêtres de l’objet masqué sont mis en cache, le masque doit être un descendant du conteneur mis en cache le plus proche de l’objet masqué dans la liste d’affichage.

Remarque : un seul objet mask ne peut être utilisé pour masquer plusieurs objets d’affichage appelants. Lorsque mask est affecté à un deuxième objet d’affichage, il est supprimé du masque du premier objet et la propriété mask de cet objet devient null.

Le code suivant crée un objet TextField, ainsi qu’un objet Sprite qui est défini en tant que masque pour l’objet TextField. Lorsque l’utilisateur clique sur le champ de texte, la fonction écouteur d’événement drag() appelle la méthode startDrag() de l’objet Sprite de masque : import flash.text.TextField; import flash.display.Sprite; import flash.events.MouseEvent; var tf:TextField = new TextField(); tf.text = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, " + "sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. " tf.selectable = false; tf.wordWrap = true; tf.width = 150; addChild(tf); var square:Sprite = new Sprite(); square.graphics.beginFill(0xFF0000); square.graphics.drawRect(0, 0, 40, 40); addChild(square); tf.mask = square; tf.addEventListener(MouseEvent.MOUSE_DOWN, drag); tf.addEventListener(MouseEvent.MOUSE_UP, noDrag); function drag(event:MouseEvent):void { square.startDrag(); } function noDrag(event:MouseEvent):void { square.stopDrag(); }
mouseX Indique la coordonnée x de la souris ou ou la position du périphérique de saisie utilisateur, en pixels.Number Indique la coordonnée x de la souris ou ou la position du périphérique de saisie utilisateur, en pixels.

Remarque : si vous avez fait pivoter un objet DisplayObject, la coordonnée x renvoyée reflète l’objet non pivoté.

Le code suivant crée un objet Sprite et suit les positions mouseX et mouseY lorsque l’utilisateur clique sur le sprite : import flash.display.Sprite; import flash.events.MouseEvent; var square:Sprite = new Sprite(); square.graphics.beginFill(0xFF0000); square.graphics.drawRect(0, 0, 200, 200); addChild(square); square.addEventListener(MouseEvent.CLICK, traceCoordinates); function traceCoordinates(event:MouseEvent):void { trace(square.mouseX, square.mouseY); }
mouseY Indique la coordonnée y de la souris ou la position du périphérique de saisie utilisateur, en pixels.Number Indique la coordonnée y de la souris ou la position du périphérique de saisie utilisateur, en pixels.

Remarque : si vous avez fait pivoter un objet DisplayObject, la coordonnée y renvoyée reflète l’objet non pivoté.

Le code suivant crée un objet Sprite et suit les positions mouseX et mouseY lorsque l’utilisateur clique sur le sprite : import flash.display.Sprite; import flash.events.MouseEvent; var square:Sprite = new Sprite(); square.graphics.beginFill(0xFF0000); square.graphics.drawRect(0, 0, 200, 200); addChild(square); square.addEventListener(MouseEvent.CLICK, traceCoordinates); function traceCoordinates(event:MouseEvent):void { trace(square.mouseX, square.mouseY); }
name Indique le nom d’occurrence de DisplayObject.StringSi vous tentez de définir cette propriété sur un objet qui a été placé dans le scénario de l’outil de création de Flash. IllegalOperationErrorflash.errors:IllegalOperationErrorNom de cette occurrence de DisplayObject. Indique le nom d’occurrence de DisplayObject. L’objet peut être identifié dans la liste d’enfants de son conteneur d’objet d’affichage parent en appelant la méthode getChildByName() du conteneur de l’objet d’affichage. Le code suivant crée deux objets Sprite et suit la propriété name associée lorsque l’utilisateur clique sur l’un des objets : import flash.display.Sprite; import flash.events.MouseEvent; var circle1:Sprite = new Sprite(); circle1.graphics.beginFill(0xFF0000); circle1.graphics.drawCircle(40, 40, 40); circle1.name = "circle1"; addChild(circle1); circle1.addEventListener(MouseEvent.CLICK, traceName); var circle2:Sprite = new Sprite(); circle2.graphics.beginFill(0x0000FF); circle2.graphics.drawCircle(140, 40, 40); circle2.name = "circle2"; addChild(circle2); circle2.addEventListener(MouseEvent.CLICK, traceName); function traceName(event:MouseEvent):void { trace(event.target.name); } opaqueBackground Indique si l’objet d’affichage est opaque avec une couleur d’arrière-plan spécifique.Object Indique si l’objet d’affichage est opaque avec une couleur d’arrière-plan spécifique. Une image bitmap transparente contient des données de canal alpha et est dessinée de façon transparente. Une image bitmap opaque ne comporte pas de canal alpha (et procède au rendu plus rapidement qu’avec une image bitmap transparente). Si l’image bitmap est opaque, vous spécifiez la couleur d’arrière-plan à utiliser.

Si elle est réglée sur une valeur numérique, la surface est opaque (et non transparente) et la couleur d’arrière-plan RVB correspond au nombre spécifié. Si défini sur null (la valeur par défaut), l’objet d’affichage a un arrière-plan transparent.

La propriété opaqueBackground est conçue principalement pour l’utilisation avec la propriété cacheAsBitmap, pour l’optimisation du rendu. Pour les objets d’affichage dont la propriété cacheAsBitmap est définie sur true, le paramètre opaqueBackground peut améliorer les performances de rendu.

La zone opaque d’arrière-plan n’est pas prise comme référence lors de l’appel de la méthode hitTestPoint() avec le paramètre shapeFlag défini sur true.

La zone d’arrière-plan opaque ne réagit pas aux événements de souris.

Le code suivant crée un objet Shape avec un cercle bleu et définit sa propriété opaqueBackground sur rouge (0xFF0000) : import flash.display.Shape; var circle:Shape = new Shape(); circle.graphics.beginFill(0x0000FF); circle.graphics.drawCircle(40, 40, 40); circle.opaqueBackground = 0xFF0000; addChild(circle);
cacheAsBitmaphitTestPoint()
parent Indique l’objet DisplayObjectContainer qui contient l’objet d’affichage.flash.display:DisplayObjectContainerL’objet d’affichage parent appartient à un sandbox de sécurité auquel vous n’avez pas accès. Pour éviter ce cas de figure, faites en sorte que l’animation parent appelle la méthode Security.allowDomain(). SecurityErrorSecurityError Indique l’objet DisplayObjectContainer qui contient l’objet d’affichage. Appliquez la propriété parent pour spécifier un chemin relatif vers les objets d’affichage qui figurent au-dessus de l’objet d’affichage actuel dans la hiérarchie de liste d’affichage.

Vous pouvez utiliser parent pour remonter de plusieurs niveaux dans l’arborescence de la liste d’affichage, comme dans l’exemple suivant :

this.parent.parent.alpha = 20;
Le code suivant crée trois objets Sprite et indique comment la propriété parent doit refléter la hiérarchie de la liste d’affichage : import flash.display.Sprite; var sprite1:Sprite = new Sprite(); sprite1.name = "sprite1"; var sprite2:Sprite = new Sprite(); sprite2.name = "sprite2"; var sprite3:Sprite = new Sprite(); sprite3.name = "sprite3"; sprite1.addChild(sprite2); sprite2.addChild(sprite3); trace(sprite2.parent.name); // sprite1 trace(sprite3.parent.name); // sprite2 trace(sprite3.parent.parent.name); // sprite1
root Pour un objet d’affichage résidant dans un fichier SWF chargé, la propriété root correspond à l’objet d’affichage de premier niveau dans la partie de la structure arborescente de la liste d’affichage représentée par ce fichier.flash.display:DisplayObjectRenvoie l’objet d’affichage racine associé à l’objet. Pour un objet d’affichage résidant dans un fichier SWF chargé, la propriété root correspond à l’objet d’affichage de premier niveau dans la partie de la structure arborescente de la liste d’affichage représentée par ce fichier. Pour un objet Bitmap représentant un fichier d’image chargé, la propriété root correspond à l’objet Bitmap lui-même. Pour l’occurrence de la classe principale du premier fichier SWF chargé, la propriété root correspond à l’objet d’affichage lui-même. La propriété root de l’objet Stage correspond à l’objet Stage en tant que tel. La propriété root est définie sur null pour tout objet d’affichage qui n’a pas été ajouté à la liste d’affichage, sauf s’il a été ajouté à un conteneur d’objet d’affichage qui ne rentre pas dans le cadre de la liste d’affichage, mais qui est un enfant de l’objet d’affichage de plus haut niveau dans un fichier SWF chargé.

Par exemple, si vous créez un nouvel objet Sprite en appelant la méthode de constructeur Sprite(), sa propriété root reste null jusqu’à ce qu’elle soit ajoutée à la liste d’affichage (ou pour un conteneur d’objet d’affichage qui ne rentre pas dans le cadre de la liste d’affichage, mais qui est un enfant de l’objet d’affichage de plus haut niveau dans un fichier SWF chargé).

Pour un fichier SWF chargé, même si l’objet Loader utilisé pour charger le fichier ne figure pas dans la liste d’affichage, l’objet d’affichage de plus haut niveau du fichier SWF voit sa propriété root définie sur lui-même. La propriété root de l’objet Loader n’est pas définie tant qu’elle n’est pas ajoutée en tant qu’enfant de l’objet d’affichage pour lequel la propriété root est définie.

Le code suivant indique la différence entre la propriété root de l’objet Stage, pour un objet d’affichage (un objet Loader) qui n’est pas chargé (avant et après avoir été ajouté à la liste d’affichage) et pour un objet chargé (un objet Bitmap chargé) : import flash.display.Loader; import flash.net.URLRequest; import flash.events.Event; trace(stage.root); // [object Stage] var ldr:Loader = new Loader(); trace (ldr.root); // null addChild(ldr); trace (ldr.root); // [object ...] var urlReq:URLRequest = new URLRequest("example.jpg"); ldr.load(urlReq); ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, loaded); function loaded(event:Event):void { trace(ldr.content.root); // [object Bitmap] }
rotationX Indique la rotation de l’axe des x de l’occurrence DisplayObject, en degrés, à partir de son orientation d’origine par rapport au conteneur 3D parent.Number Indique la rotation de l’axe des x de l’occurrence DisplayObject, en degrés, à partir de son orientation d’origine par rapport au conteneur 3D parent. Les valeurs comprises entre 0 et 180 représentent la rotation en sens horaire ; les valeurs comprises entre 0 et -180 représentent la rotation en sens anti-horaire. Les valeurs hors de cette plage sont ajoutées ou soustraites de 360 pour obtenir une valeur comprise dans la plage. Dans cet exemple, deux ellipses pivotent grâce à leurs propriétés rotationX et rotationY. Le point d’alignement de la première ellipse est défini en son centre. Elle pivote sur elle-même. La deuxième ellipse pivote autour d’un point externe. package { import flash.display.MovieClip; import flash.display.Shape; import flash.geom.*; import flash.display.Graphics; import flash.events.TimerEvent; import flash.utils.Timer; public class RotationExample1 extends MovieClip { private var ellipse:Shape = new Shape(); private var speed:int = 10; private var ellipse1:Shape; private var ellipse2:Shape; public function RotationExample1():void { ellipse1 = drawEllipse(-50, -40, (this.stage.stageWidth / 2), (this.stage.stageHeight / 2)); ellipse2 = drawEllipse(30, 40, (this.stage.stageWidth / 2), (this.stage.stageHeight / 2)); this.addChild(ellipse1); this.addChild(ellipse2); var t:Timer = new Timer(50); t.addEventListener(TimerEvent.TIMER, timerHandler); t.start(); } private function drawEllipse(x1, y1, x2, y2):Shape { var e:Shape = new Shape(); e.graphics.beginFill(0xFF0000); e.graphics.lineStyle(2); e.graphics.drawEllipse(x1, y1, 100, 80); e.graphics.endFill(); e.x = x2; e.y = y2; e.z = 1; return e; } private function timerHandler(event:TimerEvent):void { ellipse1.rotationY += speed; ellipse1.rotationX -= speed; ellipse2.rotationY += speed; ellipse2.rotationX -= speed; } } } L’exemple suivant explique comment faire pivoter en 3D un objet Sprite autour de son axe x avec Flash Professional, ActionScript 3.0 et Flash Player 10 en définissant la propriété rotationX de l’objet. Exemple fourni par ActionScriptExamples.com. //Requires: // - Slider control UI component in Flash library. // - Publish for Flash Player 10. // [SWF(width="400", height="300")] import fl.controls.Slider; import fl.controls.SliderDirection; import fl.events.SliderEvent; var slider:Slider = new Slider(); slider.direction = SliderDirection.HORIZONTAL; slider.minimum = 0; slider.maximum = 360; slider.value = 45; slider.tickInterval = 45; slider.snapInterval = 1; slider.liveDragging = true; slider.addEventListener(SliderEvent.CHANGE, slider_change); slider.move(10, 10); addChild(slider); var spr:Sprite = new Sprite(); spr.graphics.lineStyle(2, 0xFF0000); spr.graphics.drawRect(0, 0, 100, 80); spr.x = Math.round((stage.stageWidth - spr.width)/2); spr.y = Math.round((stage.stageHeight - spr.height)/2); spr.rotationX = 45; addChild(spr); function slider_change(evt:SliderEvent):void { spr.rotationX = evt.value; } rotationY Indique la rotation de l’axe des y de l’occurrence DisplayObject, en degrés, à partir de son orientation d’origine par rapport au conteneur 3D parent.Number Indique la rotation de l’axe des y de l’occurrence DisplayObject, en degrés, à partir de son orientation d’origine par rapport au conteneur 3D parent. Les valeurs comprises entre 0 et 180 représentent la rotation dans le sens des aiguilles d’une montre ; les valeurs comprises entre 0 et -180 représentent la rotation dans le sens inverse des aiguilles d’une montre. Les valeurs hors de cette plage sont ajoutées ou soustraites de 360 pour obtenir une valeur comprise dans la plage. Dans cet exemple, deux ellipses pivotent grâce à leurs propriétés rotationX et rotationY. Le point d’alignement de la première ellipse est défini en son centre. Elle pivote sur elle-même. La deuxième ellipse pivote autour d’un point externe. package { import flash.display.MovieClip; import flash.display.Shape; import flash.geom.*; import flash.display.Graphics; import flash.events.TimerEvent; import flash.utils.Timer; public class RotationExample1 extends MovieClip { private var ellipse:Shape = new Shape(); private var speed:int = 10; private var ellipse1:Shape; private var ellipse2:Shape; public function RotationExample1():void { ellipse1 = drawEllipse(-50, -40, (this.stage.stageWidth / 2), (this.stage.stageHeight / 2)); ellipse2 = drawEllipse(30, 40, (this.stage.stageWidth / 2), (this.stage.stageHeight / 2)); this.addChild(ellipse1); this.addChild(ellipse2); var t:Timer = new Timer(50); t.addEventListener(TimerEvent.TIMER, timerHandler); t.start(); } private function drawEllipse(x1, y1, x2, y2):Shape { var e:Shape = new Shape(); e.graphics.beginFill(0xFF0000); e.graphics.lineStyle(2); e.graphics.drawEllipse(x1, y1, 100, 80); e.graphics.endFill(); e.x = x2; e.y = y2; e.z = 1; return e; } private function timerHandler(event:TimerEvent):void { ellipse1.rotationY += speed; ellipse1.rotationX -= speed; ellipse2.rotationY += speed; ellipse2.rotationX -= speed; } } } rotationZ Indique la rotation de l’axe des z de l’occurrence DisplayObject, en degrés, à partir de son orientation d’origine par rapport au conteneur 3D parent.Number Indique la rotation de l’axe des z de l’occurrence DisplayObject, en degrés, à partir de son orientation d’origine par rapport au conteneur 3D parent. Les valeurs comprises entre 0 et 180 représentent la rotation en sens horaire ; les valeurs comprises entre 0 et -180 représentent la rotation en sens anti-horaire. Les valeurs hors de cette plage sont ajoutées ou soustraites de 360 pour obtenir une valeur comprise dans la plage. rotation Indique la rotation de l’occurrence de DisplayObject, en degrés, à partir de son orientation d’origine.Number Indique la rotation de l’occurrence de DisplayObject, en degrés, à partir de son orientation d’origine. Les valeurs comprises entre 0 et 180 représentent la rotation en sens horaire ; les valeurs comprises entre 0 et -180 représentent la rotation en sens anti-horaire. Les valeurs hors de cette plage sont ajoutées ou soustraites de 360 pour obtenir une valeur comprise dans la plage. Par exemple, l’instruction my_video.rotation = 450 correspond à my_video.rotation = 90. Le code suivant crée un objet Sprite et le fait pivoter lorsque l’utilisateur clique dessus : import flash.display.Sprite; import flash.events.MouseEvent; var square:Sprite = new Sprite(); square.graphics.beginFill(0xFFCC00); square.graphics.drawRect(-50, -50, 100, 100); square.x = 150; square.y = 150; addChild(square); square.addEventListener(MouseEvent.CLICK, rotate); function rotate(event:MouseEvent):void { square.rotation += 15; } scale9Grid Grille de mise à l’échelle en vigueur.flash.geom:RectangleSi vous transmettez un argument non valide à la méthode. ArgumentErrorArgumentError Grille de mise à l’échelle en vigueur. Si la valeur est définie sur null, tout l’objet d’affichage est alors dimensionné normalement lorsqu’une transformation par redimensionnement est appliquée.

Lorsque vous définissez une propriété scale9Grid, l’objet d’affichage est divisé dans une grille comportant neuf zones, en fonction du rectangle scale9Grid, qui définit le centre de la grille. La grille est constituée des huit autres zones suivantes :

  • le coin supérieur gauche, en dehors du rectangle,
  • la zone située au-dessus du rectangle,
  • le coin supérieur droit, en dehors du rectangle,
  • la zone située à gauche du rectangle,
  • la zone située à droite du rectangle,
  • le coin inférieur gauche, en dehors du rectangle,
  • la zone située au-dessous du rectangle,
  • le coin inférieur droit, en dehors du rectangle.

Les huit zones entourant la partie centrale (définie par le rectangle) peuvent être conçues comme un cadre qui bénéficie de règles spécifiques de redimensionnement.

Lorsque la propriété scale9Grid est définie et qu’un objet d’affichage est redimensionné, la totalité du texte et les dégradés sont dimensionnés normalement ; toutefois, les règles suivantes s’appliquent pour les autres types d’objets :

  • Le contenu de la zone centrale est redimensionné normalement.
  • Le contenu apparaissant dans les coins n’est pas redimensionné.
  • Le contenu des zones supérieures et inférieures est redimensionné horizontalement uniquement. Le contenu apparaissant dans les zones de gauche et de droite est redimensionné verticalement uniquement.
  • Tous les remplissages (ce qui inclut les bitmaps, les vidéos et les dégradés) sont étirés pour remplir leur forme.

Si vous faites pivoter un objet d’affichage, tout redimensionnement effectué ultérieurement est normal et la propriété scale9Grid est ignorée.

Par exemple, considérez l’objet d’affichage suivant et un rectangle qui lui est appliqué en tant que propriété scale9Grid :

Objet d’affichage.

Le rectangle rouge représente la zone couverte par scale9Grid.

Lorsque l’objet d’affichage est redimensionné ou étiré, les objets placés dans le rectangle se redimensionnent normalement. Par contre, les objets situés en dehors du rectangle sont redimensionnés selon les règles de scale9Grid :

Redimensionné à 75 % :Redimensionné à 50 % :Redimensionné à 25 % :Etiré à l’horizontal à 150 % :

L’une des principales utilisations de scale9Grid consiste à définir un objet d’affichage en tant que composant où les zones de bordure conservent la même largeur lorsque le composant est redimensionné.

Le code suivant crée un objet Shape avec un rectangle dessiné dans sa propriété graphics. La ligne de bordure du rectangle fait 20 pixels de large et est remplie par un dégradé. Cet événement d’horloge appelle la fonction scale(), qui redimensionne l’objet Shape en réglant les propriétés scaleX et scaleY. La propriété scale9Grid appliquée à l’objet Shape empêche le redimensionnement de la ligne de bordure de l’écran, seul le remplissage en dégradé est redimensionné : import flash.display.Shape; import flash.display.GradientType; import flash.display.SpreadMethod; import flash.display.InterpolationMethod; import flash.geom.Matrix; import flash.geom.Rectangle; import flash.utils.Timer; import flash.events.TimerEvent; var square:Shape = new Shape(); square.graphics.lineStyle(20, 0xFFCC00); var gradientMatrix:Matrix = new Matrix(); gradientMatrix.createGradientBox(15, 15, Math.PI, 10, 10); square.graphics.beginGradientFill(GradientType.RADIAL, [0xffff00, 0x0000ff], [100, 100], [0, 0xFF], gradientMatrix, SpreadMethod.REFLECT, InterpolationMethod.RGB, 0.9); square.graphics.drawRect(0, 0, 100, 100); var grid:Rectangle = new Rectangle(20, 20, 60, 60); square.scale9Grid = grid ; addChild(square); var tim:Timer = new Timer(100); tim.start(); tim.addEventListener(TimerEvent.TIMER, scale); var scaleFactor:Number = 1.01; function scale(event:TimerEvent):void { square.scaleX *= scaleFactor; square.scaleY *= scaleFactor; if (square.scaleX > 2.0) { scaleFactor = 0.99; } if (square.scaleX < 1.0) { scaleFactor = 1.01; } }
flash.geom.Rectangle
scaleX Indique l’échelle horizontale (pourcentage) de l’objet telle qu’elle est appliquée à partir du point d’alignement.Number Indique l’échelle horizontale (pourcentage) de l’objet telle qu’elle est appliquée à partir du point d’alignement. Le point d’alignement par défaut est (0,0). 1.0 correspond à une échelle 100 %.

La mise à l’échelle du système de coordonnées local modifie les valeurs des propriétés x et y définies en pixels.

Le code suivant crée un objet Sprite avec un rectangle dessiné dans sa propriété graphics. Le fait de cliquer sur le sprite, entraîne son redimensionnement par un facteur de 10 % : import flash.display.Sprite; import flash.events.MouseEvent; var square:Sprite = new Sprite(); square.graphics.beginFill(0xFFCC00); square.graphics.drawRect(0, 0, 100, 100); addChild(square); square.addEventListener(MouseEvent.CLICK, scale); function scale(event:MouseEvent):void { square.scaleX *= 1.10; square.scaleY *= 1.10; }
scaleY Indique l’échelle verticale (pourcentage) de l’objet telle qu’elle est appliquée à partir du point d’alignement.Number Indique l’échelle verticale (pourcentage) de l’objet telle qu’elle est appliquée à partir du point d’alignement. Le point d’alignement par défaut est (0,0). 1.0 correspond à une échelle 100 %.

La mise à l’échelle du système de coordonnées local modifie les valeurs des propriétés x et y définies en pixels.

Le code suivant crée un objet Sprite avec un rectangle dessiné dans sa propriété graphics. Le fait de cliquer sur le sprite, entraîne son redimensionnement par un facteur de 10 % : import flash.display.Sprite; import flash.events.MouseEvent; var square:Sprite = new Sprite(); square.graphics.beginFill(0xFFCC00); square.graphics.drawRect(0, 0, 100, 100); addChild(square); square.addEventListener(MouseEvent.CLICK, scale); function scale(event:MouseEvent):void { square.scaleX *= 1.10; square.scaleY *= 1.10; }
scaleZ Indique l’échelle de profondeur (pourcentage) de l’objet tel qu’elle est appliquée à partir du point d’alignement.Number Indique l’échelle de profondeur (pourcentage) de l’objet tel qu’elle est appliquée à partir du point d’alignement. Le point d’alignement par défaut est (0,0). 1.0 correspond à une échelle 100 %.

La mise à l’échelle du système de coordonnées local modifie les valeurs des propriétés x, y et z définies en pixels.

z
scrollRect Cadre de sélection du défilement de l’objet d’affichage.flash.geom:Rectangle Cadre de sélection du défilement de l’objet d’affichage. L’objet d’affichage est recadré en fonction de la taille définie par le rectangle et il défile au sein de ce dernier lorsque vous modifiez les propriétés x et y de l’objet scrollRect.

Les propriétés de l’objet rectangle scrollRect reprennent l’espace de coordonnées de l’objet d’affichage et sont redimensionnées tout comme l’objet d’affichage global. Les angles de la fenêtre recadrée de l’objet d’affichage avec défilement correspondent à l’origine de l’objet d’affichage (0,0) et le point défini par la largeur et la hauteur du rectangle. Ils ne sont pas centrés autour de l’origine, mais utilisent cette dernière pour définir le coin supérieur gauche de la zone. L’objet d’affichage avec défilement se fait toujours par pixels entiers.

Vous pouvez faire défiler un objet vers la gauche ou la droite en définissant la propriété x de l’objet rectangle scrollRect. Vous pouvez faire défiler un objet vers le haut ou le bas en définissant la propriété y de l’objet rectangle scrollRect. Si l’objet d’affichage subit une rotation de 90° et que vous le faites défiler vers la gauche ou vers la droite, il défile en fait vers le haut ou vers le bas.

L’exemple suivant indique comment la propriété scrollRect définit la zone de défilement d’un objet d’affichage, circle . Lorsque vous cliquez sur l’objet circle, la méthode de gestionnaire d’événements clicked() ajuste la coordonnée y de la propriété scrollRect de l’objet circle, ce qui entraîne le défilement de l’objet vers le bas : import flash.display.Sprite; import flash.geom.Rectangle; import flash.events.MouseEvent; var circle:Sprite = new Sprite(); circle.graphics.beginFill(0xFFCC00); circle.graphics.drawCircle(200, 200, 200); circle.scrollRect = new Rectangle(0, 0, 200, 200); addChild(circle); circle.addEventListener(MouseEvent.CLICK, clicked); function clicked(event:MouseEvent):void { var rect:Rectangle = event.target.scrollRect; rect.y -= 5; event.target.scrollRect = rect; }
flash.geom.Rectangle
stage Scène de l’objet d’affichage.flash.display:Stage Scène de l’objet d’affichage. L’application d’un moteur d’exécution de Flash ne possède qu’un seul objet Stage. Par exemple, vous pouvez créer et charger plusieurs objets d’affichage dans la liste d’affichage. La propriété stage de chaque objet d’affichage se rapporte au même objet Stage (même si l’objet d’affichage appartient à un fichier SWF chargé).

Si un objet d’affichage n’est pas ajouté à la liste d’affichage, sa propriété stage est définie sur null.

Le code suivant crée deux objets TextField et exploite la propriété width de l’objet Stage pour placer les champs de texte : import flash.text.TextField; var tf1:TextField = new TextField(); tf1.text = "Text Field 1"; tf1.border = true; tf1.x = 10; addChild(tf1); tf1.width = tf1.stage.stageWidth / 2 - 10; var tf2:TextField = new TextField(); tf2.text = "Text Field 2"; tf2.border = true; tf2.x = tf1.x + tf1.width + 5; addChild(tf2); tf2.width = tf2.stage.stageWidth / 2 - 10; trace(stage.stageWidth);
transform Objet dont les propriétés se rapportent à la matrice, à la transformation des couleurs et aux limites des pixels d’un objet d’affichage.flash.geom:Transform Objet dont les propriétés se rapportent à la matrice, à la transformation des couleurs et aux limites des pixels d’un objet d’affichage. Les propriétés spécifiques, telles que matrix, colorTransform et trois propriétés en lecture seule (concatenatedMatrix, concatenatedColorTransform et pixelBounds) sont décrites dans la section relative à la classe Transform.

Chacune des propriétés de l’objet transform constitue un objet. Ce concept est important dans la mesure où la seule façon de définir de nouvelles valeurs pour les objets matrix ou colorTransform consiste à créer un objet et à le copier dans la propriété transform.matrix ou transform.colorTransform.

Par exemple, pour augmenter la valeur tx d’une matrice d’objet d’affichage, vous devez copier l’ensemble de l’objet de la matrice, puis copier le nouvel objet dans la propriété matrix de l’objet transform :


    var myMatrix:Matrix = myDisplayObject.transform.matrix;  
    myMatrix.tx += 10; 
    myDisplayObject.transform.matrix = myMatrix;  
    

Vous ne pouvez pas définir directement la propriété tx. Le code suivant n’a pas d’effet sur myDisplayObject :


    myDisplayObject.transform.matrix.tx += 10;
    

Vous pouvez copier un objet transform et l’associer à la propriété transform d’un autre objet d’affichage. Par exemple, le code suivant copie l’objet transform dans son intégralité, de myOldDisplayObj à myNewDisplayObj :

myNewDisplayObj.transform = myOldDisplayObj.transform;

Le nouvel objet d’affichage qui en résulte, myNewDisplayObj, dispose désormais des mêmes valeurs pour ses paramètres de matrice, transformation de couleurs et limites de pixels que l’ancien objet d’affichage, myOldDisplayObj.

Notez que les périphériques AIR pour TV font appel à l’accélération matérielle, si elle est disponible, pour les transformations de couleur.

Le code suivant définit un objet Sprite square. Lorsque l’utilisateur clique sur le sprite, la méthode transformer() ajuste les propriétés colorTransform et matrix de la propriété transform du sprite : import flash.display.Sprite; import flash.geom.ColorTransform; import flash.geom.Matrix; import flash.geom.Transform; import flash.events.MouseEvent; var square:Sprite = new Sprite(); square.graphics.lineStyle(20, 0xFF2200); square.graphics.beginFill(0x0000DD); square.graphics.drawRect(0, 0, 100, 100); addChild(square); var resultColorTransform:ColorTransform = new ColorTransform(); resultColorTransform.alphaMultiplier = 0.5; resultColorTransform.redOffset = 155; resultColorTransform.greenMultiplier = 0.5; var skewMatrix:Matrix = new Matrix(1, 1, 0, 1); square.addEventListener(MouseEvent.CLICK, transformer); function transformer(event:MouseEvent):void { var transformation:Transform = square.transform; var tempMatrix:Matrix = square.transform.matrix; tempMatrix.concat(skewMatrix); square.transform.colorTransform = resultColorTransform; square.transform.matrix = tempMatrix; }
Transform, classe
visible Indique si l’objet d’affichage est visible ou non.Boolean Indique si l’objet d’affichage est visible ou non. Les objets d’affichage qui ne sont pas visibles sont désactivés. Par exemple, si visible=false pour une occurrence InteractiveObject, il est impossible de cliquer sur cette dernière. Le code suivant utilise un objet Timer pour appeler une fonction qui modifie de façon périodique la propriété visible d’un objet d’affichage, ce qui produit un effet de clignotement : import flash.text.TextField; import flash.utils.Timer; import flash.events.TimerEvent; var tf:TextField = new TextField(); tf.text = "Hello."; addChild(tf); var tim:Timer = new Timer(250); tim.start(); tim.addEventListener(TimerEvent.TIMER, blinker); function blinker(event:TimerEvent):void { tf.visible = !tf.visible; } width Indique la largeur de l’objet d’affichage, en pixels.Number Indique la largeur de l’objet d’affichage, en pixels. La largeur est calculée en fonction des limites du contenu de l’objet d’affichage. Lorsque vous définissez la propriété width, la propriété scaleX est ajustée en conséquence, comme illustré dans le code suivant : var rect:Shape = new Shape(); rect.graphics.beginFill(0xFF0000); rect.graphics.drawRect(0, 0, 100, 100); trace(rect.scaleX) // 1; rect.width = 200; trace(rect.scaleX) // 2;

A l’exception des objets TextField et Video, un objet d’affichage sans contenu (comme un sprite vide) a une largeur de 0, même si vous essayez de définir width sur une valeur différente.

Le code suivant définit un objet Sprite square. Lorsque l’utilisateur clique sur le sprite, la méthode widen() augmente la propriété width du sprite : import flash.display.Sprite; import flash.events.MouseEvent; var square:Sprite = new Sprite(); square.graphics.beginFill(0xFF0000); square.graphics.drawRect(0, 0, 100, 100); addChild(square); square.addEventListener(MouseEvent.CLICK, widen); function widen(event:MouseEvent):void { square.width += 10; }
x Indique la coordonnée x de l’occurrence de DisplayObject par rapport aux coordonnées locales de l’objet DisplayObjectContainer parent.Number Indique la coordonnée x de l’occurrence de DisplayObject par rapport aux coordonnées locales de l’objet DisplayObjectContainer parent. Si l’objet figure dans un objet DisplayObjectContainer qui dispose de transformations, ce dernier figure dans le système de coordonnées locales de l’objet DisplayObjectContainer qui l’englobe. Ainsi, dans le cas d’un objet DisplayObjectContainer qui a subi une rotation de 90 ° dans le sens inverse des aiguilles d’une montre, les enfants de DisplayObjectContainer héritent d’un système de coordonnées ayant effectué une rotation à 90 ° dans le sens inverse des aiguilles d’une montre. Les coordonnées de l’objet renvoient à la position du point d’alignement. Le code suivant définit un objet Sprite circle. Un objet Timer permet de modifier la propriété x du sprite toutes les 50 millisecondes : import flash.display.Sprite; import flash.utils.Timer; import flash.events.TimerEvent; var circle:Sprite = new Sprite(); circle.graphics.beginFill(0xFF0000); circle.graphics.drawCircle(100, 100, 100); addChild(circle); var tim:Timer = new Timer(50); tim.start(); tim.addEventListener(TimerEvent.TIMER, bounce); var xInc:Number = 2; function bounce(event:TimerEvent):void { circle.x += xInc; if (circle.x > circle.width) { xInc = -2; } if (circle.x < 0) { xInc = 2; } } y Indique la coordonnée y de l’occurrence de DisplayObject par rapport aux coordonnées locales de l’objet DisplayObjectContainer parent.Number Indique la coordonnée y de l’occurrence de DisplayObject par rapport aux coordonnées locales de l’objet DisplayObjectContainer parent. Si l’objet figure dans un objet DisplayObjectContainer qui dispose de transformations, ce dernier figure dans le système de coordonnées locales de l’objet DisplayObjectContainer qui l’englobe. Ainsi, dans le cas d’un objet DisplayObjectContainer qui a subi une rotation de 90 ° dans le sens inverse des aiguilles d’une montre, les enfants de DisplayObjectContainer héritent d’un système de coordonnées ayant effectué une rotation à 90 ° dans le sens inverse des aiguilles d’une montre. Les coordonnées de l’objet renvoient à la position du point d’alignement. Le code suivant crée deux objets TextField et règle la propriété height de chacun en fonction de leur propriété textHeight ; il place également le deuxième champ de texte en définissant sa propriété y : import flash.text.TextField; var tf1:TextField = new TextField(); tf1.text = "Text Field 1"; tf1.border = true; tf1.wordWrap = true; tf1.width = 40; tf1.height = tf1.textHeight + 5; addChild(tf1); var tf2:TextField = new TextField(); tf2.text = "Text Field 2"; tf2.border = true; tf2.wordWrap = true; tf2.width = 40; tf2.height = tf2.textHeight + 5; tf2.y = tf1.y + tf1.height + 5; addChild(tf2); z Indique la position de coordonnée z le long de l’axe des z de l’occurrence DisplayObject par rapport au conteneur 3D parent.Number Indique la position de coordonnée z le long de l’axe z de l’occurrence de DisplayObject par rapport au conteneur 3D parent. La propriété z est utilisée avec des coordonnées 3D et non avec des coordonnées d’écran ou de pixel.

Lorsque vous réglez la propriété z d’un objet d’affichage sur une valeur autre que la valeur par défaut, à savoir 0, l’objet Matrix3D correspondant est automatiquement créé pour régler la position et l’orientation 3D d’un objet d’affichage. Lorsque l’on utilise l’axe des z, le comportement existant des propriétés x et y passe des coordonnées d’écran ou pixel aux positions par rapport au conteneur 3D parent.

Par exemple, un enfant de _root dont la position est x = 100, y = 100, z = 200 n’est pas dessiné à l’emplacement du pixel (100,100). L’enfant est dessiné à l’endroit où les calculs de projection 3D le placent. Ce calcul est :

(x~~cameraFocalLength/cameraRelativeZPosition, y~~cameraFocalLength/cameraRelativeZPosition)

Cet exemple dessine deux ellipses et les fait se déplacer vers l’avant et vers l’arrière (de bas en haut sur l’axe z) du point de fuite. L’une des ellipses est définie de sorte à se déplacer plus vite que l’autre. package { import flash.display.MovieClip; import flash.display.Shape; import flash.display.Graphics; import flash.events.Event; import flash.geom.*; public class ZAxisExample1 extends MovieClip { private var ellipse1Back:int = 1; private var ellipse2Back:int = 1; private var depth:int = 1000; public function ZAxisExample1():void { var ellipse1 = drawEllipse((this.stage.stageWidth / 2) - 100, (this.stage.stageHeight / 2), 100, 80, 10); var ellipse2 = drawEllipse((this.stage.stageWidth / 2) + 100, (this.stage.stageHeight / 2), 100, 80, 300); this.addChild(ellipse1); this.addChild(ellipse2); ellipse1.addEventListener(Event.ENTER_FRAME, ellipse1FrameHandler); ellipse2.addEventListener(Event.ENTER_FRAME, ellipse2FrameHandler); } private function drawEllipse(x:Number, y:Number, w:Number, h:Number, z:Number):Shape { var s:Shape = new Shape(); s.z = z; s.graphics.beginFill(0xFF0000); s.graphics.lineStyle(2); s.graphics.drawEllipse(x, y, w, h); s.graphics.endFill(); return s; } private function ellipse1FrameHandler(e:Event):void { ellipse1Back = setDepth(e, ellipse1Back); e.currentTarget.z += ellipse1Back * 10; } private function ellipse2FrameHandler(e:Event):void { ellipse2Back = setDepth(e, ellipse2Back); e.currentTarget.z += ellipse2Back * 20; } private function setDepth(e:Event, d:int):int { if(e.currentTarget.z > depth) { e.currentTarget.z = depth; d = -1; }else if (e.currentTarget.z < 0) { e.currentTarget.z = 0; d = 1; } return d; } } }
flash.geom.PerspectiveProjectionflash.geom.Matrix3Dtransformation
blendShader Définit un shader utilisé pour la fusion de l’arrière-plan et du premier plan.flash.display:ShaderLorsque le type de sortie du shader n’est pas compatible avec cette opération (le shader doit spécifier une sortie pixel4). ArgumentErrorArgumentErrorLorsque le shader spécifie moins de deux entrées d’image ou que les deux premières entrées ne sont pas des entrées image4. ArgumentErrorArgumentErrorLorsque le shader spécifie une entrée d’image non fournie. ArgumentErrorArgumentErrorLorsqu’une occurrence de ByteArray ou de Vector.<Number> est utilisée comme entrée et les propriétés width et height ne sont pas spécifiées pour le ShaderInput, ou les valeurs spécifiées ne correspondent pas à la quantité de données dans l’objet d’entrée. Voir la propriété ShaderInput.input pour plus d’informations. ArgumentErrorArgumentError Définit un shader utilisé pour la fusion de l’arrière-plan et du premier plan. Lorsque la propriétéblendMode est définie sur BlendMode.SHADER, le Shader spécifié est utilisé pour créer la sortie du mode fondu pour l’objet d’affichage.

La définition de la propriété blendShader d’un objet d’affichage sur une occurrence Shader définit automatiquement la propriété blendMode de l’objet d’affichage sur BlendMode.SHADER. Si la propriété blendShader est définie (ce qui définit la propriété blendMode sur BlendMode.SHADER) et que la valeur de la propriété blendMode est modifiée, le mode de fondu peut être réinitialisé pour utiliser le shader de fondu en définissant simplement la propriété blendMode sur BlendMode.SHADER. La propriété blendShader n’a plus besoin d’être définie, sauf pour modifier le shader utilisé pour définir le mode de fondu.

Le Shader affecté à la propriété blendShader doit spécifier au moins deux entrées image4. Il n’est pas nécessaire de spécifier les entrées en code à l’aide des propriétés input des objets ShaderInput. L’objet d’affichage de l’arrière-plan est automatiquement utilisé comme première entrée (l’entrée présentant un index 0). L’objet d’affichage de premier-plan est automatiquement utilisé comme seconde entrée (l’entrée présentant un index 1). Un shader utilisé comme shader de fondu peut spécifier plus de deux entrées. Dans ce cas, toute entrée supplémentaire doit être spécifiée par la définition de la propriété input de son occurrence de ShaderInput.

Lorsque vous affectez une occurrence Shader à cette propriété, le shader est copié en interne. L’opération de fondu utilise cette copie interne et non une référence au shader d’origine. Toute modification apportée au shader, par exemple la modification de la valeur d’un paramètre, l’entrée ou le pseudo-code binaire, n’est pas appliquée au shader copié qui est utilisé pour le mode de fondu.

flash.display.BlendModeflash.display.Shaderflash.display.ShaderInput
Loader La classe Loader permet de charger des fichiers SWF ou des fichiers d’image (JPG, PNG ou GIF).flash.display:DisplayObjectContainer La classe Loader permet de charger des fichiers SWF ou des fichiers d’image (JPG, PNG ou GIF). Utilisez la méthode load() pour lancer le chargement. L’objet d’affichage chargé est intégré en tant qu’enfant à l’objet Loader.

Utilisez la classe URLLoader pour charger du texte ou des données binaires.

La classe Loader bloque les méthodes indiquées ci-dessous dont elle hérite, car un objet Loader ne peut disposer que d’un seul objet d’affichage enfant, celui qu’il charge. L’appel des méthodes suivantes renvoie une exception : addChild(), addChildAt(), removeChild(), removeChildAt() et setChildIndex(). Pour supprimer un objet d’affichage chargé, vous devez supprimer l’objet Loader du tableau des enfants de l’occurrence de DisplayObjectContainer parent.

Remarque : les classes MovieClipLoader et LoadVars d’ActionScript 2.0 ne sont plus utilisées dans ActionScript 3.0. Les classes Loader et URLLoader les remplacent.

Pour utiliser la classe Loader, tenez compte du modèle de sécurité de Flash Player et d’Adobe AIR :

  • Vous pouvez charger du contenu à partir de toute source accessible.
  • Le chargement n’est pas autorisé si le fichier SWF appelant est sur un sandbox réseau et que le fichier à charger est local.
  • Si le contenu chargé est un fichier SWF écrit en langage ActionScript 3.0, il ne peut pas être intercodé par un fichier SWF appartenant à un autre sandbox de sécurité, à moins que des dispositions d’intercodage n’aient été approuvées par un appel à la méthode System.allowDomain() ou System.allowInsecureDomain() dans le fichier de contenu chargé.
  • Si le contenu chargé est un fichier SWF AVM1 (écrit en langage ActionScript 1.0 ou 2.0), il ne peut pas être intercodé par un fichier SWF AVM2 (écrit en langage ActionScript 3.0). La classe LocalConnection permet cependant aux deux fichiers SWF de communiquer entre eux.
  • Si le contenu chargé est une image, un fichier SWF situé en dehors du sandbox de sécurité ne peut pas accéder aux données correspondantes, à moins que le domaine de ce fichier n’ait été inclus dans un fichier de régulation d’URL dans le domaine d’origine de l’image.
  • Les clips situés dans le sandbox local avec système de fichier ne peuvent pas inscrire des clips dans le sandbox local avec accès au réseau (l’inverse est également impossible).
  • Vous ne pouvez pas vous connecter aux ports généralement réservés. Pour obtenir une liste complète des ports bloqués, voir la rubrique « Restriction des API de réseau » dans le Guide du développeur d’ActionScript 3.0.

Néanmoins, dans AIR, le contenu du sandbox de sécurité de l’application (contenu installé avec l’application AIR) n’est pas soumis à ces restrictions de sécurité.

Pour plus d’informations concernant la sécurité, voir la rubrique du Pôle de développement Flash Player : Sécurité (disponible en anglais uniquement).

Lorsque vous chargez un fichier SWF d’une source non approuvée (telle qu’un domaine autre que celui du fichier SWF racine de l’objet Loader), il peut s’avérer utile de définir un masque pour ce dernier, afin d’empêcher le contenu chargé, qui est un enfant de l’objet Loader, d’apparaître dans des parties de la scène qui ne relèvent pas de ce masque, comme illustré par le code suivant :

import flash.display.~~; import flash.net.URLRequest; var rect:Shape = new Shape(); rect.graphics.beginFill(0xFFFFFF); rect.graphics.drawRect(0, 0, 100, 100); rect.graphics.endFill(); addChild(rect); var ldr:Loader = new Loader(); ldr.mask = rect; var url:String = "http://www.unknown.example.com/content.swf"; var urlReq:URLRequest = new URLRequest(url); ldr.load(urlReq); addChild(ldr);
L’exemple suivant exploite la classe LoaderExample pour illustrer la façon dont les différents écouteurs d’événement sont utilisés. Pour ce faire, procédez comme suit :
  1. Une propriété url est créée pour désigner l’emplacement et le nom du fichier d’image.
  2. Dans le constructeur LoaderExample, un nouvel objet Loader appelé loader est créé, qui est ensuite transmis à la méthode configureListeners(), décrite à l’étape 3.
  3. Le constructeur crée une occurrence d’objet URLRequest, request, et transmet le paramètre url de façon à identifier le nom de fichier et son emplacement.
  4. L’objet request est ensuite transmis à la méthode load() de l’objet loader, qui charge l’image dans la liste d’affichage.
  5. Un écouteur d’événement clickHandler est enregistré pour l’événement click sur l’objet loader. Lorsque l’utilisateur clique avec la souris, l’image chargée est déchargée.
  6. La méthode configureListeners() ajoute sept écouteurs d’événement à l’aide des méthodes suivantes :
    • La méthode completeHandler() s’exécute lorsque l’image termine son chargement.
    • La méthode httpStatusHandler() s’exécute lorsque l’image n’est pas chargée de façon locale et uniquement lorsque la requête réseau est rendue disponible et lorsque Flash Player peut la détecter.
    • La méthode initHandler() s’exécute avant la méthode completeHandler() et après la méthode progressHandler(). En général, l’événement init est plus utile lors du chargement des fichiers SWF.
    • La méthode ioErrorHandler() s’exécute si le fichier d’image n’est pas disponible ou n’est pas accessible.
    • La méthode openHandler() s’exécute lorsque le fichier d’image est ouvert en premier.
    • La méthode progressHandler() s’exécute lorsque le fichier d’image commence son chargement et s’exécute de nouveau à la fin de cette procédure.
    • La méthode unLoadHandler() s’exécute lorsque l’image est déchargée à l’aide de la méthode unload() lorsque l’utilisateur clique sur l’image.

N’oubliez pas les spécifications suivantes :

  • Cet exemple implique le placement d’un fichier appelé Image.gif dans le même répertoire que le fichier SWF compilé. Utilisez une image dont la zone corresponde aux dimensions du fichier SWF principal.
  • Cet exemple couvre tous les événements disponibles pour l’objet LoaderInfo. Cependant, la plupart des situations n’en nécessite qu’un sous-ensemble. En particulier, lors du chargement d’un fichier d’image unique, l’événement complete (voire l’événement ioError) suffisent lors du chargement d’une image locale.
package { import flash.display.Loader; import flash.display.Sprite; import flash.events.*; import flash.net.URLRequest; public class LoaderExample extends Sprite { private var url:String = "Image.gif"; public function LoaderExample() { var loader:Loader = new Loader(); configureListeners(loader.contentLoaderInfo); loader.addEventListener(MouseEvent.CLICK, clickHandler); var request:URLRequest = new URLRequest(url); loader.load(request); addChild(loader); } private function configureListeners(dispatcher:IEventDispatcher):void { dispatcher.addEventListener(Event.COMPLETE, completeHandler); dispatcher.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler); dispatcher.addEventListener(Event.INIT, initHandler); dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); dispatcher.addEventListener(Event.OPEN, openHandler); dispatcher.addEventListener(ProgressEvent.PROGRESS, progressHandler); dispatcher.addEventListener(Event.UNLOAD, unLoadHandler); } private function completeHandler(event:Event):void { trace("completeHandler: " + event); } private function httpStatusHandler(event:HTTPStatusEvent):void { trace("httpStatusHandler: " + event); } private function initHandler(event:Event):void { trace("initHandler: " + event); } private function ioErrorHandler(event:IOErrorEvent):void { trace("ioErrorHandler: " + event); } private function openHandler(event:Event):void { trace("openHandler: " + event); } private function progressHandler(event:ProgressEvent):void { trace("progressHandler: bytesLoaded=" + event.bytesLoaded + " bytesTotal=" + event.bytesTotal); } private function unLoadHandler(event:Event):void { trace("unLoadHandler: " + event); } private function clickHandler(event:MouseEvent):void { trace("clickHandler: " + event); var loader:Loader = Loader(event.target); loader.unload(); } } }
flash.display.LoaderInfoflash.net.URLLoaderflash.display.DisplayObjectLoader Crée un objet Loader qui permet de charger des fichiers (SWF, JPEG, GIF ou PNG). Crée un objet Loader qui permet de charger des fichiers (SWF, JPEG, GIF ou PNG). Appelez la méthode load() pour charger l’actif en tant qu’enfant de l’occurrence de Loader. Vous pouvez alors ajouter l’objet Loader à la liste d’affichage (par le biais de la méthode addChild() d’une occurrence de DisplayObjectContainer, par exemple). L’actif apparaît sur la scène au fur et à mesure de son chargement.

Vous pouvez également utiliser une occurrence de Loader sans l’intégrer à un conteneur d’objet d’affichage de la liste d’affichage. Si ce mode est activé, l’occurrence de Loader peut être utilisée pour charger un fichier SWF contenant d’autres modules d’une application.

Pour détecter la fin du chargement du fichier SWF, vous disposez des événements de l’objet LoaderInfo associés à la propriété contentLoaderInfo de l’objet Loader. A ce stade, vous pouvez exécuter le code du fichier SWF du module pour initialiser et démarrer ce dernier. En mode hors liste, l’occurrence de Loader peut également être utilisée pour charger un fichier SWF contenant des composants ou des actifs multimédias. Il est également possible d’utiliser les notifications d’événement associées à l’objet LoaderInfo pour détecter la fin du chargement des composants. L’application peut alors commencer à utiliser les composants et les actifs multimédias intégrés à la bibliothèque du fichier SWF en instanciant les classes ActionScript 3.0 qui représentent ces composants et ces actifs.

Pour déterminer le statut d’un objet Loader, supervisez les événements suivants que l’objet LoaderInfo a associé à la propriété contentLoaderInfo de l’objet Loader :

  • L’événement open est distribué lorsque le chargement commence.
  • L’événement ioError ou securityError est distribué s’il est impossible de charger le fichier ou s’il se produit une erreur lors du processus de chargement.
  • L’événement progress est déclenché continuellement lors du chargement du fichier.
  • L’événement complete est distribué lorsque le chargement d’un fichier est terminé, mais avant la mise à disposition des méthodes et des propriétés du clip qui vient d’être chargé.
  • L’événement init est distribué après la mise à disposition des méthodes et des propriétés du fichier SWF chargé, afin de vous permettre de commencer à manipuler ce dernier. Cet événement est distribué avant le gestionnaire complete. Dans les fichiers SWF en diffusion continue, l’événement init risque de se produire bien avant l’événement complete. Dans la plupart des cas, utilisez le gestionnaire init.
flash.display.Loader.load()flash.display.LoaderInfo
close Annule une opération associée à la méthode load() actuellement en cours d’exécution pour l’occurrence de Loader. Annule une opération associée à la méthode load() qui est en cours d’exécution pour l’occurrence de Loader. flash.display.Loader.load()loadBytes Charge des données binaires stockées dans un objet ByteArray.Si la propriété length de l’objet ByteArray n’est pas supérieure à 0. ArgumentErrorArgumentErrorSi la propriété checkPolicyFile ou securityDomain du paramètre context n’est pas réglée sur la valeur null. IllegalOperationErrorflash.errors:IllegalOperationErrorSi la propriété requestedContentParent du paramètre context est un Loader. IllegalOperationErrorflash.errors:IllegalOperationErrorSi le paramètre LoaderContext.parameters est défini sur une valeur non nulle et possède certaines valeurs qui ne sont pas des chaînes. IllegalOperationErrorflash.errors:IllegalOperationErrorSi la propriété applicationDomain proposée de la propriété context provient d’un domaine interdit. SecurityErrorSecurityErrorVous ne pouvez pas vous connecter aux ports généralement réservés. Pour obtenir une liste complète des ports bloqués, voir la rubrique « Restriction des API de réseau » dans le Guide du développeur d’ActionScript 3.0. SecurityErrorSecurityErrorbytesflash.utils:ByteArrayObjet ByteArray. Le format du contenu de cet objet peut correspondre à n’importe quel type de fichier géré par la classe Loader : SWF, GIF, JPEG ou PNG. contextflash.system:LoaderContextnullObjet LoaderContext. Seule la propriété applicationDomain de cet objet entre en vigueur. Les propriétés checkPolicyFile et securityDomain sont exclues.

Si le paramètre context n’est pas spécifié ou renvoie à un objet null, le contenu est chargé dans le domaine de sécurité actif ; cette opération est appelée « chargement en vue de l’exportation » dans la documentation de sécurité de Flash Player. De façon spécifique, si le fichier SWF de chargement approuve le fichier SWF distant en l’incorporant dans son code, le fichier SWF de chargement peut l’importer directement dans son propre domaine de sécurité.

Pour plus d’informations concernant la sécurité, voir la rubrique du Pôle de développement Flash Player : Sécurité (disponible en anglais uniquement).

Charge des données binaires stockées dans un objet ByteArray.

La méthode loadBytes() est asynchrone. Vous devez attendre l’événement « init » avant d’accéder aux propriétés d’un objet chargé.

Si vous utilisez cette méthode, tenez compte du modèle de sécurité de Flash Player, expliqué dans la description de la classe Loader.

flash.utils.ByteArrayflash.system.LoaderContext.applicationDomainasyncErrorflash.events:AsyncErrorEventDistribué par l’objet contentLoaderInfo si la propriété LoaderContext.requestedContentParent a été spécifiée et qu’il est impossible d’ajouter le contenu chargé en tant qu’enfant au DisplayObjectContainer spécifié. C’est notamment le cas si le contenu chargé est un flash.display.AVM1Movie ou si l’appel de addChild() sur requestedContentParent renvoie une erreur. Distribué par l’objet contentLoaderInfo si la propriété LoaderContext.requestedContentParent a été spécifiée et qu’il est impossible d’ajouter le contenu chargé en tant qu’enfant au DisplayObjectContainer spécifié.completeflash.events:EventDistribué par l’objet contentLoaderInfo lorsque l’opération est terminée. L’événement complete est toujours distribué après l’événement init. Distribué par l’objet contentLoaderInfo lorsque l’opération est terminée.initflash.events:EventDistribué par l’objet contentLoaderInfo lorsque les propriétés et les méthodes des données chargées sont accessibles. L’événement init précède toujours l’événement complete. Distribué par l’objet contentLoaderInfo lorsque les propriétés et les méthodes des données chargées sont accessibles.ioErrorflash.events:IOErrorEventDistribué par l’objet contentLoaderInfo lorsque le moteur d’exécution ne parvient pas à analyser les données dans le tableau d’octets. Distribué par l’objet contentLoaderInfo lorsque le moteur d’exécution ne parvient pas à analyser les données dans le tableau d’octets.openflash.events:EventDistribué par l’objet contentLoaderInfo lorsque l’opération commence. Distribué par l’objet contentLoaderInfo lorsque l’opération commence.progressflash.events:ProgressEventDistribué par l’objet contentLoaderInfo lors du transfert des données dans la mémoire. Distribué par l’objet contentLoaderInfo lors du transfert des données dans la mémoire.securityErrorflash.events:SecurityErrorEventDistribué par l’objet contentLoaderInfo si la propriété LoaderContext.requestedContentParent a été spécifiée et que le sandbox de sécurité du LoaderContext.requestedContentParent n’a pas accès au fichier SWF chargé. Distribué par l’objet contentLoaderInfo si la propriété LoaderContext.requestedContentParent a été spécifiée et que le sandbox de sécurité du LoaderContext.requestedContentParent n’a pas accès au fichier SWF chargé.unloadflash.events:EventDistribué par l’objet contentLoaderInfo associé lorsqu’un objet chargé est supprimé. Distribué par l’objet contentLoaderInfo associé lorsqu’un objet chargé est supprimé.
loadFilePromise Charge une occurrence d’IFilePromise.Si la propriété requestedContentParent du paramètre context est un Loader. IllegalOperationErrorflash.errors:IllegalOperationErrorSi le paramètre LoaderContext.parameters est défini sur une valeur non nulle et possède certaines valeurs qui ne sont pas des chaînes. IllegalOperationErrorflash.errors:IllegalOperationErrorSi l’objet IFilePromise transmis en tant que paramètre est nul. ArgumentErrorArgumentErrorpromiseflash.desktop:IFilePromiseUn objet IFilePromise. La source de données de cet objet peut correspondre à n’importe quel type de format de fichier pris en charge par la classe Loader : SWF, GIF, JPEG ou PNG. contextflash.system:LoaderContextnullObjet LoaderContext. Seule la propriété applicationDomain de cet objet entre en vigueur. Les propriétés checkPolicyFile et securityDomain sont exclues.

Si le paramètre context n’est pas spécifié ou renvoie à un objet null, le contenu est chargé dans le domaine de sécurité actif ; cette opération est appelée « chargement en vue de l’exportation » dans la documentation de sécurité de Flash Player. De façon spécifique, si le fichier SWF de chargement approuve le fichier SWF distant en l’incorporant dans son code, le fichier SWF de chargement peut l’importer directement dans son propre domaine de sécurité.

Pour plus d’informations concernant la sécurité, voir la rubrique du Pôle de développement Flash Player : Sécurité (disponible en anglais uniquement).

Charge une occurrence d’IFilePromise.

La méthode loadFilePromise prend un objet IFilePromise et charge les données binaires. Si les données sont un flux progressif, par exemple une vidéo, attendez les événements "init" ou progress avant d’accéder aux propriétés de l’objet chargé. Dans le cas contraire, attendez l’événement complete pour vous assurer que les données sont entièrement chargées.

Si vous utilisez cette méthode, tenez compte du modèle de sécurité de Flash Player, expliqué dans la description de la classe Loader.

MediaPromiseCameraRoll.browseForImage()CameraUIasyncErrorflash.events:AsyncErrorEventDistribué par l’objet contentLoaderInfo si la propriété LoaderContext.requestedContentParent a été spécifiée et qu’il est impossible d’ajouter le contenu chargé en tant qu’enfant au DisplayObjectContainer spécifié. C’est notamment le cas si le contenu chargé est un flash.display.AVM1Movie ou si l’appel de addChild() sur requestedContentParent renvoie une erreur. Distribué par l’objet contentLoaderInfo si la propriété LoaderContext.requestedContentParent a été spécifiée et qu’il est impossible d’ajouter le contenu chargé en tant qu’enfant au DisplayObjectContainer spécifié.completeflash.events:EventDistribué par l’objet contentLoaderInfo lorsque l’opération est terminée. L’événement complete est toujours distribué après l’événement init. Distribué par l’objet contentLoaderInfo lorsque l’opération est terminée.initflash.events:EventDistribué par l’objet contentLoaderInfo lorsque les propriétés et les méthodes des données chargées sont accessibles. L’événement init précède toujours l’événement complete. Distribué par l’objet contentLoaderInfo lorsque les propriétés et les méthodes des données chargées sont accessibles.ioErrorflash.events:IOErrorEventDistribué par l’objet contentLoaderInfo lorsque le moteur d’exécution ne parvient pas à analyser les données dans la source de données ou si le flux de la source de données n’est plus lisible. Distribué par l’objet contentLoaderInfo lorsque le moteur d’exécution ne parvient pas à analyser les données dans la source de données ou si le flux de la source de données n’est plus lisible.openflash.events:EventDistribué par l’objet contentLoaderInfo lorsque l’opération commence. Distribué par l’objet contentLoaderInfo lorsque l’opération commence.progressflash.events:ProgressEventDistribué par l’objet contentLoaderInfo lors du transfert des données dans la mémoire. Distribué par l’objet contentLoaderInfo lors du transfert des données dans la mémoire.securityErrorflash.events:SecurityErrorEventDistribué par l’objet contentLoaderInfo si la propriété LoaderContext.requestedContentParent a été spécifiée et que le sandbox de sécurité du LoaderContext.requestedContentParent n’a pas accès au fichier SWF chargé. Distribué par l’objet contentLoaderInfo si la propriété LoaderContext.requestedContentParent a été spécifiée et que le sandbox de sécurité du LoaderContext.requestedContentParent n’a pas accès au fichier SWF chargé.unloadflash.events:EventDistribué par l’objet contentLoaderInfo associé lorsqu’un objet chargé est supprimé. Distribué par l’objet contentLoaderInfo associé lorsqu’un objet chargé est supprimé.
load Charge un fichier SWF, JPEG, JPEG progressif, GIF non animé ou PNG dans un objet enfant de l’objet Loader.La propriété digest de l’objet request n’est pas définie sur null. Vous devez définir la propriété digest d’un objet URLRequest uniquement lorsque vous appelez la méthode URLLoader.load() en vue de charger un fichier SWZ (un composant de la plateforme Adobe). IOErrorflash.errors:IOErrorLa valeur de LoaderContext.securityDomain doit être réglée sur null ou SecurityDomain.currentDomain. En effet, vous ne pouvez placer le média chargé que dans son sandbox de sécurité naturel ou dans le vôtre, auquel cas l’utilisation d’un fichier de régulation s’impose. SecurityErrorSecurityErrorLes fichiers SWF locaux sont susceptibles de ne régler LoaderContext.securityDomain que sur la valeur null. Il est interdit d’importer des médias non locaux dans un sandbox local ou de placer d’autres médias locaux dans un environnement autre que son sandbox naturel. SecurityErrorSecurityError Vous ne pouvez pas vous connecter aux ports généralement réservés. Pour obtenir une liste complète des ports bloqués, voir la rubrique « Restriction des API de réseau » dans le Guide du développeur d’ActionScript 3.0. SecurityErrorSecurityErrorSi les propriétés applicationDomain or securityDomain du paramètre context proviennent d’un domaine interdit. SecurityErrorSecurityErrorSi un fichier SWF local tente d’utiliser la propriété securityDomain du paramètre context. SecurityErrorSecurityErrorSi la propriété requestedContentParent du paramètre context est un Loader. IllegalOperationErrorflash.errors:IllegalOperationErrorSi le paramètre LoaderContext.parameters est défini sur une valeur non nulle et possède certaines valeurs qui ne sont pas des chaînes. IllegalOperationErrorflash.errors:IllegalOperationErrorrequestflash.net:URLRequest URL absolue ou relative du fichier SWF, JPEG, GIF ou PNG à charger. Un chemin relatif doit être relatif par rapport au fichier SWF principal. Une URL absolue doit inclure la référence de protocole, telle que http:// ou file:///. Les noms de fichier ne doivent pas inclure les spécifications de lecteur de disque. contextflash.system:LoaderContextnullObjet LoaderContext, dont les propriétés :
  • Spécifie si l’existence d’un fichier de régulation lors du chargement de l’objet doit être vérifiée ou non
  • définissent le paramètre ApplicationDomain de l’objet chargé ;
  • définissent le paramètre SecurityDomain de l’objet chargé.
  • ImageDecodingPolicy correspondant à l’objet image chargé.

Si le paramètre context n’est pas spécifié ou renvoie à un objet null, le contenu chargé reste dans son propre domaine de sécurité.

Pour obtenir des informations détaillées, veuillez consulter la description des propriétés de la classe LoaderContext.

Charge un fichier SWF ou un fichier d’image dans un objet DisplayObject, qui est un enfant de cette occurrence de Loader.
Charge un fichier SWF, JPEG, JPEG progressif, GIF non animé ou PNG dans un objet enfant de l’objet Loader. Si vous chargez un fichier GIF animé, seule la première image est affichée. Puisque l’objet Loader ne peut contenir qu’un seul enfant, générer une nouvelle requête load() met fin à la requête précédente si elle est en attente et démarre un autre chargement.

Remarque : dans AIR 1.5 et Flash Player 10, la taille maximale d’une image chargée est de 8 191 pixels en largeur ou en hauteur, et le nombre total de pixels ne peut pas excéder 16 777 215 pixels (ainsi, si la largeur d’une image chargée est de 8 191 pixels, sa hauteur maximale doit être de 2 048 pixels). Dans Flash Player 9 et les versions antérieures, ainsi que dans AIR 1.1 et les versions antérieures, la limite est de 2 880 pixels de haut sur 2 880 pixels de large.

Un fichier SWF ou une image chargé(e) dans un objet Loader hérite des propriétés position, rotation et scale (échelle) des objets d’affichage parent de l’objet Loader.

Utilisez unload() pour supprimer des animations ou des images chargées à l’aide de cette méthode ou pour annuler une opération de chargement en cours.

Vous pouvez empêcher un fichier SWF d’utiliser cette méthode en définissant le paramètre allowNetworking des balises object et embed dans la page HTML qui comporte le contenu SWF.

Si vous utilisez cette méthode, tenez compte du modèle de sécurité de Flash Player, expliqué dans la description de la classe Loader.

Dans Flash Player versions 10 et ultérieures, si vous utilisez un Content-Type en plusieurs parties (par exemple « multipart/form-data ») qui contient un chargement (indiqué par un paramètre « filename » dans un en-tête « content-disposition » au sein du corps POST), l’opération POST est soumise aux règles de sécurité appliquées aux chargements :

  • L’opération POST doit être effectuée en réponse à l’action d’un utilisateur, comme un clic de souris ou la pression d’une touche.
  • Si l’opération POST se fait entre plusieurs domaines (la cible POST ne se trouve pas sur le même serveur que le fichier SWF qui envoie la demande POST), le serveur cible doit fournir un fichier de régulation d’URL qui permette l’accès interdomaines.

Par ailleurs, la syntaxe de tous les Content-Type en plusieurs parties doit être correcte (selon la norme RFC2046). Si la syntaxe s’avère incorrecte, l’opération POST est soumise aux règles de sécurité appliquées aux chargements.

Pour plus d’informations concernant la sécurité, voir la rubrique du Pôle de développement Flash Player : Sécurité (disponible en anglais uniquement).

contentLoaderInfoflash.net.URLRequestflash.display.DisplayObjectflash.display.Loader.unload()flash.display.LoaderInfoflash.system.LoaderContextasyncErrorflash.events:AsyncErrorEventDistribué par l’objet contentLoaderInfo si la propriété LoaderContext.requestedContentParent a été spécifiée et qu’il est impossible d’ajouter le contenu chargé en tant qu’enfant au DisplayObjectContainer spécifié. C’est notamment le cas si le contenu chargé est un flash.display.AVM1Movie ou si l’appel de addChild() sur requestedContentParent renvoie une erreur. Distribué par l’objet contentLoaderInfo si la propriété LoaderContext.requestedContentParent a été spécifiée et qu’il est impossible d’ajouter le contenu chargé en tant qu’enfant au DisplayObjectContainer spécifié.completeflash.events:EventDistribué par l’objet contentLoaderInfo associé lorsque le fichier a terminé son chargement. L’événement complete est toujours distribué après l’événement init. Distribué par l’objet contentLoaderInfo associé lorsque le fichier a terminé son chargement.httpStatusflash.events:HTTPStatusEventDistribué par l’objet contentLoaderInfo associé lorsqu’une requête réseau est envoyée via HTTP et que Flash Player peut détecter le code d’état HTTP. Distribué par l’objet contentLoaderInfo associé lorsqu’une requête réseau est envoyée via HTTP et que Flash Player peut détecter le code d’état HTTP.initflash.events:EventDistribué par l’objet contentLoaderInfo associé lorsque les propriétés et les méthodes du fichier SWF chargé sont accessibles. L’événement init précède toujours l’événement complete. Distribué par l’objet contentLoaderInfo associé lorsque les propriétés et les méthodes du fichier SWF chargé sont accessibles.ioErrorflash.events:IOErrorEventDistribué par l’objet contentLoaderInfo associé lorsqu’il se produit une erreur d’entrée ou de sortie entraînant l’échec d’une opération de chargement. Distribué par l’objet contentLoaderInfo associé lorsqu’il se produit une erreur d’entrée ou de sortie entraînant l’échec d’une opération de chargement.openflash.events:EventDistribué par l’objet contentLoaderInfo associé lorsque l’opération de chargement commence. Distribué par l’objet contentLoaderInfo associé lorsque l’opération de chargement commence.progressflash.events:ProgressEventDistribué par l’objet contentLoaderInfo associé en tant que données et reçu pendant la progression de l’opération de chargement. Distribué par l’objet contentLoaderInfo associé en tant que données et reçu pendant la progression de l’opération de chargement.securityErrorflash.events:SecurityErrorEventDistribué par l’objet contentLoaderInfo si un fichier SWF du sandbox local avec système de fichiers tente de charger du contenu dans un sandbox local avec accès au réseau, ou vice versa. Distribué par l’objet contentLoaderInfo si un fichier SWF du sandbox local avec système de fichiers tente de charger du contenu dans un sandbox local avec accès au réseau, ou vice versa.securityErrorflash.events:SecurityErrorEventDistribué par l’objet contentLoaderInfo si la propriété LoaderContext.requestedContentParent a été spécifiée et que le sandbox de sécurité du LoaderContext.requestedContentParent n’a pas accès au fichier SWF chargé. Distribué par l’objet contentLoaderInfo si la propriété LoaderContext.requestedContentParent a été spécifiée et que le sandbox de sécurité du LoaderContext.requestedContentParent n’a pas accès au fichier SWF chargé.unloadflash.events:EventDistribué par l’objet contentLoaderInfo associé lorsqu’un objet chargé est supprimé. Distribué par l’objet contentLoaderInfo associé lorsqu’un objet chargé est supprimé.
unloadAndStop Tente de décharger le contenu du fichier SWF enfant et interrompt l’exécution des commandes des fichiers SWF chargés.gcBooleantrueIndique au nettoyeur de mémoire de s’exécuter sur les objets SWF enfant (true) ou pas (false). Si vous déchargez plusieurs objets de façon asynchrone, définissez le paramètre gc sur false afin d’améliorer les performances de l’application. Toutefois, si ce paramètre est défini sur false, les objets multimédia et les objets d’affichage du fichier SWF enfant peuvent rester en mémoire après l’exécution de la commande unloadAndStop(). Tente de décharger le contenu du fichier SWF enfant et interrompt l’exécution des commandes des fichiers SWF chargés. Cette méthode tente de décharger les fichiers SWF qui ont été chargés à l’aide de la méthode Loader.load() ou Loader.loadBytes() en supprimant les références aux objets EventDispatcher, NetConnection, Timer, Sound ou Video du fichier SWF enfant. Par conséquent, les actions suivantes sont effectuées dans le fichier SWF enfant et la liste d’affichage du fichier SWF enfant :
  • Les sons sont arrêtés.
  • Les écouteurs d’événement sont supprimés de la scène.
  • Les écouteurs d’événement des événements enterFrame, frameConstructed, exitFrame, activate et deactivate sont supprimés.
  • Les horloges sont arrêtées.
  • Les occurrences Camera et Microphone sont détachées.
  • Les clips sont arrêtés.
flash.display.DisplayObjectflash.display.Loader.load()
unload Supprime un enfant de l’objet Loader chargé à l’aide de la méthode load(). Supprime un enfant de l’objet Loader chargé à l’aide de la méthode load(). La valeur property de la propriéténull de l’objet LoaderInfo associé est réinitialisée. L’enfant n’est pas nécessairement détruit, car d’autres objets risquent de s’y référer. Il n’est cependant plus un enfant de l’objet Loader.

Avant de décharger un fichier SWF enfant, il est recommandé de fermer explicitement tout flux continu dans les objets enfant du fichier SWF, tels que les objets LocalConnection, NetConnection, NetStream et Sound. Si vous n’effectuez pas cette opération, la lecture de l’audio risque de continuer dans le fichier SWF enfant, bien que ce dernier soit déchargé. Pour fermer les flux continus dans le fichier SWF enfant, ajoutez un écouteur d’événement à l’enfant qui écoute l’événement unload. Lorsque le parent appelle Loader.unload(), l’événement unload est distribué à l’enfant. L’exemple suivant illustre cette opération :

function closeAllStreams(evt:Event) { 
    myNetStream.close();
    mySound.close();
    myNetConnection.close();
    myLocalConnection.close();
}

myMovieClip.loaderInfo.addEventListener(Event.UNLOAD, closeAllStreams);
Loader.load()flash.media.Sound.close()flash.net.LocalConnection.close()flash.net.NetConnection.close()flash.net.NetStream.close()opérateur delete
contentLoaderInfo Renvoie un objet LoaderInfo qui correspond à l’objet en cours de chargement.flash.display:LoaderInfo Renvoie un objet LoaderInfo qui correspond à l’objet en cours de chargement. Les objets LoaderInfo sont partagés entre l’objet Loader et l’objet chargé. L’objet LoaderInfo fournit des informations relatives à la progression du déroulement du chargement et des statistiques sur le fichier chargé.

Les événements liés au chargement sont distribués par l’objet LoaderInfo qui est référencé par la propriété contentLoaderInfo de l’objet Loader. La propriété contentLoaderInfo est définie sur un objet LoaderInfo valide, y compris avant le chargement du contenu, ce qui permet d’ajouter des écouteurs d’événement à l’objet avant l’opération de chargement.

Pour détecter les erreurs non interceptées qui se produisent dans un fichier SWF, utilisez la propriété Loader.uncaughtErrorEvents et non la propriété Loader.contentLoaderInfo.uncaughtErrorEvents.

L’exemple suivant explique comment charger et positionner une image dans ActionScript 3.0 à l’aide de la classe Loader et de l’événement complete sur la propriété contentLoaderInfo de l’objet Loader. Exemple fourni par ActionScriptExamples.com. var url:String = "http://www.helpexamples.com/flash/images/image2.jpg"; var urlRequest:URLRequest = new URLRequest(url); var loader:Loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loader_complete); loader.load(urlRequest); addChild(loader); function loader_complete(evt:Event):void { var target_mc:Loader = evt.currentTarget.loader as Loader; target_mc.x = (stage.stageWidth - target_mc.width) / 2; target_mc.y = (stage.stageHeight - target_mc.height) / 2; }
flash.display.LoaderInfo
content Contient l’objet d’affichage racine du fichier SWF ou du fichier d’image (JPG, PNG ou GIF) qui a été chargé à l’aide de la méthode load() ou loadBytes().flash.display:DisplayObjectLe fichier SWF ou le fichier d’image chargé appartient à un sandbox de sécurité auquel vous n’avez pas accès. Pour un fichier SWF chargé, vous pouvez éviter ce problème en forçant le fichier à appeler la méthode Security.allowDomain() ou en imposant au fichier en cours de chargement de spécifier un paramètre loaderContext, la propriété securityDomain correspondante étant réglée sur SecurityDomain.currentDomain lorsque vous appelez la méthode load() ou loadBytes(). SecurityErrorSecurityError Contient l’objet d’affichage racine du fichier SWF ou du fichier d’image (JPG, PNG ou GIF) qui a été chargé à l’aide de la méthode load() ou loadBytes(). flash.display.DisplayObjectflash.display.Loader.load()uncaughtErrorEvents Objet qui distribue un événement uncaughtError lorsqu’une erreur non interceptée se produit dans le fichier SWF chargé par cet objet Loader.flash.events:UncaughtErrorEvents Objet qui distribue un événement uncaughtError lorsqu’une erreur non interceptée se produit dans le fichier SWF chargé par cet objet Loader. Une erreur non interceptée se produit lorsqu’une erreur est renvoyée en dehors de tout bloc try..catch ou lorsqu’un objet ErrorEvent est distribué avec aucun écouteur enregistré.

Notez que la propriété uncaughtErrorEvents d’un objet Loader distribue les événements qui se propagent vers le haut au sein de celle-ci et non les événements qu’elle distribue directement. Elle ne distribue jamais d’événement uncaughtErrorEvent dans la phase cible. Elle distribue l’événement uniquement dans les phases de capture et de propagation. Pour détecter une erreur non interceptée dans le fichier SWF actuel (fichier SWF dans lequel l’objet Loader est défini), utilisez plutôt la propriété LoaderInfo.uncaughtErrorEvents.

Si le contenu chargé par l’objet Loader est un fichier SWF AVM1 (ActionScript 2), les erreurs non interceptées dans le fichier SWF AVM1 n’entraînent pas un événement uncaughtError.

L’exemple suivant explique comment utiliser le gestionnaire d’événement uncaughtError pour détecter les erreurs non interceptées dans un fichier SWF chargé. Cet exemple définit un gestionnaire d’événement uncaughtError pour détecter les erreurs non interceptées.

Dans le constructeur, le code crée un objet Loader et enregistre un écouteur pour l’événement uncaughtError distribué par la propriété uncaughtErrorEvents de l’objet Loader.

Dans la méthode uncaughtErrorHandler(), le code vérifie le type de données de la propriété error et répond en conséquence.

package { import flash.display.Loader; import flash.display.Sprite; import flash.events.ErrorEvent; import flash.events.UncaughtErrorEvent; import flash.net.URLRequest; public class LoaderUncaughtErrorEventExample extends Sprite { private var ldr:Loader; public function LoaderUncaughtErrorEventExample() { ldr = new Loader(); ldr.load(new URLRequest("child.swf")); ldr.uncaughtErrorEvents.addEventListener(UncaughtErrorEvent.UNCAUGHT_ERROR, uncaughtErrorHandler); } private function uncaughtErrorHandler(event:UncaughtErrorEvent):void { if (event.error is Error) { var error:Error = event.error as Error; // do something with the error } else if (event.error is ErrorEvent) { var errorEvent:ErrorEvent = event.error as ErrorEvent; // do something with the error } else { // a non-Error, non-ErrorEvent type was thrown and uncaught } } } }
UncaughtErrorEventLoaderInfo.uncaughtErrorEvents
NativeMenuItem La classe NativeMenuItem représente une seule option dans un menu.flash.events:EventDispatcher La classe NativeMenuItem représente une seule option dans un menu.

Une option de menu peut être une commande, un sous-menu ou une ligne de démarcation :

  • Pour créer un élément de commande, appelez le constructeur NativeMenuItem en transmettant une chaîne pour l’étiquette et false pour le paramètre isSeparator.
  • Pour créer un sous-menu, créez un élément de commande pour le menu parent et attribuez l’objet NativeMenu du sous-menu à la propriété submenu de l’élément. Vous pouvez également appeler la méthode addSubmenu() de l’objet NativeMenu parent pour créer l’élément et définir la propriété submenu en même temps.
  • Pour créer un séparateur, appelez le constructeur NativeMenuItem en transmettant une chaîne vide pour l’étiquette et true pour le paramètre isSeparator.

Ecoutez les événements select sur un élément ou un menu parent pour détecter le moment où une commande de menu est sélectionnée. Ni les sous-menus ni les séparateurs ne distribuent d’événements select. Ecoutez les événements preparing pour savoir quand une option de menu est sur le point d’être affichée ou activée par l’intermédiaire d’un équivalent de touche.

flash.display.NativeMenuflash.display.NativeMenu.addSubmenu()preparing Distribué par cet objet NativeMenuItem lorsque l’utilisateur appuie sur son équivalent de touche et immédiatement avant l’affichage du menu le contenant.flash.events.Event.PREPARINGflash.events.Event Distribué par cet objet NativeMenuItem lorsque l’utilisateur appuie sur son équivalent de touche et immédiatement avant l’affichage du menu le contenant.

Ecoutez cet événement pour mettre à jour l’option avant l’affichage du menu la contenant ou lorsque l’utilisateur appuie sur son équivalent de touche. L’événement preparing est distribué avant l’évaluation complète de l’équivalent de touche. Vous pouvez activer, désactiver ou supprimer l’option du menu dans le gestionnaire de l’événement preparing ; ces modifications prendront effet lors du traitement de l’équivalent de touche. Par exemple, si vous supprimez ou désactiver cette option de menu, la séquence d’événements est effectivement annulée et aucun événement select n’est distribué. Un événement preparing est également distribué par les autres options d’un menu.

L’événement preparing prime sur l’événement displaying et offre des fonctionnalités supplémentaires. Ecoutez soit l’événement preparing soit l’événement displaying, mais pas les deux.

displaying Distribué par cet objet NativeMenuItem immédiatement avant l’affichage du menu contenant l’option.flash.events.Event.DISPLAYINGflash.events.Event Distribué par cet objet NativeMenuItem immédiatement avant l’affichage du menu contenant l’option.

L’événement preparing prime sur l’événement displaying et offre des fonctionnalités supplémentaires. Ecoutez soit l’événement preparing soit l’événement displaying, mais pas les deux.

select Distribué chaque fois que l’utilisateur sélectionne une option de menu.flash.events.Event.SELECTflash.events.Event Distribué chaque fois que l’utilisateur sélectionne une option de menu.

Un événement select effectue une propagationt de cet élément vers le menu qu’il contient jusqu’à l’objet menu racine en passant par la chaîne de menu parent. La propriété target de l’objet event fait référence à cet objet NativeMenuItem ; la propriété currentTarget fait référence à l’objet dispatching (cet objet NativeMenuItem ou un ancien objet NativeMenu).

Remarque : si la fenêtre contenant le menu est en mode plein écran (stage.displayState == StageDisplayState.FULL_SCREEN), l’objet NativeMenuItem ne distribue pas d’événement select lorsque l’utilisateur entre un équivalent clavier pour une option de menu.

NativeMenuItem Crée un nouvel objet NativeMenuItem.labelStringL’étiquette d’affichage pour l’élément ou une chaîne vide pour des séparateurs. isSeparatorBooleanfalseRéglez sur true pour créer un séparateur ; autrement, réglez sur false. Crée un nouvel objet NativeMenuItem.

Pour créer une commande de menu, définissez le paramètre label sur une chaîne contenant l’étiquette d’affichage et définissez isSeparator sur false.

Pour créer une commande de sous-menu, créez un élément de commande, puis affectez l’objet NativeMenu du sous-menu à la propriété submenu de cet élément. Ajoutez l’élément au menu parent.

Pour créer un séparateur, définissez le paramètre label sur une chaîne vide et définissez isSeparator sur true.

Ajoutez et supprimez des éléments d’un menu à l’aide des méthodes NativeMenu addItem() et removeItem().

flash.display.NativeMenu.addSubmenu()
clone Crée une copie de l’objet NativeMenuItem.flash.display:NativeMenuItem Crée une copie de l’objet NativeMenuItem. toString Renvoie une chaîne répertoriant toutes les propriétés de l’objet NativeMenuItem.Chaîne répertoriant toutes les propriétés de l’objet Event. String Renvoie une chaîne répertoriant toutes les propriétés de l’objet NativeMenuItem. checked Contrôle si cette option de menu affiche une case à cocher.Boolean Contrôle si cette option de menu affiche une case à cocher. data Un objet de données arbitraire associé à cette option de menu.Object Un objet de données arbitraire associé à cette option de menu.

Vous pouvez attribuer n’importe quel objet à cette propriété. L’objet affecté n’est pas utilisé par le système de menu mais est disponible pour le code de gestion des événements (via la propriété target de l’objet event). Par défaut, la valeur de cette propriété est null.

enabled Contrôle si cette option de menu est activée.Boolean Contrôle si cette option de menu est activée. isSeparator Indique si cet élément est une ligne de démarcation de menu.Boolean Indique si cet élément est une ligne de démarcation de menu.

Créez une ligne de démarcation en définissant le paramètre isSeparator dans le constructeur NativeMenuItem sur true.

keyEquivalentModifiers Le tableau de codes de touche pour les modificateurs des équivalents de touche.Array Le tableau de codes de touche pour les modificateurs des équivalents de touche.

Utilisez les constantes définies dans la classe Keyboard pour spécifier les codes de touche de modificateur. Les touches de modificateur valides comprennent :

  • Keyboard.ALTERNATE
  • Keyboard.COMMAND
  • Keyboard.CONTROL

Si vous n’affectez aucun modificateur, la touche Keyboard.CONTROL est affectée par défaut sous Windows ou Linux et la touche Keyboard.COMMAND est affectée sous Mac OS X. Si vous ne souhaitez pas que l’équivalent de touche comprenne ces modificateurs, définissez cette propriété sur un tableau vide.

Si vous affectez une lettre majuscule à la propriété keyEquivalent, la touche Maj est automatiquement utilisée comme modificateur. La définition de keyEquivalentModifier sur un tableau vide ne supprime pas la touche Maj comme modificateur.

flash.ui.Keyboard
keyEquivalent L’équivalent de touche de cette option de menu.String L’équivalent de touche de cette option de menu.

Définissez keyEquivalent avec une minuscule pour affecter un raccourci sans touche de modification Maj. Définissez une lettre majuscule pour affecter un raccourci avec la touche de modification Maj.

Par défaut, un modificateur d’équivalent de touche (Ctrl sous Windows ou Linux et Commande sous Mac OS X) est inclus dans l’équivalent de touche. Si vous souhaitez que l’équivalent de touche soit une touche sans modificateur, définissez la propriété keyEquivalentModifiers sur un tableau vide.

label La chaîne d’affichage de cette option de menu.String La chaîne d’affichage de cette option de menu. menu Le menu qui contient cette option.flash.display:NativeMenu Le menu qui contient cette option. mnemonicIndex La position du caractère mnémonique dans l’étiquette de l’option de menu.int La position du caractère mnémonique dans l’étiquette de l’option de menu.

Le caractère à la position spécifiée devient le caractère mnémonique pour l’option de menu. L’index est de base zéro, donc le premier caractère a un index de 0.

Cette propriété est ignorée sur les systèmes d’exploitation qui n’utilisent pas de mnémoniques de menu.

name Le nom de cette option de menu.String Le nom de cette option de menu.

La valeur de nom n’est pas affichée et peut être utilisée comme identifiant indépendant des paramètres régionaux. Le nom n’est pas affecté automatiquement.

submenu Le sous-menu associé à cette option de menu.flash.display:NativeMenu Le sous-menu associé à cette option de menu.

L’attribution d’un objet NativeMenu à cette propriété change l’aspect et le comportement de l’option de menu. Un élément de sous-menu affiche l’icône du sous-menu et ne déclenche plus d’événements select.

Remarque : l’ajout d’un menu comme sous-menu de lui-même (dans une référence circulaire) peut provoquer l’arrêt intempestif d’une application.

flash.display.NativeMenu.addSubmenu()
NativeMenu La classe NativeMenu contient des méthodes et des propriétés pour la définition de menus natifs.flash.events:EventDispatcher La classe NativeMenu contient des méthodes et des propriétés pour la définition de menus natifs.

Prise en charge du profil AIR : cette fonctionnalité est prise en charge sur tous les systèmes d’exploitation de bureau, mais ne l’est pas sur les périphériques mobiles ou les périphériques AIR pour TV. Vous pouvez tester la prise en charge lors de l’exécution à l’aide de la propriété NativeMenu.isSupported. Voir Prise en charge du profil AIR pour plus d’informations sur la prise en charge de l’API dans plusieurs profils.

Un menu natif est un menu contrôlé et conçu par le système d’exploitation plutôt que par votre application. AIR prend en charge les types de menus natifs suivants :

  • Les menus d’application sont pris en charge sous OS X. Utilisez la propriété NativeApplication.supportsMenu pour vérifier si les menus d’application sont pris en charge par le système d’exploitation hôte. Un menu d’application s’affiche sur la barre de menus dans la partie supérieure du bureau du poste de travail Mac. OS X propose un menu par défaut pour chaque application, mais de nombreuses commandes de menu ne sont pas opérationnelles. Vous pouvez ajouter des écouteurs d’événement aux éléments par défaut, remplacer les menus et les éléments individuels, voire même remplacer le menu par défaut dans son intégralité. Accédez à l’objet du menu d’application à l’aide de la propriété menu de NativeApplication.
  • Les menus de fenêtre sont pris en charge sous Windows et Linux. Utilisez la propriété NativeWindow.supportsMenu pour vérifier si les menus de fenêtre sont pris en charge par le système d’exploitation hôte. Un menu de fenêtre s’affiche sous la barre de titre de la fenêtre. La zone occupée par le menu ne fait pas partie de la scène de la fenêtre. Les applications ne peuvent pas dessiner dans cette zone. Affectez un menu à une fenêtre à l’aide de la propriété menu de NativeWindow.
  • Les menus des icônes du Dock sont pris en charge sous OS X. Utilisez la propriété NativeApplication.supportsDockIcon pour vérifier si les icônes du Dock sont prises en charge par le système d’exploitation hôte. Les éléments de menu d’une icône du Dock s’affichent au-dessus des éléments par défaut fournis par le système d’exploitation. Il est impossible d’accéder aux éléments par défaut via le code de l’application. Affectez un menu à la propriété menu de l’objet DockIcon de l’application.
  • Les menus des icônes de la barre d’état système sont pris en charge sous Windows et la plupart des systèmes d’exploitation Linux. Utilisez la propriété NativeApplication.supportsSystemTrayIcon pour vérifier si les icônes de la barre d’état système sont prises en charge par le système d’exploitation hôte. Le menu d’une icône de la barre d’état système s’affiche lorsque l’utilisateur clique avec le bouton droit de la souris sur l’icône, de la même façon qu’un menu contextuel. Affectez un menu à la propriété menu de l’objet SystemTrayIcon de l’application.
  • Les menus contextuels sont pris en charge sur tous les systèmes d’exploitation. Les menus contextuels s’affichent en réponse à un événement d’interface utilisateur, notamment lorsqu’un utilisateur clique avec le bouton droit de la souris sur un objet InteractiveObject affiché dans l’application ou clique dessus tout en maintenant la touche Commande enfoncée. Le mécanisme d’affichage des menus propre à l’interface utilisateur varie en fonction du système d’exploitation hôte et du matériel. Affectez un menu à la propriété contextMenu d’une occurrence d’InteractiveObject. Dans AIR, il est possible de créer un menu contextuel avec la classe NativeMenu ou la classe ContextMenu. Dans Flash Player, seule la classe ContextMenu peut être utilisée. Les menus contextuels dans AIR ne possèdent aucun élément intégré ; un menu contextuel par défaut n’est pas affiché.
  • Les menus déroulants sont pris en charge sur tous les systèmes d’exploitation. D’un point de vue fonctionnel, les menus déroulants sont identiques aux menus contextuels, à la différence qu’ils s’affichent via la méthode display() et non en réponse à l’événement d’une interface utilisateur. Un menu déroulant n’est lié à aucun autre objet. Il suffit de créer le menu natif et d’appeler la méthode display().

Un objet de menu contient des options de menu. Une option de menu peut représenter une commande, un sous-menu ou une ligne de démarcation. Ajoutez des options de menu à un menu à l’aide de la méthode addItem() ou addItemAt(). L’ordre d’affichage des options de menu correspond à l’ordre des éléments dans le tableau items du menu.

Pour créer un sous-menu, ajoutez une option de menu à l’objet de menu parent. Affectez l’objet de menu représentant le sous-menu à la propriété submenu de l’option de menu correspondant dans le menu parent.

Remarque : le menu racine des menus de fenêtre et d’application doit contenir uniquement des options de sous-menu ; les options qui ne représentent pas des sous-menus risquent de ne pas s’afficher et sont contraires à l’attente de l’utilisateur pour ces types de menus.

Les menus distribuent des événements select lorsqu’un de leurs éléments de commande, ou l’un de ses sous-menu, est sélectionné (les éléments de sous-menu et de séparateur ne peuvent pas être sélectionnés). La propriété target de l’objet d’événement fait référence à l’élément sélectionné.

Les menus distribuent des événements preparing juste avant l’affichage du menu et lorsqu’un l’utilisateur appuie sur l’équivalent de touche associé à l’une des options du menu. Vous pouvez utiliser cet événement pour mettre à jour le contenu du menu en fonction de l’état actuel de l’application.

Remarque : si vous utilisez la structure Flex, pensez à utiliser la classe FlexNativeMenu. Il est généralement plus facile de définir des menus par déclaration au format MXML que de rédiger du code ActionScript pour créer la structure du menu élément par élément.

flash.display.InteractiveObject.contextMenuflash.display.NativeMenuItemflash.display.NativeWindow.menuflash.desktop.DockIconflash.desktop.SystemTrayIconflash.desktop.NativeApplication.menuflash.desktop.NativeApplication.iconmx.controls.FlexNativeMenupreparing Distribué par l’objet NativeMenu lorsque l’utilisateur appuie sur un équivalent de touche et immédiatement avant l’affichage du menu.flash.events.Event.PREPARINGflash.events.Event Distribué par l’objet NativeMenu lorsque l’utilisateur appuie sur un équivalent de touche et immédiatement avant l’affichage du menu.

Ecoutez cet événement pour mettre à jour le menu avant qu’il ne s’affiche ou lorsque l’utilisateur appuie sur un équivalent de touche. L’événement preparing est distribué avant l’évaluation complète de l’équivalent de touche. Vous pouvez activer, désactiver, ajouter ou supprimer des options du menu dans le gestionnaire de l’événement preparing ; ces modifications prendront effet lors du traitement de l’équivalent de touche. Par exemple, si vous supprimez ou désactiver l’option de menu attribuée à l’équivalent de la touche de déclenchement, la séquence d’événements est effectivement annulée et aucun événement select n’est distribué. Un événement preparing est également distribué par les options d’un menu.

L’événement preparing prime sur l’événement displaying et offre des fonctionnalités supplémentaires. Ecoutez soit l’événement preparing soit l’événement displaying, mais pas les deux.

displaying Distribué par cet objet NativeMenu immédiatement avant l’affichage du menu.flash.events.Event.DISPLAYINGflash.events.Event Distribué par cet objet NativeMenu immédiatement avant l’affichage du menu.

Ecoutez cet événement pour mettre à jour le menu avant son affichage. Un événement displaying est également distribué par les options d’un menu.

L’événement preparing prime sur l’événement displaying et offre des fonctionnalités supplémentaires. Ecoutez soit l’événement preparing soit l’événement displaying, mais pas les deux.

Remarque : sous Mac OS X, dans les versions d’AIR antérieures à 2.6, les menus et les options de menu distribuaient un événement displaying lorsque l’utilisateur appuyait sur un équivalent de touche. (Cet événement n’était cependant pas distribué pour l’interaction d’équivalence de touche sur d’autres systèmes d’exploitation.) A partir d’AIR 2.6, les événements displaying ne sont plus distribués lorsque l’utilisateur appuie sur un équivalent de touche. Utilisez plutôt l’événement preparing.

select Distribué par cet objet NativeMenu lorsque l’une de ses options de menu ou un élément dans l’un de ses sous-menus descendants est sélectionné.flash.events.Event.SELECTflash.events.Event Distribué par cet objet NativeMenu lorsque l’une de ses options de menu ou un élément dans l’un de ses sous-menus descendants est sélectionné.

Un événement select effectue une propagation de cette option de menu vers le menu qu’il contient jusqu’à l’objet menu racine en passant par la chaîne de menu parent. La propriété target de l’objet event fait référence à l’objet NativeMenuItem sélectionné ; la propriété currentTarget fait référence à cet objet NativeMenu.

NativeMenu Crée un nouvel objet NativeMenu. Crée un nouvel objet NativeMenu. addItemAt Insère une option de menu à la position spécifiée.Si item est null. ArgumentErrorArgumentErrorSi item est membre d’un autre menu. ArgumentErrorArgumentErrorSi l’index est situé hors des limites du tableau items du menu. RangeErrorRangeErrorflash.display:NativeMenuItemitemflash.display:NativeMenuItemObjet NativeMenuItem à insérer. indexintPosition (de base zéro) dans le menu à laquelle l’option de menu doit être insérée.

Remarque : l’ajout d’un élément à un menu peut provoquer l’arrêt intempestif d’une application si le sous-menu de l’élément est défini sur le menu lui-même (ce qui provoque une référence circulaire).

Insère une option de menu à la position spécifiée. La position est indexée à partir du haut. Définissez le paramètre index sur zéro pour insérer l’option dans la partie supérieure du menu. Tous les types de menus (fenêtre, application, icône de la barre d’état système, icône du dock, menu contextuel et menu déroulant) indexent la position du menu à partir du haut.
addItem Ajoute un élément de menu en bas du menu.Si item est null. ArgumentErrorArgumentErrorSi item est membre d’un autre menu. ArgumentErrorArgumentErrorflash.display:NativeMenuItemitemflash.display:NativeMenuItemObjet NativeMenuItem à ajouter au bas du menu. Ajoute un élément de menu en bas du menu.

Lors de la création d’un menu contextuel, vous pouvez ajouter des objets NativeMenuItem ou ContextMenuItem. Nous vous conseillons toutefois de n’utiliser qu’un seul type d’objet dans un menu contextuel afin que tous les éléments du menu possèdent les mêmes propriétés.

Remarque : l’ajout d’un élément à un menu peut provoquer l’arrêt intempestif d’une application si le sous-menu de l’élément est défini sur le menu lui-même (ce qui provoque une référence circulaire).

addSubmenuAt Ajoute un sous-menu au menu en insérant une nouvelle option de menu à la position spécifiée.Objet NativeMenuItem créé pour le sous-menu. flash.display:NativeMenuItemsubmenuflash.display:NativeMenuObjet NativeMenu définissant le sous-menu à ajouter. indexintLa position dans le tableau items de ce menu à laquelle insérer l’option de menu à ajouter. labelStringL’étiquette d’affichage pour l’option de menu à ajouter. Ajoute un sous-menu au menu en insérant une nouvelle option de menu à la position spécifiée.

Un appel à la méthode addSubMenuAt() équivaut à créer une option de menu, en l’insérant à la position souhaitée dans le menu, et en attribuant un objet NativeMenu à sa propriété submenu.

Remarque : l’ajout d’un menu comme sous-menu de lui-même (dans une référence circulaire) peut provoquer l’arrêt intempestif d’une application.

addSubmenu Ajoute un sous-menu au menu en insérant une nouvelle option de menu.Objet NativeMenuItem créé pour le sous-menu. flash.display:NativeMenuItemsubmenuflash.display:NativeMenuObjet NativeMenu définissant le sous-menu à ajouter. labelStringL’étiquette d’affichage pour l’option de menu à ajouter. Ajoute un sous-menu au menu en insérant une nouvelle option de menu.

Un appel à la méthode addSubMenuAt() équivaut à créer une option de menu, en l’ajoutant au menu, et en attribuant un objet NativeMenu à sa propriété submenu.

Remarque : l’ajout d’un menu comme sous-menu de lui-même (dans une référence circulaire) peut provoquer l’arrêt intempestif d’une application.

clone Crée une copie du menu et de toutes les options.flash.display:NativeMenu Crée une copie du menu et de toutes les options. containsItem Indique si ce menu contient l’option de menu spécifiée.true si item est dans ce menu. Booleanitemflash.display:NativeMenuItemL’objet NativeMenuItem à rechercher. Indique si ce menu contient l’option de menu spécifiée. display Déroule ce menu à l’emplacement spécifié.stageflash.display:StageL’objet Stage sur lequel afficher ce menu. stageXNumberNombre de pixels horizontaux, par rapport à l’origine de la scène, sur laquelle afficher ce menu. stageYNumberNombre de pixels verticaux, par rapport à l’origine de la scène, sur laquelle afficher ce menu. Déroule ce menu à l’emplacement spécifié. getItemAt Obtient l’option de menu à l’index spécifié.Si index est situé hors des limites du tableau items du menu. RangeErrorRangeErrorObjet NativeMenuItem à la position spécifiée dans le menu. flash.display:NativeMenuItemindexintPosition (de base zéro) dans l’option à renvoyer. Obtient l’option de menu à l’index spécifié. getItemByName Obtient l’option de menu avec le nom spécifié.Objet NativeMenuItem avec le nom spécifié ou null, si aucune option n’existe dans le menu. flash.display:NativeMenuItemnameStringChaîne à rechercher. Obtient l’option de menu avec le nom spécifié.

Remarque : la propriété name des options de menu n’est pas attribuée par défaut.

getItemIndex Obtient la position de l’option spécifiée.Position (de base zéro) de l’élément spécifié dans ce menu ou -1 si l’élément ne se trouve pas dans ce menu. intitemflash.display:NativeMenuItemL’objet NativeMenuItem à rechercher. Obtient la position de l’option spécifiée. removeAllItems Supprime tous les éléments du menu. Supprime tous les éléments du menu. removeItemAt Supprime et renvoie l’option de menu à l’index spécifié.Si index est situé hors des limites du tableau items de ce menu. RangeErrorRangeErrorObjet NativeMenuItem supprimé. flash.display:NativeMenuItemindexintPosition (de base zéro) de l’élément à supprimer. Supprime et renvoie l’option de menu à l’index spécifié. removeItem Supprime l’élément de menu spécifié.Si item n’est pas dans ce menu RangeErrorRangeErrorflash.display:NativeMenuItemitemflash.display:NativeMenuItemObjet NativeMenuItem à supprimer de ce menu. Supprime l’élément de menu spécifié. setItemIndex Déplace une option de menu vers la position spécifiée.Si index est situé hors des limites du tableau items du menu. RangeErrorRangeErroritemflash.display:NativeMenuItemObjet NativeMenuItem à déplacer. indexintPosition (de base zéro) dans le menu vers lequel déplacer item. Déplace une option de menu vers la position spécifiée. Si l’élément n’est pas déjà dans le menu, l’appel de cette méthode ajoute l’élément au menu. isSupported Indique si une forme de menu natif est prise en charge sur le système client.Boolean Indique si une forme de menu natif est prise en charge sur le système client. flash.display.NativeWindow.supportsMenuflash.desktop.NativeApplicationitems Tableau d’objets NativeMenuItem dans ce menu.Array Tableau d’objets NativeMenuItem dans ce menu.

Le tableau est trié par ordre d’affichage.

Remarque : cette propriété est disponible en lecture seule dans AIR 1.0. Elle est disponible en lecture et en écriture dans AIR 1.1.

numItems Nombre d’objets NativeMenuItem dans ce menu.int Nombre d’objets NativeMenuItem dans ce menu. parent Le menu parent.flash.display:NativeMenu Le menu parent.

Le parent de l’objet menu racine (niveau supérieur) est null.

StageOrientation La classe StageOrientation définit les constantes permettant d’énumérer les possibles orientations de la scène et du périphérique.La classe StageOrientation fournit des valeurs à la propriété orientation de la classe Stage, ainsi qu’à d’autres propriétés et méthodes où l’orientation de la scène est référencée. Object La classe StageOrientation définit les constantes permettant d’énumérer les possibles orientations de la scène et du périphérique. flash.display.Stage.orientationflash.display.Stage.setOrientation()flash.display.Stage.deviceOrientationflash.events.StageOrientationEvent.afterOrientationflash.events.StageOrientationEvent.beforeOrientationDEFAULT Indique que la scène adopte actuellement l’orientation par défaut du périphérique (côté droit vers le haut).defaultString Indique que la scène adopte actuellement l’orientation par défaut du périphérique (côté droit vers le haut). ROTATED_LEFT Indique que la scène pivote actuellement vers la gauche par rapport à l’orientation par défaut.rotatedLeftString Indique que la scène pivote actuellement vers la gauche par rapport à l’orientation par défaut.

Remarque : lorsque l’orientation du périphérique se fait vers la gauche, l’orientation de la scène doit se faire vers la droite pour rester droite.

ROTATED_RIGHT Indique que la scène pivote actuellement vers la droite par rapport à l’orientation par défaut.rotatedRightString Indique que la scène pivote actuellement vers la droite par rapport à l’orientation par défaut.

Remarque : lorsque l’orientation du périphérique se fait vers la droite, l’orientation de la scène doit se faire vers la gauche pour rester droite.

UNKNOWN Indique que le périphérique n’a pas établi d’orientation.unknownString Indique que le périphérique n’a pas établi d’orientation. Cet état peut se produire lorsque le périphérique est posé à plat sur une table, mais aussi lorsque l’application est en cours d’initialisation. UPSIDE_DOWN Indique que la scène est actuellement à l’envers par rapport à l’orientation par défaut.upsideDownString Indique que la scène est actuellement à l’envers par rapport à l’orientation par défaut.
DisplayObjectContainer La classe DisplayObjectContainer est la classe de base de tous les objets susceptibles de servir de conteneurs d’objet d’affichage dans la liste d’affichage.Classe de base abstraite de tous les objets d’affichage pouvant contenir des objets enfant. flash.display:InteractiveObject La classe DisplayObjectContainer est la classe de base de tous les objets susceptibles de servir de conteneurs d’objet d’affichage dans la liste d’affichage. La liste d’affichage gère tous les objets affichés dans les moteurs d’exécution de Flash. La classe DisplayObjectContainer permet d’organiser les objets d’affichage dans la liste d’affichage. Chaque objet DisplayObjectContainer possède sa propre liste d’enfants, qui organise l’ordre Z des objets. L’ordre z correspond à l’ordre d’empilement du premier plan vers l’arrière-plan qui détermine l’objet dessiné au premier plan, l’objet dessiné derrière lui, etc.

DisplayObject est une classe de base abstraite. De ce fait, il est impossible de l’appeler directement. Appeler new DisplayObject() renvoie une exception ArgumentError.

La classe DisplayObjectContainer est une classe de base abstraite destinée à tous les objets pouvant contenir des objets enfant. Il est impossible de l’instancier directement. Appeler le constructeur new DisplayObjectContainer() renvoie une exception ArgumentError.

Pour plus d’informations, voir le chapitre « Programmation de l’affichage » du Guide du développeur d’ActionScript 3.0.

L’exemple suivant exploite la classe DisplayObjectContainerExample pour créer cinq carrés orange les uns à la suite des autres. Pour ce faire, procédez comme suit :
  1. Le constructeur appelle la méthode configureAssets().
  2. La méthode configureAssets() crée des objets Sprite child et lastChild.
  3. Une boucle for crée les cinq carrés orange et les place les uns à la suite des autres.
  4. Lorsqu’un objet CustomSprite est créé, son constructeur appelle la méthode draw() de l’objet CustomSprite, qui crée un carré de 50 x 50 pixels en appelant les méthodes beginFill(), drawRect() et endFill() de la classe Graphics. La méthode addChild() place les carrés ainsi créé dans la liste d’affichage.
package { import flash.display.DisplayObject; import flash.display.Sprite; public class DisplayObjectContainerExample extends Sprite { private var gutter:uint = 5; private var childCount:uint = 5; public function DisplayObjectContainerExample() { configureAssets(); } private function configureAssets():void { var child:Sprite = new CustomSprite(); var lastChild:Sprite = child; for (var i:uint = 1; i <= childCount; i++) { child = new CustomSprite(); child.x = lastChild.x + lastChild.width + gutter; addChild(child); lastChild = child; } } } } import flash.display.Sprite; class CustomSprite extends Sprite { private var size:uint = 50; private var bgColor:uint = 0xFFCC00; public function CustomSprite() { draw(size, size); } private function draw(w:uint, h:uint):void { graphics.beginFill(bgColor); graphics.drawRect(0, 0, w, h); graphics.endFill(); } }
flash.display.DisplayObjectDisplayObjectContainer L’appel du constructeur DisplayObjectContainer() renvoie une exception ArgumentError. L’appel du constructeur new DisplayObjectContainer() renvoie une exception ArgumentError. Vous pouvez cependant appeler des constructeurs pour les sous-classes suivantes de DisplayObjectContainer :
  • new Loader()
  • new Sprite()
  • new MovieClip()
addChildAt Ajoute une occurrence DisplayObject enfant à cette occurrence DisplayObjectContainer.Renvoie une exception si la position d’index n’existe pas dans la liste d’enfants. RangeErrorRangeErrorRenvoie une exception si l’enfant et le parent sont identiques. Renvoie également une exception si l’appelant est un enfant (ou petit-enfant, etc.) de l’enfant qui est en cours d’ajout. ArgumentErrorArgumentErrorOccurrence DisplayObject transmise au paramètre child. flash.display:DisplayObjectchildflash.display:DisplayObjectOccurrence DisplayObject à ajouter en tant qu’enfant à cette occurrence DisplayObjectContainer. indexintPosition d’index à laquelle l’enfant est ajouté. Si vous spécifiez une position d’index actuellement occupée, l’objet enfant associé à cette position et toutes les positions supérieures sont décalés d’une position vers le haut dans la liste d’enfants. Ajoute un objet enfant à cette occurrence de DisplayObjectContainer. Ajoute une occurrence DisplayObject enfant à cette occurrence DisplayObjectContainer. L’enfant est placé à la position d’index spécifiée. La position d’index 0 représente la fin (le bas) de la liste d’affichage pour cet objet DisplayObjectContainer.

Ainsi, l’exemple suivant illustre trois objets d’affichage appelés a, b et c, qui occupent respectivement les positions d’index 0, 2 et 1 :

Si vous ajoutez un objet enfant qui est déjà doté d’un autre conteneur d’objet d’affichage en tant que parent, il est supprimé de la liste d’enfants de cet autre conteneur d’objet d’affichage.

L’exemple suivant crée un conteneur d’objet d’affichage, container, et ajoute un objet d’affichage circle1 à sa liste d’affichage. Ensuite, en appelant container.addChildAt(circle2, 0), il ajoute l’objet circle2 à la position d’index zéro (arrière) et déplace l’objet circle1 vers la position d’index 1 : import flash.display.Sprite; var container:Sprite = new Sprite(); var circle1:Sprite = new Sprite(); var circle2:Sprite = new Sprite(); container.addChild(circle1); container.addChildAt(circle2, 0); trace(container.getChildAt(0) == circle2); // true trace(container.getChildAt(1) == circle1); // true
addChild()addedflash.events:EventDistribué lorsqu’un objet d’affichage est ajouté à la liste d’affichage. Distribué lorsqu’un objet d’affichage est ajouté à la liste d’affichage.
addChild Ajoute une occurrence DisplayObject enfant à cette occurrence DisplayObjectContainer.Renvoie une exception si l’enfant et le parent sont identiques. Renvoie également une exception si l’appelant est un enfant (ou petit-enfant, etc.) de l’enfant qui est en cours d’ajout. ArgumentErrorArgumentErrorOccurrence DisplayObject transmise au paramètre child. flash.display:DisplayObjectchildflash.display:DisplayObjectOccurrence DisplayObject à ajouter en tant qu’enfant à cette occurrence DisplayObjectContainer. Ajoute un objet enfant à cette occurrence de DisplayObjectContainer. Ajoute une occurrence DisplayObject enfant à cette occurrence DisplayObjectContainer. L’enfant est ajouté devant (par-dessus) tous les autres enfants dans cette occurrence de DisplayObjectContainer (pour ajouter un enfant à une position d’index spécifique, utilisez la méthode addChildAt()).

Si vous ajoutez un objet enfant qui est déjà doté d’un autre conteneur d’objet d’affichage en tant que parent, il est supprimé de la liste d’enfants de cet autre conteneur d’objet d’affichage.

Remarque : la commande stage.addChild() risque de poser certains problèmes avec un fichier SWF publié, notamment des problèmes de sécurité et des conflits avec d’autres fichiers SWF chargés. Il n’existe qu’une seule scène au sein d’une occurrence du moteur d’exécution de Flash, quel que soit le nombre de fichiers SWF que vous chargez dans le moteur d’exécution. Ainsi, en règle générale, les objets ne devraient pas être ajoutés à la scène directement. Le seul objet que la scène devrait contenir est l’objet racine. Créez un objet DisplayObjectContainer qui contienne tous les éléments de la liste d’affichage. Le cas échéant, ajoutez ensuite cette occurrence de DisplayObjectContainer sur la scène.

L’exemple suivant définit deux objets Sprite appelés container1 et container2. Un Sprite est un type de conteneur d’objet d’affichage. L’exemple appelle la méthode addChild() pour configurer la hiérarchie d’affichage : container1 est un enfant de container2, tandis que deux autres objets d’affichage, circle1 et circle2, sont des enfants de container1. Les appels à la méthode trace() affichent le nombre d’enfants de chaque objet. Tenez compte du fait que les petits-enfants ne sont pas inclus dans le décompte de numChildren : import flash.display.Sprite; var container1:Sprite = new Sprite(); var container2:Sprite = new Sprite(); var circle1:Sprite = new Sprite(); circle1.graphics.beginFill(0xFFCC00); circle1.graphics.drawCircle(40, 40, 40); var circle2:Sprite = new Sprite(); circle2.graphics.beginFill(0x00CCFF); circle2.graphics.drawCircle(80, 40, 40); container2.addChild(container1); container1.addChild(circle1); container1.addChild(circle2); trace(container1.numChildren); // 2 trace(container2.numChildren); // 1 trace(circle1.numChildren); // 0 trace(circle2.numChildren); // 0
addChildAt()addedflash.events:EventDistribué lorsqu’un objet d’affichage est ajouté à la liste d’affichage. Distribué lorsqu’un objet d’affichage est ajouté à la liste d’affichage.
areInaccessibleObjectsUnderPoint Indique si les restrictions de sécurité entraîneraient l’omission des objets d’affichage de la liste renvoyée en appelant la méthode DisplayObjectContainer.getObjectsUnderPoint() avec le point « point » spécifié.true si le point contient des objets d’affichage enfant associés à des restrictions de sécurité. Booleanpointflash.geom:PointLe point sous lequel sont extraits les objets. Indique si les restrictions de sécurité entraîneraient l’omission des objets d’affichage de la liste renvoyée en appelant la méthode DisplayObjectContainer.getObjectsUnderPoint() avec le point point spécifié. Par défaut, le contenu d’un domaine ne peut pas accéder aux objets d’un autre domaine, à moins d’y être autorisé via un appel de la méthode Security.allowDomain(). Pour plus d’informations concernant la sécurité, voir la rubrique du Pôle de développement Flash Player : Sécurité (disponible en anglais uniquement).

Le paramètre point est exprimé dans l’espace de coordonnées de la scène, qui risque d’être différent de l’espace de coordonnées du conteneur d’objet d’affichage (à moins que ce dernier ne corresponde à la scène). Vous pouvez utiliser les méthodes globalToLocal() et localToGlobal() pour passer d’un espace de coordonnées à l’autre.

Le code suivant crée un conteneur d’objet d’affichage appelé container. Le bloc de code suivant a recours à un objet Loader pour charger un fichier JPEG appelé « test.jpg » à partir d’un serveur de fichiers distant. Tenez compte du fait que la propriété checkPolicyFile de l’objet LoaderContext utilisé en tant que paramètre dans la méthode load() est défini sur false. Une fois le fichier chargé, le code appelle la méthode loaded(), qui en retour appelle container.areInaccessibleObjectsUnderPoint(), qui renvoie la valeur true car le contenu chargé est considéré comme provenant d’un domaine inaccessible : import flash.display.Sprite; import flash.display.Loader; import flash.system.LoaderContext; import flash.net.URLRequest; import flash.events.Event; import flash.geom.Point; var container:Sprite = new Sprite(); var urlReq:URLRequest = new URLRequest("http://localhost/RemoteFile.swf"); var ldr:Loader = new Loader(); var context:LoaderContext = new LoaderContext(); context.checkPolicyFile = false; ldr.load(urlReq, context); ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, loaded); ldr.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, urlNotFound); function loaded(event:Event):void { var pt:Point = new Point(1, 1); trace(container.areInaccessibleObjectsUnderPoint(pt)); // true } function urlNotFound(event:Event):void { trace("The URL was not found."); } Cet exemple suppose que le fichier SWF produit par ce code est chargé à partir d’un domaine différent de celui du fichier JPEG, et que le fichier JPEG chargé occupe le point (1, 1).
flash.system.Security.allowDomain()getObjectsUnderPoint()DisplayObject.globalToLocal()DisplayObject.localToGlobal()
contains Détermine si l’objet d’affichage spécifié est un enfant de l’occurrence de DisplayObjectContainer ou l’occurrence en tant que telle.Renvoie true si l’objet child est un enfant de l’occurrence de DisplayObjectContainer ou le conteneur en tant que tel, false dans tous les autres cas. Booleanchildflash.display:DisplayObjectL’objet enfant à tester. Détermine si l’objet d’affichage spécifié est un enfant de l’occurrence de DisplayObjectContainer ou l’occurrence en tant que telle. La recherche comprend la liste d’affichage entière, y compris cette occurrence de DisplayObjectContainer. Les petits-enfants, les arrière-petits-enfants, et ainsi de suite renvoient chacun la valeur true. L’exemple suivant définit plusieurs objets Sprite et en ajoute une partie à la liste d’enfants des autres (un objet Sprite est un type de conteneur d’objet d’affichage). La relation entre les différents objets s’affiche en appelant la méthode contains() : import flash.display.Sprite; var sprite1:Sprite = new Sprite(); var sprite2:Sprite = new Sprite(); var sprite3:Sprite = new Sprite(); var sprite4:Sprite = new Sprite(); sprite1.addChild(sprite2); sprite2.addChild(sprite3); trace(sprite1.contains(sprite1)); // true trace(sprite1.contains(sprite2)); // true trace(sprite1.contains(sprite3)); // true trace(sprite1.contains(sprite4)); // false getChildAt Renvoie l’occurrence enfant de l’objet d’affichage associée à l’index spécifié.Renvoie une exception si l’index n’existe pas dans la liste d’enfants. RangeErrorRangeErrorCet objet d’affichage enfant appartient à un sandbox auquel vous n’avez pas accès. Pour éviter ce cas de figure, faites en sorte que l’animation enfant appelle la méthode Security.allowDomain(). SecurityErrorSecurityErrorL’objet d’affichage enfant qui occupe la position d’index spécifiée. flash.display:DisplayObjectindexintPosition d’index de l’objet enfant. Renvoie l’occurrence enfant de l’objet d’affichage associée à l’index spécifié. L’exemple suivant crée un conteneur d’objet d’affichage appelé container, puis ajoute trois objets d’affichage enfant à la liste d’enfants de l’objet container. Les appels à la méthode getChildAt() révèlent ensuite les positions des objets enfant : import flash.display.Sprite; var container:Sprite = new Sprite(); var sprite1:Sprite = new Sprite(); var sprite2:Sprite = new Sprite(); var sprite3:Sprite = new Sprite(); container.addChild(sprite1); container.addChild(sprite2); container.addChildAt(sprite3, 0); trace(container.getChildAt(0) == sprite3); // true trace(container.getChildAt(1) == sprite1); // true trace(container.getChildAt(2) == sprite2); // true getChildByName()getChildByName Renvoie l’objet d’affichage enfant portant le nom spécifié.Cet objet d’affichage enfant appartient à un sandbox auquel vous n’avez pas accès. Pour éviter ce cas de figure, faites en sorte que l’animation enfant appelle la méthode Security.allowDomain(). SecurityErrorSecurityErrorObjet d’affichage enfant portant le nom spécifié. flash.display:DisplayObjectnameStringNom de l’enfant à renvoyer. Renvoie l’objet d’affichage enfant portant le nom spécifié. Si plusieurs objets d’affichage enfant portent le nom spécifié, la méthode renvoie le premier objet de la liste d’enfants.

La méthode getChildAt() est plus rapide que la méthode getChildByName(). La méthode getChildAt() accède à un enfant à partir d’un tableau en mémoire cache, tandis que la méthode getChildByName() doit parcourir une liste liée pour accéder à l’enfant.

L’exemple suivant crée un conteneur d’objet d’affichage appelé container, puis ajoute deux objets d’affichage enfant au conteneur. Ensuite, le code appelle les méthodes getChildByName() et getChildIndex() pour renvoyer la position d’index de l’enfant de l’objet container avec le paramètre name "sprite1". import flash.display.Sprite; import flash.display.DisplayObject; var container:Sprite = new Sprite(); var sprite1:Sprite = new Sprite(); sprite1.name = "sprite1"; var sprite2:Sprite = new Sprite(); sprite2.name = "sprite2"; container.addChild(sprite1); container.addChild(sprite2); var target:DisplayObject = container.getChildByName("sprite1"); trace(container.getChildIndex(target)); // 0
getChildAt()flash.display.DisplayObject.name
getChildIndex Renvoie la position d’index d’une occurrence enfant de DisplayObject.Renvoie une exception si le paramètre enfant n’est pas un enfant de cet objet. ArgumentErrorArgumentErrorPosition d’index de l’objet d’affichage enfant à identifier. intchildflash.display:DisplayObjectOccurrence de DisplayObject à identifier. Renvoie le numéro d’index d’une occurrence enfant de DisplayObject. Renvoie la position d’index d’une occurrence child de DisplayObject. L’exemple suivant crée un conteneur d’objet d’affichage appelé container, puis ajoute deux objets d’affichage enfant au conteneur. Ensuite, le code appelle les méthodes getChildByName() et getChildIndex() pour renvoyer la position d’index de l’enfant de l’objet container avec le paramètre name "sprite1". import flash.display.Sprite; import flash.display.DisplayObject; var container:Sprite = new Sprite(); var sprite1:Sprite = new Sprite(); sprite1.name = "sprite1"; var sprite2:Sprite = new Sprite(); sprite2.name = "sprite2"; container.addChild(sprite1); container.addChild(sprite2); var target:DisplayObject = container.getChildByName("sprite1"); trace(container.getChildIndex(target)); // 0 getObjectsUnderPoint Renvoie un tableau d’objets de niveau inférieur au point spécifié et qui sont les enfants (ou les petits-enfants, etc.) de l’occurrence de DisplayObjectContainer.Tableau d’objets de niveau inférieur au point spécifié et qui sont les enfants (ou les petits-enfants, etc.) de cette occurrence de DisplayObjectContainer. Arraypointflash.geom:PointLe point sous lequel sont extraits les objets. Renvoie un tableau d’objets de niveau inférieur au point spécifié et qui sont les enfants (ou les petits-enfants, etc.) de l’occurrence de DisplayObjectContainer. Tout objet enfant auquel il est impossible d’accéder pour des raisons de sécurité est omis du tableau renvoyé. Pour vérifier si cette restriction de sécurité affecte le tableau renvoyé, appelez la méthode areInaccessibleObjectsUnderPoint().

Le paramètre point est exprimé dans l’espace de coordonnées de la scène, qui risque d’être différent de l’espace de coordonnées du conteneur d’objet d’affichage (à moins que ce dernier ne corresponde à la scène). Vous pouvez utiliser les méthodes globalToLocal() et localToGlobal() pour passer d’un espace de coordonnées à l’autre.

L’exemple suivant crée un conteneur d’objet d’affichage appelé container, puis ajoute deux objets d’affichage enfant qui se chevauchent au conteneur. Ensuite le code appelle deux fois getObjectsUnderPoint(). Une première fois avec un point qui ne touche qu’un seul objet, puis à l’aide d’un point où les objets se chevauchent. Enfin, le paramètre length du tableau renvoyé affiche le nombre d’objets de tous les points du conteneur : import flash.display.Sprite; import flash.geom.Point; var container:Sprite = new Sprite(); var square1:Sprite = new Sprite(); square1.graphics.beginFill(0xFFCC00); square1.graphics.drawRect(0, 0, 40, 40); var square2:Sprite = new Sprite(); square2.graphics.beginFill(0x00CCFF); square2.graphics.drawRect(20, 0, 30, 40); container.addChild(square1); container.addChild(square2); var pt:Point = new Point(10, 20); var objects:Array = container.getObjectsUnderPoint(pt); trace(objects.length); // 1 pt = new Point(35, 20); objects = container.getObjectsUnderPoint(pt); trace(objects.length); // 2
areInaccessibleObjectsUnderPoint()DisplayObject.globalToLocal()DisplayObject.localToGlobal()
removeChildAt Supprime une occurrence enfant de DisplayObject de la position d’index spécifiée dans la liste d’enfants de DisplayObjectContainer.Cet objet d’affichage enfant appartient à un sandbox auquel l’objet appelant n’a pas accès. Pour éviter ce cas de figure, faites en sorte que l’animation enfant appelle la méthode Security.allowDomain(). SecurityErrorSecurityErrorRenvoie une exception si l’index n’existe pas dans la liste d’enfants. RangeErrorRangeErrorOccurrence de DisplayObject supprimée. flash.display:DisplayObjectindexintIndex enfant de l’objet DisplayObject à supprimer. [Supprime un objet d’affichage enfant, à la position d’index spécifiée, à partir de l’occurrence DisplayObjectContainer. Supprime une occurrence enfant de DisplayObject de la position d’index spécifiée dans la liste d’enfants de DisplayObjectContainer. La propriété parent de l’enfant supprimé est réglée sur null et l’objet est nettoyé s’il n’existe aucune autre référence à l’enfant. Les positions d’index de tout objet d’affichage placé au-dessus de l’enfant dans DisplayObjectContainer sont diminuées d’une unité.

Le processus de nettoyage de la mémoire réaffecte l’espace mémoire non utilisé. Lorsqu’une variable ou un objet n’est plus référencé ou stocké de façon active, le nettoyeur de mémoire vide toutes ses références en mémoire qui ne sont plus utilisées.

L’exemple suivant crée un conteneur d’objet d’affichage appelé container, puis ajoute deux objets d’affichage enfant au conteneur. Vous pouvez ensuite constater que lorsque le code appelle la méthode removeChildAt() pour supprimer l’enfant à la position d’index la plus basse (0), tout autre objet enfant descend d’un niveau dans la liste : import flash.display.Sprite; var container:Sprite = new Sprite(); var sprite1:Sprite = new Sprite(); sprite1.name = "sprite1"; var sprite2:Sprite = new Sprite(); sprite2.name = "sprite2"; container.addChild(sprite1); container.addChild(sprite2); trace(container.numChildren) // 2 container.removeChildAt(0); trace(container.numChildren) // 1 trace(container.getChildAt(0).name); // sprite2
removeChild Supprime l’occurrence enfant de DisplayObject spécifiée de la liste d’enfants de l’occurrence de DisplayObjectContainer.Renvoie une exception si le paramètre enfant n’est pas un enfant de cet objet. ArgumentErrorArgumentErrorOccurrence DisplayObject transmise au paramètre child. flash.display:DisplayObjectchildflash.display:DisplayObjectOccurrence de DisplayObject à supprimer. Supprime un objet d’affichage enfant de l’occurrence de DisplayObjectContainer. Supprime l’occurrence child de DisplayObject spécifiée de la liste d’enfants de l’occurrence de DisplayObjectContainer. La propriété parent de l’enfant supprimé est réglée sur null et l’objet est nettoyé s’il n’existe aucune autre référence à l’enfant. Les positions d’index de tout objet d’affichage placé au-dessus de l’enfant dans DisplayObjectContainer sont diminuées d’une unité.

Le processus de nettoyage de la mémoire réaffecte l’espace mémoire non utilisé. Lorsqu’une variable ou un objet n’est plus référencé ou stocké de façon active, le nettoyeur de mémoire vide toutes ses références en mémoire qui ne sont plus utilisées.

L’exemple suivant crée un conteneur d’objet d’affichage appelé container, puis ajoute deux objets d’affichage enfant au conteneur. Un écouteur d’événement est ajouté à l’objet container, de façon à ce que lorsque l’utilisateur clique sur une objet enfant du conteneur, la méthode removeChild() l’enfant sur lequel l’utilisateur a cliqué dans la liste d’enfants du conteneur : import flash.display.DisplayObject; import flash.display.Sprite; import flash.events.MouseEvent; var container:Sprite = new Sprite(); addChild(container); var circle1:Sprite = new Sprite(); circle1.graphics.beginFill(0xFFCC00); circle1.graphics.drawCircle(40, 40, 40); var circle2:Sprite = new Sprite(); circle2.graphics.beginFill(0x00CCFF); circle2.graphics.drawCircle(120, 40, 40); container.addChild(circle1); container.addChild(circle2); container.addEventListener(MouseEvent.CLICK, clicked); function clicked(event:MouseEvent):void { container.removeChild(DisplayObject(event.target)); }
setChildIndex Modifie la position d’un enfant existant dans le conteneur d’objet d’affichage.Renvoie une exception si l’index n’existe pas dans la liste d’enfants. RangeErrorRangeErrorRenvoie une exception si le paramètre enfant n’est pas un enfant de cet objet. ArgumentErrorArgumentErrorchildflash.display:DisplayObjectOccurrence enfant de DisplayObject dont vous voulez modifier le numéro d’index. indexintNouveau numéro d’index de l’objet d’affichage child. Modifie le numéro d’index d’un enfant existant. Modifie la position d’un enfant existant dans le conteneur d’objet d’affichage. L’ordre des objets enfant est alors affecté. Ainsi, l’exemple suivant illustre trois objets d’affichage appelés a, b et c, qui occupent respectivement les positions d’index 0, 1 et 2 :

Lorsque vous utilisez la méthode setChildIndex() et spécifiez une position d’index déjà occupée, les seules positions qui changent sont celles situées entre l’ancienne et la nouvelle position de l’objet d’affichage. Toutes les autres positions restent identiques. Si un enfant est déplacé sur un index INFERIEUR à son index actuel, tous les enfants situés entre les deux sont AUGMENTES de 1 pour leur référence d’index. Si un enfant est déplacé sur un index SUPERIEUR à son index actuel, tous les enfants situés entre les deux sont DIMINUES de 1 pour leur référence d’index. Par exemple, si le conteneur d’objet d’affichage de l’exemple précédent s’appelle container, vous pouvez permuter la position des objets d’affichage a et b en appelant le code suivant :

container.setChildIndex(container.getChildAt(1), 0);

Ce code entraîne la réorganisation suivante des objets :

L’exemple suivant crée un conteneur d’objet d’affichage appelé container, puis ajoute trois objets d’affichage enfant, qui se chevauchent légèrement, au conteneur. Lorsque l’utilisateur clique sur l’un de ces objets, la méthode clicked() appelle la méthode setChildIndex() pour déplacer l’objet cliqué vers la position la plus haute de la liste enfant de l’objet container : import flash.display.Sprite; import flash.events.MouseEvent; var container:Sprite = new Sprite(); addChild(container); var circle1:Sprite = new Sprite(); circle1.graphics.beginFill(0xFF0000); circle1.graphics.drawCircle(40, 40, 40); circle1.addEventListener(MouseEvent.CLICK, clicked); var circle2:Sprite = new Sprite(); circle2.graphics.beginFill(0x00FF00); circle2.graphics.drawCircle(100, 40, 40); circle2.addEventListener(MouseEvent.CLICK, clicked); var circle3:Sprite = new Sprite(); circle3.graphics.beginFill(0x0000FF); circle3.graphics.drawCircle(70, 80, 40); circle3.addEventListener(MouseEvent.CLICK, clicked); container.addChild(circle1); container.addChild(circle2); container.addChild(circle3); addChild(container); function clicked(event:MouseEvent):void { var circle:Sprite = Sprite(event.target); var topPosition:uint = container.numChildren - 1; container.setChildIndex(circle, topPosition); }
addChildAt()getChildIndex()
swapChildrenAt Intervertit l’ordre de plan (ordre d’empilement du premier plan vers l’arrière-plan) des objets enfant aux deux positions d’index spécifiées dans la liste d’enfants.Si l’un ou l’autre des index n’existe pas dans la liste d’enfants. RangeErrorRangeErrorindex1intPosition d’index du premier objet enfant. index2intPosition d’index du second objet enfant. Intervertit l’ordre z (ordre d’empilement du premier plan vers l’arrière-plan) des objets enfant aux deux positions d’index spécifiées dans la liste d’enfants. Tous les autres objets enfant du conteneur d’objet d’affichage conservent leur position d’index. L’exemple suivant crée un conteneur d’objet d’affichage appelé container, puis ajoute trois objets d’affichage enfant au conteneur et enfin indique comment un appel à la méthode swapChildrenAt() modifie l’ordre de la liste d’enfants du conteneur de l’objet d’affichage : import flash.display.Sprite; var container:Sprite = new Sprite(); var sprite1:Sprite = new Sprite(); sprite1.name = "sprite1"; var sprite2:Sprite = new Sprite(); sprite2.name = "sprite2"; var sprite3:Sprite = new Sprite(); sprite3.name = "sprite3"; container.addChild(sprite1); container.addChild(sprite2); container.addChild(sprite3); trace(container.getChildAt(0).name); // sprite1 trace(container.getChildAt(1).name); // sprite2 trace(container.getChildAt(2).name); // sprite3 container.swapChildrenAt(0, 2); trace(container.getChildAt(0).name); // sprite3 trace(container.getChildAt(1).name); // sprite2 trace(container.getChildAt(2).name); // sprite1 swapChildren Intervertit l’ordre de plan (ordre d’empilement du premier plan vers l’arrière-plan) des deux objets enfant spécifiés.Renvoie une exception si l’un des deux paramètres enfant n’est pas un enfant de cet objet. ArgumentErrorArgumentErrorchild1flash.display:DisplayObjectPremier objet enfant. child2flash.display:DisplayObjectSecond objet enfant. Intervertit l’ordre z (ordre d’empilement du premier plan vers l’arrière-plan) des deux objets enfant spécifiés. Tous les autres objets enfant du conteneur d’objet d’affichage conservent leur position d’index. L’exemple suivant crée un conteneur d’objets d’affichage appelé container, puis ajoute deux objets d’affichage enfant au conteneur et enfin, indique l’effet d’un appel à la méthode swapChildren() : import flash.display.Sprite; var container:Sprite = new Sprite(); var sprite1:Sprite = new Sprite(); sprite1.name = "sprite1"; var sprite2:Sprite = new Sprite(); sprite2.name = "sprite2"; container.addChild(sprite1); container.addChild(sprite2); trace(container.getChildAt(0).name); // sprite1 trace(container.getChildAt(1).name); // sprite2 container.swapChildren(sprite1, sprite2); trace(container.getChildAt(0).name); // sprite2 trace(container.getChildAt(1).name); // sprite1 mouseChildren Détermine si les enfants de l’objet prennent en charge la souris ou les périphériques de saisie utilisateur.Boolean Détermine si les enfants de l’objet prennent en charge la souris ou les périphériques de saisie utilisateur. Si tel est le cas, un utilisateur peut manipuler l’objet à l’aide de la souris ou du périphérique de saisie utilisateur. La valeur par défaut est true.

Cette propriété s’avère utile lorsque vous créez un bouton avec une occurrence de la classe Sprite (au lieu d’utiliser la classe SimpleButton). Si vous utilisez une occurrence de Sprite pour créer un bouton, vous pouvez le décorer à l’aide de la méthode addChild() pour ajouter d’autres occurrences de Sprite. Ce processus risque d’associer un comportement imprévu aux événements de souris, car les occurrences de Sprite ajoutées en tant qu’enfants peuvent devenir l’objet cible d’un événement de souris alors que vous vous attendiez à ce que ce dernier corresponde à l’occurrence parent. Pour vous assurer que l’occurrence parent serve d’objet cible pour les événements de souris, vous pouvez régler la propriété mouseChildren de l’occurrence parent sur false.

Définir cette propriété ne distribue aucun événement. La méthode addEventListener() vous permet de créer une fonctionnalité interactive.

L’exemple suivant définit un objet Sprite (un type de conteneur d’objet d’affichage) appelé container et indique que lorsque vous définissez sa propriété mouseChildren sur false, la cible de l’événementmouseClick devient l’objet container et non pas l’un de ses objets enfant : import flash.display.Sprite; import flash.events.MouseEvent; var container:Sprite = new Sprite(); container.name = "container"; addChild(container); var circle:Sprite = new Sprite(); circle.name = "circle"; circle.graphics.beginFill(0xFFCC00); circle.graphics.drawCircle(40, 40, 40); container.addChild(circle); container.mouseChildren = false; container.addEventListener(MouseEvent.CLICK, clicked); function clicked(event:MouseEvent):void { trace(event.target.name); // container }
flash.display.Sprite.buttonModeflash.events.EventDispatcher.addEventListener()
numChildren Renvoie le nombre d’enfants de l’objet.int Renvoie le nombre d’enfants de l’objet. L’exemple suivant définit deux objets Sprite appelés container1 et container2. Un Sprite est un type de conteneur d’objet d’affichage. L’exemple appelle la méthode addChild() pour configurer la hiérarchie d’affichage : container1 est un enfant de container2, tandis que deux autres objets d’affichage, circle1 et circle2, sont des enfants de container1. Les appels à la méthode trace() affichent le nombre d’enfants de chaque objet. Tenez compte du fait que les petits-enfants ne sont pas inclus dans le décompte de numChildren : import flash.display.Sprite; var container1:Sprite = new Sprite(); var container2:Sprite = new Sprite(); var circle1:Sprite = new Sprite(); circle1.graphics.beginFill(0xFFCC00); circle1.graphics.drawCircle(40, 40, 40); var circle2:Sprite = new Sprite(); circle2.graphics.beginFill(0x00CCFF); circle2.graphics.drawCircle(80, 40, 40); container2.addChild(container1); container1.addChild(circle1); container1.addChild(circle2); trace(container1.numChildren); // 2 trace(container2.numChildren); // 1 trace(circle1.numChildren); // 0 trace(circle2.numChildren); // 0 tabChildren Détermine si les enfants de l’objet prennent ou non en charge la tabulation.BooleanLe fait d’appeler cette propriété à partir de l’objet Stage renvoie une exception, car il ne met pas en œuvre cette propriété. IllegalOperationErrorflash.errors:IllegalOperationError Détermine si les enfants de l’objet prennent ou non en charge la tabulation. Active ou désactive la sélection des enfants de l’objet avec la touche de tabulation. La valeur par défaut est true.

Remarque : n’utilisez pas cette propriété tabChildren avec Flex. Utilisez plutôt la propriété mx.core.UIComponent.hasFocusableChildren.

L’exemple suivant crée un conteneur d’objet d’affichage, container1, et ajoute deux objets d’affichage circle1 et circle2 à sa liste d’affichage. Cet exemple définit tabChildren sur false pour les enfants de façon à pouvoir gérer son propre ordre de tabulation à l’aide de la propriété tabIndex : import flash.display.Sprite; var container:Sprite = new Sprite(); container.tabChildren = false; var circle1:Sprite = new Sprite(); circle1.graphics.beginFill(0xFFCC00); circle1.graphics.drawCircle(40, 40, 40); circle1.tabIndex = 1; var circle2:Sprite = new Sprite(); circle2.graphics.beginFill(0x00CCFF); circle2.graphics.drawCircle(120, 40, 40); circle2.tabIndex = 0; container.addChild(circle1); container.addChild(circle2); Pour afficher les résultats de cet exemple, compilez et exécutez le fichier. Lorsque vous sélectionnez l’un de ces cercles, vous pouvez appuyer sur la touche de tabulation pour déplacer le focus vers un autre objet d’affichage (indiqué par un rectangle de sélection jaune).
textSnapshot Renvoie un objet TextSnapshot pour l’occurrence de DisplayObjectContainer.flash.text:TextSnapshot Renvoie un objet TextSnapshot pour l’occurrence de DisplayObjectContainer. L’exemple suivant fonctionne uniquement dans l’environnement de création de Flash. Flex ne permet pas d’ajouter du texte statique à un fichier. Pour préparer le fichier Flash dans cet exemple, ajoutez un ou plusieurs champs de texte statiques dans la première image d’un clip. Ensuite, insérez le script suivant dans la première image et exécutez le fichier. Ceci renvoie le texte statique que vous avez ajouté : trace(this.textSnapshot.getText(0, this.textSnapshot.charCount)); flash.text.TextSnapshot
GraphicsGradientFill Définit un remplissage dégradé.flash.display:IGraphicsFillflash.display:IGraphicsDataObject Définit un remplissage dégradé.

Utilisez l’objet GraphicsGradientFill avec la méthode Graphics.drawGraphicsData(). Dessiner un objet GraphicsGradientFill revient à appeler la méthode Graphics.beginGradientFill().

flash.display.Graphics.beginGradientFill()flash.display.Graphics.drawGraphicsData()GraphicsGradientFill Crée un nouvel objet GraphicsGradientFill.typeStringlinearValeur de la classe GradientType qui spécifie le type de dégradé à utiliser : GradientType.LINEAR ou GradientType.RADIAL. colorsArraynullTableau de valeurs de couleurs RVB hexadécimales utilisé pour le dégradé (par exemple, rouge correspond à 0xFF0000, bleu à 0x0000FF, etc.). Vous pouvez définir jusqu’à 15 couleurs. Pour chaque couleur, définissez une valeur correspondante dans les paramètres alphas et ratios. alphasArraynullTableau de valeurs alpha pour les couleurs correspondantes du tableau de couleurs ; les valeurs disponibles sont comprises entre 0 et 1. Si la valeur est inférieure à 0, 0 est utilisé. Si la valeur est supérieure à 1, 1 est utilisé. ratiosArraynullTableau de taux de distribution des couleurs ; les valeurs disponibles sont comprises entre 0 et 255. Cette valeur définit le pourcentage de la largeur où la couleur est échantillonnée sur 100 %. La valeur 0 représente la position de gauche dans la zone de dégradés, tandis que 255 représente la position de droite. matrixnullMatrice de transformation définie par la classe flash.geom.Matrix. La classe flash.geom.Matrix inclut une méthode createGradientBox(), qui permet de configurer facilement la matrice en vue de son utilisation avec la méthode beginGradientFill(). spreadMethodpadValeur de la classe SpreadMethod qui spécifie la méthode d’étalement à utiliser : SpreadMethod.PAD, SpreadMethod.REFLECT ou SpreadMethod.REPEAT. interpolationMethodStringrgbValeur de la classe InterpolationMethod qui spécifie la valeur à utiliser : InterpolationMethod.LINEAR_RGB ou InterpolationMethod.RGB focalPointRatioNumber0.0Nombre qui contrôle l’emplacement du point focal du dégradé. Une valeur de 0 permet de définir le point focal au centre. Une valeur de 1 permet de définir le point focal sur l’un des bords du cercle du dégradé. Une valeur de -1 permet de définir le point focal sur l’autre bord du cercle du dégradé. Toute valeur inférieure à -1 ou supérieure à 1 est respectivement arrondie à -1 ou 1. Crée un nouvel objet GraphicsGradientFill. flash.display.Graphics.beginGradientFill()flash.display.GradientTypeflash.geom.Matrixflash.display.SpreadMethodflash.display.InterpolationMethodalphas Tableau de valeurs alpha pour les couleurs correspondantes du tableau de couleurs.Array Tableau de valeurs alpha pour les couleurs correspondantes du tableau de couleurs. Les valeurs disponibles sont comprises entre 0 et 1. Si la valeur est inférieure à 0, 0 est utilisé. Si la valeur est supérieure à 1, 1 est utilisé. colors Tableau de valeurs hexadécimales de couleur RVB à utiliser pour le dégradé.Array Tableau de valeurs hexadécimales de couleur RVB à utiliser pour le dégradé. Par exemple, rouge correspond à 0xFF0000, bleu à 0x0000FF, etc. Vous pouvez définir jusqu’à 15 couleurs. Pour chaque couleur, définissez une valeur correspondante dans les propriétés alphas et ratios. focalPointRatio Nombre qui contrôle l’emplacement du point focal du dégradé.Number Nombre qui contrôle l’emplacement du point focal du dégradé. Une valeur de 0 permet de définir le point focal au centre. Une valeur de 1 signifie que le point focal se trouve sur l’un des bords du cercle du dégradé. Une valeur de -1 permet de définir le point focal sur l’autre bord du cercle du dégradé. Toute valeur inférieure à -1 ou supérieure à 1 est respectivement arrondie à -1 ou 1. L’exemple suivant affiche un paramètre focalPointRatio défini sur 0,75 :

matrix Matrice de transformation définie par la classe Matrix.flash.geom:Matrix Matrice de transformation définie par la classe Matrix. La classe flash.geom.Matrix inclut une méthode createGradientBox(), qui permet de configurer la matrice en vue de l’utiliser avec la méthode beginGradientFill(). flash.geom.Matrix.createGradientBox()ratios Tableau des taux de répartition des couleurs.Array Tableau des taux de répartition des couleurs. Les valeurs disponibles sont comprises entre 0 et 255. Cette valeur définit le pourcentage de la largeur où la couleur est échantillonnée sur 100 %. La valeur 0 représente la position de gauche dans la zone de dégradés, tandis que la valeur 255 représente la position de droite.

Remarque : cette valeur représente les positions de la zone de dégradés, plutôt que l’espace de coordonnées du dégradé final, susceptible d’être plus large ou plus étroit que la zone de dégradés. Spécifiez une valeur correspondante pour chaque valeur dans la propriété colors.

Par exemple, pour un dégradé linéaire qui comprend deux couleurs (bleu et vert), l’exemple suivant illustre l’emplacement des couleurs dans le dégradé selon les différentes valeurs du tableau ratios :

ratiosDégradé[0, 127][0, 255][127, 255]

Les valeurs du tableau doivent augmenter de manière séquentielle ; par exemple, [0, 63, 127, 190, 255].

interpolationMethod Valeur de la classe InterpolationMethod qui spécifie la valeur à utiliser.String Valeur de la classe InterpolationMethod qui spécifie la valeur à utiliser. Les valeurs disponibles sont les suivantes : InterpolationMethod.LINEAR_RGB et InterpolationMethod.RGB

L’exemple suivant montre un dégradé linéaire simple entre deux couleurs (le paramètre spreadMethod étant défini sur SpreadMethod.REFLECT). Les différentes méthodes d’interpolation modifient l’aspect de la façon suivante :

InterpolationMethod.LINEAR_RGBInterpolationMethod.RGB
flash.display.InterpolationMethod
spreadMethod Valeur de la classe SpreadMethod qui spécifie la méthode d’étalement à utiliser.String Valeur de la classe SpreadMethod qui spécifie la méthode d’étalement à utiliser. Les valeurs disponibles sont les suivantes : SpreadMethod.PAD, SpreadMethod.REFLECT et SpreadMethod.REPEAT.

L’exemple suivant montre un dégradé linéaire simple entre deux couleurs :

import flash.geom.* import flash.display.* var fillType:String = GradientType.LINEAR; var colors:Array = [0xFF0000, 0x0000FF]; var alphas:Array = [1, 1]; var ratios:Array = [0x00, 0xFF]; var matr:Matrix = new Matrix(); matr.createGradientBox(20, 20, 0, 0, 0); var spreadMethod:String = SpreadMethod.PAD; this.graphics.beginGradientFill(fillType, colors, alphas, ratios, matr, spreadMethod); this.graphics.drawRect(0,0,100,100);

Cet exemple utilise SpreadMethod.PAD comme méthode d’étalement, et le remplissage en dégradé prend l’aspect suivant :

Si vous utilisez SpreadMethod.REFLECT comme méthode d’étalement, le remplissage en dégradé prend l’aspect suivant :

Si vous utilisez SpreadMethod.REPEAT comme méthode d’étalement, le remplissage en dégradé prend l’aspect suivant :

flash.display.SpreadMethod
type Valeur de la classe GradientType qui spécifie le type de dégradé à utiliser.String Valeur de la classe GradientType qui spécifie le type de dégradé à utiliser. Les valeurs disponibles sont GradientType.LINEAR et GradientType.RADIAL. flash.display.GradientType
Sprite La classe Sprite est un bloc constitutif de base de la liste d’affichage : un nœud de liste d’affichage qui permet d’afficher des images et peut également contenir des enfants.L’objet d’affichage de base des objets créés par ActionScript. flash.display:DisplayObjectContainer La classe Sprite est un bloc constitutif de base de la liste d’affichage : un nœud de liste d’affichage qui permet d’afficher des images et peut également contenir des enfants.

Un objet Sprite est similaire à un clip, mais ne possède pas de scénario. Sprite est une classe de base particulièrement adaptée aux objets qui ne nécessitent pas de scénario. Elle conviendrait par exemple aux composants de l’interface utilisateur qui ne requièrent en règle générale pas de scénario.

La classe Sprite est nouvelle dans ActionScript 3.0. Vous pouvez l’utiliser à la place de la classe MovieClip, qui conserve l’ensemble des fonctionnalités des versions antérieures d’ActionScript pour assurer une compatibilité ascendante.

L’exemple suivant utilise la classe SpriteExample pour dessiner un carré orange sur la scène, puis distribue les événements que lorsque l’utilisateur clique ou fait glisser le carré. Pour ce faire, procédez comme suit :
  1. Déclarez la propriété size (100 x 100 pixels) et la couleur de fond (orange) pour une exploitation ultérieure lors du dessin du carré.
  2. Le constructeur crée ensuite un nouvel objet Sprite child et l’utilise pour ajouter deux écouteurs d’événement et leurs méthodes associées : mouseDownHandler() et mouseUpHandler().
  3. L’objet Sprite child est ensuite transmis à la méthode draw(), qui dessine le carré orange.
  4. L’enfant est ensuite placé dans la liste d’affichage grâce à un appel à la méthode addChild().
  5. Les écouteurs d’événements fonctionnent de la façon suivante :
    • mouseDownHandler() : lorsque l’utilisateur clique sur l’objet Sprite, cette méthode ajoute un écouteur d’événements mouseMove, la méthode mouseMoveHandler(), qui traite les mouvements de la souris. La méthode startDrag() est ensuite appelée et permet de faire glisser l’objet Sprite.
    • mouseUpHandler() : lorsque le bouton de la souris est relâché, l’écouteur d’événements mouseMove est supprimé et la méthode stopDrag() est appelée, ce qui fige le carré orange.
    • mouseMoveHandler : tant que le bouton gauche de la souris reste enfoncé, cette méthode demande au lecteur de redessiner en continu le carré orange.

Remarque : chacune des méthodes de l’écouteur d’événements déclare une variable sprite locale, qui se voit affecter la propriété target de l’événement.

package { import flash.display.Sprite; import flash.events.*; public class SpriteExample extends Sprite { private var size:uint = 100; private var bgColor:uint = 0xFFCC00; public function SpriteExample() { var child:Sprite = new Sprite(); child.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler); child.addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler); draw(child); addChild(child); } private function mouseDownHandler(event:MouseEvent):void { trace("mouseDownHandler"); var sprite:Sprite = Sprite(event.target); sprite.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler); sprite.startDrag(); } private function mouseUpHandler(event:MouseEvent):void { trace("mouseUpHandler"); var sprite:Sprite = Sprite(event.target); sprite.removeEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler); sprite.stopDrag(); } private function mouseMoveHandler(event:MouseEvent):void { trace("mouseMoveHandler"); event.updateAfterEvent(); } private function draw(sprite:Sprite):void { sprite.graphics.beginFill(bgColor); sprite.graphics.drawRect(0, 0, size, size); sprite.graphics.endFill(); } } }
Sprite Crée une occurrence de Sprite. Crée une occurrence de Sprite. Une fois l’occurrence de Sprite créée, appelez la méthode DisplayObjectContainer.addChild() ou DisplayObjectContainer.addChildAt() pour ajouter le sprite à une occurrence de l’objet DisplayObjectContainer parent. startDrag Permet à l’utilisateur de faire glisser le sprite spécifié.lockCenterBooleanfalseIndique si le sprite à déplacer doit être verrouillé au centre de la position du pointeur (true) ou verrouillé au point où l’utilisateur a cliqué sur le sprite en premier lieu (false). boundsflash.geom:RectanglenullValeur relative aux coordonnées du parent du sprite qui spécifie un rectangle de délimitation pour le sprite. Permet à l’utilisateur de faire glisser le sprite spécifié. Il reste possible de faire glisser le sprite jusqu’à l’arrêt explicite de cette action par un appel à la méthode Sprite.stopDrag() ou lorsqu’un autre sprite est rendu déplaçable. Vous ne pouvez déplacer qu’un seul sprite à la fois.

Les objets d’affichage tridimensionnels suivent le pointeur et la méthode Sprite.startDrag() déplace l’objet dans le plan tridimensionnel défini par l’objet d’affichage. Si l’objet d’affichage est un objet bidimensionnel et l’enfant d’un objet tridimensionnel, l’objet bidimensionnel se déplace dans le plan tridimensionnel défini par l’objet parent tridimensionnel.

L’exemple suivant crée un sprite circle et deux sprites target. La méthode startDrag() est appelée sur le sprite circle lorsque l’utilisateur place le curseur sur le sprite et appuie sur le bouton de la souris, et lorsque la méthode stopDrag() est appelée si l’utilisateur relâche le bouton de la souris. Cette opération permet de faire glisser le sprite. Lorsque l’utilisateur relâche le bouton de sa souris, la méthode mouseRelease() est appelée, qui en retour suit la propriété name de l’objet dropTarget — celui vers lequel l’utilisateur fait glisser le sprite circle : import flash.display.Sprite; import flash.events.MouseEvent; var circle:Sprite = new Sprite(); circle.graphics.beginFill(0xFFCC00); circle.graphics.drawCircle(0, 0, 40); var target1:Sprite = new Sprite(); target1.graphics.beginFill(0xCCFF00); target1.graphics.drawRect(0, 0, 100, 100); target1.name = "target1"; var target2:Sprite = new Sprite(); target2.graphics.beginFill(0xCCFF00); target2.graphics.drawRect(0, 200, 100, 100); target2.name = "target2"; addChild(target1); addChild(target2); addChild(circle); circle.addEventListener(MouseEvent.MOUSE_DOWN, mouseDown) function mouseDown(event:MouseEvent):void { circle.startDrag(); } circle.addEventListener(MouseEvent.MOUSE_UP, mouseReleased); function mouseReleased(event:MouseEvent):void { circle.stopDrag(); trace(circle.dropTarget.name); }
dropTargetstopDrag()
startTouchDrag Permet à l’utilisateur de faire glisser le sprite spécifié sur un périphérique tactile.touchPointIDintEntier à attribuer au point tactile. lockCenterBooleanfalseIndique si le sprite à déplacer doit être verrouillé au centre de la position du pointeur (true) ou verrouillé au point où l’utilisateur a cliqué sur le sprite en premier lieu (false). boundsflash.geom:RectanglenullValeur relative aux coordonnées du parent du sprite qui spécifie un rectangle de délimitation pour le sprite. Permet à l’utilisateur de faire glisser le sprite spécifié sur un périphérique tactile. Il est possible de faire glisser le sprite jusqu’à l’arrêt explicite de cette action par un appel à la méthode Sprite.stopTouchDrag() ou lorsqu’un autre sprite est rendu déplaçable. Vous ne pouvez déplacer qu’un seul sprite à la fois.

Les objets d’affichage tridimensionnels suivent le pointeur et la méthode Sprite.startTouchDrag() déplace l’objet dans le plan tridimensionnel défini par l’objet d’affichage. Si l’objet d’affichage est un objet bidimensionnel et l’enfant d’un objet tridimensionnel, l’objet bidimensionnel se déplace dans le plan tridimensionnel défini par l’objet parent tridimensionnel.

L’exemple suivant décrit les fonctions de startTouchDrag et de stopTouchDrag pour gérer les événements touchBegin et touchEnd. La valeur de touchPointID correspond à la valeur affectée à l’objet d’événement. Le paramètre bounds correspond au rectangle qui définit les limites de l’objet d’affichage parent (bg est un objet d’affichage contenant MySprite). MySprite.addEventListener(TouchEvent.TOUCH_BEGIN, onTouchBegin); MySprite.addEventListener(TouchEvent.TOUCH_END, onTouchEnd); function onTouchBegin(e:TouchEvent) { e.target.startTouchDrag(e.touchPointID, false, bg.getRect(this)); trace("touch begin"); } function onTouchEnd(e:TouchEvent) { e.target.stopTouchDrag(e.touchPointID); trace("touch end"); }
dropTargetstopTouchDrag()flash.ui.Multitouchflash.events.TouchEvent
stopDrag Met fin à la méthode startDrag(). Met fin à la méthode startDrag(). Un sprite qu’il est possible de déplacer grâce à la méthode startDrag() reste déplaçable jusqu’à ce qu’une autre méthode stopDrag() soit ajoutée, ou jusqu’à ce qu’un autre sprite devienne déplaçable. Vous ne pouvez déplacer qu’un seul sprite à la fois. L’exemple suivant crée un sprite circle et deux sprites target. La méthode startDrag() est appelée sur le sprite circle lorsque l’utilisateur place le curseur sur le sprite et appuie sur le bouton de la souris, et lorsque la méthode stopDrag() est appelée si l’utilisateur relâche le bouton de la souris. Cette opération permet de faire glisser le sprite. Lorsque l’utilisateur relâche le bouton de sa souris, la méthode mouseRelease() est appelée, qui en retour suit la propriété name de l’objet dropTarget — celui vers lequel l’utilisateur fait glisser le sprite circle : import flash.display.Sprite; import flash.events.MouseEvent; var circle:Sprite = new Sprite(); circle.graphics.beginFill(0xFFCC00); circle.graphics.drawCircle(0, 0, 40); var target1:Sprite = new Sprite(); target1.graphics.beginFill(0xCCFF00); target1.graphics.drawRect(0, 0, 100, 100); target1.name = "target1"; var target2:Sprite = new Sprite(); target2.graphics.beginFill(0xCCFF00); target2.graphics.drawRect(0, 200, 100, 100); target2.name = "target2"; addChild(target1); addChild(target2); addChild(circle); circle.addEventListener(MouseEvent.MOUSE_DOWN, mouseDown) function mouseDown(event:MouseEvent):void { circle.startDrag(); } circle.addEventListener(MouseEvent.MOUSE_UP, mouseReleased); function mouseReleased(event:MouseEvent):void { circle.stopDrag(); trace(circle.dropTarget.name); } dropTargetstartDrag()stopTouchDrag Met fin à la méthode startTouchDrag() en vue d’utiliser des périphériques tactiles.touchPointIDintNombre entier attribué au point tactile dans la méthode startTouchDrag. Met fin à la méthode startTouchDrag() en vue d’utiliser des périphériques tactiles. Un sprite qu’il est possible de déplacer grâce à la méthode startTouchDrag() reste déplaçable jusqu’à ce qu’une autre méthode stopTouchDrag() soit ajoutée, ou jusqu’à ce qu’un autre sprite devienne déplaçable. Vous ne pouvez déplacer qu’un seul sprite à la fois. L’exemple suivant décrit les fonctions de startTouchDrag et de stopTouchDrag pour gérer les événements touchBegin et touchEnd. La valeur de touchPointID correspond à la valeur affectée à l’objet d’événement. Le paramètre bounds correspond au rectangle qui définit les limites de l’objet d’affichage parent (bg est un objet d’affichage contenant MySprite). MySprite.addEventListener(TouchEvent.TOUCH_BEGIN, onTouchBegin); MySprite.addEventListener(TouchEvent.TOUCH_END, onTouchEnd); function onTouchBegin(e:TouchEvent) { e.target.startTouchDrag(e.touchPointID, false, bg.getRect(this)); trace("touch begin"); } function onTouchEnd(e:TouchEvent) { e.target.stopTouchDrag(e.touchPointID); trace("touch end"); } dropTargetstartTouchDrag()flash.ui.Multitouchflash.events.TouchEventbuttonMode Spécifie le mode de bouton du sprite.BooleanSpécifie le mode de bouton du sprite. Spécifie le mode de bouton du sprite. Si la valeur true est renvoyée, ce sprite se comporte comme un bouton, ce qui signifie qu’il déclenche l’affichage du curseur en forme de main lorsque le pointeur le survole et qu’il peut recevoir un événement click si l’utilisateur appuie sur la touche Entrée ou la barre d’espacement lorsque le sprite dispose du focus. Pour remplacer le curseur en forme de main par le pointeur standard, réglez la propriété useHandCursor sur false.

Bien qu’il soit préférable d’utiliser la classe SimpleButton pour créer des boutons, la propriété buttonMode permet d’affecter à un sprite une fonctionnalité similaire à celle d’un bouton. Pour inclure un sprite dans l’ordre de tabulation, réglez la propriété tabEnabled (héritée de la classe InteractiveObject et réglée sur false par défaut) sur true. Demandez-vous en outre si les enfants de votre sprite doivent prendre en charge la saisie utilisateur. La plupart des boutons n’activent pas l’interactivité avec la saisie utilisateur pour leurs objets enfant, en raison de son impact sur le flux d’événements. Pour désactiver l’interactivité avec la saisie utilisateur pour tous les objets enfant, définissez la propriété mouseChildren (héritée de la classe DisplayObjectContainer) sur false.

Si vous utilisez la propriété buttonMode avec la classe MovieClip (une sous-classe de la classe Sprite), la fonctionnalité de votre bouton risque d’être enrichie. Si vous incluez les étiquettes d’images _up, _over et _down, Flash Player gère les changements d’état automatiques (fonctionnalité similaire à celle intégrée aux versions antérieures d’ActionScript pour les clips utilisés en tant que boutons). Ces changements d’état automatiques ne sont pas disponibles pour les sprites, qui ne disposent pas de scénario et donc, pas d’images à étiqueter.

L’exemple suivant crée deux sprites et définit la propriété buttonMode sur true pour l’un et false pour l’autre. Lorsque vous compilez et exécutez l’application, les deux sprites répondent aux événements de la souris, mais seul celui où buttonMode est défini sur true a recours au curseur en forme de main et est inclus dans l’ordre de tabulation : import flash.display.Sprite; import flash.events.MouseEvent; var circle1:Sprite = new Sprite(); circle1.graphics.beginFill(0xFFCC00); circle1.graphics.drawCircle(40, 40, 40); circle1.buttonMode = true; circle1.addEventListener(MouseEvent.CLICK, clicked); var circle2:Sprite = new Sprite(); circle2.graphics.beginFill(0xFFCC00); circle2.graphics.drawCircle(120, 40, 40); circle2.buttonMode = false; circle2.addEventListener(MouseEvent.CLICK, clicked); function clicked(event:MouseEvent):void { trace ("Click!"); } addChild(circle1); addChild(circle2);
SimpleButtonSprite.useHandCursorInteractiveObject.tabEnabledDisplayObjectContainer.mouseChildren
dropTarget Spécifie l’objet d’affichage sur lequel le sprite est glissé ou sur lequel il a été déposé.flash.display:DisplayObjectSpécifie l’occurrence de DisplayObject sur laquelle le sprite est glissé ou sur laquelle il a été déposé. Spécifie l’objet d’affichage sur lequel le sprite est glissé ou sur lequel il a été déposé. L’exemple suivant crée un sprite circle et deux sprites target. La méthode startDrag() est appelée sur le sprite circle lorsque l’utilisateur place le curseur sur le sprite et appuie sur le bouton de la souris, et lorsque la méthode stopDrag() est appelée si l’utilisateur relâche le bouton de la souris. Cette opération permet de faire glisser le sprite. Lorsque l’utilisateur relâche le bouton de sa souris, la méthode mouseRelease() est appelée, qui en retour suit la propriété name de l’objet dropTarget — celui vers lequel l’utilisateur fait glisser le sprite circle : import flash.display.Sprite; import flash.events.MouseEvent; var circle:Sprite = new Sprite(); circle.graphics.beginFill(0xFFCC00); circle.graphics.drawCircle(0, 0, 40); var target1:Sprite = new Sprite(); target1.graphics.beginFill(0xCCFF00); target1.graphics.drawRect(0, 0, 100, 100); target1.name = "target1"; var target2:Sprite = new Sprite(); target2.graphics.beginFill(0xCCFF00); target2.graphics.drawRect(0, 200, 100, 100); target2.name = "target2"; addChild(target1); addChild(target2); addChild(circle); circle.addEventListener(MouseEvent.MOUSE_DOWN, mouseDown) function mouseDown(event:MouseEvent):void { circle.startDrag(); } circle.addEventListener(MouseEvent.MOUSE_UP, mouseReleased); function mouseReleased(event:MouseEvent):void { circle.stopDrag(); trace(circle.dropTarget.name); } startDrag()stopDrag()graphics Spécifie l’objet Graphics appartenant au sprite qui prend en charge les commandes de dessin vectoriel.flash.display:GraphicsSpécifie un objet Graphics. Spécifie l’objet Graphics appartenant au sprite qui prend en charge les commandes de dessin vectoriel. L’exemple suivant crée un sprite circle et utilise sa propriété graphics pour dessiner un cercle avec une trame jaune (0xFFCC00) : import flash.display.Sprite; var circle:Sprite = new Sprite(); circle.graphics.beginFill(0xFFCC00); circle.graphics.drawCircle(40, 40, 40); addChild(circle); hitArea Désigne un autre sprite qui fera office de zone active d’un sprite.flash.display:Sprite Désigne un autre sprite qui fera office de zone active d’un sprite. Si la propriété hitArea n’existe pas, ou si sa valeur est null ou undefined, le sprite fait office de zone active. La valeur de la propriété hitArea peut être une référence à un objet Sprite.

Vous pouvez modifier la propriété hitArea à tout moment ; le sprite modifié accepte immédiatement le nouveau comportement de la zone active. Il n’est pas nécessaire que le sprite désigné comme zone active soit visible ; bien qu’elle ne soit pas visible, sa forme graphique est encore détectée comme zone active.

Remarque : vous devez définir sur false la propriété mouseEnabled du sprite désigné comme zone active. Dans le cas contraire, votre bouton sprite risque de ne pas fonctionner, car c’est le sprite désigné comme zone active qui reçoit les événements de saisie utilisateur et non le bouton sprite.

L’exemple suivant crée les sprites circle et square. Le sprite square correspond à hitArea pour le sprite circle. Par conséquent, lorsque l’utilisateur clique sur le sprite square, le sprite circle distribue un événement click : import flash.display.Sprite; import flash.events.MouseEvent; var circle:Sprite = new Sprite(); circle.graphics.beginFill(0xFFCC00); circle.graphics.drawCircle(0, 0, 40); var square:Sprite = new Sprite(); square.graphics.beginFill(0xCCFF00); square.graphics.drawRect(200, 0, 100, 100); circle.hitArea = square; square.mouseEnabled = false; circle.addEventListener(MouseEvent.CLICK, clicked); function clicked(event:MouseEvent):void{ trace(event.target == circle); // true trace(event.target == square); // false } addChild(circle); addChild(square);
soundTransform Contrôle le son à l’intérieur du sprite.flash.media:SoundTransform Contrôle le son à l’intérieur du sprite.

Remarque : cette propriété n’affecte pas le contenu HTML d’un objet HTMLControl (dans Adobe AIR).

L’exemple suivant crée un sprite appelé container et ajoute un objet Loader à sa liste enfant. L’objet Loader charge un fichier SWF. Lorsque l’utilisateur clique sur le champ de texte tf, true. La méthode mute() définit la propriété volume de la propriété soundTransform du sprite container : import flash.display.Sprite; import flash.display.Loader; import flash.events.IOErrorEvent; import flash.events.MouseEvent; import flash.net.URLRequest; import flash.text.TextField; import flash.media.SoundTransform; var container:Sprite = new Sprite(); addChild(container); var ldr:Loader = new Loader; var urlReq:URLRequest = new URLRequest("SoundPlayer.swf"); ldr.load(urlReq); container.addChild(ldr); ldr.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, urlNotFound); var tf:TextField = new TextField(); tf.htmlText = "<a href = 'event:Mute'>Mute / Unmute</a>"; addChild(tf); var mySoundTransform:SoundTransform = new SoundTransform(); mySoundTransform.volume = 1; tf.addEventListener(MouseEvent.CLICK, mute); function mute(event:MouseEvent):void { if (mySoundTransform.volume == 0) { mySoundTransform.volume = 1; } else { mySoundTransform.volume = 0; } container.soundTransform = mySoundTransform; } function urlNotFound(event:IOErrorEvent):void { trace("The URL was not found."); }
flash.media.SoundTransform
useHandCursor Valeur booléenne indiquant si le curseur en forme de main apparaît lorsque le pointeur survole un sprite dont la propriété buttonMode est définie sur true.BooleanValeur booléenne indiquant si le curseur en forme de main apparaît lorsque le pointeur survole un sprite dont la propriété buttonMode est définie sur true. Valeur booléenne indiquant si le curseur en forme de main apparaît lorsque le pointeur survole un sprite dont la propriété buttonMode est définie sur true. La valeur par défaut de la propriété useHandCursor est true. Si la propriété useHandCursor est définie sur true, le curseur en forme de main utilisé pour les boutons s’affiche lorsque le pointeur survole un sprite. Si la propriété useHandCursor est définie sur false, le pointeur flèche est utilisé.

Vous pouvez modifier la propriété useHandCursor à tout moment ; le sprite modifié accepte immédiatement la nouvelle apparence du curseur.

Remarque : dans Flex ou Flash Builder, si votre sprite possède des sprites enfants, vous pouvez définir la propriété mouseChildren sur false. Par exemple, si vous souhaitez qu’un curseur en forme de main apparaisse sur une commande Flex <mx:Label>, réglez les propriétés useHandCursor et buttonMode sur true, et la propriété mouseChildren sur false.

L’exemple suivant crée deux sprites et définit la propriété buttonMode sur true pour les deux, cependant il définit la propriété useHandCursor sur true pour l’un et sur false pour l’autre. Lorsque vous compilez et exécutez l’application, les deux sprites se comportent en tant que bouton et sont inclus dans l’ordre de tabulation, mais seul celui où useHandCursor est défini sur true a recours au curseur en forme de main : import flash.display.Sprite; import flash.events.MouseEvent; var circle1:Sprite = new Sprite(); circle1.graphics.beginFill(0xFFCC00); circle1.graphics.drawCircle(40, 40, 40); circle1.buttonMode = true; circle1.useHandCursor = true; circle1.addEventListener(MouseEvent.CLICK, clicked); var circle2:Sprite = new Sprite(); circle2.graphics.beginFill(0xFFCC00); circle2.graphics.drawCircle(120, 40, 40); circle2.buttonMode = true; circle2.useHandCursor = false; circle2.addEventListener(MouseEvent.CLICK, clicked); function clicked(event:MouseEvent):void { trace ("Click!"); } addChild(circle1); addChild(circle2);
buttonModeDisplayObjectContainer.mouseChildren
GraphicsBitmapFill Définit un remplissage bitmap.flash.display:IGraphicsFillflash.display:IGraphicsDataObject Définit un remplissage bitmap. L’image bitmap peut être lissée, répétée ou former une mosaïque afin de remplir la zone ; elle peut également être manipulée avec une matrice de transformation.

Utilisez l’objet GraphicsBitmapFill avec la méthode Graphics.drawGraphicsData(). Dessiner un objet GraphicsBitmapFill revient à appeler la méthode Graphics.beginBitmapFill().

flash.display.Graphics.drawGraphicsData()flash.display.Graphics.beginBitmapFill()GraphicsBitmapFill Crée un nouvel objet GraphicsBitmapFill.bitmapDataflash.display:BitmapDatanullImage bitmap transparente ou opaque qui contient les bits à afficher. matrixflash.geom:MatrixnullObjet matrix (appartenant à la classe flash.geom.Matrix), qui permet de définir les transformations sur l’image bitmap. repeatBooleantrueSi la valeur est true, l’image bitmap se reproduit pour former un motif. Si la valeur est false, l’image bitmap ne se répète pas et les bords de l’image sont utilisés pour tout remplissage qui dépasse l’image. smoothBooleanfalseSi la valeur est définie sur false, les images bitmap agrandies sont rendues en appliquant un algorithme d’approximation et ont un aspect pixélisé. Si la valeur est définie sur true, les images bitmap agrandies sont rendues avec un algorithme bilinéaire. Les rendus qui résultent de l’utilisation de l’algorithme d’approximation sont généralement plus rapides. Crée un nouvel objet GraphicsBitmapFill. flash.display.Graphics.beginBitmapFill()bitmapData Image bitmap transparente ou opaque.flash.display:BitmapData Image bitmap transparente ou opaque. flash.display.BitmapDatamatrix Objet matrix (appartenant à la classe flash.geom.Matrix) qui définit les transformations sur l’image bitmap.flash.geom:Matrix Objet matrix (appartenant à la classe flash.geom.Matrix) qui définit les transformations sur l’image bitmap. Par exemple, l’objet matrix suivant fait pivoter une image bitmap de 45 degrés (pi/4 radians) : matrix = new flash.geom.Matrix(); matrix.rotate(Math.PI / 4); flash.geom.Matrixrepeat Indique si l’image bitmap doit être reproduite pour former un motif.Boolean Indique si l’image bitmap doit être reproduite pour former un motif.

Si la valeur est true, l’image bitmap se reproduit pour former un motif. Si la valeur est définie sur false, l’image bitmap n’est pas reproduite et les pixels les plus éloignés des bords extérieurs de l’image bitmap sont utilisés pour tout remplissage dépassant les limites de cette dernière.

Considérons par exemple l’image bitmap suivante (un motif en damier de 20 x 20 pixels) :

Lorsque la propriété repeat est définie sur true (comme dans l’exemple suivant), le remplissage bitmap répète l’image bitmap :

Lorsque la propriété repeat est définie sur false, le remplissage bitmap utilise les pixels du bord pour le remplissage en dehors de l’image bitmap :

smooth Indique si un algorithme de lissage doit être appliqué à l’image bitmap.Boolean Indique si un algorithme de lissage doit être appliqué à l’image bitmap.

Si la valeur est false, les images bitmap agrandies sont rendues en appliquant un algorithme d’approximation et ont un aspect pixélisé. Si la valeur est true, les images bitmap agrandies sont rendues avec un algorithme bilinéaire. Les rendus qui résultent de l’utilisation de l’algorithme d’approximation sont généralement plus rapides.

GraphicsStroke Définit un style de ligne ou un trait.flash.display:IGraphicsStrokeflash.display:IGraphicsDataObject Définit un style de ligne ou un trait.

Utilisez l’objet GraphicsStroke avec la méthode Graphics.drawGraphicsData(). Dessiner un objet GraphicsStroke revient à appeler l’une des méthodes de la classe Graphics qui définit le style de ligne, par exemple les méthodes Graphics.lineStyle(), Graphics.lineBitmapStyle() ou Graphics.lineGradientStyle().

flash.display.Graphics.lineStyle()flash.display.Graphics.lineBitmapStyle()flash.display.Graphics.lineGradientStyle()flash.display.Graphics.drawGraphicsData()GraphicsStroke Crée un nouvel objet GraphicsStroke.thicknessNumberunknownUn entier qui indique l’épaisseur de la ligne en points ; les valeurs disponibles sont comprises entre 0 et 255. Si aucun nombre n’est spécifié, ou si le paramètre n’est pas défini, aucune ligne n’est dessinée. Si une valeur inférieure à 0 est transmise, la valeur par défaut est de 0. 0 correspond à l’épaisseur minimale et 255 à l’épaisseur maximale. Si la valeur transmise est supérieure à 255, la valeur par défaut est de 255. pixelHintingBooleanfalseValeur booléenne qui permet d’ajouter des indices supplémentaires de lissage des pixels. Cette valeur affecte à la fois la position des ancres de courbe et la taille du trait. Si pixelHinting est défini sur true, Flash Player propose des index de largeur des pixels. Si pixelHinting est défini sur false, les courbes et les lignes droites risquent de ne pas être continues. Les exemples ci-dessous illustrent comment Flash Player effectue le rendu de deux rectangles arrondis identiques à une exception près : le réglage du paramètre pixelHinting utilisé par la méthode lineStyle() (les images sont mises à l’échelle 200 %, pour mettre en évidence la différence) :

Si vous ne spécifiez pas de valeur, la ligne n’utilise pas les index de lissage des pixels.

scaleModeStringnormalValeur de la classe LineScaleMode qui spécifie le mode d’échelle à utiliser :
  • LineScaleMode.NORMAL — Redimensionne toujours l’épaisseur du trait si l’objet est redimensionné (valeur par défaut).
  • LineScaleMode.NONE — Ne redimensionne jamais l’épaisseur du trait.
  • LineScaleMode.VERTICAL — N’ajuste pas l’épaisseur du trait si l’objet est redimensionné verticalement uniquement. Considérons par exemple les cercles illustrés ci-dessous, dessinés dans un trait d’un pixel, et pour lesquels le paramètre scaleMode est défini sur LineScaleMode.VERTICAL. Le cercle de gauche est redimensionné verticalement uniquement, tandis que le cercle de droite est redimensionné à la verticale et à l’horizontale :

  • LineScaleMode.HORIZONTAL — N’ajuste pas l’épaisseur du trait si l’objet est redimensionné horizontalement uniquement. Considérons par exemple les cercles illustrés ci-dessous, dessinés dans un trait d’un pixel, et pour lesquels le paramètre scaleMode est défini sur LineScaleMode.HORIZONTAL. Le cercle de gauche est redimensionné horizontalement uniquement, tandis que le cercle de droite est redimensionné à la verticale et à l’horizontale :

capsStringnoneValeur de la classe CapsStyle qui spécifie le type d’extrémité au bout des lignes. Les valeurs possibles sont les suivantes : CapsStyle.NONE, CapsStyle.ROUND et CapsStyle.SQUARE. En l’absence de valeur, Flash utilise des extrémités rondes.

Par exemple, l’illustration suivante présente les différents réglages capsStyle. Pour chaque paramètre, l’illustration présente une ligne bleue dont l’épaisseur est de 30 (pour laquelle capsStyle s’applique), et une ligne noire superposée dont l’épaisseur est de 1 (pour laquelle aucun capsStyle ne s’applique) :

jointsStringroundValeur de la classe JointStyle qui spécifie le type d’apparence de liaison utilisé dans les angles. Les valeurs possibles sont les suivantes : JointStyle.BEVEL, JointStyle.MITER et JointStyle.ROUND. En l’absence de valeurs, Flash utilise des liaisons rondes.

Par exemple, l’illustration suivante présente les différents réglages joints. Pour chaque paramètre, l’illustration présente une ligne bleue en angle dont l’épaisseur est de 30 (pour laquelle jointStyle s’applique), et une ligne noire en angle superposée dont l’épaisseur est de 1 (pour laquelle aucun jointStyle ne s’applique) :

Remarque : pour les paramètres joints définis sur JointStyle.MITER, vous pouvez utiliser le paramètre miterLimit pour limiter la longueur de la pointe.

miterLimitNumber3.0Nombre qui indique la limite à laquelle une pointe est coupée. Les valeurs disponibles sont comprises entre 1 et 255 (et les valeurs qui excèdent cette plage sont arrondies à 1 ou 255). Cette valeur n’est utilisée que si jointStyle est défini sur "miter". La valeur miterLimit représente la longueur maximale d’une pointe au-delà du point où les lignes se rencontrent pour former une liaison. La valeur exprime un facteur du paramètre thickness de la ligne. Par exemple, avec un facteur miterLimit de 2,5 et une valeur de thickness de 10 pixels, la pointe est coupée à 25 pixels.

Par exemple, les lignes d’angle suivantes dessinent un objet avec un paramètre thickness d’une valeur de 20, mais un paramètre miterLimit défini sur 1, 2 et 4. Les lignes de référence noires sont surimposées et indiquent les points de rencontre des pointes :

Notez qu’une valeur miterLimit donnée possède un angle maximal spécifique pour lequel la pointe est coupée. Vous trouverez quelques exemples dans le tableau suivant :

Valeur miterLimit :Les angles inférieurs aux valeurs indiquées sont coupés :1.41490 degrés260 degrés430 degrés815 degrés
fillflash.display:IGraphicsFillnullUne occurrence IGraphicsFill contenant les données pour le remplissage d’un trait. Une occurrence IGraphicsFill peut représenter une série de commandes de remplissage.
Crée un nouvel objet GraphicsStroke.
flash.display.LineScaleModeflash.display.CapsStyleflash.display.JointStyleflash.display.IGraphicsFill
fill Spécifie l’occurrence contenant les données pour le remplissage d’un trait.flash.display:IGraphicsFill Spécifie l’occurrence contenant les données pour le remplissage d’un trait. Une occurrence IGraphicsFill peut représenter une série de commandes de remplissage. flash.display.IGraphicsFillmiterLimit Indique la limite à laquelle une pointe est coupée.Number Indique la limite à laquelle une pointe est coupée. Les valeurs disponibles sont comprises entre 1 et 255 (et les valeurs qui excèdent cette plage sont arrondies à 1 ou 255). Cette valeur n’est utilisée que si jointStyle est défini sur "miter". La valeur miterLimit représente la longueur maximale d’une pointe au-delà du point où les lignes se rencontrent pour former une liaison. La valeur exprime un facteur du paramètre thickness de la ligne. Par exemple, avec un facteur miterLimit de 2,5 et une valeur de thickness de 10 pixels, la pointe est coupée à 25 pixels.

Par exemple, les lignes d’angle suivantes dessinent un objet avec un paramètre thickness d’une valeur de 20, mais un paramètre miterLimit défini sur 1, 2 et 4. Les lignes de référence noires sont surimposées et indiquent les points de rencontre des pointes :

Notez qu’une valeur miterLimit donnée possède un angle maximal spécifique pour lequel la pointe est coupée. Vous trouverez quelques exemples dans le tableau suivant :

Valeur miterLimit :Les angles inférieurs aux valeurs indiquées sont coupés :1.41490 degrés260 degrés430 degrés815 degrés
pixelHinting Indique si des indices supplémentaires de lissage des pixels doivent être ajoutés.Boolean Indique si des indices supplémentaires de lissage des pixels doivent être ajoutés. Cette valeur affecte à la fois la position des ancres de courbe et la taille du trait. Si pixelHinting est défini sur true, Flash Player propose des index de largeur des pixels. Si pixelHinting est défini sur false, les courbes et les lignes droites risquent de ne pas être continues. Les exemples ci-dessous illustrent comment Flash Player effectue le rendu de deux rectangles arrondis identiques à une exception près : le réglage du paramètre pixelHinting utilisé par la méthode lineStyle() (les images sont mises à l’échelle 200 %, pour mettre en évidence la différence) :

thickness Indique l’épaisseur de la ligne en points ; les valeurs disponibles sont comprises entre 0 et 255.Number Indique l’épaisseur de la ligne en points ; les valeurs disponibles sont comprises entre 0 et 255. Si aucun nombre n’est spécifié, ou si le paramètre n’est pas défini, aucune ligne n’est dessinée. Si une valeur inférieure à 0 est transmise, la valeur par défaut est de 0. 0 correspond à l’épaisseur minimale et 255 à l’épaisseur maximale. Si la valeur transmise est supérieure à 255, la valeur par défaut est de 255. caps Spécifie le type d’extrémité au bout des lignes.String Spécifie le type d’extrémité au bout des lignes. Les valeurs possibles sont les suivantes : CapsStyle.NONE, CapsStyle.ROUND et CapsStyle.SQUARE. En l’absence de valeur, Flash utilise des extrémités rondes.

Par exemple, l’illustration suivante présente les différents réglages capsStyle. Pour chaque paramètre, l’illustration présente une ligne bleue dont l’épaisseur est de 30 (pour laquelle capsStyle s’applique), et une ligne noire superposée dont l’épaisseur est de 1 (pour laquelle aucun capsStyle ne s’applique) :

flash.display.CapsStyle
joints Spécifie le type d’apparence de liaison utilisé dans les angles.String Spécifie le type d’apparence de liaison utilisé dans les angles. Les valeurs possibles sont les suivantes : JointStyle.BEVEL, JointStyle.MITER et JointStyle.ROUND. En l’absence de valeurs, Flash utilise des liaisons rondes.

Par exemple, l’illustration suivante présente les différents réglages joints. Pour chaque paramètre, l’illustration présente une ligne bleue en angle dont l’épaisseur est de 30 (pour laquelle jointStyle s’applique), et une ligne noire en angle superposée dont l’épaisseur est de 1 (pour laquelle aucun jointStyle ne s’applique) :

Remarque : pour les paramètres joints définis sur JointStyle.MITER, vous pouvez utiliser le paramètre miterLimit pour limiter la longueur de la pointe.

flash.display.JointStyle
scaleMode Spécifie l’échelle de l’épaisseur du trait.String Spécifie l’échelle de l’épaisseur du trait. Les valeurs possibles sont :
  • LineScaleMode.NORMAL — Redimensionne toujours l’épaisseur du trait si l’objet est redimensionné (valeur par défaut).
  • LineScaleMode.NONE — Ne redimensionne jamais l’épaisseur du trait.
  • LineScaleMode.VERTICAL — N’ajuste pas l’épaisseur du trait si l’objet est redimensionné verticalement uniquement. Considérons par exemple les cercles illustrés ci-dessous, dessinés dans un trait d’un pixel, et pour lesquels le paramètre scaleMode est défini sur LineScaleMode.VERTICAL. Le cercle de gauche est redimensionné verticalement uniquement, tandis que le cercle de droite est redimensionné à la verticale et à l’horizontale :

  • LineScaleMode.HORIZONTAL — N’ajuste pas l’épaisseur du trait si l’objet est redimensionné horizontalement uniquement. Considérons par exemple les cercles illustrés ci-dessous, dessinés dans un trait d’un pixel, et pour lesquels le paramètre scaleMode est défini sur LineScaleMode.HORIZONTAL. Le cercle de gauche est redimensionné horizontalement uniquement, tandis que le cercle de droite est redimensionné à la verticale et à l’horizontale :

flash.display.LineScaleMode
GraphicsEndFill Indique la fin du remplissage des graphiques.flash.display:IGraphicsFillflash.display:IGraphicsDataObject Indique la fin du remplissage des graphiques. Utilisez l’objet GraphicsEndFill avec la méthode Graphics.drawGraphicsData().

Dessiner un objet GraphicsEndFill revient à appeler la méthode Graphics.endFill().

flash.display.Graphics.drawGraphicsData()flash.display.Graphics.endFill()GraphicsEndFill Crée un objet à utiliser avec la méthode Graphics.drawGraphicsData() pour terminer le remplissage de façon explicite. Crée un objet à utiliser avec la méthode Graphics.drawGraphicsData() pour terminer le remplissage de façon explicite. flash.display.Graphics.drawGraphicsData()flash.display.Graphics.endFill()
ShaderPrecision Cette classe contient les constantes représentant les valeurs possibles de la propriété precisionHint de la classe Shader.Object Cette classe contient les constantes représentant les valeurs possibles de la propriété precisionHint de la classe Shader. Chaque constante représente l’un des modes de précision pour l’exécution des opérations du shader.

Le choix du mode de précision affecte les opérations de shader suivantes. Ces opérations sont plus rapides sur un processeur Intel avec l’instruction SSE définie :

  • sin(x)
  • cos(x)
  • tan(x)
  • asin(x)
  • acos(x)
  • atan(x)
  • atan(x, y)
  • exp(x)
  • exp2(x)
  • log(x)
  • log2(x)
  • pow(x, y)
  • reciprocal(x)
  • sqrt(x)
flash.display.Shader.precisionHintFAST Représente le mode de précision rapide.fastString Représente le mode de précision rapide.

Le mode de précision rapide est conçu pour des performances maximales, mais n’assure pas la même cohérence sur les différentes plates-formes et les configurations de CPU individuelles. Dans la plupart des cas, ce niveau de précision suffit pour créer des effets graphiques sans artefact visible.

L’utilisation du mode de précision rapide est généralement plus rapide que celle des tables de recherche.

flash.display.Shader.precisionHint
FULL Représente le mode de précision totale.fullString Représente le mode de précision totale.

En mode de précision totale, le shader calcule toutes les opérations mathématiques en utilisant toute la largeur de virgule flottante 32 bits de la norme IEEE. Ce mode assure un comportement cohérent sur toutes les plates-formes. Dans ce mode, certaines opérations mathématiques, telles que les fonctions trigonométriques et exponentielles, peuvent être lentes.

flash.display.Shader.precisionHint
BlendMode Classe qui fournit des valeurs constantes relatives aux effets de mode de fondu visuels.Object Classe qui fournit des valeurs constantes relatives aux effets de mode de fondu visuels. Ces constantes sont utilisées dans les éléments suivants :
  • La propriété blendMode de la classe flash.display.DisplayObject.
  • Le paramètre blendMode de la méthode draw() de la classe flash.display.BitmapData.
flash.display.DisplayObject.blendModeflash.display.BitmapData.draw()ADD Ajoute les valeurs des couleurs élémentaires de l’objet d’affichage à celles de son arrière-plan, en appliquant un plafond de 0xFF.addString Ajoute les valeurs des couleurs élémentaires de l’objet d’affichage à celles de son arrière-plan, en appliquant un plafond de 0xFF. Ce réglage est habituellement utilisé pour animer un fondu d’éclaircissement entre deux objets.

Par exemple, si l’objet d’affichage possède un pixel dont la valeur RVB est 0xAAA633, et que le pixel d’arrière-plan possède une valeur RVB réglée sur 0xDD2200, la valeur RVB résultante du pixel affiché est 0xFFC833 (parce que 0xAA + 0xDD > 0xFF, 0xA6 + 0x22 = 0xC8 et 0x33 + 0x00 = 0x33).

ALPHA Applique la valeur alpha de chaque pixel de l’objet d’affichage à l’arrière-plan.alphaString Applique la valeur alpha de chaque pixel de l’objet d’affichage à l’arrière-plan. Pour ce faire, la propriété blendMode de l’objet d’affichage parent doit être réglée sur flash.display.BlendMode.LAYER.

Pas de prise en charge sous le rendu sur GPU.

DARKEN Sélectionne les plus sombres des couleurs élémentaires de l’objet d’affichage et de l’arrière-plan (celles qui ont les valeurs les plus faibles).darkenString Sélectionne les plus sombres des couleurs élémentaires de l’objet d’affichage et de l’arrière-plan (celles qui ont les valeurs les plus faibles). Ce réglage est généralement utilisé pour les superpositions.

Par exemple, si l’objet d’affichage possède un pixel dont la valeur RVB est 0xFFCC33, et que le pixel d’arrière-plan possède une valeur RVB réglée sur 0xDDF800, la valeur RVB obtenue pour le pixel affiché est 0xDDCC00 (car 0xFF > 0xDD, 0xCC < 0xF8 et 0x33 > 0x00 = 33).

Pas de prise en charge sous le rendu sur GPU.

DIFFERENCE Compare les couleurs élémentaires de l’objet d’affichage à celles de son arrière-plan et soustrait la valeur la plus sombre des deux couleurs élémentaires de la plus claire.differenceString Compare les couleurs élémentaires de l’objet d’affichage à celles de son arrière-plan et soustrait la valeur la plus sombre des deux couleurs élémentaires de la plus claire. Ce réglage est habituellement utilisé pour obtenir des couleurs plus vibrantes.

Par exemple, si l’objet d’affichage possède un pixel dont la valeur RVB est 0xFFCC33, et le pixel d’arrière-plan possède une valeur RVB réglée sur 0xDDF800, la valeur RVB résultante du pixel affiché est 0x222C33 (parce que 0xFF - 0xDD = 0x22, 0xF8 - 0xCC = 0x2C et 0x33 - 0x00 = 0x33).

ERASE Efface l’arrière-plan sur la base de la valeur alpha de l’objet d’affichage.eraseString Efface l’arrière-plan sur la base de la valeur alpha de l’objet d’affichage. Ce processus implique de définir la propriété blendMode de l’objet d’affichage parent sur flash.display.BlendMode.LAYER.

Pas de prise en charge sous le rendu sur GPU.

HARDLIGHT Ajuste la couleur de chaque pixel sur la base de l’obscurité de l’objet d’affichage.hardlightString Ajuste la couleur de chaque pixel sur la base de l’obscurité de l’objet d’affichage. Si l’objet d’affichage est plus clair qu’un gris à 50 %, les couleurs de l’objet d’affichage et de l’arrière-plan sont masquées, ce qui permet d’obtenir une couleur plus claire. Si l’objet d’affichage est plus foncé qu’un gris à 50 %, les couleurs sont multipliées, ce qui donne une couleur plus sombre. Ce réglage est habituellement utilisé pour les effets d’ombrage.

Pas de prise en charge sous le rendu sur GPU.

INVERT Inverse l’arrière-plan.invertString Inverse l’arrière-plan. LAYER Impose la création d’un groupe de transparences pour l’objet d’affichage.layerString Impose la création d’un groupe de transparences pour l’objet d’affichage. Cela signifie que l’objet d’affichage est précomposé dans un tampon temporaire avant que son traitement ne se poursuive. La précomposition est exécutée automatiquement si l’objet d’affichage est préplacé en mémoire cache par le biais d’une mise en cache des bitmaps ou s’il correspond à un conteneur d’objet d’affichage qui possède au moins un objet enfant associé à un réglage blendMode autre que "normal".

Pas de prise en charge sous le rendu sur GPU.

LIGHTEN Sélectionne les plus claires des couleurs élémentaires de l’objet d’affichage et de l’arrière-plan (celles qui ont les valeurs les plus élevées).lightenString Sélectionne les plus claires des couleurs élémentaires de l’objet d’affichage et de l’arrière-plan (celles qui ont les valeurs les plus élevées). Ce réglage est généralement utilisé pour les superpositions.

Par exemple, si l’objet d’affichage possède un pixel dont la valeur RVB est 0xFFCC33, et que le pixel d’arrière-plan possède une valeur RVB réglée sur 0xDDF800, la valeur RVB obtenue pour le pixel affiché est 0xFFF833 (car 0xFF > 0xDD, 0xCC < 0xF8 et 0x33 > 0x00 = 33).

Pas de prise en charge sous le rendu sur GPU.

MULTIPLY Multiplie les valeurs des couleurs élémentaires de l’objet d’affichage par celles de la couleur d’arrière-plan, puis les normalise en les divisant par 0xFF, ce qui donne des couleurs plus sombres.multiplyString Multiplie les valeurs des couleurs élémentaires de l’objet d’affichage par celles de la couleur d’arrière-plan, puis les normalise en les divisant par 0xFF, ce qui donne des couleurs plus sombres. Ce réglage est souvent utilisé pour les effets d’ombre et de profondeur.

Par exemple, si une couleur élémentaire (comme le rouge) d’un pixel de l’objet d’affichage et la couleur correspondante du pixel de l’arrière-plan ont toutes les deux une valeur de 0x88, le résultat de la multiplication est 0x4840. La division par 0xFF donne une valeur de 0x48 pour cette couleur élémentaire, qui est plus sombre que celle de l’objet d’affichage ou de l’arrière-plan.

NORMAL L’objet d’affichage apparaît devant l’arrière-plan.normalString L’objet d’affichage apparaît devant l’arrière-plan. Les valeurs de pixel de l’objet d’affichage remplacent celles de l’arrière-plan. Lorsque l’objet d’affichage est transparent, l’arrière-plan est visible. OVERLAY Ajuste la couleur de chaque pixel sur la base de l’obscurité de l’arrière-plan.overlayString Ajuste la couleur de chaque pixel sur la base de l’obscurité de l’arrière-plan. Si l’arrière-plan est plus clair qu’un gris à 50 %, les couleurs de l’objet d’affichage et de l’arrière-plan sont masquées, ce qui donne une couleur plus claire. Si l’arrière-plan est plus foncé qu’un gris à 50 %, les couleurs sont multipliées, ce qui donne une couleur plus sombre. Ce réglage est habituellement utilisé pour les effets d’ombrage.

Pas de prise en charge sous le rendu sur GPU.

SCREEN Multiplie le complément (l’inverse) de la couleur de l’objet d’affichage par le complément de la couleur d’arrière-plan, ce qui donne un effet de blanchissement.screenString Multiplie le complément (l’inverse) de la couleur de l’objet d’affichage par le complément de la couleur d’arrière-plan, ce qui donne un effet de blanchissement. Ce réglage est couramment utilisé pour la mise en valeur ou pour supprimer les parties noires de l’objet d’affichage. SHADER Utilise un shader pour définir le fondu entre les objets.shaderString Utilise un shader pour définir le fondu entre les objets.

Définir la propriété blendShader sur une occurrence Shader définit automatiquement la propriété blendMode de l’objet d’affichage sur BlendMode.SHADER. Si la propriété blendMode est définie sur BlendMode.SHADER sans que la propriété blendShader n’ait été définie auparavant, la propriété blendMode est définie à la place sur BlendMode.NORMAL. Si la propriété blendShader est définie (ce qui définit la propriété blendMode sur BlendMode.SHADER) et que la valeur de la propriété blendMode est ensuite modifiée, le mode de fondu peut être réinitialisé pour utiliser le shader de fondu en définissant simplement la propriété blendMode sur BlendMode.SHADER. La propriété blendShader n’a plus besoin d’être définie, sauf pour modifier le shader utilisé afin de définir le mode de fondu.

Pas de prise en charge sous le rendu sur GPU.

flash.display.DisplayObject.blendModeflash.display.DisplayObject.blendShaderflash.display.Shader
SUBTRACT Soustrait les valeurs des couleurs élémentaires de l’objet d’affichage de celles de la couleur d’arrière-plan, en appliquant un plancher de 0.subtractString Soustrait les valeurs des couleurs élémentaires de l’objet d’affichage de celles de la couleur d’arrière-plan, en appliquant un plancher de 0. Ce réglage est habituellement utilisé pour animer un fondu de plus en plus sombre entre deux objets.

Par exemple, si l’objet d’affichage possède un pixel dont la valeur RVB est 0xAA2233, et que le pixel d’arrière-plan a une valeur RVB réglée sur 0xDDA600, alors la valeur RVB obtenue pour le pixel affiché est 0x338400 (car 0xDD - 0xAA = 0x33, 0xA6 - 0x22 = 0x84 et 0x00 - 0x33 < 0x00).

Graphics La classe Graphics contient un ensemble de méthodes permettant de créer une forme vectorielle.Object La classe Graphics contient un ensemble de méthodes permettant de créer une forme vectorielle. Les objets d’affichage qui prennent en charge le dessin incluent les objets Sprite et Shape. Chacune de ces classes comporte une propriété graphics correspondant à un objet Graphics. Vous trouverez ci-dessous quelques-unes des fonctionnalités d’aide à la visualisation qui sont à votre disposition : drawRect(), drawRoundRect(), drawCircle() et drawEllipse().

Il est impossible de créer un objet Graphics directement à partir du code ActionScript. Si vous appelez new Graphics(), une exception est renvoyée.

La classe Graphics ne gère pas les sous-classes.

L’exemple suivant utilise la classe GraphicsExample pour dessiner un cercle, un rectangle arrondi et un carré. Cette tâche s’accomplit de la façon suivante :
  1. Elle déclare la propriété size qui servira par la suite à déterminer la taille de chaque forme.
  2. Elle déclare les propriétés qui définissent la couleur de fond sur orange, la couleur de bordure sur gris foncé, la taille de la bordure sur 0 pixel, le rayon de l’angle sur 9 pixels et définit l’espace entre le bord de la scène et les autres objets sur 5 pixels.
  3. Elle utilise les propriétés déclarées au cours des étapes précédentes, ainsi que les méthodes intégrées de la classe Graphics pour dessiner le cercle, le rectangle arrondi et le carré aux coordonnées x = 0, y = 0.
  4. Elle redessine les formes situées le long de la partie supérieure de la scène, en commençant par x = 5, y = 5, avec un espacement de 5 pixels entre les formes.
package { import flash.display.DisplayObject; import flash.display.Graphics; import flash.display.Shape; import flash.display.Sprite; public class GraphicsExample extends Sprite { private var size:uint = 80; private var bgColor:uint = 0xFFCC00; private var borderColor:uint = 0x666666; private var borderSize:uint = 0; private var cornerRadius:uint = 9; private var gutter:uint = 5; public function GraphicsExample() { doDrawCircle(); doDrawRoundRect(); doDrawRect(); refreshLayout(); } private function refreshLayout():void { var ln:uint = numChildren; var child:DisplayObject; var lastChild:DisplayObject = getChildAt(0); lastChild.x = gutter; lastChild.y = gutter; for (var i:uint = 1; i < ln; i++) { child = getChildAt(i); child.x = gutter + lastChild.x + lastChild.width; child.y = gutter; lastChild = child; } } private function doDrawCircle():void { var child:Shape = new Shape(); var halfSize:uint = Math.round(size / 2); child.graphics.beginFill(bgColor); child.graphics.lineStyle(borderSize, borderColor); child.graphics.drawCircle(halfSize, halfSize, halfSize); child.graphics.endFill(); addChild(child); } private function doDrawRoundRect():void { var child:Shape = new Shape(); child.graphics.beginFill(bgColor); child.graphics.lineStyle(borderSize, borderColor); child.graphics.drawRoundRect(0, 0, size, size, cornerRadius); child.graphics.endFill(); addChild(child); } private function doDrawRect():void { var child:Shape = new Shape(); child.graphics.beginFill(bgColor); child.graphics.lineStyle(borderSize, borderColor); child.graphics.drawRect(0, 0, size, size); child.graphics.endFill(); addChild(child); } } }
beginBitmapFill Remplit une zone de tracé en utilisant une image bitmap.bitmapflash.display:BitmapDataImage bitmap transparente ou opaque qui contient les bits à afficher. matrixflash.geom:MatrixnullObjet matrix (appartenant à la classe flash.geom.Matrix), qui permet de définir les transformations de l’image bitmap. Par exemple, vous pouvez utiliser la matrice suivante pour faire pivoter une image bitmap de 45 degrés (pi/4 radians) : matrix = new flash.geom.Matrix(); matrix.rotate(Math.PI / 4); repeatBooleantrueSi la valeur est true, l’image bitmap se reproduit pour former un motif. Si la valeur est false, l’image bitmap ne se répète pas et les bords de l’image sont utilisés pour tout remplissage qui dépasse l’image.

Considérons par exemple l’image bitmap suivante (un motif en damier de 20 x 20 pixels) :

Lorsque la propriété repeat est définie sur true (comme dans l’exemple suivant), le remplissage bitmap répète l’image bitmap :

Lorsque la propriété repeat est définie sur false, le remplissage bitmap utilise les pixels du bord pour le remplissage en dehors de l’image bitmap :

smoothBooleanfalseSi la valeur est false, les images bitmap agrandies sont rendues en appliquant un algorithme d’approximation et ont un aspect pixélisé. Si la valeur est true, les images bitmap agrandies sont rendues avec un algorithme bilinéaire. Les rendus qui résultent de l’utilisation de l’algorithme d’approximation sont plus rapides. Début d’une forme remplie de bitmaps.
Remplit une zone de tracé en utilisant une image bitmap. L’image bitmap peut être répétée ou former une mosaïque afin de remplir la zone. Le remplissage demeure actif jusqu’à ce que vous appeliez la méthode beginFill(), beginBitmapFill(), beginGradientFill() ou beginShaderFill(). Appeler la méthode clear() permet d’effacer le remplissage.

L’application effectue le remplissage lorsque trois points ou plus sont dessinés, ou lorsque la méthode endFill() est appelée.

L’exemple suivant utilise une image (image1.jpg), pivotée et répétée pour remplir un rectangle.
  1. Le fichier image (image1.jpg) est chargé via les objets Loader et URLRequest. Ici, le fichier est dans le même répertoire que le fichier SWF. Le fichier SWF doit être compilé avec la Protection de lecture locale définie sur Accéder aux fichiers locaux seulement.
  2. Dès que l’image est chargée (à la fin de l’événement), la méthode drawImage() est appelée. La méthode ioErrorHandler() écrit un commentaire de suivi si l’image n’a pas été chargée correctement.
  3. Dans la méthode drawImage(), un objet BitmapData est instancié et sa largeur et sa largeur sont définies en fonction de l’image (image1.jpg). L’image source est ensuite dessinée dans l’objet BitmapData. Ensuite, un rectangle est tracé dans l’objet Sprite mySprite et l’objet BitmapData est utilisé pour le remplir. A l’aide d’un objet Matrix, la méthode beginBitmapFill() fait pivoter l’image de 45 degrés, puis commence à remplir le rectangle avec l’image jusqu’à ce qu’il soit terminé.
package { import flash.display.Sprite; import flash.display.BitmapData; import flash.display.Loader; import flash.net.URLRequest; import flash.events.Event; import flash.events.IOErrorEvent; import flash.geom.Matrix; public class Graphics_beginBitmapFillExample extends Sprite { private var url:String = "image1.jpg"; private var loader:Loader = new Loader(); public function Graphics_beginBitmapFillExample() { var request:URLRequest = new URLRequest(url); loader.load(request); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, drawImage); loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); } private function drawImage(event:Event):void { var mySprite:Sprite = new Sprite(); var myBitmap:BitmapData = new BitmapData(loader.width, loader.height, false); myBitmap.draw(loader, new Matrix()); var matrix:Matrix = new Matrix(); matrix.rotate(Math.PI/4); mySprite.graphics.beginBitmapFill(myBitmap, matrix, true); mySprite.graphics.drawRect(100, 50, 200, 90); mySprite.graphics.endFill(); addChild(mySprite); } private function ioErrorHandler(event:IOErrorEvent):void { trace("Unable to load image: " + url); } } }
endFill()beginFill()beginGradientFill()
beginFill Spécifie un remplissage simple d’une couleur que des appels ultérieurs à d’autres méthodes Graphics (telles que lineTo() ou drawCircle()) utilisent lors du dessin.coloruintCouleur du remplissage (0xRRGGBB). alphaNumber1.0Valeur alpha du remplissage (de 0.0 à 1.0). Spécifie un remplissage d’une couleur. Spécifie un remplissage simple d’une couleur que des appels ultérieurs à d’autres méthodes Graphics (telles que lineTo() ou drawCircle()) utilisent lors du dessin. Le remplissage demeure actif jusqu’à ce que vous appeliez la méthode beginFill(), beginBitmapFill(), beginGradientFill() ou beginShaderFill(). Appeler la méthode clear() permet d’effacer le remplissage.

L’application effectue le remplissage lorsque trois points ou plus sont dessinés, ou lorsque la méthode endFill() est appelée.

Pour une illustration de l’utilisation de cette méthode, voir l’exemple présenté à la fin de ce cours.
endFill()beginBitmapFill()beginGradientFill()
beginGradientFill Spécifie un remplissage en dégradé utilisé lors des appels suivants d’autres méthodes Graphics (telles que lineTo() ou drawCircle()) associées à l’objet.Si le paramètre type n’est pas valide. ArgumentErrorArgumentErrortypeStringValeur de la classe GradientType qui spécifie le type de dégradé à utiliser : GradientType.LINEAR ou GradientType.RADIAL. colorsArrayTableau de valeurs de couleurs RVB hexadécimales utilisé pour le dégradé (par exemple, rouge correspond à 0xFF0000, bleu à 0x0000FF, etc.). Vous pouvez définir jusqu’à 15 couleurs. Pour chaque couleur, définissez une valeur correspondante dans les paramètres alphas et ratios. alphasArrayTableau de valeurs alpha pour les couleurs correspondantes du tableau de couleurs ; les valeurs disponibles sont comprises entre 0 et 1. Si la valeur est inférieure à 0, la valeur par défaut est de 0. Si la valeur est supérieure à 1, la valeur par défaut est de 1. ratiosArrayTableau de taux de distribution des couleurs ; les valeurs disponibles sont comprises entre 0 et 255. Cette valeur définit le pourcentage de la largeur où la couleur est échantillonnée sur 100 %. La valeur 0 représente la position de gauche dans la zone de dégradés, tandis que 255 représente la position de droite.

Remarque : cette valeur représente les positions de la zone de dégradés, plutôt que l’espace de coordonnées du dégradé final, susceptible d’être plus large ou plus étroit que la zone de dégradés. Spécifiez une valeur pour chaque valeur dans le paramètre colors.

Par exemple, pour un dégradé linéaire qui comprend deux couleurs, bleu et vert, l’exemple suivant illustre l’emplacement des couleurs dans le dégradé selon les différentes valeurs du tableau ratios :

ratiosDégradé[0, 127][0, 255][127, 255]

Les valeurs du tableau doivent augmenter de manière séquentielle ; par exemple, [0, 63, 127, 190, 255].

matrixflash.geom:MatrixnullMatrice de transformation définie par la classe flash.geom.Matrix. La classe flash.geom.Matrix inclut une méthode createGradientBox(), qui permet de configurer facilement la matrice en vue de son utilisation avec la méthode beginGradientFill(). spreadMethodStringpadValeur de la classe SpreadMethod qui spécifie la méthode d’étalement à utiliser : SpreadMethod.PAD, SpreadMethod.REFLECT ou SpreadMethod.REPEAT.

Par exemple, considérons un dégradé linéaire simple entre deux couleurs :

import flash.geom.* import flash.display.* var fillType:String = GradientType.LINEAR; var colors:Array = [0xFF0000, 0x0000FF]; var alphas:Array = [1, 1]; var ratios:Array = [0x00, 0xFF]; var matr:Matrix = new Matrix(); matr.createGradientBox(20, 20, 0, 0, 0); var spreadMethod:String = SpreadMethod.PAD; this.graphics.beginGradientFill(fillType, colors, alphas, ratios, matr, spreadMethod); this.graphics.drawRect(0,0,100,100);

Cet exemple utilise SpreadMethod.PAD comme méthode d’étalement, et le remplissage en dégradé prend l’aspect suivant :

Si vous utilisez SpreadMethod.REFLECT comme méthode d’étalement, le remplissage en dégradé prend l’aspect suivant :

Si vous utilisez SpreadMethod.REPEAT comme méthode d’étalement, le remplissage en dégradé prend l’aspect suivant :

interpolationMethodStringrgbValeur de la classe InterpolationMethod qui spécifie la valeur à utiliser : InterpolationMethod.LINEAR_RGB ou InterpolationMethod.RGB

Prenons, par exemple, un dégradé linéaire simple entre deux couleurs (le paramètre spreadMethod étant réglé sur SpreadMethod.REFLECT). Les différentes méthodes d’interpolation influent sur l’aspect de la façon suivante :

InterpolationMethod.LINEAR_RGBInterpolationMethod.RGB
focalPointRatioNumber0Nombre qui contrôle l’emplacement du point focal du dégradé. La valeur 0 signifie que le point focal est au centre. La valeur 1 signifie que le point focal est au bord du cercle du dégradé. La valeur -1 signifie que le point focal est sur l’autre bord du cercle du dégradé. Toute valeur inférieure à -1 ou supérieure à 1 est arrondie à -1 ou 1. Par exemple, l’exemple suivant affiche un paramètre focalPointRatio défini sur 0,75 :

Spécifie un remplissage dégradé.
Spécifie un remplissage en dégradé utilisé lors des appels suivants d’autres méthodes Graphics (telles que lineTo() ou drawCircle()) associées à l’objet. Le remplissage demeure actif jusqu’à ce que vous appeliez la méthode beginFill(), beginBitmapFill(), beginGradientFill() ou beginShaderFill(). Appeler la méthode clear() permet d’effacer le remplissage.

L’application effectue le remplissage lorsque trois points ou plus sont dessinés, ou lorsque la méthode endFill() est appelée.

endFill()beginFill()beginBitmapFill()flash.geom.Matrix.createGradientBox()flash.display.GradientTypeflash.display.SpreadMethod
beginShaderFill Spécifie un remplissage de shader utilisé lors des appels suivants d’autres méthodes Graphics (telles que lineTo() ou drawCircle()) associées à l’objet.Lorsque le type de sortie du shader n’est pas compatible avec cette opération (le shader doit spécifier une sortie pixel3 ou pixel4). ArgumentErrorArgumentErrorLorsque le shader spécifie une entrée d’image non fournie. ArgumentErrorArgumentErrorLorsqu’une occurrence de ByteArray ou de Vector.<Number> est utilisée comme entrée et les propriétés width et height ne sont pas spécifiées pour le ShaderInput, ou les valeurs spécifiées ne correspondent pas à la quantité de données dans l’objet d’entrée. Voir la propriété ShaderInput.input pour plus d’informations. ArgumentErrorArgumentErrorshaderflash.display:ShaderShader à utiliser pour le remplissage. Cette occurrence Shader n’est pas obligatoire pour spécifier une entrée d’image. Toutefois, si une entrée d’image est spécifiée dans le shader, elle doit être fournie manuellement. Pour spécifier l’entrée, définissez la propriété input de la propriété ShaderInput correspondante de la propriété Shader.data.

Lorsque vous transmettez une occurrence Shader sous forme d’argument, le shader est copié en interne. L’opération de remplissage utilise cette copie interne et non une référence au shader d’origine. Toute modification apportée au shader, par exemple la modification de la valeur d’un paramètre, l’entrée ou le pseudo-code binaire, n’est pas appliquée au shader copié utilisé pour le remplissage.

matrixflash.geom:MatrixnullObjet matrice (de la classe flash.geom.Matrix), que vous pouvez utiliser pour définir des transformations sur le shader. Par exemple, vous pouvez utiliser la matrice suivante pour faire pivoter un shader de 45 degrés (pi/4 radians) : matrix = new flash.geom.Matrix(); matrix.rotate(Math.PI / 4);

Les coordonnées reçues dans le shader sont basées sur la matrice spécifiée dans le paramètre matrix. Dans le cas d’une matrice par défaut (null), les coordonnées dans le shader sont en coordonnées de pixel locales qui peuvent être utilisées pour échantillonner une entrée.

Spécifie un remplissage de shader.
Spécifie un remplissage de shader utilisé lors des appels suivants d’autres méthodes Graphics (telles que lineTo() ou drawCircle()) associées à l’objet. Le remplissage demeure actif jusqu’à ce que vous appeliez la méthode beginFill(), beginBitmapFill(), beginGradientFill() ou beginShaderFill(). Appeler la méthode clear() permet d’effacer le remplissage.

L’application effectue le remplissage lorsque trois points ou plus sont dessinés, ou lorsque la méthode endFill() est appelée.

Les remplissages de shader ne sont pas pris en charge sous le rendu sur GPU ; les zones remplies prendront la couleur cyan.

endFill()beginFill()beginBitmapFill()beginGradientFill()flash.display.ShaderInput
clear Efface les graphiques dessinés dans l’objet Graphics et réinitialise les réglages de style de trait et de remplissage. Efface les graphiques dessinés dans l’objet Graphics et réinitialise les réglages de style de trait et de remplissage. copyFrom Copie toutes les commandes de dessin de l’objet Graphics source dans l’objet Graphics appelant.sourceGraphicsflash.display:GraphicsObjet Graphics à partir duquel les commandes de dessin doivent être copiées. Copie toutes les commandes de dessin de l’objet Graphics source dans l’objet Graphics appelant. curveTo Trace une courbe entre la position actuelle et la position (anchorX, anchorY), en utilisant le style de trait actuel et le point de contrôle spécifié par les coordonnées (controlX, controlY).controlXNumberNombre qui spécifie la position horizontale du point de contrôle par rapport au point d’alignement de l’objet d’affichage parent. controlYNumberNombre qui spécifie la position verticale du point de contrôle par rapport au point d’alignement de l’objet d’affichage parent. anchorXNumberNombre qui spécifie la position horizontale du point d’ancrage suivant par rapport au point d’alignement de l’objet d’affichage parent. anchorYNumberNombre qui spécifie la position verticale du point d’ancrage suivant par rapport au point d’alignement de l’objet d’affichage parent. Dessine une courbe à partir de la position de dessin actuelle jusqu’à (anchorX, anchorY) en utilisant le point de contrôle spécifié par (controlX, controlY). Dessine une courbe en utilisant le style de trait actuel à partir de la position actuelle jusqu’à (anchorX, anchorY) en utilisant le point de contrôle spécifié par (controlX, controlY). La position de dessin actuelle est ensuite définie sur (anchorX, anchorY). Si le clip dans lequel vous dessinez intègre du contenu créé à l’aide des outils de dessin Flash, les appels de la méthode curveTo() sont tracés sous le contenu. Si vous appelez la méthode curveTo() avant d’appeler la méthode moveTo(), la position de dessin actuelle prend par défaut la valeur (0, 0). Si l’un des paramètres n’est pas spécifié, cette méthode échoue et la position de dessin actuelle n’est pas modifiée.

La courbe dessinée est une courbe de Bézier quadratique. Les courbes de Bézier quadratiques comprennent deux points d’ancrage et un point de contrôle. La courbe interpole les deux points d’ancrage et s’incurve en direction du point de contrôle.

L’exemple suivant dessine un objet circulaire vert avec une largeur et une hauteur de 100 pixels, 250 pixels à droite du point d’alignement (0, 0) de l’objet d’affichage Sprite.

Trace quatre courbes pour produire un cercle et le remplir en vert.

Notez que, du fait de la nature quadratique de l’équation Bézier, ce n’est pas un cercle parfait. La meilleure façon de tracer un cercle est d’utiliser la méthode drawCircle() de la classe Graphics.

package { import flash.display.Sprite; import flash.display.Shape; public class Graphics_curveToExample1 extends Sprite { public function Graphics_curveToExample1():void { var roundObject:Shape = new Shape(); roundObject.graphics.beginFill(0x00FF00); roundObject.graphics.moveTo(250, 0); roundObject.graphics.curveTo(300, 0, 300, 50); roundObject.graphics.curveTo(300, 100, 250, 100); roundObject.graphics.curveTo(200, 100, 200, 50); roundObject.graphics.curveTo(200, 0, 250, 0); roundObject.graphics.endFill(); this.addChild(roundObject); } } }
L’exemple suivant trace une nouvelle lune à l’aide de la méthode curveTo().

Deux lignes courbes de 1 pixel sont tracées et l’espace qui les sépare est rempli en blanc. La méthode moveTo() est utilisée pour placer la position du dessin en cours aux coordonnées (100, 100). La première courbe déplace la position du dessin sur (100, 200), son point de destination. La seconde courbe retourne à la position d’origine (100, 100), son point de destination. Les points de contrôle horizontaux déterminent les différentes tailles des courbes.

package { import flash.display.Sprite; import flash.display.Shape; public class Graphics_curveToExample2 extends Sprite { public function Graphics_curveToExample2() { var newMoon:Shape = new Shape(); newMoon.graphics.lineStyle(1, 0); newMoon.graphics.beginFill(0xFFFFFF); newMoon.graphics.moveTo(100, 100); newMoon.graphics.curveTo(30, 150, 100, 200); newMoon.graphics.curveTo(50, 150, 100, 100); graphics.endFill(); this.addChild(newMoon); } } }
drawCircle Dessine un cercle.xNumberPosition x du centre du cercle par rapport au point d’alignement de l’objet d’affichage parent (en pixels). yNumberCoordonnée y du centre du cercle par rapport au point d’alignement de l’objet d’affichage parent (en pixels). radiusNumberRayon du cercle (en pixels). Dessine un cercle. Dessine un cercle. Vous devez définir le remplissage et/ou le style de ligne avant d’appeler la méthode drawCircle(), à l’aide de la méthode linestyle(), lineGradientStyle(), beginFill(), beginGradientFill() ou beginBitmapFill(). Pour une illustration de l’utilisation de cette méthode, voir l’exemple présenté à la fin de ce cours. drawEllipse()lineStyle()lineGradientStyle()beginFill()beginGradientFill()beginBitmapFill()drawEllipse Dessine une ellipse.xNumberPosition x de la partie supérieure gauche du cadre de sélection de l’ellipse par rapport au point d’alignement de l’objet d’affichage parent (en pixels). yNumberCoordonnée y de la partie supérieure gauche du cadre de sélection de l’ellipse par rapport au point d’alignement de l’objet d’affichage parent (en pixels). widthNumberLargeur de l’ellipse (en pixels). heightNumberHauteur de l’ellipse (en pixels). Dessine une ellipse. Dessine une ellipse. Vous devez définir le remplissage et/ou le style de ligne avant d’appeler la méthode drawEllipse(), à l’aide de la méthode linestyle(), lineGradientStyle(), beginFill(), beginGradientFill() ou beginBitmapFill(). L’exemple suivant utilise la fonction drawEgg() pour tracer trois œufs de tailles différentes (trois tailles d’ovale), en fonction du paramètre eggSize.
  1. Le constructeur appelle la fonction drawEgg() et transmet les paramètres horizontaux et verticaux d’emplacement du traçage des œufs, plus le type d’œuf (eggSize) (la hauteur et la largeur des œufs (les ovales) peuvent être utilisées pour décider de l’emplacement où ils doivent s’afficher).
  2. La fonction drawEgg() trace les ovales de tailles différentes et les remplit à l’aide de la méthode beginFill(). Aucune gestion d’erreur avancée n’a été écrite pour sa fonction.
package { import flash.display.Sprite; import flash.display.Shape; public class Graphics_drawEllipseExample extends Sprite { public static const SMALL:uint = 0; public static const MEDIUM:uint = 1; public static const LARGE:uint = 2; public function Graphics_drawEllipseExample() { drawEgg(SMALL, 0, 100); drawEgg(MEDIUM, 100, 60); drawEgg(LARGE, 250, 35); } public function drawEgg(eggSize:uint, x:Number, y:Number):void { var myEgg:Shape = new Shape(); myEgg.graphics.beginFill(0xFFFFFF); myEgg.graphics.lineStyle(1); switch(eggSize) { case SMALL: myEgg.graphics.drawEllipse(x, y, 60, 70); break; case MEDIUM: myEgg.graphics.drawEllipse(x, y, 120, 150); break; case LARGE: myEgg.graphics.drawEllipse(x, y, 150, 200); break; default: trace ("Wrong size! There is no egg."); break; } myEgg.graphics.endFill(); this.addChild(myEgg); } } }
drawCircle()lineStyle()lineGradientStyle()beginFill()beginGradientFill()beginBitmapFill()
drawGraphicsData Soumet une série d’occurrences IGraphicsData pour le dessin.graphicsDataObjet Vector contenant des objets graphiques, dont chacun doit implémenter l’interface IGraphicsData. Soumet une série d’occurrences IGraphicsData pour le dessin. Cette méthode accepte un objet Vector contenant des objets, y compris des tracés, des remplissages et des traits, qui implémentent l’interface IGraphicsData. Un objet Vector des occurrences IGraphicsData peut se reporter à une forme ou à un jeu de données complexe et complètement défini pour restituer une forme complète.

Les tracés des graphiques peuvent contenir d’autres tracés de graphiques. Si le vecteur graphicsData inclut un tracé, ce dernier et tous ses sous-tracés sont restitués au cours de cette opération.

L’exemple suivant crée un objet GraphicsGradientFill pour établir les propriétés de remplissage d’un carré. Ensuite, l’exemple crée une classe d’objet GraphicsStroke (pour l’épaisseur des lignes) et un objet GraphicsSolidFill (pour la couleur des lignes) afin de définir les propriétés de la ligne de bordure du carré. L’exemple crée alors un objet GraphicsPath qui contient les valeurs permettant de dessiner la forme. Tous ces objets sont stockées dans un objet IGraphicsData et transmises à la commande drawGraphicsData() pour rendre la forme. package{ import flash.display.*; import flash.geom.*; public class DrawGraphicsDataExample extends Sprite { public function DrawGraphicsDataExample(){ // establish the fill properties var myFill:GraphicsGradientFill = new GraphicsGradientFill(); myFill.colors = [0xEEFFEE, 0x0000FF]; myFill.matrix = new Matrix(); myFill.matrix.createGradientBox(100, 100, 0); // establish the stroke properties var myStroke:GraphicsStroke = new GraphicsStroke(2); myStroke.fill = new GraphicsSolidFill(0x000000); // establish the path properties var myPath:GraphicsPath = new GraphicsPath(new Vector.<int>(), new Vector.<Number>()); myPath.commands.push(1,2,2,2,2); myPath.data.push(10,10, 10,100, 100,100, 100,10, 10,10); // populate the IGraphicsData Vector array var myDrawing:Vector.<IGraphicsData> = new Vector.<IGraphicsData>(); myDrawing.push(myFill, myStroke, myPath); // render the drawing graphics.drawGraphicsData(myDrawing); } } }
flash.display.IGraphicsDataflash.display.GraphicsBitmapFillflash.display.GraphicsEndFillflash.display.GraphicsGradientFillflash.display.GraphicsPathflash.display.GraphicsShaderFillflash.display.GraphicsSolidFillflash.display.GraphicsStrokeflash.display.GraphicsTrianglePath
drawPath Soumet une série de commandes pour le dessin.commandsVecteur d’entiers représentant les commandes définies par la classe GraphicsPathCommand. La classe GraphicsPathCommand associe les commandes à des identifiants numériques pour ce tableau vectoriel. dataVecteur de nombres où chaque paire de nombres est traitée comme un emplacement de coordonnées (paire x, y). Les valeurs des coordonnées x et y ne sont pas des objets Point ; le vecteur data correspond à une série de nombres où chaque groupe de deux nombres représente l’emplacement d’une coordonnée. windingStringevenOddSpécifie la règle d’enroulement à l’aide d’une valeur définie dans la classe GraphicsPathWinding. Soumet une série de commandes pour le dessin. La méthode drawPath() utilise les tableaux vectoriels pour regrouper les commandes de dessin individuelles moveTo(), lineTo() et curveTo() dans un seul appel. Les paramètres de la méthode drawPath() associent des commandes de dessin comportant des paires de valeurs de coordonnées x et y à une direction de dessin. Les commandes de dessin sont des valeurs issues de la classe GraphicsPathCommand. Les paires de valeurs des coordonnées x et y sont des nombres dans un tableau où chaque paire définit un emplacement de coordonnée. La direction de dessin est une valeur issue de la classe GraphicsPathWinding.

En général, le rendu des dessins sera plus rapide avec la méthode drawPath() qu’avec une série de méthodes individuelles lineTo() et curveTo().

La méthode drawPath() utilise un calcul en virgule flottante afin que la rotation et la mise à l’échelle des formes soient plus précises et donnent de meilleurs résultats. Toutefois, les courbes soumises à l’aide de la méthode drawPath() peuvent comporter de petites erreurs d’alignement des sous-pixels lorsqu’elles sont utilisées en conjonction avec les méthodes lineTo() et curveTo().

La méthode drawPath() utilise également des règles légèrement différentes pour le remplissage et le dessin des lignes. Voici ces règles :

  • Lorsqu’un remplissage est appliqué au rendu d’un tracé :
    • Tout sous-tracé de moins de 3 points n’est pas rendu (cependant, le rendu du trait se produira tout de même, en respectant les règles des traits ci-dessous).
    • Tout sous-tracé qui n’est pas clos (le point de fin n’est pas égal au point de début) est fermé implicitement.
  • Lorsqu’un trait est appliqué au rendu d’un tracé :
    • Les sous-tracés peuvent être composés de tout nombre de points.
    • Le sous-tracé n’est jamais implicitement fermé.
L’exemple suivant remplit deux objets Vector, puis les transmet à la méthode drawPath() pour obtenir une étoile bleue. Le premier objet Vector, star_commands, contient une série d’entiers qui représentent les commandes de dessin de la classe flash.display.GraphicsPathCommand, où la valeur 1 correspond à la commande MoveTo() et la valeur 2 correspond à la commande LineTo(). Le deuxième objet Vector, star_coord, contient 5 jeux de paires de coordonnées x et y. La méthode drawPath() fait correspondre les commandes avec les positions afin de dessiner une étoile. package{ import flash.display.*; public class DrawPathExample extends Sprite { public function DrawPathExample(){ var star_commands:Vector.<int> = new Vector.<int>(5, true); star_commands[0] = 1; star_commands[1] = 2; star_commands[2] = 2; star_commands[3] = 2; star_commands[4] = 2; var star_coord:Vector.<Number> = new Vector.<Number>(10, true); star_coord[0] = 66; //x star_coord[1] = 10; //y star_coord[2] = 23; star_coord[3] = 127; star_coord[4] = 122; star_coord[5] = 50; star_coord[6] = 10; star_coord[7] = 49; star_coord[8] = 109; star_coord[9] = 127; graphics.beginFill(0x003366); graphics.drawPath(star_commands, star_coord); } } } Dans l’exemple ci-dessus, chaque commande et paire de coordonnées est affecté individuellement pour indiquer leur position dans le tableau, mais elles peuvent être attribuées dans une même instruction. L’exemple suivant dessine le même étoile en affectant les valeurs de chaque tableau dans une seule instruction push() : package{ import flash.display.*; public class DrawPathExample extends Sprite { public function DrawPathExample(){ var star_commands:Vector.<int> = new Vector.<int>(); star_commands.push(1, 2, 2, 2, 2); var star_coord:Vector.<Number> = new Vector.<Number>(); star_coord.push(66,10, 23,127, 122,50, 10,49, 109,127); graphics.beginFill(0x003366); graphics.drawPath(star_commands, star_coord); } } } Remarque : par défaut, la méthode drawPath() utilise le type d’enroulement pair/impair. Par conséquent, le centre de l’étoile n’est pas rempli. Pour remplir le centre de l’étoile, spécifiez le type d’enroulement non nul du troisième paramètre : graphics.drawPath(star_commands, star_coord, GraphicsPathWinding.NON_ZERO);
flash.display.GraphicsPathCommandflash.display.GraphicsPathWinding
drawRect Dessine un rectangle.Si le paramètre width ou height n’est pas un nombre (Number.NaN). ArgumentErrorArgumentErrorxNumberNombre indiquant la position horizontale par rapport au point d’alignement de l’objet d’affichage parent (en pixels). yNumberNombre indiquant la position verticale par rapport au point d’alignement de l’objet d’affichage parent (en pixels). widthNumberLargeur du rectangle (en pixels). heightNumberHauteur du rectangle (en pixels). Dessine un rectangle arrondi. Dessine un rectangle. Vous devez définir le remplissage et/ou le style de ligne avant d’appeler la méthode drawRect(), à l’aide de la méthode linestyle(), lineGradientStyle(), beginFill(), beginGradientFill() ou beginBitmapFill(). L’exemple suivant indique comment dessiner des formes dans ActionScript 3.0. Exemple fourni par ActionScriptExamples.com. var movieClip:MovieClip = new MovieClip(); movieClip.graphics.beginFill(0xFF0000); movieClip.graphics.drawRect(0, 0, 100, 80); movieClip.graphics.endFill(); movieClip.x = 10; movieClip.y = 10; addChild(movieClip); lineStyle()lineGradientStyle()beginFill()beginGradientFill()beginBitmapFill()drawRoundRect()drawRoundRect Dessine un rectangle arrondi.Si le paramètre width, height, ellipseWidth ou ellipseHeight n’est pas un nombre (Number.NaN). ArgumentErrorArgumentErrorxNumberNombre indiquant la position horizontale par rapport au point d’alignement de l’objet d’affichage parent (en pixels). yNumberNombre indiquant la position verticale par rapport au point d’alignement de l’objet d’affichage parent (en pixels). widthNumberLargeur du rectangle arrondi (en pixels). heightNumberHauteur du rectangle arrondi (en pixels). ellipseWidthNumberLa largeur de l’ellipse utilisée pour dessiner les coins arrondis (en pixels). ellipseHeightNumberunknownLa hauteur de l’ellipse utilisée pour dessiner les coins arrondis (en pixels). Facultatif. Si aucune valeur n’est spécifiée, la valeur par défaut correspond à la valeur fournie pour le paramètre ellipseWidth. Dessine un rectangle arrondi. Dessine un rectangle arrondi. Vous devez définir le remplissage et/ou le style de ligne avant d’appeler la méthode drawRoundRect(), à l’aide de la méthode linestyle(), lineGradientStyle(), beginFill(), beginGradientFill() ou beginBitmapFill(). Pour une illustration de l’utilisation de cette méthode, voir l’exemple présenté à la fin de ce cours. lineStyle()lineGradientStyle()beginFill()beginGradientFill()beginBitmapFill()drawRect()drawTriangles Restitue un ensemble de triangles, généralement pour déformer les images bitmap et leur donner un aspect tridimensionnel.verticesVecteur de nombres où chaque paire de nombres est traitée comme un emplacement de coordonnées (paire x, y). Le paramètre vertices est requis. indicesnullVecteur d’entiers ou d’index, où chaque groupe de trois index définit un triangle. Si le paramètre indexes est défini sur null, chaque groupe de trois sommets (six paires de x,y dans le vecteur vertices) définit un triangle. Sinon, chaque index fait référence à un sommet, ou paire de nombres dans le vecteur vertices. Par exemple indexes[1] fait référence à (vertices[2], vertices[3]). Le paramètre indexes est facultatif, mais il permet généralement de réduire le volume des données envoyées et traitées. uvtDatanullVecteur de coordonnées normalisées utilisées pour appliquer un mappage de texture. Chaque coordonnée fait référence à un point sur l’image bitmap utilisée pour le remplissage. Vous devez disposer d’une coordonnée UV ou UVT par sommet. Dans coordonnées UV, (0,0) est le coin supérieur gauche de l’image bitmap et (1,1) le coin inférieur droit.

Si la longueur de ce vecteur est le double de celle du vecteur vertices, les coordonnées normalisées sont utilisées sans correction de perspective.

Si la longueur de ce vecteur est le triple de la longueur du vecteur vertices, la troisième coordonnée est interprétée comme ’t’ (distance séparant l’oeil de la texture dans l’espace visuel). Cela permet au moteur de rendu d’appliquer correctement la perspective lors du mappage des textures en 3D.

Si le paramètre uvtData est null, les règles de remplissage normal (et tous types de remplissage) s’appliquent.

cullingStringnoneIndique si les triangles tournés vers une direction spécifique doivent être restitués. Ce paramètre permet d’éviter de restituer les triangles que la vue en cours ne permet pas de voir. Ce paramètre peut être réglé sur toute valeur définie par la classe TriangleCulling.
Restitue un ensemble de triangles, généralement pour déformer les images bitmap et leur donner un aspect tridimensionnel. La méthode drawTriangles() mappe le remplissage actuel ou un remplissage sur les faces des triangles à l’aide d’un jeu de coordonnées (u,v).

Tous les types de remplissage peuvent être utilisés, mais si le remplissage possède une matrice de transformation, celle-ci est ignorée.

Un paramètre uvtData permet d’améliorer le mappage des textures lorsqu’un remplissage bitmap est utilisé.

flash.display.TriangleCullingflash.display.GraphicsTrianglePath
endFill Applique un remplissage aux lignes et aux courbes ajoutées depuis le dernier appel de la méthode beginFill(), beginGradientFill() ou beginBitmapFill().Applique un remplissage aux lignes et aux courbes. Applique un remplissage aux lignes et aux courbes ajoutées depuis le dernier appel de la méthode beginFill(), beginGradientFill() ou beginBitmapFill(). Flash utilise le remplissage spécifié lors de l’appel précédent de la méthode beginFill(), beginGradientFill() ou beginBitmapFill(). Si la position de dessin actuelle n’est pas égale à la position précédente spécifiée dans une méthode moveTo() et si un remplissage est défini, le tracé est fermé à l’aide d’une ligne, puis rempli. beginFill()beginBitmapFill()beginGradientFill()lineBitmapStyle Spécifie une image bitmap à utiliser pour le trait lors du traçage des lignes.bitmapflash.display:BitmapDataBitmap à utiliser pour le trait. matrixflash.geom:MatrixnullMatrice de transformation optionnelle définie par la classe flash.geom.Matrix. La matrice peut être utilisée pour redimensionner ou manipuler l’image bitmap d’une manière ou d’une autre avant de l’appliquer au style de ligne. repeatBooleantrueIndique si l’image bitmap doit être répétée pour former une mosaïque. smoothBooleanfalseIndique si l’image bitmap doit être lissée. Spécifie une image bitmap à utiliser pour le trait lors du traçage des lignes.

Le style de ligne de l’image bitmap est utilisé pour les prochains appels aux méthodes Graphics, telles que lineTo() ou drawCircle(). Le style de ligne demeure en vigueur jusqu’à ce que vous appeliez les méthodes lineStyle() ou lineGradientStyle(), ou de nouveau la méthode lineBitmapStyle() en spécifiant d’autres paramètres.

Vous pouvez appeler la méthode lineBitmapStyle() au cours du traçage pour spécifier différents styles pour divers segments de ligne dans un tracé.

Appelez la méthode lineStyle() avant d’appeler la méthode lineBitmapStyle() pour activer un trait, sinon la valeur du style de ligne est undefined.

les appels de la méthode clear() redéfinissent le style de trait sur undefined.

lineStyle()lineGradientStyle()flash.geom.Matrix
lineGradientStyle Spécifie le dégradé à utiliser pour le trait lors du tracé des lignes.typeStringValeur de la classe GradientType qui spécifie le type de dégradé à utiliser, GradientType.LINEAR ou GradientType.RADIAL. colorsArrayTableau de valeurs de couleurs RVB hexadécimales à utiliser pour le dégradé (par exemple, rouge correspond à 0xFF0000, bleu à 0x0000FF, etc.). alphasArrayTableau de valeurs alpha pour les couleurs correspondantes du tableau de couleurs ; les valeurs disponibles sont comprises entre 0 et 1. Si la valeur est inférieure à 0, la valeur par défaut est de 0. Si la valeur est supérieure à 1, la valeur par défaut est de 1. ratiosArrayTableau de taux de distribution des couleurs ; les valeurs valides sont comprises entre 0 et 255. Cette valeur définit le pourcentage de la largeur où la couleur est échantillonnée sur 100 %. La valeur 0 représente la position de gauche dans la zone de dégradés, tandis que 255 représente la position de droite. Cette valeur représente les positions de la zone de dégradés, plutôt que l’espace de coordonnées du dégradé final, pouvant être plus large ou plus étroit que la zone de dégradés. Spécifiez une valeur pour chaque valeur dans le paramètre colors.

Par exemple, pour un dégradé linéaire qui comprend deux couleurs, bleu et vert, la figure suivante illustre l’emplacement des couleurs dans le dégradé selon les différentes valeurs du tableau ratios :

ratiosDégradé[0, 127][0, 255][127, 255]

Les valeurs du tableau doivent augmenter de manière séquentielle ; par exemple, [0, 63, 127, 190, 255].

matrixflash.geom:MatrixnullMatrice de transformation définie par la classe flash.geom.Matrix. La classe flash.geom.Matrix inclut une méthode createGradientBox(), qui permet de configurer facilement la matrice en vue de son utilisation avec la méthode lineGradientStyle(). spreadMethodStringpadValeur de la classe SpreadMethod qui spécifie la méthode d’étalement à utiliser :

SpreadMethod.PADSpreadMethod.REFLECTSpreadMethod.REPEAT

interpolationMethodStringrgbValeur de la classe InterpolationMethod qui spécifie la valeur à utiliser. Prenons, par exemple, un dégradé linéaire simple entre deux couleurs (le paramètre spreadMethod étant réglé sur SpreadMethod.REFLECT). Les différentes méthodes d’interpolation influent sur l’aspect de la façon suivante :

InterpolationMethod.LINEAR_RGBInterpolationMethod.RGB

focalPointRatioNumber0Nombre qui contrôle l’emplacement du point focal du dégradé. La valeur 0 signifie que le point focal est au centre. La valeur 1 signifie que le point focal est au bord du cercle du dégradé. La valeur -1 signifie que le point focal est sur l’autre bord du cercle du dégradé. Toute valeur inférieure à -1 ou supérieure à 1 est arrondie à -1 ou 1. L’image suivante affiche un dégradé avec le paramètre focalPointRatio défini sur -0,75 :

Spécifie le dégradé à utiliser pour le trait lors du tracé des lignes.

Le style de ligne dégradée est utilisé pour tous les appels suivants aux méthodes Graphics, telles que les méthodes lineTo() ou drawCircle(). Le style de ligne demeure en vigueur jusqu’à ce que vous appeliez les méthodes lineStyle() ou lineBitmapStyle(), ou de nouveau la méthode lineGradientStyle() en spécifiant d’autres paramètres.

Vous pouvez appeler la méthode lineGradientStyle() au cours du dessin pour spécifier différents styles pour divers segments de ligne dans un tracé.

Appelez la méthode lineStyle() avant d’appeler la méthode lineGradientStyle() pour activer un trait, sinon la valeur du style de ligne est undefined.

les appels de la méthode clear() redéfinissent le style de trait sur undefined.

L’exemple suivant trace un rectangle et un cercle qui utilisent un contour dégradé du rouge au bleu en passant par le vert.

La méthode createGradientBox() de la classe Matrix est utilisée pour définir la zone de dégradé sur une largeur de 200 et une hauteur de 40. L’épaisseur de la ligne est définie sur 5 pixels. L’épaisseur du contour doit être définie pour la méthode lineGradientStyle(). Le dégradé est défini sur linéaire. Les couleurs du dégradé sont définies sur rouge, vert et bleu. La transparence (valeur alpha) des couleurs est définie sur 1 (opaque). La distribution du dégradé est régulière, avec des couleurs allant de 100 % à 0 (à gauche de la zone de dégradé), 128 (centre de la zone) et 255 (à droite de la zone). La largeur du rectangle couvre tout le spectre du dégradé, alors que le cercle en couvre 50 % depuis le centre du spectre.

package { import flash.display.Sprite; import flash.display.Shape; import flash.geom.Matrix; import flash.display.GradientType; public class Graphics_lineGradientStyleExample extends Sprite { public function Graphics_lineGradientStyleExample() { var myShape:Shape = new Shape(); var gradientBoxMatrix:Matrix = new Matrix(); gradientBoxMatrix.createGradientBox(200, 40, 0, 0, 0); myShape.graphics.lineStyle(5); myShape.graphics.lineGradientStyle(GradientType.LINEAR, [0xFF0000, 0x00FF00, 0x0000FF], [1, 1, 1], [0, 128, 255], gradientBoxMatrix); myShape.graphics.drawRect(0, 0, 200, 40); myShape.graphics.drawCircle(100, 120, 50); this.addChild(myShape); } } }
lineStyle()lineBitmapStyle()flash.geom.Matrix.createGradientBox()flash.display.GradientTypeflash.display.SpreadMethod
lineShaderStyle Spécifie un shader à utiliser pour le trait lors du traçage des lignes.shaderflash.display:ShaderShader à utiliser pour le trait. matrixflash.geom:MatrixnullMatrice de transformation optionnelle définie par la classe flash.geom.Matrix. La matrice peut être utilisée pour redimensionner ou manipuler l’image bitmap d’une manière ou d’une autre avant de l’appliquer au style de ligne. Spécifie un shader à utiliser pour le trait lors du traçage des lignes.

Le style de ligne du shader est utilisé pour les prochains appels aux méthodes Graphics, telles que lineTo() ou drawCircle(). Le style de ligne demeure en vigueur jusqu’à ce que vous appeliez les méthodes lineStyle() ou lineGradientStyle(), ou de nouveau la méthode lineBitmapStyle() en spécifiant d’autres paramètres.

Vous pouvez appeler la méthode lineShaderStyle() au cours du tracé afin de spécifier différents styles pour divers segments de ligne dans un tracé.

Appelez la méthode lineStyle() avant d’appeler la méthode lineShaderStyle() pour activer un trait, sinon la valeur du style de ligne est undefined.

les appels de la méthode clear() redéfinissent le style de trait sur undefined.

lineStyle()lineBitmapStyle()flash.geom.Matrix
lineStyle Spécifie le style de ligne utilisé pour les prochains appels aux méthodes Graphics, telles que lineTo() ou drawCircle().thicknessNumberunknownUn entier qui indique l’épaisseur de la ligne en points ; les valeurs disponibles sont comprises entre 0 et 255. Si aucun nombre n’est spécifié, ou si le paramètre n’est pas défini, aucune ligne n’est dessinée. Si une valeur inférieure à 0 est transmise, la valeur par défaut est de 0. 0 correspond à l’épaisseur minimale et 255 à l’épaisseur maximale. Si la valeur transmise est supérieure à 255, la valeur par défaut est de 255. coloruint0Valeur hexadécimale de la couleur de la ligne (par exemple, rouge correspond à 0xFF0000, bleu à 0x0000FF, etc.). Si aucune valeur n’est indiquée, la valeur par défaut correspond à 0x000000 (noir). Facultatif. alphaNumber1.0Un nombre qui indique la valeur alpha de la couleur de la ligne. Les valeurs valides vont de 0 à 1. Si aucune valeur n’est indiquée, la valeur par défaut est de 1 (uni). Si la valeur est inférieure à 0, la valeur par défaut est de 0. Si la valeur est supérieure à 1, la valeur par défaut est de 1. pixelHintingBooleanfalse(Non pris en charge dans Flash Lite 4) Valeur booléenne qui indique si des index supplémentaires de lissage des pixels doivent être ajoutés. Cette valeur affecte à la fois la position des ancres de courbe et la taille du trait. Avec pixelHinting réglé sur true, les largeurs de lignes sont réglées sur des largeurs de pixels entières . Si pixelHinting est défini sur false, les courbes et les lignes droites risquent de ne pas être continues. Les exemples ci-dessous illustrent comment Flash Player ou Adobe AIR effectue le rendu de deux rectangles arrondis identiques à une exception près : le réglage du paramètre pixelHinting utilisé par la méthode lineStyle() (les images sont mises à l’échelle 200 %, pour mettre en évidence la différence) :

Si vous ne spécifiez pas de valeur, la ligne n’utilise pas les index de lissage des pixels.

scaleModeStringnormal(Non pris en charge dans Flash Lite 4) Valeur de la classe LineScaleMode qui spécifie le mode de mise à l’échelle à utiliser :
  • LineScaleMode.NORMAL — Redimensionne toujours l’épaisseur du trait si l’objet est redimensionné (valeur par défaut).
  • LineScaleMode.NONE — Ne redimensionne jamais l’épaisseur du trait.
  • LineScaleMode.VERTICAL — N’ajuste pas l’épaisseur du trait si l’objet est redimensionné verticalement uniquement. Considérons par exemple les cercles illustrés ci-dessous, dessinés dans un trait d’un pixel, et pour lesquels le paramètre scaleMode est défini sur LineScaleMode.VERTICAL. Le cercle de gauche est redimensionné verticalement uniquement, tandis que le cercle de droite est redimensionné à la verticale et à l’horizontale :

  • LineScaleMode.HORIZONTAL — N’ajuste pas l’épaisseur du trait si l’objet est redimensionné horizontalement uniquement. Considérons par exemple les cercles illustrés ci-dessous, dessinés dans un trait d’un pixel, et pour lesquels le paramètre scaleMode est défini sur LineScaleMode.HORIZONTAL. Le cercle de gauche est redimensionné horizontalement uniquement, tandis que le cercle de droite est redimensionné à la verticale et à l’horizontale :

capsStringnull(Non pris en charge dans Flash Lite 4) Valeur de la classe CapsStyle qui spécifie le type d’extrémité au bout des lignes. Les valeurs possibles sont les suivantes : CapsStyle.NONE, CapsStyle.ROUND et CapsStyle.SQUARE. En l’absence de valeur, Flash utilise des extrémités rondes.

Par exemple, l’illustration suivante présente les différents réglages capsStyle. Pour chaque paramètre, l’illustration présente une ligne bleue dont l’épaisseur est de 30 (pour laquelle capsStyle s’applique), et une ligne noire superposée dont l’épaisseur est de 1 (pour laquelle aucun capsStyle ne s’applique) :

jointsStringnull(Non pris en charge dans Flash Lite 4) Valeur de la classe JointStyle qui spécifie le type d’apparence de liaison utilisé dans les angles. Les valeurs possibles sont les suivantes : JointStyle.BEVEL, JointStyle.MITER et JointStyle.ROUND. En l’absence de valeurs, Flash utilise des liaisons rondes.

Par exemple, l’illustration suivante présente les différents réglages joints. Pour chaque paramètre, l’illustration présente une ligne bleue en angle dont l’épaisseur est de 30 (pour laquelle jointStyle s’applique), et une ligne noire en angle superposée dont l’épaisseur est de 1 (pour laquelle aucun jointStyle ne s’applique) :

Remarque : pour les paramètres joints définis sur JointStyle.MITER, vous pouvez utiliser le paramètre miterLimit pour limiter la longueur de la pointe.

miterLimitNumber3(Non pris en charge dans Flash Lite 4) Nombre qui indique la limite à laquelle une pointe est coupée. Les valeurs disponibles sont comprises entre 1 et 255 (et les valeurs qui excèdent cette plage sont arrondies à 1 ou 255). Cette valeur n’est utilisée que si jointStyle est défini sur "miter". La valeur miterLimit représente la longueur maximale d’une pointe au-delà du point où les lignes se rencontrent pour former une liaison. La valeur exprime un facteur du paramètre thickness de la ligne. Par exemple, avec un facteur miterLimit de 2,5 et une valeur de thickness de 10 pixels, la pointe est coupée à 25 pixels.

Par exemple, les lignes d’angle suivantes dessinent un objet avec un paramètre thickness d’une valeur de 20, mais un paramètre miterLimit défini sur 1, 2 et 4. Les lignes de référence noires sont surimposées et indiquent les points de rencontre des pointes :

Notez qu’une valeur miterLimit donnée possède un angle maximal spécifique pour lequel la pointe est coupée. Vous trouverez quelques exemples dans le tableau suivant :

Valeur miterLimit :Les angles inférieurs aux valeurs indiquées sont coupés :1.41490 degrés260 degrés430 degrés815 degrés
Spécifie le style de trait utilisé par Flash pour tracer des lignes.
Spécifie le style de ligne utilisé pour les prochains appels aux méthodes Graphics, telles que lineTo() ou drawCircle(). Le style de trait demeure en vigueur jusqu’à l’appel de la méthode lineGradientStyle(), lineBitmapStyle() ou lineStyle() en spécifiant d’autres paramètres.

Vous pouvez appeler la méthode lineStyle() au cours du traçage afin de spécifier des styles différents pour les divers segments de ligne dans le tracé.

Remarque : les appels de la méthode clear() redéfinissent le style de trait sur undefined.

Remarque : Flash Lite 4 prend en charge uniquement les trois premiers paramètres (thickness, color et alpha).

Consultez l’exemple de la méthode lineTo() ou moveTo() pour voir des illustrations de l’utilisation de la méthode getStyle().
lineBitmapStyle()lineGradientStyle()LineScaleModeCapsStyleJointStyle
lineTo Trace une ligne en utilisant le style de trait actuel à partir de la position de dessin actuelle jusqu’à (x, y) ; la position de dessin actuelle est ensuite définie sur (x, y).xNumberNombre indiquant la position horizontale par rapport au point d’alignement de l’objet d’affichage parent (en pixels). yNumberNombre indiquant la position verticale par rapport au point d’alignement de l’objet d’affichage parent (en pixels). Dessine une ligne de la position de dessin actuelle vers (x, y). Trace une ligne en utilisant le style de trait actuel à partir de la position de dessin actuelle jusqu’à (x, y) ; la position de dessin actuelle est ensuite réglée sur (x, y). Si l’objet d’affichage dans lequel vous effectuez le traçage possède un contenu créé à l’aide des outils de dessin Flash, les appels de la méthode lineTo() sont tracés sous le contenu. Si vous appelez lineTo() avant d’appeler la méthode moveTo(), la position de dessin par défaut prend la valeur (0, 0). Si l’un des paramètres n’est pas spécifié, cette méthode échoue et la position de dessin actuelle n’est pas modifiée. L’exemple suivant trace un trapèze via la méthode lineTo(), en commençant aux pixels (100, 100).

L’épaisseur des lignes est définie sur 10 pixels, la couleur est dorée et opaque, les extrémités des lignes sont définies sur aucun (car toutes les lignes se rejoignent) et la jonction entre les lignes est définie sur MITER avec une limite de pointe définie sur 10, pour obtenir des angles pointus.

package { import flash.display.Sprite; import flash.display.LineScaleMode; import flash.display.CapsStyle; import flash.display.JointStyle; import flash.display.Shape; public class Graphics_lineToExample extends Sprite { public function Graphics_lineToExample() { var trapezoid:Shape = new Shape(); trapezoid.graphics.lineStyle(10, 0xFFD700, 1, false, LineScaleMode.VERTICAL, CapsStyle.NONE, JointStyle.MITER, 10); trapezoid.graphics.moveTo(100, 100); trapezoid.graphics.lineTo(120, 50); trapezoid.graphics.lineTo(200, 50); trapezoid.graphics.lineTo(220, 100); trapezoid.graphics.lineTo(100, 100); this.addChild(trapezoid); } } }
moveTo Déplace la position de dessin actuelle vers (x, y).xNumberNombre indiquant la position horizontale par rapport au point d’alignement de l’objet d’affichage parent (en pixels). yNumberNombre indiquant la position verticale par rapport au point d’alignement de l’objet d’affichage parent (en pixels). Déplace la position de dessin actuelle vers (x, y). Déplace la position de dessin actuelle vers (x, y). Si l’un des paramètres n’est pas spécifié, cette méthode échoue et la position de dessin actuelle n’est pas modifiée. L’exemple suivant trace une ligne pointillée de trois pixels d’épaisseur à l’aide des méthodes moveTo() et lineTo().

Via la méthode lineStyle(), l’épaisseur de la ligne est définie sur 3 pixels. Elle est également définie pour ne pas changer d’échelle. La couleur est définie sur le rouge avec 25 pour cent d’opacité. La propriété CapsStyle est définie sur carré (le rond est défini par défaut).

Graphics_moveToExample étant une occurrence de la classe Sprite, elle a accès à toutes les méthodes de la classe Graphics. Les méthodes de la classe Graphics ne peuvent pas être utilisées pour dessiner directement sur l’objet Sprite Graphic_moveToExample. Toutefois, le fait de ne pas placer l’objet de traçage du vecteur dans une forme limite les possibilités de gestion, de déplacement et de modification.

package { import flash.display.Sprite; import flash.display.CapsStyle; import flash.display.LineScaleMode; public class Graphics_moveToExample extends Sprite { public function Graphics_moveToExample() { graphics.lineStyle(3, 0x990000, 0.25, false, LineScaleMode.NONE, CapsStyle.SQUARE); graphics.moveTo(10, 20); graphics.lineTo(20, 20); graphics.moveTo(30, 20); graphics.lineTo(50, 20); graphics.moveTo(60, 20); graphics.lineTo(80, 20); graphics.moveTo(90, 20); graphics.lineTo(110, 20); graphics.moveTo(120, 20); graphics.lineTo(130, 20); } } }
NativeWindowType La classe NativeWindowType définit des constantes pour la propriété type de l’objet NativeWindowInitOptions utilisée pour créer une fenêtre native.Définit des constantes pour les types de fenêtre pris en charge. Object La classe NativeWindowType définit des constantes pour la propriété type de l’objet NativeWindowInitOptions utilisée pour créer une fenêtre native.

Remarque : la valeur type est spécifiée lorsqu’une fenêtre est créée et ne peut pas être modifiée.

flash.display.NativeWindowflash.display.NativeWindowInitOptionsLIGHTWEIGHT Une fenêtre légère.lightweightString Une fenêtre légère. NORMAL Une fenêtre classique.normalString Une fenêtre classique. UTILITY Une fenêtre d’utilitaire.utilityString Une fenêtre d’utilitaire.
StageAspectRatio La classe StageAspectRatio fournit les valeurs à la méthode Stage.setAspectRatio().Object La classe StageAspectRatio fournit des valeurs à la méthode scène.setAspectRatio(). flash.display.Stage.setAspectRatio()LANDSCAPE Spécifie une orientation de périphérique qui présente une interface utilisateur en mode paysage landscapeString Spécifie une orientation de périphérique qui présente une interface utilisateur en mode paysage PORTRAIT Spécifie une orientation de périphérique qui présente une interface utilisateur en mode portrait portraitString Spécifie une orientation de périphérique qui présente une interface utilisateur en mode portrait Screen La classe Screen fournit des informations sur les écrans d’affichage disponibles pour cette application.flash.events:EventDispatcher La classe Screen fournit des informations sur les écrans d’affichage disponibles pour cette application.

Les écrans sont des zones de bureau indépendantes au sein d’un « bureau virtuel » si possible plus grand. L’origine du bureau virtuel est l’angle supérieur gauche de l’écran principal conçu par le système d’exploitation. Par conséquent, les coordonnées pour les limites d’un écran d’affichage individuel peuvent être négatives. Il peut également y avoir des zones du bureau virtuel situées en dehors des écrans d’affichage.

La classe Screen comprend des membres de classe statiques permettant d’accéder aux objets screen disponibles et des membres d’occurrence permettant d’accéder aux propriétés d’un écran individuel. Les informations d’écran ne doivent pas être mises en mémoire cache car un utilisateur peut les modifier à tout moment.

Il n’existe pas forcément de correspondance univoque entre des écrans et les moniteurs physiques raccordés à un ordinateur. Par exemple, deux moniteurs peuvent afficher le même écran.

Il est impossible d’instancier directement la classe Screen. Les appels au constructeur new Screen() renvoient une exception ArgumentError.

L’exemple suivant définit une classe DockingWindow pour créer une fenêtre qui se fixe sur les côtés de l’écran. Pour ce faire, procédez comme suit :
  1. En répondant aux événements de clavier pour déterminer sur quel côté de l’écran fixer la fenêtre.
  2. En accédant à la méthode de la classe Screen statique getScreensForRectangle() pour obtenir l’objet Screen pour l’écran sur lequel la fenêtre est actuellement affichée.
  3. En redéfinissant les limites de la fenêtre selon les dimensions de l’écran.
  4. En retraçant le contenu de la fenêtre en fonction des nouvelles dimensions de la fenêtre.

Cette classe ne doit pas être utilisée comme classe racine d’une application AIR avec les paramètres SystemChrome="none" et transparent="true". Pour utiliser cette classe dans une fenêtre avec chrome système, vous devez tenir compte de l’épaisseur du chrome et de la largeur minimale de la fenêtre lorsque vous calculez l’emplacement et la taille de cette dernière.

package { import flash.display.Screen; import flash.display.Sprite; import flash.display.StageAlign; import flash.display.StageScaleMode; import flash.events.KeyboardEvent; import flash.geom.Rectangle; import flash.ui.Keyboard; public class DockingWindow extends Sprite { private const dockedWidth:uint = 80; private const dockedHeight:uint = 80; public function DockingWindow():void{ stage.align = StageAlign.TOP_LEFT; stage.scaleMode = StageScaleMode.NO_SCALE; stage.addEventListener(KeyboardEvent.KEY_DOWN,onKey); dockLeft(); } private function onKey(event:KeyboardEvent):void{ switch(event.keyCode){ case Keyboard.LEFT : dockLeft(); break; case Keyboard.RIGHT : dockRight(); break; case Keyboard.UP : dockTop(); break; case Keyboard.DOWN : dockBottom(); break; case Keyboard.SPACE : stage.nativeWindow.close(); } } public function dockLeft():void{ var screen:Screen = getCurrentScreen(); stage.nativeWindow.x = screen.visibleBounds.left; stage.nativeWindow.y = screen.visibleBounds.top; stage.nativeWindow.height = screen.visibleBounds.height; stage.stageWidth = dockedWidth; drawContent(); } public function dockRight():void{ var screen:Screen = getCurrentScreen(); stage.nativeWindow.x = screen.visibleBounds.width - dockedWidth; stage.nativeWindow.y = screen.visibleBounds.top; stage.stageWidth = dockedWidth; stage.nativeWindow.height = screen.visibleBounds.height; drawContent(); } public function dockTop():void{ var screen:Screen = getCurrentScreen(); stage.nativeWindow.x = screen.visibleBounds.left; stage.nativeWindow.y = screen.visibleBounds.top; stage.nativeWindow.width = screen.visibleBounds.width; stage.stageHeight = dockedHeight; drawContent(); } public function dockBottom():void{ var screen:Screen = getCurrentScreen(); stage.nativeWindow.x = screen.visibleBounds.left; stage.nativeWindow.y = screen.visibleBounds.height - dockedHeight; stage.nativeWindow.width = screen.visibleBounds.width; stage.stageHeight = dockedHeight; drawContent(); } private function getCurrentScreen():Screen{ return Screen.getScreensForRectangle(stage.nativeWindow.bounds)[0]; } private function drawContent():void{ const size:int = 60; const pad:int = 10; var numHSquares:int = Math.floor(stage.stageWidth/(size + pad)); var numVSquares:int = Math.floor(stage.stageHeight/(size + pad)); with (graphics){ clear(); lineStyle(1); beginFill(0x3462d5,.7); for(var i:int = 0; i < numHSquares; i++){ for(var j:int = 0; j < numVSquares; j++){ drawRect((i * (size + pad)) + pad, (j * (size + pad)) + pad, size, size); } } endFill(); } } } }
getScreensForRectangle Renvoie l’ensemble (éventuellement vide) d’écrans qui croisent le rectangle fourni.Tableau d’objets Screen qui contient les écrans comportant une partie de la zone définie par le paramètre rect. Arrayrectflash.geom:RectangleRectangle avec des coordonnées par rapport à l’origine du bureau virtuel, c’est-à-dire l’angle supérieur gauche de l’écran principal. Renvoie l’ensemble (éventuellement vide) d’écrans qui croisent le rectangle fourni. L’exemple suivant indique comment obtenir le tableau d’écrans contenant au moins une partie d’un rectangle donné : import flash.display.Screen; import flash.geom.Rectangle; var rect:Rectangle = new Rectangle(-200, 100, 1000, 600); var intersectedScreens:Array = Screen.getScreensForRectangle(rect); bounds Limites de cet écran.flash.geom:Rectangle Limites de cet écran.

L’emplacement de l’écran est relatif au bureau virtuel.

Sur les systèmes Linux qui utilisent certains gestionnaires de fenêtres, cette propriété renvoie les limites du bureau et non les limites visibles de l’écran.

L’exemple suivant indique comment obtenir les limites d’un écran (dans ce cas, l’écran d’affichage principal) : import flash.display.Screen; import flash.geom.Rectangle; var mainScreen:Screen = Screen.mainScreen; var screenBounds:Rectangle = mainScreen.bounds;
colorDepth Profondeur des couleurs de cet écran (en nombre de bits).int Profondeur des couleurs de cet écran (en nombre de bits). L’exemple suivant indique comment obtenir la profondeur des couleurs d’un écran (dans ce cas, l’écran d’affichage principal) : var mainScreen:Screen = Screen.mainScreen; var colors:uint = mainScreen.colorDepth; mainScreen L’écran principal.flash.display:Screen L’écran principal. L’exemple suivant indique comment obtenir l’objet Screen représentant l’écran « principal » de cet ordinateur : var primaryScreen:Screen = Screen.mainScreen; screens Tableau des écrans actuellement disponibles.Array Tableau des écrans actuellement disponibles.

La modification du tableau renvoyé n’a aucune incidence sur les écrans disponibles.

L’exemple suivant indique comment obtenir le tableau contenant les écrans disponibles : var screenArray:Array = Screen.screens;
visibleBounds Limites de la zone de cet écran dans lesquelles les fenêtres peuvent être visibles.flash.geom:Rectangle Limites de la zone de cet écran dans lesquelles les fenêtres peuvent être visibles.

La propriété visibleBounds d’un écran exclut la barre des tâches (et autres barres fixes du bureau) sous Windows, et sous Mac OS X, la barre de menu ainsi que le Dock selon les paramètres système. Certaines configurations sous Linux ne permettent pas de déterminer les limites visibles. Dans ce cas, la propriété visibleBounds renvoie les mêmes valeurs que la propriété screenBounds.

L’exemple suivant indique comment obtenir les limites utilisables d’un écran (dans ce cas, l’écran d’affichage principal) : import flash.display.Screen; import flash.geom.Rectangle; var mainScreen:Screen = Screen.mainScreen; var screenBounds:Rectangle = mainScreen.visibleBounds;
NativeWindowDisplayState La classe NativeWindowDisplayState définit des constantes pour les noms des états d’affichage de la fenêtre.Object La classe NativeWindowDisplayState définit des constantes pour les noms des états d’affichage de la fenêtre.

Remarque : les modes plein écran sont définis à l’aide de la propriété displayState de l’objet Stage et non via la propriété displaySate de la fenêtre.

flash.display.Stage.displayStateflash.display.StageDisplayStateMAXIMIZED L’état d’affichage agrandi.maximizedString L’état d’affichage agrandi. MINIMIZED L’état d’affichage réduit.minimizedString L’état d’affichage réduit. NORMAL L’état d’affichage normal.normalString L’état d’affichage normal.
Bitmap La classe Bitmap représente les objets d’affichage qui représentent les images bitmap.Représente les objets d’affichage dérivés des images. flash.display:DisplayObject La classe Bitmap représente les objets d’affichage qui représentent les images bitmap. Ces images peuvent être chargées avec la classe flash.display.Loader ou créées à l’aide du constructeur Bitmap().

Le constructeur Bitmap() vous permet de créer un objet Bitmap contenant une référence à un objet BitmapData. Après avoir créé un objet Bitmap, utilisez la méthode addChild() ou addChildAt() de l’occurrence parent de DisplayObjectContainer pour placer cet objet dans la liste d’affichage.

Un objet Bitmap peut partager ses références BitmapData entre plusieurs objets Bitmap, indépendamment des propriétés de translation ou de rotation. La création de plusieurs objets Bitmap référençant un même objet BitmapData étant possible, plusieurs objets d’affichage peuvent utiliser le même objet BitmapData complexe sans faire appel aux ressources supplémentaires de mémoire requises par un objet BitmapData pour chaque occurrence d’objet d’affichage.

Un objet BitmapData peut être dessiné à l’écran par un objet Bitmap de deux façons : avec le rendu vectoriel en tant que forme de remplissage de bitmap, ou en exécutant une routine de copie de pixels plus rapide. La routine de copie de pixels est nettement plus rapide que la fonctionnalité de rendu vectoriel, mais l’objet Bitmap doit satisfaire à certaines exigences pour y faire appel :

  • L’objet Bitmap ne peut pas subir d’étirement, de rotation ou d’inclinaison.
  • L’objet Bitmap ne peut pas subir de transformation des couleurs.
  • Aucun mode de fondu ne peut être appliqué à l’objet Bitmap.
  • Aucun découpage n’est effectué par le biais de calques de masque ou de méthodes setMask().
  • L’image en tant que telle ne doit pas être un masque.
  • Les coordonnées de destination ne doivent pas correspondre à la limite d’un pixel entier.

Si vous chargez un objet Bitmap provenant d’un autre domaine que celui de l’objet Loader utilisé pour charger l’image et qu’aucun fichier de régulation d’URL n’autorise l’accès au domaine de l’objet Loader, un script de ce domaine ne peut accéder ni à l’objet Bitmap, ni à ses propriétés et méthodes. Pour plus d’informations, voir la rubrique du Pôle de développement Flash Player : Sécurité (disponible en anglais uniquement).

Remarque : la classe Bitmap n’étant pas une sous-classe de la classe InteractiveObject, elle ne peut pas distribuer d’événement de souris. Vous pouvez cependant utiliser la méthode addEventListener() du conteneur d’objet d’affichage qui contient l’objet Bitmap.

L’exemple suivant utilise la classe BitmapDataExample pour charger le fichier « Image.gif » dans DisplayObject à l’emplacement par défaut (x = 0, y = 0). Une copie d’Image.gif est ensuite placée à droite de l’original, qui applique de nouvelles couleurs aux pixels qui répondent aux critères définis par la méthode threshold(). Cette tâche s’accomplit de la façon suivante :
  1. Une propriété url est créée pour désigner l’emplacement et le nom du fichier d’image.
  2. Le constructeur de classe appelle la méthode configureAssets(), qui en retour appelle la méthode completeHandler().
  3. configureAssets() crée un objet Loader, qui crée à son tour un écouteur d’événements, qui est transmis lorsque completeHandler() termine la manipulation de l’image.
  4. Ensuite, la méthode buildChild() crée une occurrence d’objet URLRequest, request, et transmet le paramètre url de façon à identifier le nom de fichier et son emplacement.
  5. L’objet request est ensuite transmis à la méthode loader.load(), qui charge l’image en mémoire à l’aide d’un objet d’affichage.
  6. L’image est ensuite placée dans la liste d’affichage, qui affiche rapidement l’image aux coordonnées x = 0, y = 0.
  7. La méthode completeHandler() effectue ensuite les opérations suivantes :
    1. Crée un deuxième objet Loader, ainsi qu’un objet Bitmap, qui est initialisé avec l’objet Loader.
    2. Crée un deuxième objet Bitmap, duplicate, qui appelle en retour la méthode duplicateImage(), qui crée elle-même un double de l’image d’origine.
    3. Crée un objet BitmapData qui est associé à l’objet BitmapData de l’objet duplicate.
    4. Crée un objet Rectangle qui est initialisé avec les mêmes coordonnées, la même largeur et hauteur, que l’image d’origine.
    5. Crée un objet Point, qui emploie par défaut les coordonnées x = 0, y = 0.
    6. Crée les variables suivantes :
      • operation : applique la nouvelle couleur lorsque la valeur de seuil est >= à l’original.
      • threshold : la valeur de comparaison des pixels est définie sur gris clair, avec un alpha de 0xCC.
      • color : la couleur des pixels qui répondent aux critères imposés, soit jaune uni dans ce cas.
      • mask : le contraire exact de la couleur (bleu transparent).
      • copySource : défini sur false, indique que les valeurs des pixels ne sont pas copiées dans l’événement si la valeur de seuil n’est pas acceptable. Cette valeur n’a aucune signification, car l’image est dupliquée et seuls les pixels qui répondent aux critères de seuil sont modifiés.
    7. Appelle la méthode threshold() à l’aide des variables précédentes. L’équation de seuil qui en résulte figure ci-dessous : if (current pixel Value & 0x000000FF) >= (0xCCCCCCCC & 0x000000FF) then set pixel to 0xFFFFFF00.

Remarques :

  • vous devrez compiler le fichier SWF en réglant « Sécurité de lecture locale » sur « Accès aux fichiers locaux uniquement ».
  • Pour exécuter cet exemple, il est nécessaire de placer un fichier intitulé Image.txt dans le même répertoire que votre fichier SWF.
  • Il est recommandé d’utiliser une image qui ne dépasse pas 80 pixels de largeur.

package { import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.Loader; import flash.display.Sprite; import flash.events.*; import flash.geom.Point; import flash.geom.Rectangle; import flash.net.URLRequest; public class BitmapExample extends Sprite { private var url:String = "Image.gif"; private var size:uint = 80; public function BitmapExample() { configureAssets(); } private function configureAssets():void { var loader:Loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler); loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); var request:URLRequest = new URLRequest(url); loader.x = size * numChildren; loader.load(request); addChild(loader); } private function duplicateImage(original:Bitmap):Bitmap { var image:Bitmap = new Bitmap(original.bitmapData.clone()); image.x = size * numChildren; addChild(image); return image; } private function completeHandler(event:Event):void { var loader:Loader = Loader(event.target.loader); var image:Bitmap = Bitmap(loader.content); var duplicate:Bitmap = duplicateImage(image); var bitmapData:BitmapData = duplicate.bitmapData; var sourceRect:Rectangle = new Rectangle(0, 0, bitmapData.width, bitmapData.height); var destPoint:Point = new Point(); var operation:String = ">="; var threshold:uint = 0xCCCCCCCC; var color:uint = 0xFFFFFF00; var mask:uint = 0x000000FF; var copySource:Boolean = true; bitmapData.threshold(bitmapData, sourceRect, destPoint, operation, threshold, color, mask, copySource); } private function ioErrorHandler(event:IOErrorEvent):void { trace("Unable to load image: " + url); } } }
flash.display.Loaderflash.display.BitmapDataBitmap Initialise un objet Bitmap pour qu’il fasse référence à l’objet BitmapData spécifié.bitmapDataflash.display:BitmapDatanullObjet BitmapData référencé. pixelSnappingStringautoIndique si l’objet Bitmap est accroché ou non au pixel le plus proche. smoothingBooleanfalseIndique si l’image bitmap est lissée lorsqu’elle est dimensionnée. Les exemples ci-dessous illustrent la même image bitmap multipliée par trois, smoothing étant réglé sur false (gauche) et true (droite) :

Initialise un objet Bitmap pour qu’il fasse référence à l’objet BitmapData spécifié. L’exemple suivant explique comment charger de façon dynamique une image à l’exécution à l’aide de la classe Loader d’ActionScript 3.0, puis comment copier les pixels de l’image dans quatre occurrences distinctes de l’objet Bitmap de la liste d’affichage à l’aide des propriétés content et bitmapData de l’occurrence de Loader. Exemple fourni par ActionScriptExamples.com. const IMAGE_URL:String = "http://www.helpexamples.com/flash/images/logo.png"; var ldr:Loader = new Loader(); ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, ldr_complete); ldr.load(new URLRequest(IMAGE_URL)); var bitmap1:Bitmap; var bitmap2:Bitmap; var bitmap3:Bitmap; var bitmap4:Bitmap; function ldr_complete(evt:Event):void { var bmp:Bitmap = ldr.content as Bitmap; bitmap1 = new Bitmap(bmp.bitmapData); bitmap1.x = 100; bitmap1.y = 100; bitmap1.rotation = 0; addChild(bitmap1); bitmap2 = new Bitmap(bmp.bitmapData); bitmap2.x = 200; bitmap2.y = 100; bitmap2.rotation = 90; addChild(bitmap2); bitmap3 = new Bitmap(bmp.bitmapData); bitmap3.x = 300; bitmap3.y = 100; bitmap3.rotation = 180; addChild(bitmap3); bitmap4 = new Bitmap(bmp.bitmapData); bitmap4.x = 400; bitmap4.y = 100; bitmap4.rotation = 270; addChild(bitmap4); }
bitmapData Objet BitmapData référencé.flash.display:BitmapData Objet BitmapData référencé. pixelSnapping Contrôle si l’objet Bitmap est accroché ou non au pixel le plus proche.String Contrôle si l’objet Bitmap est accroché ou non au pixel le plus proche. La classe PixelSnapping inclut les valeurs possibles :
  • PixelSnapping.NEVER — L’accrochage au pixel est désactivé.
  • PixelSnapping.ALWAYS — L’image est toujours accrochée au pixel le plus proche, quelle que soit la transformation appliquée.
  • PixelSnapping.AUTO — L’image bitmap est accrochée au pixel le plus proche si elle est dessinée sans rotation ni inclinaison et que son facteur de redimensionnement est compris entre 99,9 % et 100,1 %. Si ces conditions sont remplies, l’image bitmap est dessinée à l’échelle 100 % et accrochée au pixel le plus proche. En interne, cette valeur permet de dessiner l’image aussi rapidement que possible à l’aide de la fonctionnalité de rendu vectoriel.
smoothing Contrôle si l’image bitmap est lissée lorsqu’elle est dimensionnée.Boolean Contrôle si l’image bitmap est lissée lorsqu’elle est dimensionnée. Si le paramètre est défini sur true, l’image bitmap est lissée. S’il est défini sur false, l’image bitmap n’est pas lissée.
Scene La classe Scene contient des propriétés destinées à identifier le nom, les étiquettes et le nombre d’images d’une séquence.Object La classe Scene contient des propriétés destinées à identifier le nom, les étiquettes et le nombre d’images d’une séquence. L’occurrence d’un objet Scene est créée dans Flash Professional et non pas à l’aide du code ActionScript. La classe MovieClip comporte une propriété currentScene, soit un objet Scene qui identifie la séquence où réside la tête de lecture dans le scénario de l’occurrence de MovieClip. La propriété scenes de la classe MovieClip est un tableau des objets Scene. Les méthodes gotoAndPlay() et gotoAndStop() de la classe MovieClip utilisent les objets Scene en tant que paramètres. MovieClip.currentSceneMovieClip.scenesMovieClip.gotoAndPlay()MovieClip.gotoAndStop()labels Tableau des objets FrameLabel associés à la séquence.Array Tableau des objets FrameLabel associés à la séquence. Chaque objet FrameLabel contient une propriété frame, qui spécifie le numéro d’image qui correspond à l’étiquette, ainsi que la propriété name. FrameLabelname Nom de la séquence.String Nom de la séquence. numFrames Nombre d’images de la séquence.int Nombre d’images de la séquence. StageDisplayState La classe StageDisplayState fournit des valeurs pour la propriété Stage.displayState.Object La classe StageDisplayState fournit des valeurs pour la propriété Stage.displayState. flash.display.Stage.displayStateFULL_SCREEN_INTERACTIVE Indique que la scène est en mode plein écran avec l’interaction clavier activée.fullScreenInteractiveString Indique que la scène est en mode plein écran avec l’interaction clavier activée. Seules les applications AIR prennent en charge cette fonctionnalité. FULL_SCREEN Spécifie que la scène est en mode plein écran.fullScreenString Spécifie que la scène est en mode plein écran. L’interactivité du clavier est désactivée dans ce mode. NORMAL Spécifie que la scène est en mode normal.normalString Spécifie que la scène est en mode normal. ShaderData Un objet ShaderData contient les propriétés représentant tous les paramètres et entrées d’un noyau de shader, ainsi que les propriétés contenant toutes les métadonnées spécifiées pour le shader.Object Un objet ShaderData contient les propriétés représentant tous les paramètres et entrées d’un noyau de shader, ainsi que les propriétés contenant toutes les métadonnées spécifiées pour le shader.

Ces propriétés sont ajoutées à l’objet ShaderData lors de sa création. Le nom des propriétés correspond au nom spécifié dans le code source du shader. Le type de données de chaque propriété dépend de l’aspect du shader représenté par la propriété. Les propriétés qui représentent les paramètres du shader sont des occurrences ShaderParameter, celles qui représentent des images d’entrée sont des occurrences ShaderInput et celles qui représentent les métadonnées du shader sont des occurrences de la classe ActionScript correspondant à leur type de données (par exemple, une occurrence String pour les métadonnées textuelles et une occurrences uint pour les métadonnées uint).

Examinons par exemple le shader suivant, défini avec une image d’entrée (src), deux paramètres (size et radius) et trois valeurs de métadonnées (nameSpace, version et description) :

<languageVersion : 1.0;> kernel DoNothing < namespace: "Adobe::Example"; vendor: "Adobe examples"; version: 1; description: "A shader that does nothing, but does it well."; > { input image4 src; output pixel4 dst; parameter float2 size < description: "The size of the image to which the kernel is applied"; minValue: float2(0.0, 0.0); maxValue: float2(100.0, 100.0); defaultValue: float2(50.0, 50.0); >; parameter float radius < description: "The radius of the effect"; minValue: 0.0; maxValue: 50.0; defaultValue: 25.0; >; void evaluatePixel() { float2 one = (radius / radius) ∗ (size / size); dst = sampleNearest(src, outCoord()); } }

Si vous créez une occurrence de Shader en chargeant le code binaire pour ce shader, l’occurrence ShaderData de sa propriété data contient les propriétés suivantes :

PropriétéType de donnéesValeurnameString"DoNothing"nameSpaceString"Adobe::Example"versionString"1"descriptionString"A shader that does nothing, but does it well."srcShaderInput[Occurrence de ShaderInput]sizeShaderParameter[Occurrence de ShaderParameter, avec les propriétés des métadonnées du paramètre]radiusShaderParameter[Occurrence de ShaderParameter, avec les propriétés des métadonnées du paramètre]

Notez que toute image d’entrée ou tout paramètre défini dans le code source du shader qui n’est pas utilisé dans la fonction evaluatePixel() du shader est supprimé lorsque le shader est compilé en pseudo-code binaire. Dans ce cas, aucune occurrence ShaderInput ou ShaderParameter correspondante n’est ajoutée en tant que propriété de l’occurrence ShaderData.

De façon générale, le code du développeur ne crée pas d’occurrence ShaderData. Une occurrence ShaderData contenant des données, des paramètres et des entrées pour un shader est disponible en tant que propriété data de l’occurrence Shader.

L’exemple suivant charge un shader et énumère l’occurrence ShaderData dans sa propriété data pour afficher les propriétés des entrées, des paramètres et des métadonnées du shader.

Notez que cet exemple part du principe qu’un fichier de pseudo-code binaire du shader nommé « donothing.pbj » existe dans le répertoire de sortie de l’application.

// // Source code for the shader: // <languageVersion : 1.0;> kernel DoNothing < namespace: "Adobe::Example"; vendor: "Adobe examples"; version: 1; description: "A shader that does nothing, but does it well."; > { input image4 src; output pixel4 dst; parameter float2 size < description: "The size of the image to which the shader is applied"; minValue: float2(0.0, 0.0); maxValue: float2(100.0, 100.0); defaultValue: float2(50.0, 50.0); >; parameter float radius < description: "The radius of the effect"; minValue: float(0.0); maxValue: float(50.0); defaultValue: float(25.0); >; void evaluatePixel() { float2 one = (radius / radius) * (size / size); dst = sampleNearest(src, outCoord()); } } // // ActionScript source code: // package { import flash.display.Shader; import flash.display.Sprite; import flash.events.Event; import flash.net.URLLoader; import flash.net.URLLoaderDataFormat; import flash.net.URLRequest; public class ShaderDataExample extends Sprite { private var loader:URLLoader; public function ShaderDataExample() { loader = new URLLoader(); loader.dataFormat = URLLoaderDataFormat.BINARY; loader.addEventListener(Event.COMPLETE, loadCompleteHandler); loader.load(new URLRequest("donothing.pbj")); } private function loadCompleteHandler(event:Event):void { var shader:Shader = new Shader(); shader.byteCode = loader.data; for (var p:String in shader.data) { trace(p, ":", shader.data[p]); for (var d:String in shader.data[p]) { trace("\t", d, ":", shader.data[p][d]); } } } } }
flash.display.Shader.dataflash.display.ShaderInputflash.display.ShaderParameterShaderData Crée une occurrence ShaderData.byteCodeflash.utils:ByteArrayPseudo-code binaire du shader. Crée une occurrence ShaderData. En général, le code du développeur n’appelle pas directement le constructeur ShaderData. Une occurrence ShaderData contenant des données, des paramètres et des entrées pour une occurrence Shader est accédée via sa propriété data. flash.display.Shader.data
ShaderJob Une occurrence ShaderJob est utilisée pour exécuter une opération de shader en mode autonome.flash.events:EventDispatcher Une occurrence ShaderJob est utilisée pour exécuter une opération de shader en mode autonome. L’opération de shader s’exécute et renvoie son résultat. Il incombe au développeur de déterminer comment utiliser ce résultat.

Il existe deux raisons principales à l’utilisation d’un shader en mode autonome :

  • Traitement des données non graphiques : l’utilisation d’une occurrence de ShaderJob vous permet de contrôler les valeurs d’entrée, ainsi que la méthode d’utilisation du résultat du shader. Le shader peut renvoyer le résultat sous forme de données binaires ou numériques plutôt que sous forme de données image.
  • Traitement en arrière-plan : certains shaders sont complexes et leur exécution prend un certain temps. L’exécution d’un shader complexe dans la ligne d’exécution principale d’une application peut ralentir les autres parties de l’application, telles que l’interaction de l’utilisateur ou la mise à jour de l’écran. L’utilisation d’une occurrence de ShaderJob vous permet d’exécuter le shader dans l’arrière-plan. Lorsque le shader est exécuté de cette manière, l’opération de shader est indépendante de l’exécution principale de l’application.

La propriété shader (ou paramètre constructeur) spécifie l’occurrence Shader représentant le shader utilisé pour l’opération. Vous fournissez les paramètres ou les entrées attendues par le shader à l’aide de l’occurrence de ShaderParameter ou de ShaderInput associée.

Avant l’exécution d’une opération ShaderJob, vous fournissez un objet dans lequel le résultat est écrit, en le définissant comme la valeur de la propriété target. Une fois l’opération de shader terminée, le résultat est écrit dans l’objet target.

Pour commencer une opération de shader dans l’arrière-plan, appelez la méthode start(). Une fois l’opération terminée, le résultat est écrit dans l’objet target. A ce stade, l’occurrence ShaderJob déclenche un événement complete, qui indique aux écouteurs que le résultat est disponible.

Pour exécuter un shader de façon synchrone (c’est-à-dire qui ne s’exécute pas dans l’arrière-plan), appelez la méthode start(), puis transmettez true en tant qu’argument. Le shader s’exécute dans la thread principale et votre code s’interrompt jusqu’à la fin de l’opération. Lorsque l’opération est terminée, le résultat est écrit dans l’objet target. A ce stade, l’application continue de s’exécuter à la ligne de code suivante.

ShaderShaderInputShaderParameterShaderEventcomplete Distribué lorsqu’un ShaderJob qui s’exécute de façon asynchrone achève de traiter les données à l’aide du shader.flash.events.ShaderEvent.COMPLETEflash.events.ShaderEvent Distribué lorsqu’un ShaderJob qui s’exécute de façon asynchrone achève de traiter les données à l’aide du shader. Une occurrence de ShaderJob s’exécute de façon asynchrone lorsque la méthode start() est appelée et que la valeur du paramètre waitForCompletion est définie sur false. ShaderJob shaderflash.display:ShadernullShader à utiliser pour l’opération. targetObjectnullObjet dans lequel est écrit le résultat de l’opération du shader. Cet argument doit être une occurrence de BitmapData, de ByteArray ou de Vector.<Number>. widthint0Largeur des données du résultat dans l’objet target dans le cas d’une occurrence de ByteArray ou de Vector.<Number>. La taille de l’occurrence de ByteArray ou de Vector.<Number> est élargie au besoin et les données existantes remplacées. heightint0Largeur des données du résultat dans l’objet target dans le cas d’une occurrence de ByteArray ou de Vector.<Number>. La taille de l’occurrence de ByteArray ou de Vector.<Number> est élargie au besoin et les données existantes remplacées. cancel Annule l’opération de shader en cours d’exécution. Annule l’opération de shader en cours d’exécution. Les résultats déjà calculés sont ignorés. L’événement complete n’est pas déclenché.

L’appel répété de cancel() n’a pas d’effet.

start Lance une opération de shader en mode synchrone ou asynchrone selon la valeur du paramètre waitForCompletion.Lorsque la propriété target est définie sur null ou n’est pas une occurrence de BitmapData, de ByteArray ou de Vector.<Number>. ArgumentErrorArgumentErrorLorsque le shader spécifie une entrée d’image non fournie. ArgumentErrorArgumentErrorLorsqu’une occurrence de ByteArray ou de Vector.<Number> est utilisée comme entrée et les propriétés width et height ne sont pas spécifiées pour le ShaderInput, ou les valeurs spécifiées ne correspondent pas à la quantité de données dans l’objet d’entrée. Voir la propriété ShaderInput.input pour plus d’informations. ArgumentErrorArgumentErrorwaitForCompletionBooleanfalseIndique si le shader doit être exécuté dans l’arrière-plan (false, valeur par défaut) ou dans l’exécution du programme principale (true). Lance une opération de shader en mode synchrone ou asynchrone selon la valeur du paramètre waitForCompletion.

En mode asynchrone (lorsque le paramètre waitForCompletion est défini sur false), mode par défaut, l’exécution de ShaderJob a lieu dans l’arrière-plan. L’opération de shader n’a aucune incidence sur la réactivité de l’affichage ou sur d’autres opérations. En mode asynchrone, l’appel de la méthode start() est immédiatement renvoyé et le programme continue avec la ligne de code suivante. Lorsque l’opération de shader asynchrone est terminée, le résultat est disponible et l’événement complete est distribué.

Une seule opération ShaderJob d’arrière-plan peut s’exécuter à la fois. Les opérations de shader restent en file d’attente jusqu’à leur exécution. Si vous appelez la méthode start() lorsqu’une opération de shader est en cours d’exécution, les autres opérations sont ajoutées à la fin de la file d’attente, puis sont exécutées au moment opportun.

Pour exécuter une opération de shader en mode synchrone, appelez la méthode start() et définissez le paramètre waitForCompletion (l’unique paramètre) sur true. Votre code s’interrompt au point où la méthode start() est appelée jusqu’à ce que l’opération de shader se termine. A ce stade, le résultat est disponible et l’exécution se poursuit avec la ligne de code suivante.

Lorsque vous appelez la méthode start(), l’occurrence Shader dans la propriété shader est copiée en interne. L’opération de shader utilise cette copie interne et non une référence du shader d’origine. Toute modification apportée au shader, par exemple la modification de la valeur d’un paramètre, l’entrée ou le pseudo-code binaire, n’est pas appliquée au shader copié utilisé pour le traitement du shader. Pour intégrer les modifications apportées au shader dans le traitement du shader, appelez la méthode cancel() (le cas échéant), puis de nouveau la méthode start() pour redémarrer le traitement du shader.

Lorsqu’une opération de shader est en cours d’exécution, la valeur de l’objet target n’est pas modifiée. Lorsque l’opération se termine (et que l’événement complete est déclenché en mode asynchrone), le résultat complet est écrit en une seule fois dans l’objet target. Si l’objet target est une occurrence de BitmapData et que sa méthode dispose() est appelée avant la fin de l’opération, l’événement complete est tout de même déclenché en mode asynchrone. Toutefois, les données du résultat ne sont pas inscrites dans l’objet BitmapData car celui est en état disposé.

completeflash.events:ShaderEventDistribué lorsque l’opération est terminée, si la méthode start() est appelée avec un argument waitForCompletion dont la valeur est true. Distribué lorsque l’opération est terminée, si la méthode start() est appelée avec un argument waitForCompletion dont la valeur est true.
height Hauteur des données du résultat dans l’objet target dans le cas d’une occurrence de ByteArray ou de Vector.&lt;Number&gt;.int Largeur des données du résultat dans l’objet target dans le cas d’une occurrence de ByteArray ou de Vector.<Number>. La taille de l’occurrence de ByteArray ou de Vector.<Number> est élargie au besoin et les données existantes remplacées. progress Progression d’un shader en cours d’exécution.Number Progression d’un shader en cours d’exécution. Cette propriété est une valeur comprise entre 0 et 1. La valeur initiale est zéro (0 %). 1 indique que le shader a terminé son opération.

Si la méthode cancel() est appelée, cette propriété devient undefined et sa valeur ne peut pas être utilisée de façon fiable jusqu’à ce que l’opération du shader redémarre.

shader Shader utilisé pour l’opération.flash.display:Shader Shader utilisé pour l’opération. Les entrées ou paramètres attendus par le shader doivent être fournis à l’aide de la propriété ShaderInput ou ShaderParameter de la propriété data de l’occurrence Shader. L’entrée doit être fournie par sa propriété ShaderInput correspondante si c’est la même que l’objet target.

Pour traiter un ByteArray contenant un tableau de données linéaire (par opposition aux données image), définissez la propriété height de l’occurrence ShaderInput sur 1 et la propriété width sur les valeurs en virgule flottante 32 bits du ByteArray. Dans ce cas, l’entrée dans le shader doit être définie avec le type de données image1.

flash.display.ShaderDataflash.display.ShaderInputflash.display.ShaderParameter
target Objet dans lequel est écrit le résultat de l’opération du shader. Object Objet dans lequel est écrit le résultat de l’opération du shader. Cet objet doit être une occurrence de BitmapData, de ByteArray ou de Vector.<Number>. width Largeur des données du résultat dans l’objet target dans le cas d’une occurrence de ByteArray ou de Vector.&lt;Number&gt;.int Largeur des données du résultat dans l’objet target dans le cas d’une occurrence de ByteArray ou de Vector.<Number>. La taille de l’occurrence de ByteArray ou de Vector.<Number> est élargie au besoin et les données existantes remplacées.
NativeWindowSystemChrome La classe NativeWindowSystemChrome définit des constantes pour la propriété systemChrome de l’objet NativeWindowInitOptions utilisée pour créer une fenêtre native.Définit des constantes représentant les types de chromes de fenêtre pris en charge. Object La classe NativeWindowSystemChrome définit des constantes pour la propriété systemChrome de l’objet NativeWindowInitOptions utilisée pour créer une fenêtre native.

Le chrome système fait référence aux éléments propres au système d’exploitation d’une fenêtre tels qu’une barre des titres, les boutons Réduire, Agrandir et Fermer.

Remarque : le type de chrome système utilisé est spécifié lorsqu’une fenêtre est créée et ne peut pas être modifié.

flash.display.NativeWindowflash.display.NativeWindowInitOptionsALTERNATE Réservé à un usage ultérieur.alternateString Réservé à un usage ultérieur.

Ne pas utiliser.

NONE Aucun chrome système.noneString Aucun chrome système. STANDARD Chrome standard du système d’exploitation hôte.standardString Chrome standard du système d’exploitation hôte.

Utilisez ce paramètre pour émuler l’apparence du système d’exploitation natif.

IGraphicsStroke Cette interface vous permet de définir des objets pouvant être utilisés comme paramètres de trait dans les méthodes flash.display.Graphics et les classes de dessin. Cette interface vous permet de définir des objets pouvant être utilisés comme paramètres de trait dans les méthodes flash.display.Graphics et les classes de dessin. Utilisez les classes implémenteur de cette interface pour créer et gérer les données de la propriété stroke et pour réutiliser les mêmes données pour plusieurs occurrences. flash.display.Graphics.drawGraphicsData()SimpleButton La classe SimpleButton vous permet de contrôler toutes les occurrences de symboles de bouton dans un fichier SWF.La classe SimpleButton vous permet de contrôler toutes les occurrences de symboles de bouton dans un fichier SWF. flash.display:InteractiveObject La classe SimpleButton vous permet de contrôler toutes les occurrences de symboles de bouton dans un fichier SWF.

Dans Flash Professional, vous pouvez attribuer à un bouton un nom d’occurrence dans l’inspecteur des propriétés. Les noms d’occurrence de SimpleButton s’affichent dans l’explorateur d’animations et dans la boîte de dialogue Insérer un chemin cible du panneau Actions. Après avoir créé une occurrence de bouton dans Flash Professional, vous pouvez utiliser les méthodes et les propriétés de la classe SimpleButton pour manipuler les boutons avec ActionScript.

Dans ActionScript 3.0, vous devez utiliser le constructeur new SimpleButton() pour créer une occurrence de SimpleButton.

La classe SimpleButton hérite de la classe InteractiveObject.

L’exemple suivant a recours à la classe SimpleButtonExample, qui en retour utilise la classe CustomSimpleButton, qui crée quatre occurrences d’un objet ButtonDisplayState. Le résultat est un bouton qui est créé sous forme de carré, dont la couleur d’arrière-plan change en fonction de l’état de la souris en contournant les propriétés d’occurrence de la classe SimpleButton. Pour ce faire, procédez comme suit :
  1. Dans le constructeur SimpleButtonExample(), un nouvel objet CustomSimpleButton de type SimpleButton, appelé button, est créé, qui appelle ensuite la méthode de constructeur CustomSimpleButton. L’objet button est ajouté à la liste d’affichage. La couleur et la taille du bouton sont déterminées par les étapes suivantes.
  2. Dans la classe CustomSimpleButton, les propriétés d’occurrence sont déclarées, puis utilisées pour contrôler la taille et la couleur d’arrière-plan de button en fonction de son état (orange dans son état normal, jaune sombre en cas de survol de la souris et bleu clair lorsque l’utilisateur clique sur l’un des boutons). Quel que soit l’état de button, la taille du carré est définie sur 80 pixels en utilisant la propriété size.
  3. La fonction constructeur de la classe CustomSimpleButton définit les propriétés downState, overState, upState, hitTestState et useHandCursor avec quatre occurrences de la classe ButtonDisplayState.
  4. Dans la classe ButtonDisplayState, le constructeur définit la valeur de la taille du carré et la couleur d’arrière-plan, puis appelle la méthode draw().
  5. La méthode draw() redessine le carré avec la taille et la couleur d’arrière-plan définies dans le constructeur reposant sur l’état du bouton.
package { import flash.display.Sprite; public class SimpleButtonExample extends Sprite { public function SimpleButtonExample() { var button:CustomSimpleButton = new CustomSimpleButton(); addChild(button); } } } import flash.display.DisplayObject; import flash.display.Shape; import flash.display.SimpleButton; class CustomSimpleButton extends SimpleButton { private var upColor:uint = 0xFFCC00; private var overColor:uint = 0xCCFF00; private var downColor:uint = 0x00CCFF; private var size:uint = 80; public function CustomSimpleButton() { downState = new ButtonDisplayState(downColor, size); overState = new ButtonDisplayState(overColor, size); upState = new ButtonDisplayState(upColor, size); hitTestState = new ButtonDisplayState(upColor, size * 2); hitTestState.x = -(size / 4); hitTestState.y = hitTestState.x; useHandCursor = true; } } class ButtonDisplayState extends Shape { private var bgColor:uint; private var size:uint; public function ButtonDisplayState(bgColor:uint, size:uint) { this.bgColor = bgColor; this.size = size; draw(); } private function draw():void { graphics.beginFill(bgColor); graphics.drawRect(0, 0, size, size); graphics.endFill(); } }
Classe InteractiveObjectSimpleButton Crée une occurrence de SimpleButton.upStateflash.display:DisplayObjectnullValeur initiale de l’état relevé de SimpleButton. overStateflash.display:DisplayObjectnullValeur initiale de l’état survol de SimpleButton. downStateflash.display:DisplayObjectnullValeur initiale de l’état abaissé de SimpleButton. hitTestStateflash.display:DisplayObjectnullValeur initiale de l’état cliqué de SimpleButton. Crée une occurrence de SimpleButton. Crée une occurrence de SimpleButton. Tout ou partie des objets d’affichage qui représentent les différents états de bouton peuvent être définis en tant que paramètres dans le constructeur. downState Spécifie un objet d’affichage utilisé en tant qu’objet visuel associé à l’état « Enfoncé » du bouton (l’état du bouton lorsque l’utilisateur clique sur l’objet hitTestState).flash.display:DisplayObjectSpécifie une valeur DisplayObject utilisée pour l’état « Enfoncé » du bouton. Spécifie un objet d’affichage utilisé en tant qu’objet visuel associé à l’état « Enfoncé » du bouton (l’état du bouton lorsque l’utilisateur clique sur l’objet hitTestState). hitTestStateoverStateupStateenabled Valeur booléenne spécifiant si un bouton est activé.BooleanSpécifie si un bouton est activé (true) ou désactivé (false). Valeur booléenne spécifiant si un bouton est activé. Lorsqu’il est désactivé (la propriété enabled est alors réglée sur false), le bouton est visible mais vous ne pouvez pas cliquer dessus. La valeur par défaut est true. Cette propriété s’avère utile si vous souhaitez désactiver certains des boutons de navigation. Par exemple, il peut être souhaitable de désactiver un bouton dans la page actuellement affichée afin d’empêcher l’utilisateur de cliquer dessus et de recharger la page.

Remarque : pour éviter de cliquer sur un bouton avec la souris, réglez les propriétés enabled et mouseEnabled sur false.

hitTestState Spécifie un objet d’affichage utilisé en tant qu’objet de test de recherche pour le bouton.flash.display:DisplayObject Spécifie un objet d’affichage utilisé en tant qu’objet de test de recherche pour le bouton. Pour un bouton de base, réglez la propriété hitTestState sur le même objet d’affichage que la propriété overState. Si vous ne définissez pas la propriété hitTestState, le bouton SimpleButton est inactif (il ne réagit pas aux événements de saisie utilisateur). downStateoverStateupStateoverState Spécifie un objet d’affichage utilisé en tant qu’objet visuel associé à l’état « survol » du bouton (l’état du bouton lorsque le pointeur est placé sur le bouton).flash.display:DisplayObjectSpécifie une valeur DisplayObject utilisée pour l’état « survol » du bouton. Spécifie un objet d’affichage utilisé en tant qu’objet visuel associé à l’état « survol » du bouton (l’état du bouton lorsque le pointeur est placé sur le bouton). downStatehitTestStateupStatesoundTransform Objet SoundTransform affecté au bouton.flash.media:SoundTransform Objet SoundTransform affecté au bouton. Un objet SoundTransform comprend les propriétés de réglage du volume, du déplacement panoramique, ainsi que des haut-parleurs gauche et droit. Il s’applique à tous les états du bouton. Cet objet SoundTransform n’affecte que les sons intégrés. flash.media.SoundTransformtrackAsMenu Indique si d’autres objets d’affichage de type SimpleButton ou MovieClip peuvent recevoir des événements de relâchement.Boolean Indique si d’autres objets d’affichage de type SimpleButton ou MovieClip peuvent recevoir des événements de relâchement. La propriété trackAsMenu permet de créer des menus. Vous pouvez définir la propriété trackAsMenu sur n’importe quel objet SimpleButton ou MovieClip. Si la propriété trackAsMenu n’existe pas, la valeur du comportement par défaut devient false.

Vous pouvez modifier la propriété trackAsMenu à tout moment ; le bouton modifié accepte immédiatement le nouveau comportement.

upState Spécifie un objet d’affichage utilisé en tant qu’objet visuel associé à l’état « relevé » du bouton (l’état du bouton lorsque le pointeur n’est pas placé sur le bouton.flash.display:DisplayObjectSpécifie une valeur DisplayObject utilisée pour l’état « relevé » du bouton. Spécifie un objet d’affichage utilisé en tant qu’objet visuel associé à l’état « relevé » du bouton (l’état du bouton lorsque le pointeur n’est pas placé sur le bouton). downStatehitTestStateoverStateuseHandCursor Valeur booléenne qui, lorsqu’elle est définie sur true, indique si le curseur en forme de main s’affiche lorsque le pointeur survole un bouton.BooleanAffiche un curseur en forme de main si la valeur true est définie. Valeur booléenne qui, lorsqu’elle est définie sur true, indique si le curseur en forme de main s’affiche lorsque le pointeur survole un bouton. Si cette propriété est réglée sur false, le pointeur flèche s’affiche. La valeur par défaut est true.

Vous pouvez modifier la propriété useHandCursor à tout moment ; le bouton modifié accepte immédiatement le nouveau comportement du curseur.

TriangleCulling Définit des codes pour les algorithmes d’élimination qui déterminent quels triangles ne doivent pas être restitués lors du tracé des triangles.Object Définit des codes pour les algorithmes d’élimination qui déterminent quels triangles ne doivent pas être restitués lors du tracé des triangles.

Les termes POSITIVE et NEGATIVE font référence au signe de la normale d’un triangle le long de l’axe z. La normale est un vecteur 3D perpendiculaire à la surface du triangle.

Un triangle dont les sommets 0, 1 et 2 sont placés dans le sens des aiguilles d’une montre a une valeur de normale positive. C’est-à-dire que sa normale pointe dans la direction positive de l’axe z, en s’éloignant du point de vue en cours. Lorsque l’algorithme TriangleCulling.POSITIVE est utilisé, les triangles dont les normales sont positives ne sont pas restitués. Cette opération est également appelée « Backface culling » ou suppression des faces cachées.

Un triangle dont les sommets sont placés dans le sens contraire des aiguilles d’une montre a une valeur de normale négative. C’est-à-dire que sa normale pointe dans la direction négative de l’axe z, vers le point de vue en cours. Lorsque l’algorithme TriangleCulling.NEGATIVE est utilisé, les triangles dont les normales sont négatives ne sont pas restitués.

flash.display.Graphics.drawTriangles()flash.display.GraphicsTrianglePathPrésentation des vecteurs 3DBackface Culling 3D (Suppression des faces cachées)NEGATIVE Spécifie un culling de tous les triangles qui font face au point de vue en cours.negativeString Spécifie un culling de tous les triangles qui font face au point de vue en cours. NONE Spécifie aucun culling.noneString Spécifie aucun culling. Tous les triangles du tracé sont restitués. POSITIVE Spécifie un culling de tous les triangles qui tournent le dos au point de vue en cours.positiveString Spécifie un culling de tous les triangles qui tournent le dos au point de vue en cours. Ce type de culling est également appelé backface culling ou suppression des faces cachées.
NativeWindow La classe NativeWindow fournit une interface pour créer et contrôler des fenêtres de bureau natives.flash.events:EventDispatcher La classe NativeWindow fournit une interface pour créer et contrôler des fenêtres de bureau natives.

Prise en charge du profil AIR : cette fonctionnalité est prise en charge sur tous les systèmes d’exploitation de bureau, mais ne l’est pas sur les périphériques mobiles ou les périphériques AIR pour TV. Vous pouvez tester la prise en charge lors de l’exécution sur des périphériques de bureau à l’aide de la propriété NativeWindow.isSupported. Voir Prise en charge du profil AIR pour plus d’informations sur la prise en charge de l’API dans plusieurs profils.

Une référence à l’occurrence NativeWindow est renvoyée par le constructeur window. Vous pouvez également accéder à une référence à l’occurrence NativeWindow à l’aide de la propriété stage.nativeWindow des objets d’affichage sur la scène de cette fenêtre :

var window:NativeWindow = displayObject.stage.nativeWindow;

Seul le contenu d’une application peut accéder aux propriétés d’une occurrence de NativeWindow. Si un contenu hors application tente d’accéder à un objet NativeWindow, une erreur de sécurité est renvoyée.

Il est possible d’ajouter du contenu dans une fenêtre avec les méthodes DisplayObjectContainer de l’objet Stage telles que addChild().

Vous ne pouvez pas ajouter de composants Flex directement à la liste d’affichage d’une occurrence NativeWindow. Utilisez plutôt les composants Flex mx:WindowedApplication et mx:Window pour créer vos fenêtres et ajouter les autres composants Flex en tant qu’enfants de ces objets. Vous pouvez ajouter un contenu SWF Flex directement à une fenêtre NativeWindow tant que le fichier SWF est chargé dans son propre domaine d’application et est un contenu d’application.

Pour créer une fenêtre HTML racine qui affiche un contenu HTML, il est généralement plus facile de créer la fenêtre avec HTMLLoader.createRootWindow(). Un objet HTMLLoader est automatiquement ajouté aux fenêtres créées de cette manière (à partir du code JavaScript, vous pouvez également utiliser la fonction JavaScript window.open(). Toutefois, cette méthode vous donne moins de contrôle sur l’apparence et le comportement de la fenêtre).

Les opérations suivantes sur les objets NativeWindow sont asynchrones : changements close(), maximize(), minimize(), restore() et bounds. Une application peut détecter la fin de ces opérations en écoutant les événements appropriés.

Si la propriété NativeApplication.autoExit est true, qui est la valeur par défaut, l’application se ferme à la fermeture de sa dernière fenêtre (et au renvoi de tous les gestionnaires de l’événement close). Si autoExit est false, NativeApplication.nativeApplication.exit() doit être appelé pour arrêter l’application.

Le nettoyage de la mémoire ne sera pas effectué sur les objets NativeWindow après l’appel du constructeur window et avant l’appel du constructeur close(). L’application est chargée de fermer ses fenêtres.

flash.display.Stage.nativeWindowflash.display.NativeWindowInitOptionsflash.desktop.NativeApplicationflash.system.ApplicationDomainflash.html.HTMLLoader.createRootWindow()deactivate Distribué par cet objet NativeWindow après la désactivation de la fenêtre.flash.events.Event.DEACTIVATEflash.events.Event Distribué par cet objet NativeWindow après la désactivation de la fenêtre. activate Distribué par cet objet NativeWindow après l’activation de la fenêtre.flash.events.Event.ACTIVATEflash.events.Event Distribué par cet objet NativeWindow après l’activation de la fenêtre. close Distribué par cet objet NativeWindow après la fermeture de la fenêtre.flash.events.Event.CLOSEflash.events.Event Distribué par cet objet NativeWindow après la fermeture de la fenêtre. closing Distribué par cet objet NativeWindow immédiatement avant la fermeture de la fenêtre.flash.events.Event.CLOSINGflash.events.Event Distribué par cet objet NativeWindow immédiatement avant la fermeture de la fenêtre. Cet événement peut être annulé pour empêcher la fermeture de la fenêtre. displayStateChange Distribué par cet objet NativeWindow après le changement de la propriété displayState de la fenêtre.flash.events.NativeWindowDisplayStateEvent.DISPLAY_STATE_CHANGEflash.events.NativeWindowDisplayStateEvent Distribué par cet objet NativeWindow après le changement de la propriété displayState de la fenêtre.

Ne redimensionnez pas la fenêtre et ne modifiez pas son état d’affichage dans le gestionnaire d’événement displayStateChange.

displayStateChanging Distribué par cet objet NativeWindow immédiatement avant le changement de l’état d’affichage de la fenêtre.flash.events.NativeWindowDisplayStateEvent.DISPLAY_STATE_CHANGINGflash.events.NativeWindowDisplayStateEvent Distribué par cet objet NativeWindow immédiatement avant le changement de l’état d’affichage de la fenêtre. Cet événement peut être annulé pour empêcher le changement. L’exemple suivant indique comment annuler un événement displayStateChanging. function displayStateChanging_handler(displayStateEvent:NativeWindowDisplayStateEvent):void { //shouldStopStateChange is an application-defined Boolean indicating //that display state changes should be canceled if (displayStateEvent.type == NativeWindowDisplayStateEvent.DISPLAY_STATE_CHANGING && shouldStopStateChange) { displayStateEvent.preventDefault(); } } resize Distribué par cet objet NativeWindow après le redimensionnement de la fenêtre.flash.events.NativeWindowBoundsEvent.RESIZEflash.events.NativeWindowBoundsEvent Distribué par cet objet NativeWindow après le redimensionnement de la fenêtre. Un événement resize est distribué lorsque la taille (propriétés width ou height) de la fenêtre change, ce qui peut avoir lieu en raison d’un redimensionnement de la fenêtre commandé par le système ; réduction, agrandissement ou restauration de la fenêtre ; ou changement de la taille de la fenêtre en définissant les propriétés width, height ou bounds. Les événements resize de NativeWindow sont distribués lors des boucles de redimensionnement commandées par le système. En revanche, les événements resize de l’objet Stage sont distribués lorsque la Scène est prête pour le dessin. Evénement resize de l’objet Stageresizing Distribué par cet objet NativeWindow immédiatement avant le redimensionnement de la fenêtre sur le bureau.flash.events.NativeWindowBoundsEvent.RESIZINGflash.events.NativeWindowBoundsEvent Distribué par cet objet NativeWindow immédiatement avant le redimensionnement de la fenêtre sur le bureau. Cet événement peut être annulé pour empêcher ou modifier le redimensionnement. L’exemple suivant indique comment annuler un événement resizing. function boundsChanging_handler(boundsEvent:NativeWindowBoundsEvent):void { //shouldStopResize is an application-defined Boolean indicating //that resize operations should be canceled if (boundsEvent.type == NativeWindowBoundsEvent.RESIZING && shouldStopResize) { boundsEvent.preventDefault(); } } move Distribué par cet objet NativeWindow après le déplacement de la fenêtre sur le bureau.flash.events.NativeWindowBoundsEvent.MOVEflash.events.NativeWindowBoundsEvent Distribué par cet objet NativeWindow après le déplacement de la fenêtre sur le bureau.

Un événement move est distribué lorsque l’origine (propriétés x ou y) de la fenêtre change, ce qui peut avoir lieu en raison d’un déplacement de la fenêtre commandé par le système ; réduction, agrandissement ou restauration de la fenêtre ; ou changement de l’emplacement de la fenêtre en définissant les propriétés x, y ou bounds.

Remarque : évitez les actions pouvant ouvrir des boîtes de dialogue du système d’exploitation simultanées dans les fonctions du gestionnaire pour les événements moving et move d’un objet NativeWindow. Ceci peut avoir lieu, par exemple, si les deux fonctions du gestionnaire renvoient une erreur. Si ceci a lieu, la seconde boîte de dialogue ouverte n’enregistre pas les clics de la souris et doit être fermée à l’aide du clavier.

moving Distribué par l’objet NativeWindow immédiatement avant le déplacement de la fenêtre sur le bureau.flash.events.NativeWindowBoundsEvent.MOVINGflash.events.NativeWindowBoundsEvent Distribué par l’objet NativeWindow immédiatement avant le déplacement de la fenêtre sur le bureau. Cet événement peut être annulé pour empêcher ou modifier le déplacement.

Remarque : évitez les actions pouvant ouvrir des boîtes de dialogue du système d’exploitation simultanées dans les fonctions du gestionnaire pour les événements moving et move d’un objet NativeWindow. Ceci peut avoir lieu, par exemple, si les deux fonctions du gestionnaire renvoient une erreur. Si ceci a lieu, la seconde boîte de dialogue ouverte n’enregistre pas les clics de la souris et doit être fermée à l’aide du clavier.

NativeWindow Crée une occurrence de NativeWindow et une fenêtre de système d’exploitation correspondante.Si le paramètre initOptions n’est pas valide. IllegalOperationErrorflash.errors:IllegalOperationErrorinitOptionsflash.display:NativeWindowInitOptionsUn objet contenant les propriétés d’initialisation pour cette fenêtre. Crée une occurrence de NativeWindow et une fenêtre de système d’exploitation correspondante.

Les paramètres définis dans le paramètre initOptions ne peuvent pas être modifiés après la création de la fenêtre. Les paramètres initOptions non valides entraînent le renvoi d’une erreur d’opération non autorisée. Les paramètres qui sont valides mais non disponibles sur le système actuel ne renvoient pas d’exception. Les fonctionnalités de la fenêtre propres au système d’exploitation actuel peuvent être détectées, le cas échéant, à l ’aide des membres statiques NativeWindow tels que systemMaxSize.

La taille de la fenêtre par défaut est déterminée par le système d’exploitation et les fenêtres sont créées dans un état invisible. Pour empêcher la visibilité des modifications de la fenêtre, ne définissez pas la propriété visible de la fenêtre sur true et n’appelez pas la méthode activate() tant que les modifications de la fenêtre ne sont pas terminées.

L’exemple suivant crée et active une nouvelle occurrence de NativeWindow : import flash.display.NativeWindowInitOptions; import flash.display.NativeWindowSystemChrome; import flash.display.NativeWindowType; import flash.display.NativeWindow; import flash.display.StageAlign; import flash.display.StageScaleMode; import flash.geom.Rectangle; var windowOptions:NativeWindowInitOptions = new NativeWindowInitOptions(); windowOptions.systemChrome = NativeWindowSystemChrome.STANDARD; windowOptions.type = NativeWindowType.NORMAL; var newWindow:NativeWindow = new NativeWindow(windowOptions); newWindow.stage.scaleMode = StageScaleMode.NO_SCALE; newWindow.stage.align = StageAlign.TOP_LEFT; newWindow.bounds = new Rectangle(100, 100, 800, 800); newWindow.activate();
flash.display.NativeWindowInitOptionsflash.html.HTMLLoader.createRootWindow()
activate Active cette fenêtre. Active cette fenêtre.

L’activation d’une fenêtre :

  • Rend la fenêtre visible
  • Déplace la fenêtre vers l’avant
  • Donne à la fenêtre le focus keyboard et mouse

Sous Linux, activate() est une opération asynchrone.

L’objet NativeWindow distribue un événement activate sur toutes les plates-formes.

Les exemples suivants indiquent comment activer une fenêtre.

Avec une référence à un objet d’affichage sur la scène de la fenêtre :

displayObject.stage.nativeWindow.activate();
Avec une référence à une occurrence de la classe NativeWindow : windowObj.activate(); A partir de JavaScript dans une page HTML rendue dans la fenêtre (où window est l’objet window JavaScript global) : window.nativeWindow.activate();
visibleorderToFront()
close Ferme cette fenêtre. Ferme cette fenêtre.

Un événement close est distribué dès que l’opération de fermeture se termine. Un événement closing n’est pas distribué. Si l’annulation de cette opération de fermeture doit être autorisée, distribuez un événement closing et vérifiez si des écouteurs enregistrés annulent le comportement par défaut avant d’appeler la méthode close.

Lors de la fermeture d’une fenêtre, toutes les fenêtres dont elle est propriétaire se ferment également. Les fenêtres possédées ne distribuent pas d’événements closing.

Si les occurrences d’objets d’affichage actuellement dans la fenêtre ne sont pas référencées en un autre endroit, elles sont nettoyées et détruites, sauf dans la fenêtre de l’application initiale créée par AIR. Pour que les objets d’affichage de la fenêtre d’origine soient nettoyés, supprimez-les de la scène dans la fenêtre.

Après sa fermeture, l’objet NativeWindow demeure une référence valide, mais l’accès à la plupart des propriétés et des méthodes renvoie une erreur d’opération non autorisée.

Les fenêtres fermées ne peuvent pas être rouvertes. Si la fenêtre est déjà fermée, aucune action n’est effectuée et aucun événement n’est distribué.

Remarque : pour masquer une fenêtre sans la fermer, définissez la propriété visible de la fenêtre sur false.

Les exemples suivants indiquent comment fermer une fenêtre :

Avec une référence à l’occurrence de NativeWindow ( windowObj) :

windowObj.close();
Avec une référence à un objet d’affichage sur la scène de la fenêtre : displayObj.stage.nativeWindow.close(); A partir d’une routine JavaScript s’exécutant dans un objet HTMLLoader (ou fenêtre racine HTML) : window.close(); //overriddable in HTMLHost Ou : window.nativeWindow.close(); //not overriddable L’exemple suivant indique comment annuler une opération close (où windowObj est l’occurrence NativeWindow à fermer) : public function closeCommand():Boolean{ var closeEvent:Event = new Event(Event.CLOSING,true,true); windowObj.dispatchEvent(closeEvent); if(!closeEvent.isDefaultPrevented()){ windowObj.close(); return true; } else { return false; } } L’exemple suivant indique comment fermer une fenêtre à partir d’une routine JavaScript s’exécutant dans un objet HTMLLoader (ou fenêtre racine HTML), tout en autorisant l’annulation de l’opération : <script src="AIRAliases.js" type="text/javascript"></script> <script type="text/javascript"> var dirtyData = false; function closeWindow(){ var closingEvent = new air.Event(air.Event.CLOSING,true,true); window.nativeWindow.dispatchEvent(closingEvent); if(!closingEvent.isDefaultPrevented()){ window.nativeWindow.close(); //or use: window.close(); return true; } else { return false; } } function onClosing(event){ if(dirtyData){ event.preventDefault(); //Save data... } } window.nativeWindow.addEventListener(air.Event.CLOSING,onClosing); </script>
flash.display.NativeWindow.closedflash.html.HTMLLoaderflash.html.HTMLHost
globalToScreen Convertit un point en coordonnées pixels par rapport à l’origine de la scène de la fenêtre (un point global en termes de liste d’affichage), en un point sur le bureau virtuel.Le point global spécifié par rapport au bureau. flash.geom:PointglobalPointflash.geom:PointLe point sur la scène à convertir en un point sur l’écran. Convertit un point en coordonnées pixels par rapport à l’origine de la scène de la fenêtre (un point global en termes de liste d’affichage), en un point sur le bureau virtuel.

Les coordonnées de bureau virtuel sont relatives à l’angle supérieur gauche du moniteur principal.

flash.display.Screen
listOwnedWindows Renvoie une liste des objets NativeWindow appartenant à cette fenêtre.un objet Vector.<NativeWindow> contenant zéro ou plusieurs objets NativeWindow appartenant à cette occurrence. Renvoie une liste des objets NativeWindow appartenant à cette fenêtre.

Il est impossible de changer la propriété des objets NativeWindows en ajoutant ou en supprimant des objets du vecteur renvoyé. Il est impossible de changer la propriété des fenêtres après la création d’une fenêtre.

flash.display.NativeWindowInitOptions.owner
maximize Agrandit cette fenêtre.Indique si cette méthode est appelée après la fermeture de cette fenêtre. IllegalOperationErrorflash.errors:IllegalOperationError Agrandit cette fenêtre.

L’appel de maximize() distribue un événement displayStateChange et, le cas échéant, un événement move et resize. Le chrome système distribue un événement displayStateChanging pouvant être annulé lorsqu’une commande maximize est lancée par un utilisateur, mais votre logique maximize doit implémenter ce comportement, si nécessaire.

La méthode maximize() s’exécute de façon asynchrone. Pour détecter la fin du changement d’état, écoutez l’événement displayStateChange. Si la fenêtre est déjà agrandie, aucune action n’est effectuée et aucun événement n’est distribué.

Remarques concernant le comportement du SE :

  • Sous certains systèmes d’exploitation tels que Mac OS X, dans lesquels l’agrandissement d’une fenêtre n’empêche pas le redimensionnement, l’appel de maximize() effectue un zoom sur la fenêtre pour qu’elle remplisse l’écran, mais n’empêche pas son redimensionnement ultérieur. Le redimensionnement d’une fenêtre sur laquelle un zoom a été effectué restaure également l’état d’affichage.
  • Sous certains systèmes d’exploitation tels que Mac OS X, ainsi que dans certains gestionnaires de fenêtres sous Linux, les fenêtres ne sont pas agrandies au-delà de la largeur et de la hauteur définies dans la propriété maxSize. Par contre, sous d’autres systèmes d’exploitation, la fenêtre s’agrandit pour occuper la totalité de l’écran, même si l’écran est plus large que la propriété maxSize.
  • Certains gestionnaires de fenêtres de Linux ne permettent pas d’agrandir les fenêtres d’utilitaire.
L’exemple suivant indique comment autoriser l’annulation d’une opération d’agrandissement : public function maximizeWindow(nativeWin:NativeWindow):Boolean{ if(nativeWin.displayState != NativeWindowDisplayState.MAXIMIZED){ var beforeState:String = nativeWin.displayState; var afterState:String = NativeWindowDisplayState.MAXIMIZED; var displayStateEvent:NativeWindowDisplayStateEvent = new NativeWindowDisplayStateEvent(NativeWindowDisplayStateEvent.DISPLAY_STATE_CHANGING, true,true,beforeState,afterState); nativeWin.dispatchEvent(displayStateEvent); if(!displayStateEvent.isDefaultPrevented()){ nativeWin.maximize(); return true; } else { return false; } } return false; } L’exemple suivant indique comment autoriser l’annulation d’une opération d’agrandissement à partir d’une routine JavaScript s’exécutant dans un objet HTMLLoader sur la fenêtre (ou une fenêtre HTML) : function maximizeWindow(nativeWin){ if(nativeWin.displayState != air.NativeWindowDisplayState.MAXIMIZED){ var beforeState = nativeWin.displayState; var afterState = air.NativeWindowDisplayState.MAXIMIZED; var displayStateEvent = new air.NativeWindowDisplayStateEvent(air.NativeWindowDisplayStateEvent.DISPLAY_STATE_CHANGING, true,true,beforeState,afterState); nativeWin.dispatchEvent(displayStateEvent); if(!displayStateEvent.isDefaultPrevented()){ nativeWin.maximize(); return true; } else { return false; } } return false; }
flash.display.NativeWindowDisplayStateflash.events.NativeWindowDisplayStateEvent
minimize Réduit cette fenêtre.Indique si cette méthode est appelée après la fermeture de cette fenêtre. IllegalOperationErrorflash.errors:IllegalOperationError Réduit cette fenêtre.

L’appel de minimize() distribue un événement displayStateChange et, le cas échéant, un événement move et resize. Un chrome système distribue un événement displayStateChanging pouvant être annulé lorsqu’une commande minimize est lancée par un utilisateur alors que l’appel direct de minimize() ne le fait pas. Votre logique minimize peut implémenter ce comportement, si nécessaire.

La méthode minimize() s’exécute de façon asynchrone. Pour détecter la fin du changement d’état, écoutez l’événement displayStateChange, distribué sur toutes les plates-formes. Si la fenêtre est déjà réduite, aucune action n’est entreprise et aucun événement n’est distribué.

Toutes les fenêtres dont est propriétaire cette fenêtre sont masquées lorsqu’elles sont réduites. Les fenêtres possédées ne distribuent pas d’événement displayStateChanging ou displayStateChange.

Remarques :

  • Sous Windows, minimiser une fenêtre invisible (visible == false) rend la fenêtre visible.
  • Certains gestionnaires de fenêtres de Linux ne permettent pas de minimiser les fenêtres d’utilitaire.
L’exemple suivant indique comment autoriser l’annulation d’un appel à minimize() en distribuant un événement displayStateChanging : public function minimizeWindow(nativeWin:NativeWindow):Boolean{ if(nativeWin.displayState != NativeWindowDisplayState.MINIMIZED){ var beforeState:String = nativeWin.displayState; var afterState:String = NativeWindowDisplayState.MINIMIZED; var displayStateEvent:NativeWindowDisplayStateEvent = new NativeWindowDisplayStateEvent(NativeWindowDisplayStateEvent.DISPLAY_STATE_CHANGING, true,true,beforeState,afterState); nativeWin.dispatchEvent(displayStateEvent); if(!displayStateEvent.isDefaultPrevented()){ nativeWin.minimize(); return true; } else { return false; } } return false; } L’exemple suivant indique comment autoriser l’annulation d’un appel à minimize() dans le code JavaScript s’exécutant dans un objet HTMLLoader (ou une fenêtre HTML) : function minimizeWindow(){ if(window.nativeWindow.displayState != air.NativeWindowDisplayState.MINIMIZED){ var beforeState = window.nativeWindow.displayState; var afterState = air.NativeWindowDisplayState.MINIMIZED; var displayStateEvent = new air.NativeWindowDisplayStateEvent(air.NativeWindowDisplayStateEvent.DISPLAY_STATE_CHANGING, true,true,beforeState,afterState); window.nativeWindow.dispatchEvent(displayStateEvent); if(!displayStateEvent.isDefaultPrevented()){ window.nativeWindow.minimize(); return true; } else { return false; } } return false; }
flash.display.NativeWindowDisplayStateflash.events.NativeWindowDisplayStateEvent
notifyUser Déclenche un repère visuel via le système d’exploitation indiquant qu’un événement intéressant s’est produit.typeStringChaîne représentant l’urgence de la notification. Déclenche un repère visuel via le système d’exploitation indiquant qu’un événement intéressant s’est produit.

Lorsque NativeWindow.supportsNotification est true, le repère visuel se conforme à la convention du système d’exploitation du système natif. Par exemple, dans Windows, l’icône de la barre des tâches clignote.

Le paramètre type détermine l’intensité du repère. Les constantes pour les valeurs autorisées sont définies dans la classe NotificationType et peuvent être :

  • NotificationType.INFORMATIONAL
  • NotificationType.CRITICAL

Les repères fournis pour des notifications informelles durent peu de temps ; ceux fournis pour des notifications cruciales durent jusqu’à ce que l’utilisateur active cette fenêtre. Tous les gestionnaires de fenêtres de Linux ne prennent pas en charge ces deux niveaux de notification. Pour ce type de gestionnaires de fenêtres, la méthode notifyUser() a le même effet, quelle que soit l’option spécifiée.

Remarque : l’appel de notifyUser() lorsque NativeWindow.supportsNotification est false est autorisé mais n’a aucune incidence.

orderInBackOf Envoie directement cette fenêtre derrière la fenêtre spécifiée. true si cette fenêtre a été envoyée à l’arrière ; false si cette fenêtre est invisible ou réduite. Booleanwindowflash.display:NativeWindowUne fenêtre d’application. Envoie directement cette fenêtre derrière la fenêtre spécifiée.

N’active ni n’acquiert le focus pour la fenêtre ou l’application. Les fenêtres réduites ou masquées (visible est défini sur false) ne peuvent pas être réorganisées.

Une fenêtre possédée ne peut jamais être placée derrière sa fenêtre propriétaire. Si cette fenêtre possède une fenêtre propriétaire, la fenêtre propriétaire et les autres fenêtres possédées sont également placées derrière la cible. Si la fenêtre cible possède une fenêtre propriétaire, elle est placée derrière la fenêtre propriétaire de la cible.

Certains gestionnaires de fenêtres de Linux ne permettent pas de placer des fenêtres d’utilitaire derrière des fenêtres normales.

Les exemples suivants indiquent comment déplacer une fenêtre juste au-dessous d’une autre fenêtre avec des références aux occurrences NativeWindow : windowBehind.orderInBackOf(windowFront); Avec des références à des objets d’affichage sur les scènes de la fenêtre : displayObjBehind.stage.nativeWindow.orderInBackOf(displayObjectFront.stage.nativeWindow); A partir d’une routine JavaScript s’exécutant dans un objet HTMLLoader (ou fenêtre racine HTML) utilisant des références à deux objets window JavaScript : jsWindowObjBehind.nativeWindow.orderInBackOf(jsWindowObjFront.nativeWindow);
orderInFrontOf Déplace cette fenêtre directement devant la fenêtre spécifiée. true si cette fenêtre a été déplacée à l’avant ; false si cette fenêtre est invisible ou réduite. Booleanwindowflash.display:NativeWindowUne fenêtre d’application. Déplace cette fenêtre directement devant la fenêtre spécifiée.

N’active ni n’acquiert le focus pour la fenêtre ou l’application. Les fenêtres réduites ou masquées (visible est défini sur false) ne peuvent pas être réorganisées.

Une fenêtre ne peut jamais être placée devant une fenêtre qu’elle possède. Si cette fenêtre possède une fenêtre propriétaire, la fenêtre propriétaire et les autres fenêtres possédées sont également placées devant la cible. Si la fenêtre cible possède une fenêtre propriétaire, elle est également placée devant toutes les autres fenêtres ayant le même propriétaire que la cible.

Certains gestionnaires de fenêtres de Linux ne permettent pas de placer des fenêtres normales devant des fenêtres d’utilitaire.

Les exemples suivants indiquent comment déplacer une fenêtre juste au-dessus d’une autre fenêtre avec des références aux occurrences NativeWindow : windowFront.orderInFrontOf(windowBehind); Avec des références à des objets d’affichage sur les scènes de la fenêtre : displayObjFront.stage.nativeWindow.orderInFrontOf(displayObjectBehind.stage.nativeWindow); A partir d’une routine JavaScript s’exécutant dans un objet HTMLLoader (ou fenêtre racine HTML) utilisant des références à deux objets window JavaScript : jsWindowObjFront.nativeWindow.orderInFrontOf(jsWindowObjBehind.nativeWindow);
orderToBack Envoie cette fenêtre derrière les autres fenêtres visibles. true si cette fenêtre a été envoyée à l’arrière ; false si cette fenêtre est invisible ou réduite. Boolean Envoie cette fenêtre derrière les autres fenêtres visibles.

N’active ni n’acquiert le focus pour cette fenêtre ou l’application. Les fenêtres réduites ou masquées (visible est défini sur false) ne peuvent pas être réorganisées.

Si alwaysInFront est défini sur true, l’appel de cette méthode n’envoie pas cette fenêtre derrière des fenêtres ayant alwaysInFront défini sur false.

Une fenêtre possédée ne peut jamais être placée derrière sa fenêtre propriétaire. Si cette fenêtre possède une fenêtre propriétaire, la fenêtre propriétaire et les autres fenêtres possédées sont également placées au bas de la liste d’affichage de la fenêtre. Cette fenêtre est placée derrière toutes les autres fenêtres appartenant à la même fenêtre. Si cette fenêtre possède d’autres fenêtres, ces fenêtres sont également placées à l’arrière-plan et conservent leur ordre respectif.

Certains gestionnaires de fenêtres de Linux ne permettent pas de placer des fenêtres d’utilitaire derrière des fenêtres normales.

Les exemples suivants indiquent comment déplacer une fenêtre derrière toutes les autres fenêtres dans l’application (avec le même paramètre alwaysInFront) : windowObj.orderToBack(); Avec une référence à un objet d’affichage sur la scène de la fenêtre : displayObj.stage.nativeWindow.orderToBack(); A partir d’une routine JavaScript s’exécutant dans un objet HTMLLoader dans la fenêtre (ou une fenêtre HTML racine) : window.nativeWindow.orderToBack();
orderToFront Déplace cette fenêtre devant toute autre fenêtre visible.true si cette fenêtre a été déplacée à l’avant ; false si cette fenêtre est invisible ou réduite. Boolean Déplace cette fenêtre devant toute autre fenêtre visible.

N’active ni n’acquiert le focus pour cette fenêtre ou l’application. Les fenêtres réduites ou masquées (visible est défini sur false) ne peuvent pas être réorganisées.

Si alwaysInFront est défini sur false, l’appel de cette méthode n’envoie pas cette fenêtre devant des fenêtres ayant alwaysInFront défini sur true.

Une fenêtre ne peut jamais être placée devant une fenêtre qu’elle possède. Si cette fenêtre possède d’autres fenêtres, ces fenêtres sont également déplacées à l’avant-plan et conservent leur ordre respectif. Si cette fenêtre possède une fenêtre propriétaire, la fenêtre propriétaire et les autres fenêtres possédées sont également placées devant la liste d’affichage de la fenêtre. Cette fenêtre est placée devant les autres fenêtres ayant la même fenêtre propriétaire.

Certains gestionnaires de fenêtres de Linux ne permettent pas de placer des fenêtres normales devant des fenêtres d’utilitaire.

Les exemples suivants indiquent comment déplacer une fenêtre devant toutes les autres fenêtres dans l’application (avec le même paramètre alwaysInFront) : windowObj.orderToFront(); Avec une référence à un objet d’affichage sur la scène de la fenêtre : displayObj.stage.nativeWindow.orderToFront(); A partir d’une routine JavaScript s’exécutant dans un objet HTMLLoader dans la fenêtre (ou une fenêtre HTML racine) : window.nativeWindow.orderToFront();
restore Restaure cette fenêtre d’un état réduit ou agrandi.Si la méthode est appelée après la fermeture de cette fenêtre. IllegalOperationErrorflash.errors:IllegalOperationError Restaure cette fenêtre d’un état réduit ou agrandi.

L’appel de restore() distribue un événement displayStateChange et, le cas échéant, un événement move et resize. Le chrome système distribue un événement displayStateChanging pouvant être annulé lorsqu’une commande restore est lancée par un utilisateur, mais votre logique restore doit implémenter ce comportement, le cas échéant.

Si la fenêtre est déjà dans l’état NativeWindowDisplayState.NORMAL, aucune action n’est effectuée et aucun événement n’est distribué.

Pour détecter la fin du changement d’état, écoutez l’événement displayStateChange, qui est distribué sur toutes les plates-formes.

L’exemple suivant indique comment autoriser l’annulation d’une opération de restauration : public function restoreWindow(nativeWin:NativeWindow):Boolean{ if(nativeWin.displayState != NativeWindowDisplayState.NORMAL){ var beforeState:String = nativeWin.displayState; var afterState:String = NativeWindowDisplayState.NORMAL; var displayStateChangingEvent:NativeWindowDisplayStateEvent = new NativeWindowDisplayStateEvent(NativeWindowDisplayStateEvent.DISPLAY_STATE_CHANGING, true,true,beforeState,afterState); nativeWin.dispatchEvent(displayStateChangingEvent); if(!displayStateChangingEvent.isDefaultPrevented()){ nativeWin.restore(); return true; } else { return false; } } return false; } L’exemple suivant indique comment autoriser l’annulation d’une opération de restauration à partir d’une routine JavaScript s’exécutant dans un objet HTMLLoader sur la fenêtre (ou une fenêtre HTML) : function restoreWindow(nativeWin){ if(window.nativeWindow.displayState != air.NativeWindowDisplayState.NORMAL){ var beforeState = window.nativeWindow.displayState; var afterState = air.NativeWindowDisplayState.NORMAL; var displayStateEvent = new air.NativeWindowDisplayStateEvent(air.NativeWindowDisplayStateEvent.DISPLAY_STATE_CHANGING, true,true,beforeState,afterState); window.nativeWindow.dispatchEvent(displayStateEvent); if(!displayStateEvent.isDefaultPrevented()){ window.nativeWindow.restore(); return true; } else { return false; } } return false; }
flash.display.NativeWindowDisplayStateflash.events.NativeWindowDisplayStateEvent
startMove Commence le déplacement commandé par le système de cette fenêtre.Si la méthode est appelée après la fermeture de cette fenêtre. IllegalOperationErrorflash.errors:IllegalOperationErrortrue si le déplacement a été initié et false si la fenêtre est agrandie. Boolean Commence le déplacement commandé par le système de cette fenêtre.

Lorsqu’elle est appelée d’un événement mouseDown, cette méthode lance une séquence de déplacement gérée par la souris qui continue jusqu’à ce que l’événement mouseUp ait lieu.

Lorsque cette méthode est appelée d’un autre code, elle lance une séquence de déplacement gérée par un clavier ou une souris cohérente avec la séquence par défaut du système d’exploitation.

Lors d’une séquence de déplacement, une série d’événements est distribuée lors du déplacement de l’origine de la fenêtre. Pour chaque déplacement incrémentiel, un événement moving est d’abord distribué puis, si l’événement moving n’est pas annulé, l’emplacement de la fenêtre est mis à jour et un événement move est distribué. Si un événement moving est annulé, la séquence move est arrêtée immédiatement.

L’exemple suivant indique comment déplacer une fenêtre en réponse à un événement mouseDown : var initOpts:NativeWindowInitOptions = new NativeWindowInitOptions(); var win:NativeWindow = new NativeWindow(initOpts); win.activate(); win.stage.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler); function mouseDownHandler(event:MouseEvent):void { win.startMove(); }
startResize Commence une opération de redimensionnement commandée par le système de cette fenêtre.Si la méthode est appelée après la fermeture de cette fenêtre. IllegalOperationErrorflash.errors:IllegalOperationErrortrue si le redimensionnement a été initié et false si la fenêtre est agrandie. BooleanedgeOrCornerStringBRUne constante de la classe NativeWindowResize qui spécifie le bord ou l’angle de cette fenêtre à redimensionner. Les valeurs suivantes sont prises en charge :

ValeurAlignement verticalAlignement horizontalNativeWindowResize.TOPHautCentreNativeWindowResize.BOTTOMAligner les bords inférieursCentreNativeWindowResize.LEFTCentreGaucheNativeWindowResize.RIGHTCentreDroitNativeWindowResize.TOP_LEFTHautGaucheNativeWindowResize.TOP_RIGHTHautDroitNativeWindowResize.BOTTOM_LEFTAligner les bords inférieursGaucheNativeWindowResize.BOTTOM_RIGHTAligner les bords inférieursDroitNativeWindowResize.NONE----

Commence une opération de redimensionnement commandée par le système de cette fenêtre.

Lorsqu’elle est appelée d’un gestionnaire d’événement mouseDown, cette méthode lance une séquence de redimensionnement effectuée par la souris qui continue jusqu’à ce que l’événement mouseUp ait lieu.

Lorsque cette méthode est appelée d’un autre code, elle lance une séquence de redimensionnement effectuée par un clavier ou une souris cohérente avec la séquence par défaut du système d’exploitation.

Lors d’une séquence de redimensionnement, une série d’événements est distribuée lors du changement de dimensions de la fenêtre. Pour chaque changement incrémentiel, un événement resizing est d’abord distribué puis, si l’événement resizing n’est pas annulé, les dimensions de la fenêtre sont mises à jour et un événement resize est distribué. Si un événement resizing est annulé, la séquence move est arrêtée immédiatement.

L’exemple suivant indique comment redimensionner une fenêtre en réponse à un événement mouseDown : stage.addEventListener(MouseEvent.MOUSE_DOWN, onResizeCommand); function onResizeCommand(event:MouseEvent):void { var win:NativeWindow = event.target.nativeWindow; var resizeFrom:String = ""; if (event.stageY < win.height * .33) { resizeFrom = NativeWindowResize.TOP; } else if (event.stageY > win.height * .66) { resizeFrom = NativeWindowResize.BOTTOM; } if (event.stageX < win.width * .33) { resizeFrom += NativeWindowResize.LEFT; } else if (event.stageX > win.width * .66) { resizeFrom += NativeWindowResize.RIGHT; } win.startResize(resizeFrom); }
flash.display.NativeWindowResize
active Indique si cette fenêtre est la fenêtre de l’application active.Boolean Indique si cette fenêtre est la fenêtre de l’application active.

Utilisez la méthode activate() pour activer une fenêtre.

flash.display.NativeWindow.activate()flash.desktop.NativeApplication.activate()
alwaysInFront Spécifie si cette fenêtre est toujours devant d’autres fenêtres (y compris celles d’autres applications).Boolean Spécifie si cette fenêtre est toujours devant d’autres fenêtres (y compris celles d’autres applications).

Il existe deux groupes de fenêtres dans l’ordre de profondeur du système. Les fenêtres du groupe alwaysInFront sont toujours affichées devant toutes les autres fenêtres. L’ordre de profondeur entre des fenêtres du même groupe est déterminé normalement. En d’autres termes, l’activation d’une fenêtre la déplace devant d’autres fenêtres de son groupe.

Si vous changez alwaysInFront de false à true, la fenêtre est déplacée au-dessus de toutes les autres fenêtres. Si vous changez la propriété de true à false, la fenêtre est déplacée à l’arrière des fenêtres « alwaysInFront », mais toujours devant d’autres fenêtres. Si vous réglez la propriété sur sa valeur actuelle, l’ordre de profondeur de la fenêtre ne change pas. La définition de la propriété alwaysInFront d’une fenêtre ayant une fenêtre propriétaire est sans effet.

La propriété alwaysInFront ne doit que rarement être définie sur true car les fenêtres ayant ce réglage apparaissent devant les fenêtres d’autres applications même lorsque l’autre application est active.

Remarques concernant le comportement du SE :

  • Sous Linux, certains gestionnaires de fenêtres n’affichent pas les fenêtres dont la propriété alwaysInFront est définie sur devant des fenêtres plein écran.
  • Sous Mac® OS X, le réglage de alwaysInFront sur true est sans effet lorsque la propriété displayState de la scène de la fenêtre est fullScreen ou fullScreenInteractive.
Les exemples suivants forcent une fenêtre à s’afficher devant toutes les autres fenêtres (qui ne sont pas forcées à s’afficher devant, comme elle) : windowObj.alwaysInFront = true; Avec une référence à un objet d’affichage sur la scène de la fenêtre : displayObject.stage.nativeWindow.alwaysInFront=true; A partir d’une routine JavaScript s’exécutant dans un objet HTMLLoader dans la fenêtre (ou une fenêtre HTML racine) : window.nativeWindow.alwaysInFront = true;
bounds La taille et l’emplacement de cette fenêtre.flash.geom:RectangleSi le rectangle est null ou contient des valeurs non valides. ArgumentErrorArgumentErrorSi vous accédez à la propriété bounds après la fermeture de cette fenêtre. IllegalOperationErrorflash.errors:IllegalOperationError La taille et l’emplacement de cette fenêtre.

Les dimensions d’une fenêtre incluent les chromes système. Les dimensions de la scène d’une fenêtre équivalent à celles de la fenêtre, moins la taille des chromes système. La modification de la largeur et de la hauteur de la fenêtre change les stageWidth et stageHeight de la scène. Le contraire s’applique également ; la modification des dimensions de la scène change la taille de la fenêtre.

Dans une fenêtre HTML racine, les propriétés outerWidth et outerHeigth équivalent aux propriétés height et width de la fenêtre. Les propriétés innerWidth et innerHeight équivalent aux propriétés stage.stageWidth et stage.stageHeight, moins l’épaisseur des barres de défilement automatiques affichées par la fenêtre.

Un événement resize est distribué chaque fois que la largeur ou la hauteur de cette fenêtre change. De même, un événement move est distribué chaque fois que l’origine (x,y) de cette fenêtre change. Sous Mac OS et Windows, la définition directe de la propriété bounds ne distribue pas d’événement moving ou resizing. Toutefois, sous Linux, l’objet NativeWindow distribue un événement moving et resizing lorsque vous définissez la propriété bounds.

La définition de la propriété bounds d’une fenêtre équivaut à la définition de ses propriétés x, y, width et height. De même, définir l’une des dimensions individuelles revient à définir la propriété bounds. Lorsque vous définissez simultanément toutes les dimensions via la propriété bounds, moins d’événements sont distribués.

L’ordre dans lequel sont définies les dimensions individuelles n’est pas garanti. Sur les gestionnaires de fenêtres de Linux qui ne permettent pas d’agrandir les fenêtres au-delà de la zone du bureau, il est possible de bloquer la modification d’une propriété individuelle, même si la modification de toutes les propriétés aurait de toute façon entraîné la création d’une fenêtre autorisée.

Si la largeur ou la hauteur spécifiée est inférieure à la largeur ou hauteur minimale, ou supérieure à la largeur ou hauteur maximale autorisée, la largeur ou la hauteur de la fenêtre est définie sur la taille autorisée la plus proche. Les facteurs qui déterminent les largeurs et les hauteurs minimales et maximales sont les suivants :

  • Propriétés minSize et maxSize de l’objet NativeWindow
  • Limites minimales et maximales du système d’exploitation, qui sont les valeurs de NativeWindow.systemMinSize et NativeWindow.systemMaxSize
  • Largeur et hauteur maximales d’une fenêtre dans Adobe AIR, chacune de 4 095 pixels. (Dans AIR 1.5 et les versions antérieures, la largeur et la hauteur maximales d’une fenêtre sont de 2 880 pixels chacune.)
  • Largeur et hauteur minimales requises par tout chrome système affiché.

Les valeurs en pixels sont arrondies au nombre entier le plus proche lorsque la position ou les dimensions d’une fenêtre sont modifiées.

Les exemples suivants définissent les limites d’une fenêtre avec une référence à un objet NativeWindow : windowObj.bounds = new Rectangle(200, 200, 1000, 800); Avec une référence à un objet d’affichage sur la scène de la fenêtre : displayObject.stage.nativeWindow.bounds = new Rectangle(20, 20, 800, 600); A partir d’une routine JavaScript s’exécutant dans un objet HTMLLoader dans la fenêtre (ou une fenêtre HTML racine) : window.nativeWindow.bounds = new air.Rectangle(20, 20, 800, 600);
flash.display.NativeWindowInitOptions.
closed Indique si cette fenêtre a été fermée.Boolean Indique si cette fenêtre a été fermée.

L’accès aux propriétés suivantes dans une fenêtre fermée renvoie une erreur d’opération non autorisée :

  • title
  • bounds
  • x, y, width, height
  • displayState
  • visible

De même, l’appel des méthodes suivantes sur une fenêtre fermée renvoie également une erreur d’opération non autorisée :

  • minimize()
  • maximize()
  • restore()
  • startResize()
  • startMove()
Les exemples suivants indiquent comment accéder à la propriété closed d’une fenêtre : var isWindowClosed:Boolean = windowObj.closed; Avec une référence à un objet d’affichage sur la scène de la fenêtre : var isWindowClosed:Boolean = displayObject.stage.nativeWindow.closed; A partir d’une routine JavaScript s’exécutant dans objet HTMLLoader dans la fenêtre (ou une fenêtre HTML racine) : var isWindowClosed = window.nativeWindow.closed;
displayState Etat d’affichage de cette fenêtre.StringSi vous accédez à la propriété displayState après la fermeture de cette fenêtre. IllegalOperationErrorflash.errors:IllegalOperationError Etat d’affichage de cette fenêtre.

Les constantes pour les valeurs possibles sont définies dans la classe NativeWindowDisplayState :

  • NativeWindowDisplayState.NORMAL
  • NativeWindowDisplayState.MINIMIZED
  • NativeWindowDisplayState.MAXIMIZED
L’exemple suivant indique comment obtenir l’état d’affichage de la fenêtre actuelle avec une référence à l’objet window : var state:String = windowObj.displayState;
flash.display.NativeWindowDisplayState
height La hauteur de cette fenêtre en pixels.NumberSi la valeur est définie sur null ou n’est pas valide. ArgumentErrorArgumentErrorSi vous accédez à la propriété après la fermeture de cette fenêtre. IllegalOperationErrorflash.errors:IllegalOperationError La hauteur de cette fenêtre en pixels.

Les dimensions d’une fenêtre comprennent tout chrome système affiché. La hauteur de la zone d’affichage utilisable est disponible depuis la propriété Stage.stageHeight.

Changer la propriété height d’une fenêtre équivaut à changer la hauteur à l’aide de la propriété bounds.

Si la hauteur spécifiée est inférieure à la hauteur minimale, ou supérieure à la hauteur maximale autorisée, la largeur ou la hauteur de la fenêtre est définie sur la taille autorisée la plus proche. Les facteurs qui déterminent les hauteurs minimales et maximales sont les suivants :

  • Propriétés minSize.x et maxSize.x de l’objet NativeWindow
  • Limites minimales et maximales du système d’exploitation, qui sont les valeurs de NativeWindow.systemMinSize.x et NativeWindow.systemMaxSize.x.
  • Hauteur maximale d’une fenêtre dans Adobe AIR, qui est de 4 095 pixels (2 880 pixels dans AIR 1.5 et les versions antérieures).

Sous Linux, la définition de la propriété height est une opération asynchrone.

Pour détecter la fin du changement de hauteur, écoutez l’événement resize, qui est distribué sur toutes les plates-formes.

Les valeurs en pixels sont arrondies au nombre entier le plus proche lorsque la hauteur d’une fenêtre est modifiée.

flash.display.NativeWindow.boundsflash.display.Stage.stageHeight
isSupported Indique si les fenêtres natives sont prises en charge sur le système client.Boolean Indique si les fenêtres natives sont prises en charge sur le système client. maxSize Taille maximale pour cette fenêtre.flash.geom:PointSi la taille attribuée ne se trouve pas dans la plage des tailles de fenêtre minimum et maximum du système d’exploitation. IllegalOperationErrorflash.errors:IllegalOperationErrorSi la taille est interdite pour les droits d’accès actuels au contenu. SecurityErrorSecurityErrorSi la taille est null ou contient des valeurs non valides. ArgumentErrorArgumentErrorSi vous accédez à la propriété maxSize après la fermeture de cette fenêtre. IllegalOperationErrorflash.errors:IllegalOperationError Taille maximale pour cette fenêtre.

La limite de taille est spécifiée comme coordonnées d’un objet Point. La propriété x du point correspond à la largeur de la fenêtre et la propriété y à sa hauteur.

La restriction maxSize est imposée pour les opérations de redimensionnement de la fenêtre qui sont invoquées au moyen du code ActionScript et du système d’exploitation.

La définition de maxSize change les limites de la fenêtre si les limites actuelles sont supérieures à la nouvelle taille maximale.

Si la largeur ou la hauteur spécifiée est supérieure à la largeur ou à la hauteur maximale autorisée, la largeur de fenêtre est alors définie sur la taille autorisée la plus proche. Les facteurs qui déterminent les largeurs et les hauteurs minimales et maximales sont les suivants :

  • Limite maximale du système d’exploitation, qui est la valeur NativeWindow.systemMaxSize.
  • Largeur et hauteur maximales d’une fenêtre dans Adobe AIR, qui sont chacune de 4 095 pixels. (Dans AIR 1.5 et les versions antérieures, la largeur et la hauteur maximales d’une fenêtre sont de 2 880 pixels chacune.)

Remarque : sous certains systèmes d’exploitation tels que Mac OS X, l’agrandissement d’une fenêtre n’augmente la taille de la fenêtre que jusqu’à la valeur maxSize, même si la fenêtre agrandie est plus petite que l’écran du système d’exploitation. La fenêtre demeure dans l’état d’affichage agrandi.

Les exemples suivants indiquent comment régler la taille maximale autorisée pour une fenêtre. windowObj.maxSize = new Point(1040,920); Avec une référence à un objet d’affichage sur la scène de la fenêtre : displayObject.stage.nativeWindow.maxSize = new Point(800,600); A partir d’une routine JavaScript s’exécutant dans un objet HTMLLoader dans une fenêtre (ou dans une fenêtre HTML racine) : window.nativeWindow.maxSize = new air.Point(960,960);
flash.display.NativeWindow.systemMinSizeflash.display.NativeWindow.systemMaxSize
maximizable Indique le paramètre maximizable utilisé pour créer cette fenêtre.BooleanLorsque vous tentez de définir la valeur false sans privilèges suffisants. SecurityErrorSecurityErrorSi vous accédez à la propriété après la fermeture de cette fenêtre. IllegalOperationErrorflash.errors:IllegalOperationError Indique le paramètre maximizable utilisé pour créer cette fenêtre.

Le paramètre maximizable ne peut pas être modifié après la création d’une fenêtre.

Remarque : sous Linux, certains gestionnaires de fenêtres permettent à l’utilisateur d’agrandir les fenêtres même lorsque la propriété maximizable est définie sur false.

flash.display.NativeWindowInitOptions.maximizable
menu Le menu natif pour cette fenêtre.flash.display:NativeMenu Le menu natif pour cette fenêtre.

Lorsqu’un objet NativeMenu est attribué à la propriété menu de la fenêtre, un menu natif s’affiche pour une fenêtre si NativeWindow.supportsMenu est true, à moins que la propriété systemChrome de la fenêtre soit NativeWindowSystemChrome.NONE.

Remarque : l’attribution d’un menu à une fenêtre lorsque NativeWindow.supportsMenu est false ou lorsque la propriété systemChrome de la fenêtre est NativeWindowSystemChrome.NONE est autorisée, mais n’a aucune incidence. Utilisez la propriété NativeWindow.supportsMenu pour déterminer si le système d’exploitation prend en charge les fenêtres de l’application. Faire appel à d’autres méthodes (comme Capabilities.os) pour déterminer les prises en charge peut entraîner des erreurs de programmation (si certains systèmes d’exploitation cible possibles ne sont pas pris en compte).

flash.display.NativeWindow.supportsMenu
minSize Taille minimale pour cette fenêtre.flash.geom:PointSi la taille attribuée ne se trouve pas dans la plage de tailles de fenêtre minimum et maximum du système d’exploitation. IllegalOperationErrorflash.errors:IllegalOperationErrorSi la taille est interdite pour les droits d’accès actuels au contenu. SecurityErrorSecurityErrorSi la taille est null ou contient des valeurs non valides. ArgumentErrorArgumentErrorSi vous accédez à la propriété minSize après la fermeture de cette fenêtre. IllegalOperationErrorflash.errors:IllegalOperationError Taille minimale pour cette fenêtre.

La limite de taille est spécifiée comme coordonnées d’un objet Point. La propriété x du point correspond à la largeur de la fenêtre et la propriété y à sa hauteur.

Le réglage de minSize change les limites de la fenêtre si les limites actuelles sont inférieures à la nouvelle taille minimale.

La restriction minSize est imposée pour les opérations de redimensionnement de la fenêtre qui sont invoquées au moyen du code ActionScript et du système d’exploitation.

Remarque : la largeur et la hauteur de tout chrome système affiché risquent de rendre impossible le réglage d’une fenêtre à une taille aussi petite que la taille minimale spécifiée.

Les exemples suivants indiquent comment régler la taille minimale autorisée pour une fenêtre: windowObj.minSize = new Point(200,80); Avec une référence à un objet d’affichage sur la scène de la fenêtre : displayObject.stage.nativeWindow.minSize = new Point(120,60); A partir d’une routine JavaScript s’exécutant dans un objet HTMLLoader dans une fenêtre (ou dans une fenêtre HTML racine) : window.nativeWindow.minSize = new air.Point(80,60);
flash.display.NativeWindow.systemMinSizeflash.display.NativeWindow.systemMaxSize
minimizable Indique le paramètre minimizable utilisé pour créer cette fenêtre.BooleanLorsque vous tentez de définir la valeur false sans privilèges suffisants. SecurityErrorSecurityErrorSi vous accédez à la propriété après la fermeture de cette fenêtre. IllegalOperationErrorflash.errors:IllegalOperationError Indique le paramètre minimizable utilisé pour créer cette fenêtre.

Le paramètre minimizable ne peut pas être modifié après la création d’une fenêtre.

Remarque : sous Linux, certains gestionnaires de fenêtres permettent à l’utilisateur de réduire les fenêtres même lorsque la propriété minimizable est définie sur false.

flash.display.NativeWindowInitOptions.minimizable
owner Objet NativeWindow qui détient cette fenêtre.flash.display:NativeWindow Objet NativeWindow qui détient cette fenêtre.

La propriété des fenêtres est établie lorsqu’une fenêtre est créée et ne peut pas être modifiée. Pour créer une fenêtre ayant un propriétaire, définissez l’objet NativeWindow propriétaire en tant que propriété owner de l’objet NativeWindowInitOptions utilisé pour créer la fenêtre possédée.

Remarque : sous Linux, certains gestionnaires de fenêtres n’affichent pas les fenêtres possédées devant la fenêtre propriétaire lorsque celle-ci est en mode plein écran.

flash.display.NativeWindowInitOptions.owner
resizable Indique le paramètre resizable utilisé pour créer cette fenêtre.BooleanLorsque vous tentez de définir la valeur false sans privilèges suffisants. SecurityErrorSecurityErrorSi vous accédez à la propriété après la fermeture de cette fenêtre. IllegalOperationErrorflash.errors:IllegalOperationError Indique le paramètre resizable utilisé pour créer cette fenêtre.

Le paramètre resizable ne peut pas être modifié après la création d’une fenêtre.

flash.display.NativeWindowInitOptions.
stage L’objet Stage pour cette fenêtre.flash.display:Stage Objet Stage pour cette fenêtre. L’objet Stage est l’objet racine dans l’architecture de la liste d’affichage utilisée dans le contenu SWF basé sur ActionScript 3.0.

La scène est la racine de la liste d’affichage pour la fenêtre. Ajoutez des objets visual display à une fenêtre en les ajoutant à la scène ou à un autre objet se trouvant déjà dans la liste d’affichage de cette scène. Les dimensions de la scène sont celles de la zone client de la fenêtre lorsque celle-ci utilise le chrome système. Les dimensions de la scène équivalent à celles de la fenêtre si le chrome système n’est pas utilisé.

L’exemple suivant indique comment définir les propriétés stage pour une occurrence NativeWindow : import flash.display.StageAlign; windowObj.stage.align = StageAlign.TOP_LEFT;
flash.display.Stage
supportsMenu Indique si AIR prend en charge les menus de fenêtre natifs sur le système de l’ordinateur actuel.Boolean Indique si AIR prend en charge les menus de fenêtre natifs sur le système de l’ordinateur actuel.

Lorsque NativeWindow.supportsMenu est true, un menu natif est affiché pour une fenêtre lorsqu’un objet NativeMenu est attribué à la propriété menu de cette fenêtre, à moins que la propriété systemChrome soit NativeWindowSystemChrome.NONE. Utilisez la propriété NativeWindow.supportsMenu pour déterminer si le système d’exploitation prend en charge les menus de fenêtre natifs de l’application. Faire appel à d’autres méthodes (comme Capabilities.os) pour déterminer les prises en charge peut entraîner des erreurs de programmation (si certains systèmes d’exploitation cible possibles ne sont pas pris en compte).

Remarque : l’attribution d’un menu à une fenêtre lorsque NativeWindow.supportsMenu est false ou lorsque la propriété systemChrome de la fenêtre est NativeWindowSystemChrome.NONE est autorisée, mais n’a aucune incidence.

flash.display.NativeMenuflash.desktop.NativeApplication.supportsMenu
supportsNotification Indique si AIR prend en charge le repérage de notification de fenêtre sur le système de l’ordinateur actuel.Boolean Indique si AIR prend en charge le repérage de notification de fenêtre sur le système de l’ordinateur actuel.

Lorsque NativeWindow.supportsNotification est true, l’appel de la méthode notifyUser() de la fenêtre entraîne l’affichage d’un repère visuel indiquant à l’utilisateur qu’un événement intéressant s’est produit. Ce repère visuel est conforme à la convention du système d’exploitation du système natif. Par exemple, sous Windows®, l’icône de la barre des tâches clignote.

Remarque : l’appel de notifyUser() lorsque NativeWindow.supportsNotification est false est autorisé mais n’a aucune incidence.

flash.display.NativeWindow.notifyUser()
supportsTransparency Indique si AIR prend en charge les fenêtres natives avec des pixels transparents.Boolean Indique si AIR prend en charge les fenêtres natives avec des pixels transparents.

Lorsque NativeWindow.supportsTransparency est true, la transparence des pixels d’une fenêtre native est respectée si la propriété transparent de la fenêtre est définie sur true. L’opacité de tous les pixels est définie sur 1 si NativeWindow.supportsTransparency est false, quelle que soit la valeur de la propriété transparent de la fenêtre. Les pixels complètement transparents apparaissent en noir lorsque la propriété NativeWindow.supportsTransparency est définie sur false. Utilisez la propriété NativeWindow.supportsTransparency pour déterminer si le système d’exploitation prend en charge la transparence. Faire appel à d’autres méthodes (comme Capabilities.os) pour déterminer les prises en charge peut entraîner des erreurs de programmation (si certains systèmes d’exploitation cible possibles ne sont pas pris en compte).

Remarque : la valeur de cette propriété peut changer en fonction des préférences de l’utilisateur du système d’exploitation si une application est en cours d’exécution.

flash.display.NativeWindow.transparent
systemChrome Indique le paramètre de chrome système utilisé pour créer cette fenêtre.StringLorsque vous tentez de définir la valeur false sans privilèges suffisants. SecurityErrorSecurityErrorSi vous accédez à la propriété après la fermeture de cette fenêtre. IllegalOperationErrorflash.errors:IllegalOperationError Indique le paramètre de chrome système utilisé pour créer cette fenêtre.

Les valeurs renvoyées par NativeWindow.systemChrome sont l’une des constantes définies dans la classe NativeWindowSystemChrome.

Le paramètre de chrome système ne peut pas être modifié après la création d’une fenêtre.

L’exemple suivant indique comment obtenir le chrome système pour une fenêtre : var sysChromeType:String = windowObj.systemChrome; Avec une référence à un objet d’affichage sur la scène de la fenêtre : var sysChromeType:String = displayObject.stage.nativeWindow.systemChrome; A partir d’une routine JavaScript s’exécutant dans objet HTMLLoader dans la fenêtre (ou une fenêtre HTML racine) : var sysChromeType = window.nativeWindow.systemChrome; L’exemple suivant indique comment changer les paramètres de transparence et de chrome système apparents en créant une fenêtre et en déplaçant tous les objets d’affichage enfant vers la nouvelle fenêtre : import flash.display.NativeWindow; import flash.display.NativeWindowSystemChrome; import flash.display.NativeWindowInitOptions; public function deChromeWindow(oldWindow:NativeWindow):NativeWindow{ if(oldWindow.systemChrome != NativeWindowSystemChrome.NONE){ var newOptions:NativeWindowInitOptions = new NativeWindowInitOptions(); newOptions.systemChrome = NativeWindowSystemChrome.NONE; newOptions.transparent = true; var newWindow:NativeWindow = new NativeWindow(newOptions); newWindow.stage.stageWidth = oldWindow.stage.stageWidth; newWindow.stage.stageHeight = oldWindow.stage.stageHeight; newWindow.stage.align = oldWindow.stage.align; newWindow.stage.scaleMode = oldWindow.stage.scaleMode; for(var i:int = 0; i < oldWindow.stage.numChildren; i++){ newWindow.stage.addChild(oldWindow.stage.getChildAt(i)); } newWindow.activate(); oldWindow.close(); return newWindow; } return oldWindow; }
flash.display.NativeWindowSystemChromeflash.display.NativeWindowInitOptions.systemChrome
systemMaxSize La taille de fenêtre la plus grande autorisée par le système d’exploitation.flash.geom:Point La taille de fenêtre la plus grande autorisée par le système d’exploitation.

La limite de taille est spécifiée comme coordonnées d’un objet Point. La propriété x du point correspond à la largeur de la fenêtre et la propriété y à sa hauteur.

Outre la limite de taille du système d’exploitation, AIR présente une limite de taille de fenêtre maximale de 4 095 par 4 095 pixels (2 880 par 2 880 pixels dans AIR 1.5 et les versions antérieures). Une application peut définir une limite à l’aide de la propriété maxSize de l’objet NativeWindow.

systemMinSize La taille de fenêtre la plus petite autorisée par le système d’exploitation.flash.geom:Point La taille de fenêtre la plus petite autorisée par le système d’exploitation.

La limite de taille est spécifiée comme coordonnées d’un objet Point. La propriété x du point correspond à la largeur de la fenêtre et la propriété y à sa hauteur.

title Le titre de la fenêtre.StringSi vous accédez à la propriété après la fermeture de cette fenêtre. IllegalOperationErrorflash.errors:IllegalOperationError Le titre de la fenêtre.

Le titre apparaît dans le chrome système pour la fenêtre, le cas échéant, ainsi que dans d’autres emplacements dépendant du système (la barre des tâches, par exemple).

L’exemple suivant définit le titre d’un objet window : windowObj.title = "Window Title";
transparent Indique le paramètre de transparence utilisé pour créer cette fenêtre.BooleanLorsque vous tentez de définir la valeur false sans privilèges suffisants. SecurityErrorSecurityErrorSi vous accédez à la propriété après la fermeture de cette fenêtre. IllegalOperationErrorflash.errors:IllegalOperationError Indique le paramètre de transparence utilisé pour créer cette fenêtre.

La propriété transparent ne peut pas être modifiée après la création d’une fenêtre. La transparence affecte l’apparence visuelle et le comportement de la souris de la fenêtre. Sous Windows et Mac OS X, la fenêtre ne capture pas les événements de souris lorsque la valeur alpha du pixel est inférieure à un certain seuil, compris entre 0,06 et 0,01 selon le système d’exploitation. Sous Linux, la fenêtre capture les événements de souris au-dessus des zones complètement transparentes, ce qui, par conséquent, empêche les utilisateurs d’accéder à d’autres fenêtres ou éléments sur le bureau.

Remarque : la transparence de la fenêtre n’est pas toujours prise en charge. Il est possible que la transparence ne soit pas disponible selon la configuration du système d’exploitation de l’utilisateur, auquel cas la fenêtre est créée sans transparence. Les zones qui auraient été transparentes sont donc créées en noir. Utilisez la propriété NativeWindow.supportsTransparency pour déterminer si la transparence de la fenêtre est prise en charge.

flash.display.NativeWindowInitOptions.transparent
type Indique le paramètre de type de fenêtre utilisé pour créer cette fenêtre.StringLorsque vous tentez de définir la valeur false sans privilèges suffisants. SecurityErrorSecurityErrorSi vous accédez à la propriété après la fermeture de cette fenêtre. IllegalOperationErrorflash.errors:IllegalOperationError Indique le paramètre type utilisé pour créer cette fenêtre.

Les valeurs renvoyées par NativeWindow.type sont l’une des constantes définies dans la classe NativeWindowType.

Le paramètre type ne peut pas être modifié après la création d’une fenêtre.

flash.display.NativeWindowTypeflash.display.NativeWindowInitOptions.type
visible Spécifie si cette fenêtre est visible.BooleanLorsque vous tentez de définir la valeur false sans privilèges suffisants. SecurityErrorSecurityErrorSi vous accédez à la propriété après la fermeture de cette fenêtre. IllegalOperationErrorflash.errors:IllegalOperationError Spécifie si cette fenêtre est visible.

Une fenêtre invisible n’est pas affichée sur le bureau, mais toutes les méthodes et les propriétés window sont valides.

Par défaut, visible est définie sur false. Pour afficher une fenêtre, réglez visible sur true ou appelez NativeWindow.activate().

Si cette fenêtre a un propriétaire, l’état visible de la fenêtre propriétaire détermine si cette fenêtre est affichée. Si la fenêtre propriétaire n’est pas affichée, toutes les fenêtres possédées ne sont pas affichées, même si leurs propriétés visible sont définies sur true.

Remarque : sur Mac OS X, la définition de visible=false sur une fenêtre réduite ne supprime pas l’icône de la fenêtre du dock. Si un utilisateur clique ensuite sur l’icône du Dock, la fenêtre revient à l’état visible et s’affiche sur le bureau.

Les exemples suivants indiquent comment accéder à la propriété visible d’une fenêtre : windowObj.visible = true; Avec une référence à un objet d’affichage sur la scène de la fenêtre : displayObj.stage.nativeWindow.visible = true; A partir d’une routine JavaScript s’exécutant dans objet HTMLLoader dans la fenêtre (ou une fenêtre HTML racine) : window.nativeWindow.visible = true;
activate()
width La largeur de cette fenêtre en pixels.NumberSi la valeur est définie sur null ou n’est pas valide. ArgumentErrorArgumentErrorSi vous accédez à la propriété après la fermeture de cette fenêtre. IllegalOperationErrorflash.errors:IllegalOperationError La largeur de cette fenêtre en pixels.

Les dimensions indiquées pour une fenêtre native comprennent tout chrome système affiché. La largeur de la zone d’affichage utilisable est disponible depuis la propriété Stage.stageWidth.

Changer la propriété width d’une fenêtre équivaut à changer la largeur à l’aide de la propriété bounds.

Si la largeur spécifiée est inférieure à la hauteur minimale, ou supérieure à la largeur maximale autorisée, la largeur ou la largeur de la fenêtre est définie sur la taille autorisée la plus proche. Les facteurs qui déterminent les largeurs minimales et maximales sont les suivants :

  • Propriétés minSize.y et maxSize.y de l’objet NativeWindow
  • Limites minimales et maximales du système d’exploitation, qui sont les valeurs de NativeWindow.systemMinSize.y et NativeWindow.systemMaxSize.y.
  • Largeur maximale d’une fenêtre dans Adobe AIR, qui est de 4 095 pixels (2 880 pixels dans AIR 1.5 et les versions antérieures).

Sous Linux, la définition de la propriété width est une opération asynchrone.

Pour détecter la fin du changement de largeur, écoutez l’événement resize, qui est distribué sur toutes les plates-formes.

Les valeurs en pixels sont arrondies au nombre entier le plus proche lorsque la largeur d’une fenêtre est modifiée.

flash.display.NativeWindow.boundsflash.display.Stage.stageWidth
x Coordonnée de l’axe horizontal de l’angle supérieur gauche de cette fenêtre par rapport à l’origine du bureau du système d’exploitation.NumberSi la valeur est définie sur null ou n’est pas valide. ArgumentErrorArgumentErrorSi vous accédez à la propriété après la fermeture de cette fenêtre. IllegalOperationErrorflash.errors:IllegalOperationError Coordonnée de l’axe horizontal de l’angle supérieur gauche de cette fenêtre par rapport à l’origine du bureau du système d’exploitation.

Sur les systèmes équipés de plusieurs écrans, x peut être négatif. Si vous enregistrez la valeur, par exemple pour repositionner une fenêtre à son emplacement précédent, pensez à toujours vérifier que la fenêtre est placée dans un emplacement utilisable lorsque la position est restaurée. Les modifications de la résolution ou de l’organisation de l’écran peuvent entraîner le placement de la fenêtre en dehors de l’écran. Utilisez la classe Screen pour obtenir des informations sur la géométrie du bureau.

Changer la propriété x d’une fenêtre équivaut à changer l’emplacement à l’aide de la propriété bounds.

Sous Linux, la définition de la propriété x est une opération asynchrone.

Pour détecter la fin du changement de position, écoutez l’événement move, qui est distribué sur toutes les plates-formes.

Les valeurs en pixels sont arrondies au nombre entier le plus proche la coordonnée x d’une fenêtre est modifiée.

flash.display.NativeWindow.boundsflash.display.Screen
y Coordonnée de l’axe vertical de l’angle supérieur gauche de cette fenêtre par rapport à l’angle supérieur gauche du bureau du système d’exploitation.NumberSi la valeur est définie sur null ou n’est pas valide. ArgumentErrorArgumentErrorSi vous accédez à la propriété après la fermeture de cette fenêtre. IllegalOperationErrorflash.errors:IllegalOperationError Coordonnée de l’axe vertical de l’angle supérieur gauche de cette fenêtre par rapport à l’angle supérieur gauche du bureau du système d’exploitation.

Sur les systèmes équipés de plusieurs écrans, y peut être négatif. Si vous enregistrez la valeur, par exemple pour repositionner une fenêtre à son emplacement précédent, pensez à toujours vérifier que la fenêtre est placée dans un emplacement utilisable lorsque la position est restaurée. Les modifications de la résolution ou de l’organisation de l’écran peuvent entraîner le placement de la fenêtre en dehors de l’écran. Utilisez la classe Screen pour obtenir des informations sur la géométrie du bureau.

Changer la propriété y d’une fenêtre équivaut à changer l’emplacement à l’aide de la propriété bounds.

Sous Linux, la définition de la propriété y est une opération asynchrone.

Pour détecter la fin du changement de position, écoutez l’événement move, qui est distribué sur toutes les plates-formes.

Les valeurs en pixels sont arrondies au nombre entier le plus proche la coordonnée y d’une fenêtre est modifiée.

flash.display.NativeWindow.boundsflash.display.Screen
Stage La classe Stage représente la zone de dessin principale.flash.display:DisplayObjectContainer La classe Stage représente la zone de dessin principale.

Pour le contenu SWF s’exécutant dans le navigateur (dans Flash® Player), la scène représente la zone entière où le contenu Flash est affiché. Pour le contenu s’exécutant dans AIR sur des systèmes d’exploitation de bureau, chaque objet NativeWindow a un objet Stage correspondant.

Il est impossible d’accéder globalement à l’objet Stage. Vous devez y accéder à l’aide de la propriété stage d’une occurrence d’objet DisplayObject.

La classe Stage descend de plusieurs autres classes, DisplayObjectContainer, InteractiveObject, DisplayObject et EventDispatcher, dont elle hérite des propriétés et des méthodes. La plupart de ces propriétés et de ces méthodes soit ne n’appliquent pas aux objets Stage, soit nécessite des vérifications de sécurité lorsqu’elles sont appelées sur un objet Stage. Les propriétés et les méthodes qui nécessitent des vérifications de sécurité sont documentées dans le cadre de la classe Stage.

Les propriétés héritées suivantes ne s’appliquent pas non plus aux objets Stage. Si vous tentez de les définir, une exception IllegalOperationError est renvoyée. Ces propriétés peuvent toujours être lues, mais dans la mesure où elles ne peuvent pas être définies, elles comportent toujours des valeurs par défaut.

  • accessibilityProperties
  • alpha
  • blendMode
  • cacheAsBitmap
  • contextMenu
  • filtres
  • focusRect
  • loaderInfo
  • mask
  • mouseEnabled
  • name
  • opaqueBackground
  • rotation
  • scale9Grid
  • scaleX
  • scaleY
  • scrollRect
  • tabEnabled
  • tabIndex
  • transformation
  • visible
  • x
  • y

Certains événements que vous soupçonniez appartenir à la classe Stage, tels que enterFrame, exitFrame, frameConstructed et render, ne peuvent pas être des événements Stage, car l’existence d’une référence à l’objet Stage ne peut être garantie dans toutes les situations où ces événements sont utilisés. Etant donné que ces événements ne peuvent pas être distribués par l’objet Stage, ils le sont par chaque occurrence de DisplayObject, ce qui signifie que vous pouvez ajouter un écouteur d’événement à n’importe quelle occurrence de DisplayObject pour écouter ces événements. Ces événements, qui font partie de la classe DisplayObject, sont appelés événements de diffusion afin de les différencier de ceux qui ciblent une occurrence de DisplayObject spécifique. Deux autres événements de diffusion, activate et deactivate, appartiennent à la super-classe de DisplayObject, EventDispatcher. Le comportement des événements activate et deactivate est identique à celui des événements de diffusion DisplayObject, à la différence que ces deux événements sont distribués non seulement par toutes les occurrences de DisplayObject, mais également par toutes les occurrences de EventDispatcher et par les occurrences d’autres sous-classes EventDispatcher. Pour plus d’informations sur les événements de diffusion, voir la classe DisplayObject.

L’exemple suivant utilise la classe StageExample pour distribuer des événements lorsque la scène est activée ou redimensionnée. Pour ce faire, procédez comme suit :
  1. Le constructeur de classe définit au préalable l’application Flash à corriger, quelle que soit la taille de la fenêtre de Flash Player, puis ajoute deux écouteurs d’événement avec les méthodes activateHandler() et resizeHandler().
  2. La méthode activateHandler() s’exécute lorsque vous cliquez avec le bouton gauche de la souris.
  3. La méthode resizeHandler() s’exécute lorsque la scène est redimensionnée.
package { import flash.display.Sprite; import flash.display.StageAlign; import flash.display.StageScaleMode; import flash.events.Event; public class StageExample extends Sprite { public function StageExample() { stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = StageAlign.TOP_LEFT; stage.addEventListener(Event.ACTIVATE, activateHandler); stage.addEventListener(Event.RESIZE, resizeHandler); } private function activateHandler(event:Event):void { trace("activateHandler: " + event); } private function resizeHandler(event:Event):void { trace("resizeHandler: " + event); trace("stageWidth: " + stage.stageWidth + " stageHeight: " + stage.stageHeight); } } }
flash.display.DisplayObjectstageVideoAvailability Distribué par l’objet Stage lorsque l’état de la propriété stageVideos change.flash.events.StageVideoAvailabilityEvent.STAGE_VIDEO_AVAILABILITYflash.events.StageVideoAvailabilityEvent Distribué par l’objet Stage lorsque l’état de la propriété stageVideos change. orientationChange Distribué par l’objet Stage lorsque l’orientation de la scène change.flash.events.StageOrientationEvent.ORIENTATION_CHANGEflash.events.StageOrientationEvent Distribué par l’objet Stage lorsque l’orientation de la scène change.

Des changements d’orientation peuvent se produire lorsque l’utilisateur fait pivoter le périphérique ou ouvre un clavier coulissant, ou lors de l’appel de setAspectRatio().

Remarque : si la propriété autoOrients est définie sur false, l’orientation de la scène ne change pas lors de la rotation d’un périphérique. Par conséquent, les événements StageOrientationEvents ne sont distribués que pour la rotation du périphérique lorsque autoOrients est définie sur true.

orientationChanging Distribué par l’objet Stage lorsque l’orientation de la scène commence à changer.flash.events.StageOrientationEvent.ORIENTATION_CHANGINGflash.events.StageOrientationEvent Distribué par l’objet Stage lorsque l’orientation de la scène commence à changer.

Important : les événements orientationChanging ne sont pas distribués sur les périphériques Android.

Remarque : si la propriété autoOrients est définie sur false, l’orientation de la scène ne change pas lors de la rotation d’un périphérique. Par conséquent, les événements StageOrientationEvents ne sont distribués que pour la rotation du périphérique lorsque autoOrients est définie sur true.

fullScreen Distribué lorsque l’objet Stage active ou désactive le mode plein écran.flash.events.FullScreenEvent.FULL_SCREENflash.events.FullScreenEvent Distribué lorsque l’objet Stage active ou désactive le mode plein écran. Toute modification du mode plein écran peut se faire à l’aide du code ActionScript, ou d’un raccourci clavier de l’utilisateur, ou lorsque le focus quitte la fenêtre en mode plein écran. resize Distribué lorsque la propriété scaleMode de l’objet Stage est définie sur StageScaleMode.NO_SCALE et lorsque le fichier SWF est redimensionné.flash.events.Event.RESIZEflash.events.Event Distribué lorsque la propriété scaleMode de l’objet Stage est définie sur StageScaleMode.NO_SCALE et lorsque le fichier SWF est redimensionné. mouseLeave Distribué par l’objet Stage lorsque le pointeur sort de la zone de scène.flash.events.Event.MOUSE_LEAVEflash.events.Event Distribué par l’objet Stage lorsque le pointeur sort de la zone de scène. Si l’utilisateur appuie sur le bouton de la souris, l’événement n’est pas distribué. addChildAt Ajoute une occurrence DisplayObject enfant à cette occurrence DisplayObjectContainer.L’appel de la méthode addChildAt() d’un objet Stage renvoie une exception pour tout appelant qui n’appartient pas au même sandbox de sécurité que le propriétaire de l’objet Stage (le fichier SWF principal). Pour éviter cette situation, le propriétaire de l’objet Stage peut accorder une autorisation au domaine de l’appelant en exécutant la méthode Security.allowDomain() ou Security.allowInsecureDomain(). Pour plus d’informations, voir le chapitre « Sécurité » du Guide du développeur d’ActionScript 3.0. SecurityErrorSecurityErrorOccurrence DisplayObject transmise au paramètre child. flash.display:DisplayObjectchildflash.display:DisplayObjectOccurrence DisplayObject à ajouter en tant qu’enfant à cette occurrence DisplayObjectContainer. indexintPosition d’index à laquelle l’enfant est ajouté. Si vous spécifiez une position d’index actuellement occupée, l’objet enfant associé à cette position et toutes les positions supérieures sont décalés d’une position vers le haut dans la liste d’enfants. Ajoute une occurrence DisplayObject enfant à cette occurrence DisplayObjectContainer. L’enfant est placé à la position d’index spécifiée. La position d’index 0 représente la fin (le bas) de la liste d’affichage pour cet objet DisplayObjectContainer.

Ainsi, l’exemple suivant illustre trois objets d’affichage appelés a, b et c, qui occupent respectivement les positions d’index 0, 2 et 1 :

Si vous ajoutez un objet enfant qui est déjà doté d’un autre conteneur d’objet d’affichage en tant que parent, il est supprimé de la liste d’enfants de cet autre conteneur d’objet d’affichage.

addChild Ajoute une occurrence DisplayObject enfant à cette occurrence DisplayObjectContainer.l’appel de la méthode addChild() d’un objet Stage renvoie une exception pour tout appelant qui n’appartient pas au même sandbox de sécurité que le propriétaire de l’objet Stage (le fichier SWF principal). Pour éviter cette situation, le propriétaire de l’objet Stage peut accorder une autorisation au domaine de l’appelant en exécutant la méthode Security.allowDomain() ou Security.allowInsecureDomain(). Pour plus d’informations, voir le chapitre « Sécurité » du Guide du développeur d’ActionScript 3.0. SecurityErrorSecurityErrorOccurrence DisplayObject transmise au paramètre child. flash.display:DisplayObjectchildflash.display:DisplayObjectOccurrence DisplayObject à ajouter en tant qu’enfant à cette occurrence DisplayObjectContainer. Ajoute une occurrence DisplayObject enfant à cette occurrence DisplayObjectContainer. L’enfant est ajouté devant (par-dessus) tous les autres enfants dans cette occurrence de DisplayObjectContainer (pour ajouter un enfant à une position d’index spécifique, utilisez la méthode addChildAt()).

Si vous ajoutez un objet enfant qui est déjà doté d’un autre conteneur d’objet d’affichage en tant que parent, il est supprimé de la liste d’enfants de cet autre conteneur d’objet d’affichage.

Remarque : la commande stage.addChild() risque de poser certains problèmes avec un fichier SWF publié, notamment des problèmes de sécurité et des conflits avec d’autres fichiers SWF chargés. Il n’existe qu’une seule scène au sein d’une occurrence du moteur d’exécution de Flash, quel que soit le nombre de fichiers SWF que vous chargez dans le moteur d’exécution. Ainsi, en règle générale, les objets ne devraient pas être ajoutés à la scène directement. Le seul objet que la scène devrait contenir est l’objet racine. Créez un objet DisplayObjectContainer qui contienne tous les éléments de la liste d’affichage. Le cas échéant, ajoutez ensuite cette occurrence de DisplayObjectContainer sur la scène.

addEventListener Enregistre un objet écouteur d’événement auprès d’un objet EventDispatcher afin que l’écouteur soit averti d’un événement.l’appel de la méthode addEventListener d’un objet Stage renvoie une exception pour tout appelant qui n’appartient pas au même sandbox de sécurité que le propriétaire de l’objet Stage (le fichier SWF principal). Pour éviter cette situation, le propriétaire de l’objet Stage peut accorder une autorisation au domaine de l’appelant en exécutant la méthode Security.allowDomain() ou Security.allowInsecureDomain(). Pour plus d’informations, voir le chapitre « Sécurité » du Guide du développeur d’ActionScript 3.0. SecurityErrorSecurityErrortypeStringType d’événement. listenerFunctionFonction d’auditeur qui traite l’événement. Cette fonction doit accepter un objet Event comme paramètre unique et ne rien renvoyer, comme illustré ci-dessous : function(evt:Event):void

Le nom de cette fonction n’a aucune importance.

useCaptureBooleanfalse Détermine si l’écouteur est actif pendant la phase de capture ou pendant les phases cible et de propagation. Si la propriété useCapture est définie sur true, l’écouteur traite l’événement uniquement pendant la phase de capture et non pendant les phases cible et de propagation. Si la propriété useCapture est définie sur false, l’écouteur traite l’événement uniquement pendant les phases cible et de propagation. Pour écouter l’événement dans les trois phases, appelez addEventListener à deux reprises, une première fois en définissant useCapture sur true, puis une nouvelle fois en définissant useCapture sur false. priorityint0Niveau de priorité de l’écouteur d’événement. La priorité est indiquée par un entier signé de 32 bits. Plus le nombre est élevé, plus la priorité est élevée. Tous les écouteurs dont la priorité correspond à n sont traités avant les écouteurs dotés de la priorité n -1. Les écouteurs dont la priorité est identique sont traités dans l’ordre où ils ont été ajoutés. La priorité par défaut est 0. useWeakReferenceBooleanfalseDétermine si la référence à l’écouteur est forte ou faible. Une référence forte (valeur par défaut) empêche le nettoyage de votre écouteur, Cela n’est pas le cas avec une référence faible.

Les fonctions de membres de niveau classe n’étant pas soumises au nettoyage, vous pouvez définir useWeakReference sur true pour ces fonctions. Si vous définissez useWeakReference sur true pour un écouteur correspondant à une fonction imbriquée interne, la fonction sera nettoyée et ne sera donc pas permanente. Si vous créez des références à la fonction interne (enregistrée dans une autre variable), celle-ci n’est pas nettoyée et reste permanente.

Enregistre un objet écouteur d’événement auprès d’un objet EventDispatcher afin que l’écouteur soit averti d’un événement. Vous pouvez enregistrer les écouteurs d’événement dans tous les nœuds de la liste d’affichage pour un type spécifique d’événement, de phase et de priorité.

Après l’enregistrement d’un écouteur d’événement, vous ne pouvez plus modifier sa priorité par d’autres appels de addEventListener(). Pour modifier la priorité d’un écouteur, vous devez d’abord appeler removeListener(). Vous pouvez ensuite réenregistrer l’écouteur avec le nouveau niveau de priorité.

N’oubliez pas qu’une fois l’écouteur enregistré, tous les prochains appels de addEventListener() avec une valeur type ou useCapture différente entraîneront la création d’un autre enregistrement d’écouteur. Si, par exemple, vous enregistrez un écouteur dans lequel la propriété useCapture est définie sur true, il écoute uniquement pendant la phase de capture. Si vous appelez addEventListener() à l’aide du même objet écouteur, mais en définissant useCapture sur false, vous obtenez deux écouteurs distincts : l’un qui écoute pendant la phase de capture et l’autre qui écoute pendant les phases cible et de propagation vers le haut (bubbling).

Il est impossible d’enregistrer un écouteur d’événement uniquement pour la phase cible ou la phase de propagation vers le haut. Ces deux phases sont associées pendant l’enregistrement car la propagation vers le haut s’applique uniquement aux ancêtres du nœud cible.

Si vous n’avez plus besoin d’un écouteur d’événements, supprimez-le en appelant removeEventListener(), afin d’éviter tout problème de mémoire. Les écouteurs d’événement ne sont pas automatiquement supprimés de la mémoire, car le nettoyeur de mémoire ne supprime pas l’écouteur tant que l’objet de distribution existe (à moins que le paramètre useWeakReference ne soit défini sur true).

Lors de la copie d’une occurrence d’EventDispatcher, les écouteurs d’événement qui lui sont associés ne sont pas pris en compte (si le nouveau nœud nécessite un écouteur d’événement, vous devez associer celui-ci après la création du nœud). Toutefois, si vous déplacez une occurrence d’EventDispatcher, les écouteurs d’événement qui lui sont associés la suivent.

Si un écouteur d’événement est enregistré sur un nœud alors qu’un événement est en cours de traitement sur ce nœud, l’écouteur n’est pas déclenché pendant la phase actuelle, mais il peut l’être pendant une phase ultérieure du flux d’événements, telle que la phase de propagation vers le haut (bubbling).

Si un écouteur d’événement est supprimé d’un nœud sur lequel un événement est en cours de traitement, il est cependant déclenché par les actions en cours. Une fois supprimé, l’écouteur d’événement n’est plus jamais appelé (à moins d’être réenregistré à des fins de traitement ultérieur).

assignFocus Définit le focus du clavier sur l’objet interactif spécifié par objectToFocus, avec la direction du focus spécifiée par le paramètre direction.Si le focus ne peut pas être défini sur la cible ou la direction, il ne s’agit pas d’un type valide. ErrorErrorobjectToFocusflash.display:InteractiveObjectObjet sur lequel effectuer le focus, ou null pour effacer le focus des éléments de la scène. directionStringLa direction à partir de laquelle le focus est effectué sur objectToFocus. Les valeurs valides sont énumérées en tant que constantes dans la classe FocusDirection. Attribue un focus de clavier à un objet interactif et spécifie la direction d’où provient le focus. Définit le focus du clavier sur l’objet interactif spécifié par objectToFocus, avec la direction du focus spécifiée par le paramètre direction.

Le concept de direction de focus doit être défini par l’application (ou le logiciel intégré de l’application). Aucun tri de focus intrinsèque d’objets interactifs n’existe, bien que vous puissiez utiliser d’autres propriétés disponibles pour établir un principe d’ordre. Par exemple, vous pouvez trier des objets interactifs selon leurs positions sur la scène ou dans la liste d’affichage. Appeler assignFocus() équivaut à définir la propriété Stage.focus, avec la possibilité supplémentaire d’indiquer la direction à partir de laquelle le focus est réglé.

Le objectToFocus distribue un événement focusIn à la réception du focus. La propriété direction de l’objet FocusEvent signale le réglage du paramètre direction.

Si vous affectez un objet HTMLLoader au paramètre objectToFocus, l’objet HTMLLoader sélectionne l’objet approprié qui peut recevoir le focus dans le DOM HTML, en fonction de la valeur du paramètre direction. S’il s’agit de FocusDirection.BOTTOM, l’objet pouvant recevoir le focus dans le DOM HTML situé à la fin de l’ordre de lecture obtient le focus. S’il s’agit de FocusDirection.TOP, l’objet pouvant recevoir le focus dans le DOM HTML situé au début de l’ordre de lecture obtient le focus. S’il s’agit de NONE, l’objet HTMLLoader reçoit le focus sans que l’élément qui a actuellement le focus ne soit modifié.

flash.display.Stage.focusflash.display.FocusDirectionflash.events.FocusEvent
dispatchEvent Distribue un événement dans le flux d’événements.L’appel de la méthode dispatchEvent() d’un objet Stage renvoie une exception pour tout appelant qui n’appartient pas au même sandbox de sécurité que le propriétaire de l’objet Stage (le fichier SWF principal). Pour éviter cette situation, le propriétaire de l’objet Stage peut accorder une autorisation au domaine de l’appelant en exécutant la méthode Security.allowDomain() ou Security.allowInsecureDomain(). Pour plus d’informations, voir le chapitre « Sécurité » du Guide du développeur d’ActionScript 3.0. SecurityErrorSecurityErrorUne valeur true si l’événement a bien été distribué. La valeur false indique un échec ou que preventDefault() a été appelé sur l’événement. Booleaneventflash.events:EventObjet Event qui est distribué dans le flux d’événements. Si l’événement est redistribué, un clone est automatiquement créé. Après la distribution d’un événement, il est impossible de modifier sa propriété target. Pour que la redistribution fonctionne, vous devez donc créer une copie de l’événement. Distribue un événement dans le flux d’événements. La cible de l’événement est l’objet EventDispatcher sur lequel la méthode dispatchEvent() est appelée. getChildAtflash.display:DisplayObjectindexintgetChildIndexintchildflash.display:DisplayObjecthasEventListener Vérifie si des écouteurs sont enregistrés auprès de l’objet EventDispatcher pour un type spécifique d’événement.L’appel de la méthode hasEventListener() d’un objet Stage renvoie une exception pour tout appelant qui n’appartient pas au même sandbox de sécurité que le propriétaire de l’objet Stage (le fichier SWF principal). Pour éviter cette situation, le propriétaire de l’objet Stage peut accorder une autorisation au domaine de l’appelant en exécutant la méthode Security.allowDomain() ou Security.allowInsecureDomain(). Pour plus d’informations, voir le chapitre « Sécurité » du Guide du développeur d’ActionScript 3.0. SecurityErrorSecurityErrorLa valeur true est renvoyée si un écouteur du type spécifié est enregistré. La valeur false est renvoyée dans tous les autres cas. BooleantypeStringType d’événement. Vérifie si des écouteurs sont enregistrés auprès de l’objet EventDispatcher pour un type spécifique d’événement. Vous pouvez ainsi déterminer précisément où un objet EventDispatcher a modifié la gestion d’un type d’événement dans la hiérarchie du flux d’événements. Pour savoir si un type d’événement spécifique déclenche réellement un écouteur d’événements, utilisez willTrigger().

La différence entre les méthodes hasEventListener() et willTrigger() est la suivante : hasEventListener() examine uniquement l’objet auquel elle appartient, tandis que willTrigger() recherche dans la totalité du flux d’événements l’événement spécifié par le paramètre type.

Lorsque hasEventListener() est appelé à partir d’un objet LoaderInfo, seuls les écouteurs auxquels l’appelant a accès sont pris en compte.

invalidate Lorsque la méthode invalidate() est appelée, les moteurs d’exécution de Flash doivent informer les objets d’affichage d’une nouvelle opportunité de rendre la liste d’affichage (par exemple, lorsque la tête de lecture passe à une nouvelle image).Indique aux moteurs d’exécution de Flash de mettre à jour les propriétés des objets d’affichage lors de la prochaine actualisation de la scène. L’appel de la méthode invalidate() force Flash Player à alerter les objets lorsqu’il a la possibilité de rendre la liste d’affichage (par exemple, lorsque la tête de lecture passe à une nouvelle image). Après l’appel de la méthode invalidate() et après le rendu de la liste d’affichage, le moteur d’exécution de Flash envoie un événement render à l’ensemble des objets d’affichage enregistrés pour l’écoute de l’événement render. Vous devez appeler la méthode invalidate() pour que le moteur d’exécution de Flash envoie des événements render.

L’événement render permet d’apporter des modifications à la liste d’affichage immédiatement avant de procéder à son rendu. Vous pouvez ainsi différer les mises à jour de la liste d’affichage de façon à les appliquer au moment de votre choix. L’élimination de mises à jour d’écran superflues améliore parfois les performances.

L’événement render est distribué uniquement pour afficher les objets qui appartiennent au même domaine de sécurité que le code qui appelle la méthode stage.invalidate() ou pour afficher des objets provenant d’un domaine de sécurité dont les autorisations ont été accordées par la méthode Security.allowDomain().

flash.events.Event.RENDER
isFocusInaccessible Détermine si la propriété Stage.focus doit renvoyer null pour des raisons de sécurité.true si l’objet qui possède le focus appartient à un sandbox de sécurité auquel le fichier SWF n’a pas accès. BooleanDétermine si la propriété Stage.focus doit renvoyer null pour des raisons de sécurité. Détermine si la propriété Stage.focus doit renvoyer null pour des raisons de sécurité. En d’autres termes, isFocusInaccessible renvoie true si l’objet qui possède le focus appartient à un sandbox de sécurité auquel le fichier SWF n’a pas accès. removeChildAt Supprime une occurrence enfant de DisplayObject de la position d’index spécifiée dans la liste d’enfants de DisplayObjectContainer.L’appel de la méthode removeChildAt() d’un objet Stage renvoie une exception pour tout appelant qui n’appartient pas au même sandbox de sécurité que l’objet à supprimer. Pour éviter cette situation, le propriétaire de cet objet peut accorder une autorisation au domaine de l’appelant en exécutant la méthode Security.allowDomain() ou Security.allowInsecureDomain(). Pour plus d’informations, voir le chapitre « Sécurité » du Guide du développeur d’ActionScript 3.0. SecurityErrorSecurityErrorOccurrence de DisplayObject supprimée. flash.display:DisplayObjectindexintIndex enfant de l’objet DisplayObject à supprimer. Supprime une occurrence enfant de DisplayObject de la position d’index spécifiée dans la liste d’enfants de DisplayObjectContainer. La propriété parent de l’enfant supprimé est réglée sur null et l’objet est nettoyé s’il n’existe aucune autre référence à l’enfant. Les positions d’index de tout objet d’affichage placé au-dessus de l’enfant dans DisplayObjectContainer sont diminuées d’une unité.

Le processus de nettoyage de la mémoire réaffecte l’espace mémoire non utilisé. Lorsqu’une variable ou un objet n’est plus référencé ou stocké de façon active, le nettoyeur de mémoire vide toutes ses références en mémoire qui ne sont plus utilisées.

removeChildflash.display:DisplayObjectchildflash.display:DisplayObjectsetAspectRatio Définit la scène sur une orientation avec les proportions spécifiées.La valeur transmise en tant que paramètre newAspectRatio n’est pas valide. La valeur doit correspondre à l’une des constantes définies dans la classe StageAspectRatio. ArgumentErrorArgumentErrornewAspectRatioStringCe code de type pour le rapport l/h (StageAspectRatio.portrait ou StageAspectRatio.LANDSCAPE). Définit la scène sur une orientation avec les proportions spécifiées.

Si l'orientation de l'objet Stage change à la suite de l'appel de méthode, l'objet Stage distribue un événement orientationChange.

Pour savoir si l’orientation du périphérique est prise en charge, vérifiez la valeur de la propriété Stage.supportsOrientantionChange.

Prise en charge du profil AIR : cette fonctionnalité est prise en charge sur les périphériques mobiles, mais ne l’est pas sur les systèmes d’exploitation de bureau ou sur les périphériques AIR pour TV. Vous pouvez tester la prise en charge lors de l’exécution à l’aide de la propriété Stage.supportsOrientantionChange. Voir Prise en charge du profil AIR pour plus d’informations sur la prise en charge de l’API dans plusieurs profils.

StageAspectRatiosupportsOrientationChange
setChildIndex Modifie la position d’un enfant existant dans le conteneur d’objet d’affichage.l’appel de la méthode setChildIndex() d’un objet Stage renvoie une exception pour tout appelant qui n’appartient pas au même sandbox de sécurité que le propriétaire de l’objet Stage (le fichier SWF principal). Pour éviter cette situation, le propriétaire de l’objet Stage peut accorder une autorisation au domaine de l’appelant en exécutant la méthode Security.allowDomain() ou Security.allowInsecureDomain(). Pour plus d’informations, voir le chapitre « Sécurité » du Guide du développeur d’ActionScript 3.0. SecurityErrorSecurityErrorchildflash.display:DisplayObjectOccurrence enfant de DisplayObject dont vous voulez modifier le numéro d’index. indexintNouveau numéro d’index de l’objet d’affichage child. Modifie la position d’un enfant existant dans le conteneur d’objet d’affichage. L’ordre des objets enfant est alors affecté. Ainsi, l’exemple suivant illustre trois objets d’affichage appelés a, b et c, qui occupent respectivement les positions d’index 0, 1 et 2 :

Lorsque vous utilisez la méthode setChildIndex() et spécifiez une position d’index déjà occupée, les seules positions qui changent sont celles situées entre l’ancienne et la nouvelle position de l’objet d’affichage. Toutes les autres positions restent identiques. Si un enfant est déplacé sur un index INFERIEUR à son index actuel, tous les enfants situés entre les deux sont AUGMENTES de 1 pour leur référence d’index. Si un enfant est déplacé sur un index SUPERIEUR à son index actuel, tous les enfants situés entre les deux sont DIMINUES de 1 pour leur référence d’index. Par exemple, si le conteneur d’objet d’affichage de l’exemple précédent s’appelle container, vous pouvez permuter la position des objets d’affichage a et b en appelant le code suivant :

container.setChildIndex(container.getChildAt(1), 0);

Ce code entraîne la réorganisation suivante des objets :

setOrientation Définit la scène sur l’orientation spécifiée.La valeur transmise en tant que paramètre newOrientation n’est pas valide. La valeur doit correspondre à l’une des constantes définies dans la classe StageOriention, à l’exception de la constanteStageOrientation.UNKNOWN. ArgumentErrorArgumentErrornewOrientationStringNouvelle orientation de la scène. Définit la scène sur l’orientation spécifiée.

Définissez le paramètre newOrientation sur l’une des quatre valeurs définies comme constantes dans la classe StageOrientation :

Constante StageOrientationOrientation de la scèneStageOrientation.DEFAULTDéfinissez l’orientation de la scène sur l’orientation par défaut (côté droit vers le haut).StageOrientation.ROTATED_RIGHTDéfinissez l’orientation de la scène de façon à ce qu’elle pivote vers la droite.StageOrientation.ROTATED_LEFTDéfinissez l’orientation de la scène de façon à ce qu’elle pivote vers la gauche.StageOrientation.UPSIDE_DOWNDéfinissez l’orientation de la scène de façon à ce qu’elle pivote à l’envers.

Ne définissez pas le paramètre sur StageOrientation.UNKNOWN ou sur une autre valeur de chaîne autre que celles énumérées dans le tableau.

Pour savoir si la modification de l’orientation du périphérique est prise en charge, vérifiez la valeur de la propriété Stage.supportsOrientantionChange. Vérifiez la liste fournie par la propriété supportedOrientations pour déterminer quelles orientations sont prises en charge par le périphérique actif.

Définir l’orientation est une opération asynchrone. Il est possible qu’elle ne soit pas terminée immédiatement après l’appel de la méthode setOrientation(). Ajoutez un écouteur d’événement pour l’événement orientationChange afin de savoir quand s’est terminé le changement d’orientation.

Important : la méthode setOrientation() n’était pas prise en charge sur les périphériques Android avant AIR 2.6.

autoOrientssupportsOrientationChangeStageOrientationEventStageOrientationorientationChangeflash.events:StageOrientationEventLa scène a été redimensionnée suite à l’appel de la méthode setOrientation(). La scène a été redimensionnée suite à l’appel de la méthode setOrientation().
swapChildrenAtindex1intindex2intswapChildren Intervertit l’ordre de plan (ordre d’empilement du premier plan vers l’arrière-plan) des deux objets enfant spécifiés.L’appel de la méthode swapChildrenAt() d’un objet Stage renvoie une exception pour tout appelant qui n’appartient pas au même sandbox de sécurité que l’un des propriétaires des objets à permuter. Pour éviter cette situation, les propriétaires d’objet peuvent accorder une autorisation au domaine de l’appelant en exécutant la méthode Security.allowDomain() ou Security.allowInsecureDomain(). Pour plus d’informations, voir le chapitre « Sécurité » du Guide du développeur d’ActionScript 3.0. SecurityErrorSecurityErrorchild1flash.display:DisplayObjectPremier objet enfant. child2flash.display:DisplayObjectSecond objet enfant. Intervertit l’ordre z (ordre d’empilement du premier plan vers l’arrière-plan) des deux objets enfant spécifiés. Tous les autres objets enfant du conteneur d’objet d’affichage conservent leur position d’index. willTrigger Vérifie si un écouteur d’événement est enregistré auprès de cet objet EventDispatcher ou de ses ancêtres pour le type d’événement spécifié.L’appel de la méthode willTrigger() d’un objet Stage renvoie une exception pour tout appelant qui n’appartient pas au même sandbox de sécurité que le propriétaire de l’objet Stage (le fichier SWF principal). Pour éviter cette situation, le propriétaire de l’objet Stage peut accorder une autorisation au domaine de l’appelant en exécutant la méthode Security.allowDomain() ou Security.allowInsecureDomain(). Pour plus d’informations, voir le chapitre « Sécurité » du Guide du développeur d’ActionScript 3.0. SecurityErrorSecurityErrorRenvoie true si un écouteur du type spécifié est enregistré, false dans tous les autres cas. BooleantypeStringType d’événement. Vérifie si un écouteur d’événement est enregistré auprès de cet objet EventDispatcher ou de ses ancêtres pour le type d’événement spécifié. Cette méthode renvoie true si un écouteur d’événement est déclenché pendant toute phase du flux d’événements lorsqu’un événement du type spécifié est distribué à cet objet EventDispatcher ou à l’un de ses descendants.

La différence entre les méthodes hasEventListener() et willTrigger() est la suivante : hasEventListener() examine uniquement l’objet auquel elle appartient, tandis que willTrigger() recherche dans la totalité du flux d’événements celui qui est spécifié par le paramètre type.

Lorsque willTrigger() est appelée à partir d’un objet LoaderInfo, seuls les écouteurs auxquels l’appelant a accès sont pris en compte.

align Une valeur de la classe StageAlign qui détermine l’alignement de la scène dans Flash Player ou dans le navigateur.String Une valeur de la classe StageAlign qui détermine l’alignement de la scène dans Flash Player ou dans le navigateur. Les valeurs suivantes sont prises en charge :

ValeurAlignement verticalHorizontalStageAlign.TOPHautCentreStageAlign.BOTTOMAligner les bords inférieursCentreStageAlign.LEFTCentreGaucheStageAlign.RIGHTCentreDroitStageAlign.TOP_LEFTHautGaucheStageAlign.TOP_RIGHTHautDroitStageAlign.BOTTOM_LEFTAligner les bords inférieursGaucheStageAlign.BOTTOM_RIGHTAligner les bords inférieursDroit

La propriété align est uniquement disponible pour les objets qui appartiennent au même sandbox de sécurité que le propriétaire de l’objet Stage (le fichier SWF principal). Pour éviter cette situation, le propriétaire de l’objet Stage peut accorder une autorisation au domaine de l’objet qui effectue l’appel en exécutant la méthode Security.allowDomain() ou Security.alowInsecureDomain(). Pour plus d’informations, voir le chapitre « Sécurité » du Guide du développeur d’ActionScript 3.0.

flash.display.StageAlign
allowsFullScreen Indique si cette scène permet l’utilisation du mode plein écran. Boolean Indique si cette scène permet l’utilisation du mode plein écran. autoOrients Indique si la scène change automatiquement d’orientation lorsque l’orientation du périphérique change.Boolean Indique si la scène change automatiquement d’orientation lorsque l’orientation du périphérique change.

La valeur initiale de cette propriété provient de l’élément autoOrients du descripteur d’application et la valeur par défaut est false. Lorsque vous modifiez la valeur de la propriété et la définissez sur false, le comportement n’est pas garanti. Sur certains périphériques, la scène conserve l’orientation actuelle. Sur d’autres, la scène adopte l’orientation standard définie par un périphérique, puis ne change plus.

Prise en charge du profil AIR : cette fonctionnalité est prise en charge sur les périphériques mobiles, mais ne l’est pas sur les systèmes d’exploitation de bureau ou sur les périphériques AIR pour TV. Vous pouvez tester la prise en charge lors de l’exécution à l’aide de la propriété Stage.supportsOrientantionChange. Voir Prise en charge du profil AIR pour plus d’informations sur la prise en charge de l’API dans plusieurs profils.

deviceOrientationsupportsOrientationChange
colorCorrectionSupport Indique si le moteur d’exécution de Flash est exécuté sur un système d’exploitation qui prend en charge la correction des couleurs, et si le moteur d’exécution de Flash est capable de lire et de comprendre le profil colorimétrique de l’écran principal.String Indique si le moteur d’exécution de Flash est exécuté sur un système d’exploitation qui prend en charge la correction des couleurs, et si le moteur d’exécution de Flash est capable de lire et de comprendre le profil colorimétrique de l’écran principal. Cette propriété renvoie également l’état par défaut de la correction des couleurs sur le système hôte (généralement, le navigateur). Actuellement, les valeurs renvoyées peuvent être les suivantes :

Les trois valeurs possibles sont les chaînes possédant les constantes correspondantes dans la classe flash.display.ColorCorrectionSupport :

  • "unsupported" : la correction des couleurs n’est pas disponible.
  • "defaultOn" : les couleurs sont toujours corrigées.
  • "defaultOff" : les couleurs ne sont jamais corrigées.
L’exemple suivant illustre un gestionnaire d’événement qui renseigne un champ de texte avec la capacité de l’environnement actuel à prendre en charge ou non la correction des couleurs. Il vérifie tout d’abord la valeur de Stage.colorCorrectionSupport pour savoir si elle correspond à DEFAULT_ON ou à DEFAULT_OFF (valeurs provenant de la classe ColorCorrectionSupport). Si la propriété est définie sur l’une de ces valeurs, le champ de texte affiche la valeur actuelle. Dans le cas contraire, si la valeur n’est ni DEFAULT_ON ni DEFAULT_OFF, le champ de texte indique « unsupported ». function addHandler(add_event:Event) { if (stage.colorCorrectionSupport == ColorCorrectionSupport.DEFAULT_ON || stage.colorCorrectionSupport == ColorCorrectionSupport.DEFAULT_OFF) { lblHasCM.text = "stage.colorCorrectionSupport: " + stage.colorCorrectionSupport; } else { lblHasCM.text = "stage.colorCorrectionSupport: unsupported"; } }
flash.display.ColorCorrectionSupportcolorCorrection
colorCorrection Contrôle la correction des couleurs du moteur d’exécution de Flash pour les affichages.StringTente d’utiliser la correction des couleurs de l’écran Contrôle la correction des couleurs du moteur d’exécution de Flash pour les affichages. La correction des couleurs ne fonctionne que si un profil colorimétrique ICC valide est affecté à l’écran principal (profil spécifiant les attributs de couleur particuliers du périphérique). Par défaut, le moteur d’exécution de Flash tente d’adopter la correction des couleurs de son hôte (généralement, un navigateur).

Utilisez la propriété Stage.colorCorrectionSupport pour déterminer si la correction des couleurs est disponible sur le système et l’état par défaut actuels. Si la correction des couleurs est disponible, toutes les couleurs de la scène sont supposées appartenir à l’espace chromatique standard RVB, c’est-à-dire à l’espace chromatique le plus courant. Les profils source des périphériques d’entrée ne sont pas pris en compte lors de la correction des couleurs. Aucune correction des couleurs n’est appliquée en entrée ; seule la sortie de la scène est mise en correspondance avec le profil de couleur ICC de l’écran principal.

En règle générale, les avantages de l’activation de la gestion des couleurs sont les suivants : une couleur prévisible et cohérente, une meilleure conversion, un contrôle plus précis et un résultat inter-supports plus efficace. N’oubliez pas cependant que la gestion des couleurs n’effectue pas des conversions parfaites car la gamme de couleurs ou les images d’origine des différents périphériques diffèrent. La gestion des couleurs n’élimine pas non plus le besoin de profils personnalisés ou modifiés. Les profils de couleurs dépendent des navigateurs, des systèmes d’exploitation et de leurs extensions, des périphériques de sortie et de la prise en charge des applications.

L’application d’une correction des couleurs affecte les performances du moteur d’exécution de Flash. La correction des couleurs du moteur d’exécution de Flash est une correction de couleur de style document, car toutes les séquences SWF sont considérées comme des documents avec profils sRVB implicites. Utilisez la propriété Stage.colorCorrectionSupport pour indiquer au moteur d’exécution de Flash de corriger les couleurs lors de l’affichage du fichier SWF (document) dans l’espace colorimétrique de l’affichage. Les moteurs d’exécution de Flash n’effectuent de compensation que pour les différences entre les écrans, pas pour les différences entre les périphériques de saisie (appareil photo, scanner, etc.).

Les trois valeurs possibles sont les chaînes possédant les constantes correspondantes dans la classe flash.display.ColorCorrection :

  • "default" : la même correction des couleurs que le système hôte est utilisée.
  • "on" : les couleurs sont toujours corrigées.
  • "off" : les couleurs ne sont jamais corrigées.
L’exemple suivant illustre un gestionnaire d’événement qui modifie la correction des couleurs dans le fichier SWF actuel et renseigne un champ de texte avec l’état actuel de la correction des couleurs. Si la valeur Stage.colorCorrection n’est pas une valeur provenant de la classe ColorCorrection, le gestionnaire signale une erreur. function addHandler(add_event:Event) { switch(stage.colorCorrection) { case ColorCorrection.ON: stage.colorCorrection = ColorCorrection.OFF; lblCMEnableState.text = "State: " + stage.colorCorrection; break; case ColorCorrection.OFF: stage.colorCorrection = ColorCorrection.DEFAULT; lblCMEnableState.text = "State: " + stage.colorCorrection; break; case ColorCorrection.DEFAULT: stage.colorCorrection = ColorCorrection.ON; lblCMEnableState.text = "State: " + stage.colorCorrection; break; default: lblCMEnableState.text = "Error."; break; }
flash.display.ColorCorrectioncolorCorrectionSupport
coloruintdeviceOrientation Orientation physique du périphérique.String Orientation physique du périphérique.

Sur les périphériques équipés d’un clavier coulissant, c’est l’état du clavier qui détermine en premier lieu l’orientation du périphérique et non la rotation détectée par l’accéléromètre. Par conséquent, sur un périphérique de forme verticale équipé d’un clavier latéral, la propriété deviceOrientation indique ROTATED_LEFT lors de l’ouverture du clavier, quelle que soit la façon dont l’utilisateur tient le périphérique.

Utilisez les constantes définies dans la classe StageOrientation lors de la définition ou de la comparaison des valeurs de cette propriété.

Prise en charge du profil AIR : cette fonctionnalité est prise en charge sur les périphériques mobiles, mais ne l’est pas sur les systèmes d’exploitation de bureau ou sur les périphériques AIR pour TV. Vous pouvez tester la prise en charge lors de l’exécution à l’aide de la propriété Stage.supportsOrientationChange. Voir Prise en charge du profil AIR pour plus d’informations sur la prise en charge de l’API dans plusieurs profils.

autoOrientsStageOrientation
displayState Une valeur de la classe StageDisplayState qui spécifie l’état d’affichage à utiliser.StringL’appel de la propriété displayState d’un objet Stage renvoie une exception pour tout appelant qui n’appartient pas au même sandbox de sécurité que le propriétaire de l’objet Stage (le fichier SWF principal). Pour éviter cette situation, le propriétaire de l’objet Stage peut accorder une autorisation au domaine de l’appelant en exécutant la méthode Security.allowDomain() ou Security.allowInsecureDomain(). Pour plus d’informations, voir le chapitre « Sécurité » du Guide du développeur d’ActionScript 3.0. La définition de la propriété displayState lorsque la boîte de dialogue de définition des paramètres, sans réponse utilisateur, ou si l’attribut allowFullScreen de la balise param ou embed n’est pas défini sur true renvoie une erreur de sécurité. SecurityErrorSecurityError Une valeur de la classe StageDisplayState qui spécifie l’état d’affichage à utiliser. Les valeurs suivantes sont prises en charge :
  • StageDisplayState.FULL_SCREEN Définit une application AIR ou le moteur d’exécution de Flash de sorte que la scène couvre la totalité de l’écran de l’utilisateur, avec la saisie au clavier désactivée.
  • StageDisplayState.FULL_SCREEN_INTERACTIVE Définit l’application AIR de sorte que la scène couvre la totalité de l’écran de l’utilisateur, en autorisant la saisie au clavier. Non disponible pour le contenu s’exécutant dans Flash Player.
  • StageDisplayState.NORMAL Rétablit le mode standard d’affichage de la scène du moteur d’exécution de Flash.

Le comportement de mise à l’échelle du clip en mode plein écran est déterminé par le paramètre scaleMode (défini à l’aide de la propriété Stage.scaleMode ou des paramètres de la balise embed du fichier HTML). Lorsque la propriété scaleModeest définie sur noScale pendant la transition de l’application vers le mode plein écran, les propriétés de scène width et height sont mises à jour. La scène distribue ensuite un événement resize. Si un autre mode de mise à l’échelle est défini, la scène et son contenu sont mis à l’échelle de façon à occuper les dimensions du nouvel écran. L’objet Stage conserve ses valeurs width et height d’origine et ne distribue pas d’événement resize.

Les restrictions suivantes s’appliquent aux fichiers SWF lus dans une page HTML (pas ceux utilisant l’application Flash Player autonome ou ne s’exécutant pas dans le moteur d’exécution AIR) :

  • Pour activer le mode plein écran, ajoutez le paramètre allowFullScreen aux balises object et embed de la page HTML qui inclut le fichier SWF, avec allowFullScreen défini sur "true", comme indiqué dans l’exemple suivant : <param name="allowFullScreen" value="true" /> ... <embed src="example.swf" allowFullScreen="true" ... >

    Une page HTML peut également utiliser un script pour générer des balises d’imbrication de fichiers SWF. Vous devez modifier le script de façon à insérer les paramètres allowFullScreen appropriés. Les pages HTML générées par Flash Professional et Flash Builder utilisent la fonction AC_FL_RunContent() pour incorporer des références aux fichiers SWF ; en outre vous devez ajouter le paramètre allowFullScreen, comme dans l’exemple suivant :

    AC_FL_RunContent( ... "allowFullScreen", "true", ... )
  • Le mode plein écran est initié lorsque l’utilisateur clique sur la souris ou appuie sur une touche ; le clip ne peut pas modifier Stage.displayState sans interaction de l’utilisateur. Les moteurs d’exécution de Flash limitent la saisie clavier en mode plein écran. Les touches disponibles sont les suivantes : raccourcis clavier permettant de désactiver le mode plein écran, ainsi que les touches hors impression, telles que les touches fléchées, la touche espace, la touche Maj et la touche de tabulation. Les raccourcis clavier qui permettent de désactiver le mode plein écran sont les suivants : Echap (Windows, Linux et Mac), Ctrl+W (Windows), Commande+W (Mac) et Alt+F4.

    Une boîte de dialogue du moteur d’exécution de Flash se superpose au clip lorsqu’un utilisateur active le mode plein écran pour informer les utilisateurs que le mode plein écran est actif et qu’ils peuvent appuyer sur la touche Echap pour y mettre fin.

  • A partir de Flash Player 9.0.115.0, le mode plein écran fonctionne de la même façon en mode sans fenêtre et en mode fenêtre. Si vous définissez le mode Fenêtre (wmode dans le code HTML) sur Opaque sans fenêtre (opaque) ou sur Transparent sans fenêtre (transparent), le mode plein écran peut être lancé, mais la fenêtre en plein écran demeurera opaque.

Ces restrictions ne sont pas présentes pour le contenu SWF s’exécutant dans l’application Flash Player autonome ou dans AIR. AIR prend en charge un mode plein écran interactif qui permet la saisie clavier.

Pour le contenu AIR s’exécutant en mode plein écran, les options d’économiseur d’écran et de mise en veille du système sont désactivées lors de la lecture du contenu vidéo et jusqu’à l’arrêt de la vidéo ou la désactivation du mode plein écran.

Sous Linux, la définition de displayState sur StageDisplayState.FULL_SCREEN ou sur StageDisplayState.FULL_SCREEN_INTERACTIVE est une opération asynchrone.

L’exemple suivant montre de manière interactive comment créer une application plein écran en modifiant la propriété displayState.

Remarque : le mode plein écran peut être déclenché dans certaines situations, par exemple si l’utilisateur a cliqué ou appuyé sur une touche, en raison de restrictions de sécurité. La propriété allowFullScreen doit être définie sur true lorsqu’elle s’exécute dans un navigateur.

package { import flash.display.Sprite; import flash.display.Stage; import flash.events.*; import flash.net.NetConnection; import flash.net.NetStream; import flash.media.Video; public class FullScreenExample extends Sprite { private var videoURL:String = "testVideo.flv"; private var connection:NetConnection; private var stream:NetStream; private var video:Video; public function FullScreenExample() { connection = new NetConnection(); connection.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler); connection.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler); connection.connect(null); loaderInfo.addEventListener(Event.INIT, createMouseListener); } private function createMouseListener(event:Event):void { stage.addEventListener(MouseEvent.CLICK,toggleFullScreen); } private function toggleFullScreen(event:MouseEvent):void { switch(stage.displayState) { case "normal": stage.displayState = "fullScreen"; break; case "fullScreen": default: stage.displayState = "normal"; break; } } // Video related: private function netStatusHandler(event:NetStatusEvent):void { switch (event.info.code) { case "NetConnection.Connect.Success": connectStream(); break; case "NetStream.Play.StreamNotFound": trace("Unable to locate video: " + videoURL); break; } } private function connectStream():void { var stream:NetStream = new NetStream(connection); stream.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler); stream.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler); video = new Video(stage.stageWidth,stage.stageHeight); video.attachNetStream(stream); stream.play(videoURL); addChild(video); } private function securityErrorHandler(event:SecurityErrorEvent):void { trace("securityErrorHandler: " + event); } private function asyncErrorHandler(event:AsyncErrorEvent):void { // ignore AsyncErrorEvent events. } } }
flash.display.StageDisplayStateStage.scaleModeflash.events.FullScreenEventflash.events.Event.RESIZE
focus L’objet interactif qui a le focus clavier ou null si le focus n’est pas défini ou si l’objet avec focus appartient à un sandbox de sécurité auquel l’objet effectuant l’appel n’a pas accès.flash.display:InteractiveObjectRenvoie une erreur s’il est impossible de définir le focus sur la cible. ErrorErrorObjet disposant du focus clavier. L’objet interactif qui a le focus clavier ou null si le focus n’est pas défini ou si l’objet avec focus appartient à un sandbox de sécurité auquel l’objet effectuant l’appel n’a pas accès. L’exemple suivant définit le focus initial sur le champ de texte myTF afin que l’utilisateur puisse commencer la saisie sans avoir à cliquer sur un objet. Si vous testez ce code au sein de l’interface de l’outil de création, seules quelques touches sont disponibles, car l’hôte (le navigateur ou l’outil) interprète tout d’abord la plupart des pressions de touche. Pour que cet exemple fonctionne comme prévu, compilez-le et exécutez le fichier SWF. var myTF:TextField = new TextField(); myTF.border =true; myTF.type = TextFieldType.INPUT; addChild(myTF); stage.focus= myTF; frameRate Extrait et définit la cadence de la scène.NumberL’appel de la propriété frameRate d’un objet Stage renvoie une exception pour tout appelant qui n’appartient pas au même sandbox de sécurité que le propriétaire de l’objet Stage (le fichier SWF principal). Pour éviter cette situation, le propriétaire de l’objet Stage peut accorder une autorisation au domaine de l’appelant en exécutant la méthode Security.allowDomain() ou Security.allowInsecureDomain(). Pour plus d’informations, voir le chapitre « Sécurité » du Guide du développeur d’ActionScript 3.0. SecurityErrorSecurityError Extrait et définit la cadence de la scène. soit le nombre d’images par seconde. Par défaut, cette valeur est définie sur la cadence du premier fichier SWF chargé. Les plages valides vont de 0,01 à 1 000 images par seconde.

Remarque : une application risque de ne pas pouvoir traiter les cadences élevées, soit parce que la plateforme cible n’est pas assez rapide ou parce que le lecteur n’est pas synchronisé avec la cadence des blancs verticaux de l’écran (généralement 60 Hz sur les périphériques avec écrans à cristaux liquides). Dans certains cas, une plateforme cible peut également réduire la cadence maximale si elle anticipe une forte charge du processeur.

Pour le contenu s’exécutant dans Adobe AIR, le réglage de la propriété frameRate d’un objet Stage change la cadence pour tous les objets Stage (utilisés par différents objets NativeWindow).

fullScreenHeight Renvoie la hauteur de l’écran qui sera utilisée lors du passage en plein écran, si cet état est entré immédiatement.uint Renvoie la hauteur de l’écran qui sera utilisée lors du passage en plein écran, si cet état est entré immédiatement. Si l’utilisateur utilise plusieurs écrans, l’écran choisi est celui sur lequel se trouve la majorité de la scène au moment du passage en plein écran.

Remarque : si l’utilisateur a la possibilité de déplacer le navigateur d’un écran à l’autre entre la récupération de la valeur et le passage en plein écran, la valeur peut être incorrecte. Si vous récupérez la valeur dans un gestionnaire d’événement qui définit Stage.displayState sur StageDisplayState.FULL_SCREEN, la valeur sera correcte.

Hauteur du pixel, qui correspond également à celle de la scène si Stage.align est défini sur StageAlign.TOP_LEFT et Stage.scaleMode sur StageScaleMode.NO_SCALE.

Cet exemple crée un rectangle vert de la taille de la scène et place au-dessus un carré rouge qu’il active sous forme de bouton. Un clic sur le carré rouge déclenche le gestionnaire d’événement enterFullScreen(), qui définit la propriété fullScreenSourceRect et active le mode plein écran. Pour définir la propriété fullScreenSourceRect, le gestionnaire d’événements commence avec l’emplacement et les dimensions du carré rouge. Il compare ensuite le format (largeur divisée par la hauteur) du carré rouge à celui de la scène en plein écran de manière à pouvoir étendre le rectangle (fullScreenSourceRect) en fonction du format de l’écran. En résultat, le carré rouge occupe la totalité de la hauteur de l’écran et l’arrière-plan vert est visible sur les côtés. Si le format ne correspond pas, la couleur d’arrière-plan de la scène, blanche par défaut, apparaît sur les côtés à la place de l’arrière-plan vert.

Remarque : testez cet exemple dans le navigateur. Dans l’onglet HTML de la boîte de dialogue Paramètres de publication de Flash, sélectionnez le modèle Flash uniquement - Autoriser le plein écran. Spécifiez la version Flash Player 9.0.115.0, et assurez-vous que les formats Flash et HTML soient sélectionnés dans l’onglet Formats. Puis, publiez et ouvrez le fichier HTML résultant dans le navigateur.

import flash.display.Sprite; import flash.display.Stage; import flash.display.StageDisplayState; import flash.events.MouseEvent; import flash.geom.Rectangle; // cover the stage with a green rectangle var greenRect:Sprite = new Sprite(); greenRect.graphics.beginFill(0x00FF00); greenRect.graphics.drawRect(0, 0, stage.stageWidth, stage.stageHeight); addChild(greenRect); // create red square on stage, turn it into a button for going to full screen var redSquare:Sprite = new Sprite(); redSquare.graphics.beginFill(0xFF0000); redSquare.graphics.drawRect(0, 0, 300, 300); redSquare.x = 50; redSquare.y = 50; redSquare.addEventListener(MouseEvent.CLICK, enterFullScreen); redSquare.buttonMode = true; addChild(redSquare); function enterFullScreen(e:MouseEvent):void { // we will go to full screen zoomed in on the red square var redSquare:Sprite = e.target as Sprite; var fullScreenRect:Rectangle = new Rectangle(redSquare.x, redSquare.y, redSquare.width, redSquare.height); // calculate aspect ratio of the red square var rectAspectRatio:Number = fullScreenRect.width / fullScreenRect.height; // calculate aspect ratio of the screen var screenAspectRatio:Number = stage.fullScreenWidth / stage.fullScreenHeight; // change the fullScreenRect so that it covers the entire screen, keeping it centered on the redSquare // try commenting out this section to see what happens if you do not fix the aspect ratio. if (rectAspectRatio > screenAspectRatio) { var newHeight:Number = fullScreenRect.width / screenAspectRatio; fullScreenRect.y -= ((newHeight - fullScreenRect.height) / 2); fullScreenRect.height = newHeight; } else if (rectAspectRatio < screenAspectRatio) { var newWidth:Number = fullScreenRect.height * screenAspectRatio; fullScreenRect.x -= ((newWidth - fullScreenRect.width) / 2); fullScreenRect.width = newWidth; } // go to full screen stage.fullScreenSourceRect = fullScreenRect; stage.displayState = StageDisplayState.FULL_SCREEN; }
displayStatefullScreenSourceRectfullScreenWidthscaleModeStageDisplayStateflash.events.Event.RESIZEflash.events.FullScreenEvent
fullScreenSourceRect Définit le moteur d’exécution de Flash de façon à ce qu’il redimensionne une zone spécifique de la scène en mode plein écran.flash.geom:Rectangle Définit le moteur d’exécution de Flash de façon à ce qu’il redimensionne une zone spécifique de la scène en mode plein écran. Lorsque cela est possible, le moteur d’exécution de Flash effectue le redimensionnement dans le matériel, à l’aide de la carte graphique de l’ordinateur de l’utilisateur, ce qui affiche généralement le contenu plus rapidement qu’avec un redimensionnement logiciel.

Lorsque cette propriété est définie sur un rectangle valide et la propriété displayState sur le mode plein écran, le moteur d’exécution de Flash redimensionne la zone spécifiée. La taille réelle de la scène en pixels dans ActionScript ne change pas. Le moteur d’exécution de Flash impose une taille limite au rectangle en fonction de la taille du message standard « Appuyez sur la touche Echap pour quitter le mode plein écran ». Cette limite est généralement d’environ 260 sur 30 pixels, mais peut varier en fonction de la plate-forme et de la version du moteur d’exécution de Flash.

Cette propriété ne peut être définie que lorsque le moteur d’exécution de Flash n’est pas en mode plein écran. Pour utiliser cette propriété correctement, définissez d’abord cette propriété, puis la propriété displayState sur le mode plein écran, comme dans les exemples de code.

Pour activer la mise à l’échelle, définissez la propriété fullScreenSourceRect sur un objet rectangle :

// valid, will enable hardware scaling stage.fullScreenSourceRect = new Rectangle(0,0,320,240);

Pour activer la mise à l’échelle, définissez fullScreenSourceRect=null dans ActionScript 3.0, et undefined dans ActionScript 2.0.

stage.fullScreenSourceRect = null;

L’utilisateur final peut également désactiver la mise à l’échelle matérielle, activée par défaut, dans les paramètres d’affichage de Flash Player. Pour plus d’informations, voir www.adobe.com/go/display_settings_fr.

Pour tirer parti de la mise à l’échelle matérielle, définissez l’ensemble ou une partie de la scène sur le mode plein écran. Le code suivant ActionScript 3.0 définit l’ensemble de la scène en mode plein écran : import flash.geom.*; { stage.fullScreenSourceRect = new Rectangle(0,0,320,240); stage.displayState = StageDisplayState.FULL_SCREEN; } Dans l’exemple suivant, l’utilisateur peut passer de la lecture d’une vidéo en mode plein écran ou normal en cliquant sur la scène. Si le fichier SWF de cet exemple s’exécute dans Flash Player  9.0.115.0 ou supérieure, l’accélération matérielle est utilisée pour améliorer la mise à l’échelle en plein écran de l’affichage.

Avant d’utiliser le mode plein écran avec la mise à l’échelle matérielle, les conditions suivantes doivent être remplies :

  1. Flash Player version 9.0.115.0 ou ultérieure est nécessaire, ainsi qu’un outil de création qui prenne en charge cette version.
  2. Les modèles HTML doivent être modifiés pour prendre en charge le plein écran. L’attribut allowFullScreen doit être défini sur true pour les balises object et embed (les scripts qui génèrent des balises SWF-embedding doivent également autoriser le plein écran). Pour obtenir des exemples de fichiers pouvant être utilisés pour Flash Builder, voir l’article Exploring full-screen mode in Flash Player 9 (disponible en anglais uniquement).
  3. Votre application doit être autorisée à accéder à un fichier vidéo FLV. Dans cet exemple, on suppose que le fichier Flash Video (FLV) est dans le même répertoire que le fichier SWF.
  4. L’utilisateur doit autoriser l’accès au mode plein écran.
  5. Pour plus d’informations sur la mise à l’échelle matérielle, voir l’article Exploring Flash Player support for high-definition H.264 video and AAC audio pour Flash Player (disponible en anglais uniquement).

Un fichier FLV est chargé à l’aide d’objets NetConnection et NetStream. Le fichier FLV étant dans le même répertoire que le fichier SWF et se connectant via HTTP, le paramètre de la méthode NetConnection.connect() est défini sur null. L’objet NetConnection connect signale son état en distribuant un événement netStatus qui invoque la méthode netStatusHandler(). La méthode netStatusHandler() vérifie si la connexion a réussi et invoque la méthode connectStream(), qui crée un objet NetStream acceptant l’objet NetConnection sous forme de paramètre. Elle crée également un objet video et lie l’objet NetStream à cet objet video. L’objet video est alors ajouté à la liste d’affichage et le flux est défini sur lecture. Le fichier FLV ne contenant pas de métadonnées ni d’information sur les points de repère, un événement AsyncError sera distribué. Un écouteur doit être défini pour gérer l’événement. Ici, l’écouteur est configuré et ignore l’événement. Un autre écouteur de l’événement netStatus est également configuré pour l’objet NetStream. Il affiche un message d’erreur si le flux n’est pas détecté (la méthode netStatusHandler() peut être utilisée pour gérer toutes les informations d’état signalées pour le flux ou la connexion).

Lorsque les propriétés et les méthodes d’un fichier SWF chargé sont accessibles, la méthode createMouseListener() est invoquée. Elle configure un écouteur pour l’événement de clic de souris sur la scène. La méthode toggleFullScreen() vérifie si l’état d’affichage est en mode plein écran ou normal. S’il s’agit du mode normal, la taille de l’objet vidéo est définie sur la taille du flux vidéo. La propriété fullScreenSourceRect est définie sur un rectangle qui correspond aux dimensions de l’objet vidéo. Puis, la propriété Stage.displayMode est définie sur le plein écran, ce qui provoque le remplissage par la vidéo de toute la zone du plein écran. Si la configuration système requise est satisfaite, le matériel graphique de l’ordinateur est utilisé pour améliorer les performances du rendu en plein écran et l’état d’affichage est défini sur le mode plein écran. Pour récupérer toute erreur de sécurité susceptible de se produire pendant le passage au mode plein écran, un bloc try...catch est utilisé (l’état d’affichage doit être défini sur le mode plein écran après la définition de la propriété fullScreenSourceRect). Avant le passage en mode normal, la hauteur et la largeur de l’objet vidéo sont ramenées aux valeurs d’origine de l’objet enregistré. Dans le cas contraire, les changements apportés à l’objet vidéo pour le mode plein écran détermineront la hauteur et la largeur.

package { import flash.display.Sprite; import flash.display.StageDisplayState; import flash.media.Video; import flash.net.NetConnection; import flash.net.NetStream; import flash.events.NetStatusEvent; import flash.events.AsyncErrorEvent; import flash.events.SecurityErrorEvent; import flash.events.MouseEvent; import flash.events.Event; import flash.geom.Rectangle; public class Stage_fullScreenSourceRectExample2 extends Sprite { private var videoURL:String = "testVideo1.flv"; private var connection:NetConnection; private var stream:NetStream; private var myVideo:Video; private var savedWidth:uint; private var savedHeight:uint; public function Stage_fullScreenSourceRectExample2() { connection = new NetConnection(); connection.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler); connection.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler); connection.connect(null); loaderInfo.addEventListener(Event.INIT, createMouseListener); } private function createMouseListener(event:Event):void { stage.addEventListener(MouseEvent.CLICK, toggleFullScreen); } private function toggleFullScreen(event:MouseEvent):void { if(stage.displayState == StageDisplayState.NORMAL) { myVideo.width = myVideo.videoWidth; myVideo.height = myVideo.videoHeight; try { stage.fullScreenSourceRect = new Rectangle(myVideo.x, myVideo.y, myVideo.width, myVideo.height); stage.displayState = StageDisplayState.FULL_SCREEN; } catch (e:SecurityError) { trace ("A security error occurred while switching to full screen: " + event); myVideo.width = savedWidth; myVideo.height = savedHeight; } }else { myVideo.width = savedWidth; myVideo.height = savedHeight; stage.displayState = StageDisplayState.NORMAL; } } private function netStatusHandler(event:NetStatusEvent):void { switch (event.info.code) { case "NetConnection.Connect.Success": connectStream(); break; case "NetStream.Play.StreamNotFound": trace ("Unable to locate video: " + videoURL); break; } } private function connectStream():void { var stream:NetStream = new NetStream(connection); stream.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler); stream.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler); myVideo = new Video(); myVideo.attachNetStream(stream); stream.play(videoURL); savedWidth = myVideo.width; savedHeight = myVideo.height; addChild(myVideo); } private function securityErrorHandler(event:SecurityErrorEvent):void { trace("securityErrorHandler: " + event); } private function asyncErrorHandler(event:AsyncErrorEvent):void { } } }
flash.display.StageDisplayStateStage.displayStateStage.scaleModeflash.events.FullScreenEventflash.events.Event.RESIZE
fullScreenWidth Renvoie la largeur de l’écran utilisée lors du passage en plein écran, si cet état est entré immédiatement.uint Renvoie la largeur de l’écran utilisée lors du passage en plein écran, si cet état est entré immédiatement. Si l’utilisateur utilise plusieurs écrans, l’écran choisi est celui sur lequel se trouve la majorité de la scène au moment du passage en plein écran.

Remarque : si l’utilisateur a la possibilité de déplacer le navigateur d’un écran à l’autre entre la récupération de la valeur et le passage en plein écran, la valeur peut être incorrecte. Si vous récupérez la valeur dans un gestionnaire d’événement qui définit Stage.displayState sur StageDisplayState.FULL_SCREEN, la valeur sera correcte.

Largeur du pixel, qui correspond également à celle de la scène si Stage.align est défini sur StageAlign.TOP_LEFT et Stage.scaleMode sur StageScaleMode.NO_SCALE.

Cet exemple crée un rectangle vert de la taille de la scène et place au-dessus un carré rouge qu’il active sous forme de bouton. Un clic sur le carré rouge déclenche le gestionnaire d’événement enterFullScreen(), qui définit la propriété fullScreenSourceRect et active le mode plein écran. Pour définir la propriété fullScreenSourceRect, le gestionnaire d’événements commence avec l’emplacement et les dimensions du carré rouge. Il compare ensuite le format (largeur divisée par la hauteur) du carré rouge à celui de la scène en plein écran de manière à pouvoir étendre le rectangle (fullScreenSourceRect) en fonction du format de l’écran. En résultat, le carré rouge occupe la totalité de la hauteur de l’écran et l’arrière-plan vert est visible sur les côtés. Si le format ne correspond pas, la couleur d’arrière-plan de la scène, blanche par défaut, apparaît sur les côtés à la place de l’arrière-plan vert.

Remarque : testez cet exemple dans le navigateur. Dans l’onglet HTML de la boîte de dialogue Paramètres de publication de Flash, sélectionnez le modèle Flash uniquement - Autoriser le plein écran. Spécifiez la version Flash Player 9.0.115.0, et assurez-vous que les formats Flash et HTML soient sélectionnés dans l’onglet Formats. Puis, publiez et ouvrez le fichier HTML résultant dans le navigateur.

import flash.display.Sprite; import flash.display.Stage; import flash.display.StageDisplayState; import flash.events.MouseEvent; import flash.geom.Rectangle; // cover the stage with a green rectangle var greenRect:Sprite = new Sprite(); greenRect.graphics.beginFill(0x00FF00); greenRect.graphics.drawRect(0, 0, stage.stageWidth, stage.stageHeight); addChild(greenRect); // create red square on stage, turn it into a button for going to full screen var redSquare:Sprite = new Sprite(); redSquare.graphics.beginFill(0xFF0000); redSquare.graphics.drawRect(0, 0, 300, 300); redSquare.x = 50; redSquare.y = 50; redSquare.addEventListener(MouseEvent.CLICK, enterFullScreen); redSquare.buttonMode = true; addChild(redSquare); function enterFullScreen(e:MouseEvent):void { // we will go to full screen zoomed in on the red square var redSquare:Sprite = e.target as Sprite; var fullScreenRect:Rectangle = new Rectangle(redSquare.x, redSquare.y, redSquare.width, redSquare.height); // calculate aspect ratio of the red square var rectAspectRatio:Number = fullScreenRect.width / fullScreenRect.height; // calculate aspect ratio of the screen var screenAspectRatio:Number = stage.fullScreenWidth / stage.fullScreenHeight; // change the fullScreenRect so that it covers the entire screen, keeping it centered on the redSquare // try commenting out this section to see what happens if you do not fix the aspect ratio. if (rectAspectRatio > screenAspectRatio) { var newHeight:Number = fullScreenRect.width / screenAspectRatio; fullScreenRect.y -= ((newHeight - fullScreenRect.height) / 2); fullScreenRect.height = newHeight; } else if (rectAspectRatio < screenAspectRatio) { var newWidth:Number = fullScreenRect.height * screenAspectRatio; fullScreenRect.x -= ((newWidth - fullScreenRect.width) / 2); fullScreenRect.width = newWidth; } // go to full screen stage.fullScreenSourceRect = fullScreenRect; stage.displayState = StageDisplayState.FULL_SCREEN; }
displayStatefullScreenHeightfullScreenSourceRectscaleModeStageDisplayStateflash.events.Event.RESIZEflash.events.FullScreenEvent
height Indique la hauteur de l’objet d’affichage, en pixels.NumberToute référence à la propriété height d’un objet Stage renvoie une exception pour tout appelant qui n’appartient pas au même sandbox de sécurité que le propriétaire de l’objet Stage (le fichier SWF principal). Pour éviter cette situation, le propriétaire de l’objet Stage peut accorder une autorisation au domaine de l’appelant en exécutant la méthode Security.allowDomain() ou Security.allowInsecureDomain(). Pour plus d’informations, voir le chapitre « Sécurité » du Guide du développeur d’ActionScript 3.0. SecurityErrorSecurityErrorIl reste impossible de définir la propriété height d’un objet Stage, même si l’objet appelant est le propriétaire de l’objet Stage (le fichier SWF principal). IllegalOperationErrorflash.errors:IllegalOperationError Indique la hauteur de l’objet d’affichage, en pixels. La hauteur est calculée en fonction des limites du contenu de l’objet d’affichage. Lorsque vous définissez la propriété height, la propriété scaleY est ajustée en conséquence, comme illustré dans le code suivant : var rect:Shape = new Shape(); rect.graphics.beginFill(0xFF0000); rect.graphics.drawRect(0, 0, 100, 100); trace(rect.scaleY) // 1; rect.height = 200; trace(rect.scaleY) // 2;

A l’exception des objets TextField et Video, un objet d’affichage sans contenu (comme un sprite vide) a une hauteur de 0, même si vous essayez de définir height sur une valeur différente.

mouseChildren Détermine si les enfants de l’objet prennent en charge la souris ou les périphériques de saisie utilisateur.BooleanRéférencer la propriété mouseChildren d’un objet Stage renvoie une exception pour tout appelant qui n’appartient pas au même sandbox de sécurité que le propriétaire de l’objet Stage (le fichier SWF principal). Pour éviter cette situation, le propriétaire de l’objet Stage peut accorder une autorisation au domaine de l’appelant en exécutant la méthode Security.allowDomain() ou Security.allowInsecureDomain(). Pour plus d’informations, voir le chapitre « Sécurité » du Guide du développeur d’ActionScript 3.0. SecurityErrorSecurityError Détermine si les enfants de l’objet prennent en charge la souris ou les périphériques de saisie utilisateur. Si tel est le cas, un utilisateur peut manipuler l’objet à l’aide de la souris ou du périphérique de saisie utilisateur. La valeur par défaut est true.

Cette propriété s’avère utile lorsque vous créez un bouton avec une occurrence de la classe Sprite (au lieu d’utiliser la classe SimpleButton). Si vous utilisez une occurrence de Sprite pour créer un bouton, vous pouvez le décorer à l’aide de la méthode addChild() pour ajouter d’autres occurrences de Sprite. Ce processus risque d’associer un comportement imprévu aux événements de souris, car les occurrences de Sprite ajoutées en tant qu’enfants peuvent devenir l’objet cible d’un événement de souris alors que vous vous attendiez à ce que ce dernier corresponde à l’occurrence parent. Pour vous assurer que l’occurrence parent serve d’objet cible pour les événements de souris, vous pouvez régler la propriété mouseChildren de l’occurrence parent sur false.

Définir cette propriété ne distribue aucun événement. La méthode addEventListener() vous permet de créer une fonctionnalité interactive.

nativeWindow Une référence à l’objet NativeWindow contenant cette scène.flash.display:NativeWindow Une référence à l’objet NativeWindow contenant cette scène.

La fenêtre représente la fenêtre du système d’exploitation native ; la scène représente le contenu de la fenêtre. Cette propriété est valide uniquement pour le contenu s’exécutant dans AIR sur des plates-formes prenant en charge la classe NativeWindow. Sur d’autres plates-formes, cette propriété est null. Dans Flash Player (contenu s’exécutant dans un navigateur), cette propriété est également null.

numChildren Renvoie le nombre d’enfants de l’objet.intToute référence à la propriété numChildren d’un objet Stage renvoie une exception pour tout appelant qui n’appartient pas au même sandbox de sécurité que le propriétaire de l’objet Stage (le fichier SWF principal). Pour éviter cette situation, le propriétaire de l’objet Stage peut accorder une autorisation au domaine de l’appelant en exécutant la méthode Security.allowDomain() ou Security.allowInsecureDomain(). Pour plus d’informations, voir le chapitre « Sécurité » du Guide du développeur d’ActionScript 3.0. SecurityErrorSecurityError Renvoie le nombre d’enfants de l’objet. orientation Orientation actuelle de la scène.String Orientation actuelle de la scène. Cette propriété est définie sur l’une des quatre valeurs, définies comme constantes dans la classe StageOrientation : Constante StageOrientationOrientation de la scèneStageOrientation.DEFAULTL’orientation de l’écran est celle par défaut (côté droit vers le haut).StageOrientation.ROTATED_RIGHTL’écran est orienté à droite.StageOrientation.ROTATED_LEFTL’écran est orienté à gauche.StageOrientation.UPSIDE_DOWNL’écran est orienté vers le bas.StageOrientation.UNKNOWNL’application n’a pas encore déterminé l’orientation initiale de l’écran. Vous pouvez ajouter un écouteur d’événement pour l’événement orientationChange.

Pour définir l’orientation de la scène, utilisez la méthode setOrientation().

Important : la propriété orientation est prise en charge sur les périphériques Android à partir de l’espace de noms 2.6.

StageOrientationautoOrientsdeviceOrientationsupportsOrientationChange
quality Valeur de la classe StageQuality qui spécifie la qualité de rendu utilisée.StringL’appel de la propriété quality d’un objet Stage renvoie une exception pour tout appelant qui n’appartient pas au même sandbox de sécurité que le propriétaire de l’objet Stage (le fichier SWF principal). Pour éviter cette situation, le propriétaire de l’objet Stage peut accorder une autorisation au domaine de l’appelant en exécutant la méthode Security.allowDomain() ou Security.allowInsecureDomain(). Pour plus d’informations, voir le chapitre « Sécurité » du Guide du développeur d’ActionScript 3.0. SecurityErrorSecurityError Valeur de la classe StageQuality qui spécifie la qualité de rendu utilisée. Les valeurs suivantes sont prises en charge :
  • StageQuality.LOW — Qualité de rendu inférieure. Les images ne sont pas anticrènelées et les bitmaps ne sont pas lissés, mais le moteur d’exécution utilise toujours le mip-mapping.
  • StageQuality.MEDIUM — Qualité de rendu moyenne. Les images sont anticrènelées selon une grille de 2 x 2 pixels ; le lissage des bitmaps dépend du paramètre Bitmap.smoothing. Les moteurs d’exécution utilisent le mip-mapping. Ce niveau de qualité convient aux animations qui ne contiennent pas de texte.
  • StageQuality.HIGH — Qualité de rendu supérieure. Les images sont anticrènelées selon une grille de 4 x 4 pixels ; le lissage des bitmaps dépend du paramètre Bitmap.smoothing. Les moteurs d’exécution utilisent le mip-mapping. Il s’agit du réglage de qualité de rendu par défaut de Flash Player.
  • StageQuality.BEST — Très haute qualité de rendu. Les images sont anticrènelées selon une grille de 4 x 4 pixels. Si Bitmap.smoothing est true, le moteur d’exécution utilise un algorithme de qualité supérieure pour la réduction de la résolution qui produit moins d’artefacts (l’utilisation de StageQuality.BEST avec Bitmap.smoothing paramétré sur true ralentit toutefois sensiblement les performances et n’est pas recommandée).

Des paramètres de qualité supérieurs produisent un meilleur rendu des bitmaps redimensionnées. Néanmoins, des paramètres de qualité supérieurs sont plus chers. Notamment, lors du rendu de vidéo redimensionnée, l’utilisation de paramètres de qualité supérieurs peut réduire la cadence.

Dans le profil de bureau d’Adobe AIR, le paramètre quality peut être défini sur StageQuality.BEST ou StageQuality.HIGH (et la valeur par défaut est StageQuality.HIGH). Si vous tentez de le définir sur une autre valeur, il ne se passe rien (et la propriété reste inchangée). Dans le profil mobile d’AIR, les quatre paramètres de qualité sont disponibles. La valeur par défaut sur les périphériques mobiles est StageQuality.MEDIUM.

Pour le contenu s’exécutant dans Adobe AIR, le réglage de la propriété quality d’un objet Stage change la qualité de rendu pour tous les objets Stage (utilisés par différents objets NativeWindow).

Remarque : le système d’exploitation dessine les polices de périphérique, qui ne sont par conséquent pas affectées par la propriété quality.
flash.display.StageQualityflash.display.Bitmap.smoothing
scaleMode Valeur de la classe StageScaleMode qui spécifie le mode d’échelle à utiliser.StringL’appel de la propriété scaleMode d’un objet Stage renvoie une exception pour tout appelant qui n’appartient pas au même sandbox de sécurité que le propriétaire de l’objet Stage (le fichier SWF principal). Pour éviter cette situation, le propriétaire de l’objet Stage peut accorder une autorisation au domaine de l’appelant en exécutant la méthode Security.allowDomain() ou Security.allowInsecureDomain(). Pour plus d’informations, voir le chapitre « Sécurité » du Guide du développeur d’ActionScript 3.0. SecurityErrorSecurityErrorValeur de la classe StageScaleMode qui spécifie le mode d’échelle à utiliser. Valeur de la classe StageScaleMode qui spécifie le mode d’échelle à utiliser. Les valeurs suivantes sont prises en charge :
  • StageScaleMode.EXACT_FIT — Rend tout le contenu visible dans la zone spécifiée sans tenter de préserver le format d’origine. Une distorsion peut se produire, et l’application peut sembler étirée ou compressée.
  • StageScaleMode.SHOW_ALL — Spécifie que toute l’application est visible dans la zone spécifiée, sans distorsion, tout en conservant le format d’origine de l’application. Des bordures peuvent apparaître de part et d’autre de l’application.
  • StageScaleMode.NO_BORDER — Spécifie que l’application entière remplit la zone spécifiée, sans distorsion mais avec un recadrage éventuel, tout en conservant le format d’origine de l’application.
  • StageScaleMode.NO_SCALE — Toute l’application est ajustée, de façon à pouvoir rester inchangée, même si la taille de la fenêtre d’affichage change. Un recadrage risque de se produire si la fenêtre du lecteur est plus petite que le contenu.
flash.display.StageScaleMode
showDefaultContextMenu Détermine si les éléments par défaut du menu contextuel du moteur d’exécution de Flash doivent être affichés ou masqués.BooleanL’appel de la propriété showDefaultContextMenu d’un objet Stage renvoie une exception pour tout appelant qui n’appartient pas au même sandbox de sécurité que le propriétaire de l’objet Stage (le fichier SWF principal). Pour éviter cette situation, le propriétaire de l’objet Stage peut accorder une autorisation au domaine de l’appelant en exécutant la méthode Security.allowDomain() ou Security.allowInsecureDomain(). Pour plus d’informations, voir le chapitre « Sécurité » du Guide du développeur d’ActionScript 3.0. SecurityErrorSecurityErrorSpécifie l’affichage ou le masquage des éléments par défaut dans le menu contextuel de Flash Player. Détermine si les éléments par défaut du menu contextuel du moteur d’exécution de Flash doivent être affichés ou masqués.

Si la propriété showDefaultContextMenu est définie sur true (valeur par défaut), toutes les options du menu contextuel s’affichent. Si la propriété showDefaultContextMenu est définie sur false, seules les options des menus Paramètres et A propos de... s’affichent.

softKeyboardRect Zone de la scène actuellement couverte par le clavier logiciel.flash.geom:Rectangle Zone de la scène actuellement couverte par le clavier logiciel.

Cette zone a une taille égale à zéro (0,0,0,0) lorsque le clavier logiciel n’est pas visible.

Lorsque le clavier s’ouvre, la propriété softKeyboardRect est définie au moment où l’événement softKeyboardActivate est distribué. Si le clavier change de taille lorsqu’il est ouvert, le moteur d’exécution met à jour la propriété softKeyboardRect et distribue un autre événement softKeyboardActivate.

Remarque : sous Android, la zone couverte par le clavier est estimée lorsque le système d’exploitation ne fournit pas les informations nécessaires pour déterminer la surface exacte. Ce problème se produit en mode plein écran, mais aussi lorsque le clavier s’ouvre en réponse à un objet InteractiveObject recevant le focus ou invoquant la méthode requestSoftKeyboard().

SoftKeyboardEventInteractiveObject.needsSoftKeyboard
stageFocusRect Spécifie si les objets affichent ou non une bordure rayonnante lorsqu’ils disposent du focus.BooleanL’appel de la propriété stageFocusRect d’un objet Stage renvoie une exception pour tout appelant qui n’appartient pas au même sandbox de sécurité que le propriétaire de l’objet Stage (le fichier SWF principal). Pour éviter cette situation, le propriétaire de l’objet Stage peut accorder une autorisation au domaine de l’appelant en exécutant la méthode Security.allowDomain() ou Security.allowInsecureDomain(). Pour plus d’informations, voir le chapitre « Sécurité » du Guide du développeur d’ActionScript 3.0. SecurityErrorSecurityErrorSpécifie si les objets affichent ou non une bordure rayonnante lorsqu’ils disposent du focus. Spécifie si les objets affichent ou non une bordure rayonnante lorsqu’ils disposent du focus. stageHeight Hauteur actuelle, en pixels, de la scène.intL’appel de la propriété stageHeight d’un objet Stage renvoie une exception pour tout appelant qui n’appartient pas au même sandbox de sécurité que le propriétaire de l’objet Stage (le fichier SWF principal). Pour éviter cette situation, le propriétaire de l’objet Stage peut accorder une autorisation au domaine de l’appelant en exécutant la méthode Security.allowDomain() ou Security.allowInsecureDomain(). Pour plus d’informations, voir le chapitre « Sécurité » du Guide du développeur d’ActionScript 3.0. SecurityErrorSecurityError Hauteur actuelle, en pixels, de la scène.

Si la valeur de la propriété Stage.scaleMode est définie sur StageScaleMode.NO_SCALE lorsque l’utilisateur redimensionne la fenêtre, le contenu Stage conserve sa taille définie lorsque la propriété stageHeight change pour refléter la nouvelle hauteur de la zone d’écran occupée par le fichier SWF (dans les autres modes d’échelle, la propriété stageHeight reflète toujours la hauteur d’origine du fichier SWF0). Vous pouvez ajouter un écouteur d’événement pour l’événement resize, puis utiliser la propriété stageHeight de la classe Stage pour déterminer la dimension réelle (en pixels) de la fenêtre redimensionnée du moteur d’exécution de Flash. L’écouteur d’événements vous permet de contrôler comment le contenu de l’écran est ajusté lorsque l’utilisateur redimensionne la fenêtre.

Les périphériques AIR pour TV se comportent de manière légèrement différente que les périphériques de bureau lorsque vous définissez la propriété stageHeight. Si la propriété Stage.scaleMode est définie sur StageScaleMode.NO_SCALE et que vous définissez la propriété stageHeight, la hauteur de la scène ne change pas jusqu’à l’image suivante du fichier SWF.

Remarque : dans une page HTML hébergeant le fichier SWF, les attributs height des balises object et embed doivent être définis sur un pourcentage (tel que 100%), et non sur des pixels. Si les réglages sont générés par le code JavaScript, le paramètre height de la méthode AC_FL_RunContent() doit être défini sur un pourcentage également. Ce pourcentage s’applique à la valeur stageHeight.

flash.display.StageScaleMode
stageVideos Liste des objets StageVideo disponibles pour la lecture de vidéos externes. Liste des objets StageVideo disponibles pour la lecture de vidéos externes.

Seul un nombre limité d’objets StageVideo peut être utilisé simultanément. Lorsque l’exécution d’un fichier SWF commence, le nombre d’objets StageVideo disponible dépend de la plate-forme et du matériel disponible.

Pour utiliser un objet StageVideo, affectez un membre de l’objet vectoriel stageVideos à la variable StageVideo.

Tous les objets StageVideo s’affichent sur la scène derrière les objets d’affichage. Les objets StageVideo s’affichent sur la scène dans l’ordre dans lequel ils apparaissent dans l’objet vectoriel stageVideos. Par exemple, si l’objet vectoriel stageVideos contient trois entrées :

  1. L’objet StageVideo dans l’index 0 de l’objet vectoriel stageVideos s’affiche derrière tous les objets StageVideo.
  2. L’objet StageVideo à l’index 1 s’affiche à l’avant-plan de l’objet StageVideo à l’index 0.
  3. L’objet StageVideo à l’index 2 s’affiche à l’avant-plan de l’objet StageVideo à l’index 1.

Utilisez la propriété StageVideo.depth pour modifier cet ordre.

Remarque : les périphériques AIR pour TV ne prennent en charge qu’un seul objet StageVideo.

Le code suivant illustre comment obtenir un objet StageVideo : var stageVideo:StageVideo; if ( stage.stageVideos.length >= 1 ) { stageVideo = stage.stageVideos[0]; }
flash.media.StageVideoflash.events.StageVideoEvent
stageWidth Spécifie la largeur actuelle, en pixels, de la scène.intL’appel de la propriété stageWidth d’un objet Stage renvoie une exception pour tout appelant qui n’appartient pas au même sandbox de sécurité que le propriétaire de l’objet Stage (le fichier SWF principal). Pour éviter cette situation, le propriétaire de l’objet Stage peut accorder une autorisation au domaine de l’appelant en exécutant la méthode Security.allowDomain() ou Security.allowInsecureDomain(). Pour plus d’informations, voir le chapitre « Sécurité » du Guide du développeur d’ActionScript 3.0. SecurityErrorSecurityError Spécifie la largeur actuelle, en pixels, de la scène.

Si la valeur de la propriété Stage.scaleMode est définie sur StageScaleMode.NO_SCALE lorsque l’utilisateur redimensionne la fenêtre, le contenu Stage conserve sa taille définie lorsque la propriété stageWidth change pour refléter la nouvelle largeur de la zone d’écran occupée par le fichier SWF (dans les autres modes d’échelle, la propriété stageWidth reflète toujours la largeur d’origine du fichier SWF). Vous pouvez ajouter un écouteur d’événement pour l’événement resize, puis utiliser la propriété stageWidth de la classe Stage pour déterminer la dimension réelle (en pixels) de la fenêtre redimensionnée du moteur d’exécution de Flash. L’écouteur d’événements vous permet de contrôler comment le contenu de l’écran est ajusté lorsque l’utilisateur redimensionne la fenêtre.

Les périphériques AIR pour TV se comportent de manière légèrement différente que les périphériques de bureau lorsque vous définissez la propriété stageWidth. Si la propriété Stage.scaleMode est définie sur StageScaleMode.NO_SCALE et que vous définissez la propriété stageWidth, la largeur de la scène ne change pas jusqu’à l’image suivante du fichier SWF.

Remarque : dans une page HTML hébergeant le fichier SWF, les attributs width des balises object et embed doivent être définis sur un pourcentage (tel que 100%), et non sur des pixels. Si les réglages sont générés par le code JavaScript, le paramètre width de la méthode AC_FL_RunContent() doit être défini sur un pourcentage également. Ce pourcentage s’applique à la valeur stageWidth.

flash.display.StageScaleMode
supportedOrientations Orientations prises en charge par le périphérique actuel. Orientations prises en charge par le périphérique actuel.

Vous pouvez utiliser les chaînes d’orientation qui figurent dans cette liste comme paramètres de la méthode setOrientation(). La définition d’une orientation non prise en charge échoue sans renvoyer d’erreur.

Les orientations prises en charge sont les suivantes :

Constante StageOrientationOrientation de la scèneStageOrientation.DEFAULTDéfinissez l’orientation de la scène sur l’orientation par défaut (côté droit vers le haut).StageOrientation.ROTATED_RIGHTDéfinissez l’orientation de la scène de façon à ce qu’elle pivote vers la droite.StageOrientation.ROTATED_LEFTDéfinissez l’orientation de la scène de façon à ce qu’elle pivote vers la gauche.StageOrientation.UPSIDE_DOWNDéfinissez l’orientation de la scène de façon à ce qu’elle pivote à l’envers.
StageOrientationautoOrientssetOrientationorientation
supportsOrientationChange Indique si l’application prend en charge les modifications au niveau de l’orientation de la scène (et de la rotation du périphérique).Boolean Indique si l’application prend en charge les modifications au niveau de l’orientation de la scène (et de la rotation du périphérique). Actuellement, cette propriété est uniquement définie sur true dans les applications AIR s’exécutant sur des périphériques mobiles. autoOrientsdeviceOrientationsupportsOrientationChangetabChildren Détermine si les enfants de l’objet prennent ou non en charge la tabulation.BooleanToute référence à la propriété tabChildren d’un objet Stage renvoie une exception pour tout appelant qui n’appartient pas au même sandbox de sécurité que le propriétaire de l’objet Stage (le fichier SWF principal). Pour éviter cette situation, le propriétaire de l’objet Stage peut accorder une autorisation au domaine de l’appelant en exécutant la méthode Security.allowDomain() ou Security.allowInsecureDomain(). Pour plus d’informations, voir le chapitre « Sécurité » du Guide du développeur d’ActionScript 3.0. SecurityErrorSecurityError Détermine si les enfants de l’objet prennent ou non en charge la tabulation. Active ou désactive la sélection des enfants de l’objet avec la touche de tabulation. La valeur par défaut est true.

Remarque : n’utilisez pas cette propriété tabChildren avec Flex. Utilisez plutôt la propriété mx.core.UIComponent.hasFocusableChildren.

textSnapshot Renvoie un objet TextSnapshot pour l’occurrence de DisplayObjectContainer.flash.text:TextSnapshotToute référence à la propriété textSnapshot d’un objet Stage renvoie une exception dans la mesure où la classe Stage ne met pas en œuvre cette propriété. Pour éviter ce problème, appelez la propriété textSnapshot d’un objet conteneur différent de l’objet Stage. IllegalOperationErrorflash.errors:IllegalOperationError Renvoie un objet TextSnapshot pour l’occurrence de DisplayObjectContainer. width Indique la largeur de l’objet d’affichage, en pixels.NumberToute référence à la propriété width d’un objet Stage renvoie une exception pour tout appelant qui n’appartient pas au même sandbox de sécurité que le propriétaire de l’objet Stage (le fichier SWF principal). Pour éviter cette situation, le propriétaire de l’objet Stage peut accorder une autorisation au domaine de l’appelant en exécutant la méthode Security.allowDomain() ou Security.allowInsecureDomain(). Pour plus d’informations, voir le chapitre « Sécurité » du Guide du développeur d’ActionScript 3.0. SecurityErrorSecurityErrorIl reste impossible de définir la propriété width d’un objet Stage, même si vous êtes le propriétaire de l’objet Stage. IllegalOperationErrorflash.errors:IllegalOperationError Indique la largeur de l’objet d’affichage, en pixels. La largeur est calculée en fonction des limites du contenu de l’objet d’affichage. Lorsque vous définissez la propriété width, la propriété scaleX est ajustée en conséquence, comme illustré dans le code suivant : var rect:Shape = new Shape(); rect.graphics.beginFill(0xFF0000); rect.graphics.drawRect(0, 0, 100, 100); trace(rect.scaleX) // 1; rect.width = 200; trace(rect.scaleX) // 2;

A l’exception des objets TextField et Video, un objet d’affichage sans contenu (comme un sprite vide) a une largeur de 0, même si vous essayez de définir width sur une valeur différente.

wmodeGPU Indique si la composition GPU est disponible et en cours d’utilisation.Boolean Indique si la composition GPU est disponible et en cours d’utilisation. La valeur wmodeGPU est true uniquement lorsque les trois conditions suivantes sont remplies :

  • La composition GPU a été sollicitée.
  • La composition GPU est disponible.
  • La composition GPU est en cours d’utilisation.

Concrètement, la propriété wmodeGPU peut indiquer plusieurs choses :

  1. La composition GPU n’a pas été sollicitée ou n’est pas disponible. Dans ce cas, la valeur de la propriété wmodeGPU est false.
  2. La composition GPU a été sollicitée (s’il y a lieu et si disponible), mais l’environnement est exécuté en « mode de secours » (rendu non optimal) en raison des limites du contenu. Dans ce cas, la valeur de la propriété wmodeGPU est true.
  3. La composition GPU a été sollicitée (s’il y a lieu et si disponible) et l’environnement est exécuté dans le mode qui convient le mieux. Dans ce cas, la valeur de propriété wmodeGPU est également true.

En d’autres termes, la propriété wmodeGPU identifie la capacité et l’état de l’environnement de rendu. Pour les moteurs d’exécution qui ne prennent pas en charge la composition GPU, tels que AIR 1.5.2, la valeur est toujours false : la valeur est true uniquement lorsque la composition GPU a été sollicitée, est disponible et est en cours d’utilisation (comme indiqué ci-dessus).

La propriété wmodeGPU est utile pour déterminer, à l’exécution, si la composition GPU est en cours d’utilisation. La valeur de la propriété wmodeGPU indique si le contenu va être ou non mis à l’échelle par le matériel afin que vous puissiez présenter les images à la taille appropriée. Vous pouvez par ailleurs déterminer si vous souhaitez ou non procéder à un rendu dans un chemin rapide afin de pouvoir ajuster la complexité de votre contenu en conséquence.

Pour Flash Player dans un navigateur, la composition GPU peut être sollicitée par la valeur de gpu pour le paramètre HTML wmode dans la page qui héberge le fichier SWF. Pour d’autres configurations, la composition GPU peut être sollicitée dans l’en-tête d’un fichier SWF (défini à l’aide d’outils de création SWF).

Toutefois, la propriété wmodeGPU n’identifie pas les performances de rendu actuelles. Même si la composition GPU est « en cours d’utilisation », le processus de rendu peut ne pas être exécuté dans le mode le mieux approprié. Pour ajuster votre contenu en vue d’obtenir un rendu optimal, utilisez une version de débogage du moteur d’exécution de Flash et définissez DisplayGPUBlendsetting dans votre fichier mm.cfg.

Remarque : cette propriété est toujours définie sur false si elle est référencée à partir du code ActionScript exécuté avant que le moteur d’exécution n’effectue sa première opération de rendu. Par exemple, si vous examinez la propriété wmodeGPU à partir d’un script dans l’image 1 d’Adobe Flash Professional et que votre fichier SWF est le premier fichier SWF chargé dans une nouvelle occurrence du moteur d’exécution, la valeur de la propriété wmodeGPU est false. Pour obtenir une valeur exacte, attendez qu’au moins une opération de rendu ait eu lieu. Si vous programmez un écouteur d’événement pour l’événement exitFrame d’un objet DisplayObject, la propriété wmodeGPU est définie sur la valeur correcte.

L’exemple suivant examine la propriété wmodeGPU après le rendu de l’objet d’affichage mySprite afin que vous puissiez obtenir une valeur exacte. mySprite.addEventListener(EXIT_FRAME, exithandler): function exithandler(exiteventobject:Event):void { trace(stage.wmodeGPU); }
Evénement exitFrame de la classe DisplayObject
NativeWindowInitOptions La classe NativeWindowInitOptions définit les options d’initialisation utilisées pour construire une nouvelle occurrence de NativeWindow.Object La classe NativeWindowInitOptions définit les options d’initialisation utilisées pour construire une nouvelle occurrence de NativeWindow.

Les propriétés définies dans les options d’initialisation ne peuvent pas être modifiées après la création d’une fenêtre.

Remarque : pour la fenêtre d’application initiale créée automatiquement par AIR, toutes ces propriétés (excepté type) sont définies dans le descripteur d’application. La fenêtre d’origine est toujours de type NativeWindowType.NORMAL.

flash.display.NativeWindowflash.display.NativeWindowTypeflash.display.NativeWindowSystemChromeNativeWindowInitOptions Crée un nouvel objet NativeWindowInitOptions. Crée un nouvel objet NativeWindowInitOptions.

Les valeurs par défaut du nouvel objet sont :

  • systemChrome = NativeWindowSystemChrome.STANDARD
  • type = NativeWindowType.NORMAL
  • transparent = false
  • owner = null
  • resizable = true
  • maximizable = true
  • minimizable = true
maximizable Spécifie si la fenêtre peut être agrandie par l’utilisateur. Booleantrue Spécifie si la fenêtre peut être agrandie par l’utilisateur.

Pour les fenêtres avec chrome système, ce paramètre affecte l’aspect du bouton d’agrandissement de la fenêtre. Il affecte également d’autres parties de l’interface utilisateur gérée par le système telles que le menu de la fenêtre dans Microsoft Windows.

Lorsque la valeur définie est false, la fenêtre ne peut pas être agrandie par l’utilisateur. L’appel direct de la méthode maximize() de la classe NativeWindow agrandit la fenêtre.

Remarques concernant le comportement du SE :

  • Sur les systèmes d’exploitation tels que Mac OS X, dans lesquels l’agrandissement d’une fenêtre n’empêche pas le redimensionnement, les propriétés maximizable et resizable doivent être définies sur false pour empêcher que la fenêtre soit redimensionnée ou qu’un zoom soit effectué.
  • Sous Linux, certains gestionnaires de fenêtres permettent à l’utilisateur d’agrandir les fenêtres même lorsque la propriété maximizable est définie sur false.
flash.display.NativeWindow.displayState
minimizable Spécifie si la fenêtre peut être réduite par l’utilisateur. Booleantrue Spécifie si la fenêtre peut être réduite par l’utilisateur.

Pour les fenêtres avec chrome système, ce paramètre affecte l’aspect du bouton de réduction de la fenêtre. Il affecte également d’autres parties de l’interface utilisateur gérée par le système telles que le menu de la fenêtre dans Microsoft Windows.

Lorsque la valeur définie est false, la fenêtre ne peut pas être réduite par l’utilisateur. L’appel direct de la méthode minimize() de la classe NativeWindow réduit la fenêtre.

Remarque : sous Linux, certains gestionnaires de fenêtres permettent à l’utilisateur de réduire les fenêtres même lorsque la propriété minimizable est définie sur false.

flash.display.NativeWindow.displayState
owner Spécifie l’objet NativeWindow devant renfermer toutes les fenêtres créées avec cet objet NativeWindowInitOptions.flash.display:NativeWindow<code>null</code> Spécifie l’objet NativeWindow devant renfermer toutes les fenêtres créées avec cet objet NativeWindowInitOptions.

Lorsqu’une fenêtre appartient à une autre fenêtre, elle est toujours affichée devant sa fenêtre propriétaire, est réduite et masquée avec sa fenêtre propriétaire, et se ferme lorsque sa fenêtre propriétaire se ferme.

flash.display.NativeWindow.ownerflash.display.NativeWindow.listOwnedWindows()
resizable Spécifie si la fenêtre peut être redimensionnée par l’utilisateur. Booleantrue Spécifie si la fenêtre peut être redimensionnée par l’utilisateur.

Lorsque la valeur définie est false, la fenêtre ne peut pas être redimensionnée par l’utilisateur à l’aide du chrome système. L’appel de la méthode startResize() de l’objet NativeWindow en réponse à un événement de souris permet à l’utilisateur de redimensionner la fenêtre. Définir directement les limites de la fenêtre permet également de modifier la taille de la fenêtre.

Remarques concernant le comportement du SE :

  • Sur les systèmes d’exploitation tels que Mac OS X, dans lesquels l’agrandissement de fenêtres équivaut à une opération de redimensionnement, les propriétés maximizable et resizable doivent être définies sur false pour empêcher que la fenêtre soit redimensionnée ou qu’un zoom soit effectué.
  • Sous Linux, certains gestionnaires de fenêtres permettent à l’utilisateur de redimensionner les fenêtres même lorsque la propriété resizable est définie sur false.
flash.display.NativeWindow.bounds
systemChrome Indique si le chrome système est fourni pour la fenêtre.StringNativeWindowSystemChrome.STANDARD Indique si le chrome système est fourni pour la fenêtre.

Chrome fait référence aux commandes de la fenêtre qui permettent à un utilisateur de commander les propriétés de bureau d’une fenêtre. Le chrome système utilise les commandes standard pour l’environnement de bureau dans lequel l’application AIR est exécutée et est conforme à l’apparence standard du système d’application natif.

Pour utiliser le chrome fourni par un logiciel intégré (tel que Flex) ou pour fournir un chrome à votre fenêtre, réglez systemChrome sur NativeWindowSystemChrome.NONE.

Les constantes pour les valeurs valides de cette propriété sont définies dans la classe NativeWindowSystemChrome :

  • NativeWindowSystemChrome.NONE
  • NativeWindowSystemChrome.STANDARD

Si elle n’est pas spécifiée, la valeur par défaut pour systemChrome est NativeWindowSystemChrome.STANDARD.

La définition de la propriété transparent sur true pour une fenêtre avec chrome système n’est pas prise en charge.

flash.display.NativeWindowSystemChrome
transparent Spécifie si la fenêtre prend en charge la transparence et la fusion alpha par rapport au bureau.Booleanfalse Spécifie si la fenêtre prend en charge la transparence et l’alpha blending par rapport au bureau.

Si la valeur est true, l’affichage de la fenêtre est combiné par rapport au bureau. Les zones de la fenêtre non couvertes par un objet d’affichage ou couvertes par des objets d’affichage avec un paramètre alpha proche de zéro, sont effectivement invisibles et n’interceptent pas d’événements mouse (qui sont reçus par l’objet desktop sous la fenêtre). La valeur alpha à laquelle un objet n’intercepte plus d’événements mouse varie entre environ ,06 et ,01 selon le système d’exploitation.

La définition de la propriété transparent sur true pour une fenêtre avec chrome système n’est pas prise en charge.

Remarque : tous les gestionnaires de fenêtres de Linux ne prennent pas en charge la transparence. Sur ces systèmes, les zones transparentes d’une fenêtre sont donc créées en noir.

type Spécifie le type de fenêtre à créer.StringNativeWindowType.NORMAL Spécifie le type de fenêtre à créer.

Les constantes pour les valeurs valides de cette propriété sont définies dans la classe NativeWindowType :

  • NativeWindowType.NORMAL — Une fenêtre classique. Les fenêtres normales utilisent le chrome plein écran et apparaissent dans la barre des tâches de Windows ou Linux.
  • NativeWindowType.UTILITY — Une palette d’outils. Les fenêtres d’utilitaire utilisent une version plus fine du chrome système et n’apparaissent pas sur la barre des tâches de Windows.
  • NativeWindowType.LIGHTWEIGHT — Les fenêtres légères ne peuvent pas avoir de chrome système et n’apparaissent pas dans la barre des tâches de Windows ou Linux. De plus, les fenêtres légères n’ont pas de menu Système (Alt-Espace) sous Windows. Les fenêtres légères sont adaptées aux commandes et aux bulles de notification (combo-boxes qui ouvrent une zone d’affichage de courte durée, par exemple). Lorsque les fenêtres légères sont utilisées, la propriété systemChrome doit être définie sur NativeWindowSystemChrome.NONE.

Si elle n’est pas spécifiée, la valeur par défaut pour type est NativeWindowType.NORMAL.

flash.display.NativeWindowType
ShaderParameter Une occurrence de ShaderParameter représente un unique paramètre d’entrée d’un noyau de shader.Object Une occurrence de ShaderParameter représente un unique paramètre d’entrée d’un noyau de shader. Un noyau peut être défini pour accepter aucun, un ou plusieurs paramètres utilisés dans l’exécution du noyau. Un ShaderParameter fournit des informations sur le paramètre, par exemple le type de données attendues. Il fournit également un mécanisme qui permet de définir la valeur du paramètre utilisé lorsque le shader s’exécute. Pour spécifier une ou plusieurs valeurs pour le paramètre du shader, créez un Array contenant la ou les valeurs et affectez-le à la propriété value.

Une occurrence de ShaderParameter représentant un paramètre pour une occurrence de Shader est accédée en tant que propriété de la propriété data du Shader. La propriété ShaderParameter a le même nom que celui du paramètre dans le code du shader. Par exemple, si un shader définit un paramètre nommé radius, l’occurrence de ShaderParameter représentant le paramètre radius est disponible en tant que propriété radius, comme le montre cet exemple :

var radiusParam:ShaderParameter = myShader.data.radius;

En plus des propriétés définies pour la classe ShaderParameter, chaque occurrence de ShaderParameter possède des propriétés supplémentaires correspondant à toutes métadonnées définies pour le paramètre. Ces propriétés sont ajoutées à l’objet ShaderParameter lors de sa création. Le nom des propriétés correspond à celui des métadonnées spécifiées dans le code source du shader. Le type de données de chaque propriété dépend du type de données des métadonnées correspondantes. Une valeur de métadonnées texte telle que « description » est une occurrence String. Une propriété de métadonnées avec une valeur non chaîne (telle que minValue ou defaultValue) est représentée par une occurrence Array. Le nombre d’éléments et les types de données des éléments correspondent aux valeurs des métadonnées.

Supposons par exemple qu’un shader comprenne les deux déclarations de paramètres suivantes :

parameter float2 size < description: "The size of the image to which the kernel is applied"; minValue: float2(0.0, 0.0); maxValue: float2(100.0, 100.0); defaultValue: float2(50.0, 50.0); >; parameter float radius < description: "The radius of the effect"; minValue: 0.0; maxValue: 50.0; defaultValue: 25.0; >;

L’occurrence de ShaderParameter correspondant au paramètre size a les propriétés de métadonnées suivantes, en plus de ses propriétés intégrées :

Nom de propriétéType de donnéesValeurnameString"size"descriptionString"The size of the image to which the kernel is applied"minValueArray[0, 0]maxValueArray[100, 100]defaultValueArray[50, 50]

Le ShaderParameter correspondant au paramètre radius a les propriétés supplémentaires suivantes :

Nom de propriétéType de donnéesValeurnameString"radius"descriptionString"The radius of the effect"minValueArray[0]maxValueArray[50]defaultValueArray[25]

En général, le code du développeur ne crée pas directement d’occurrence de ShaderParameter. Une occurrence de ShaderParameter est créée pour chacun des paramètres d’un shader lors de la création de l’occurrence de Shader.

flash.display.ShaderDataflash.display.Shader.dataShaderParameter Crée une occurrence de ShaderParameter. Crée une occurrence de ShaderParameter. Le code du développeur n’appelle pas directement le constructeur ShaderParameter. Une occurrence de ShaderParameter est créée pour chacun des paramètres d’un shader lors de la création de l’occurrence de Shader. index Index du paramètre (de base zéro).int Index du paramètre (de base zéro). type Type de données du paramètre tel que défini dans le shader.String Type de données du paramètre tel que défini dans le shader. L’ensemble des valeurs potentielles de la propriété type est défini par les constantes de la classe ShaderParameterType. flash.display.ShaderParameterTypevalue La ou les valeurs transmises en tant que valeur du paramètre au shader.Array La ou les valeurs transmises en tant que valeur du paramètre au shader. La propriété value est un Array indexé. Le nombre et le type des éléments du Array correspondent au type de données du paramètre, que la propriété type permet de déterminer.

Le tableau suivant indique le type du paramètre et le nombre et le type de données correspondant des éléments value du Array :

Type de paramètre# ElémentsType de données de l’élémentfloat (ShaderParameterType.FLOAT)1Numberfloat2 (ShaderParameterType.FLOAT2)2Numberfloat3 (ShaderParameterType.FLOAT3)3Numberfloat4 (ShaderParameterType.FLOAT4)4Numberint (ShaderParameterType.INT)1int ou uintint2 (ShaderParameterType.INT2)2int ou uintint3 (ShaderParameterType.INT3)3int ou uintint4 (ShaderParameterType.INT4)4int ou uintbool (ShaderParameterType.BOOL)1Booleanbool2 (ShaderParameterType.BOOL2)2Booleanbool3 (ShaderParameterType.BOOL3)3Booleanbool4 (ShaderParameterType.BOOL4)4Booleanfloat2x2 (ShaderParameterType.MATRIX2X2)4Numberfloat3x3 (ShaderParameterType.MATRIX3X3)9Numberfloat4x4 (ShaderParameterType.MATRIX4X4)16Number

Pour les types de paramètres matriciels, les éléments du tableau remplissent les lignes de la matrice, puis les colonnes. Par exemple, supposons que la ligne suivante de code ActionScript soit utilisée pour remplir un paramètre float2x2 nommé myMatrix :

myShader.data.myMatrix.value = [.1, .2, .3, .4];

A l’intérieur du shader, les éléments de la matrice ont les valeurs suivantes :

  • myMatrix[0][0]: .1
  • myMatrix[0][1]: .2
  • myMatrix[1][0]: .3
  • myMatrix[1][1]: .4
GradientType La classe GradientType fournit les valeurs du paramètre type dans les méthodes beginGradientFill() et lineGradientFill() de la classe flash.display.Graphics.Object La classe GradientType fournit les valeurs du paramètre type dans les méthodes beginGradientFill() et lineGradientFill() de la classe flash.display.Graphics. LINEAR Valeur utilisée pour spécifier un remplissage dégradé linéaire.linearString Valeur utilisée pour spécifier un remplissage dégradé linéaire. RADIAL Valeur utilisée pour spécifier un remplissage dégradé radial.radialString Valeur utilisée pour spécifier un remplissage dégradé radial. InterpolationMethod La classe InterpolationMethod transmet des valeurs au paramètre interpolationMethod par l’intermédiaire des méthodes Graphics.beginGradientFill() et Graphics.lineGradientStyle().Object La classe InterpolationMethod transmet des valeurs au paramètre interpolationMethod par l’intermédiaire des méthodes Graphics.beginGradientFill() et Graphics.lineGradientStyle(). Ce paramètre détermine l’espace RVB à utiliser lors du rendu du dégradé. flash.display.Graphics.beginGradientFill()flash.display.Graphics.lineGradientStyle()LINEAR_RGB Spécifie que la méthode d’interpolation RVB linéaire doit être utilisée.linearRGBString Spécifie que la méthode d’interpolation RVB linéaire doit être utilisée. Ceci signifie qu’un espace de couleurs RVB basé sur un modèle de couleurs RVB linéaire est utilisé. RVBRGB Spécifie que la méthode d’interpolation RVB doit être utilisée.rgbString Spécifie que la méthode d’interpolation RVB doit être utilisée. Ceci signifie que le dégradé est rendu avec un espace sRVB exponentiel (RVB standard). L’espace sRVB est une norme de la W3C qui définit la conversion entre les valeurs de composant rouge, vert et bleu et l’intensité réelle de la couleur du composant visible.

Prenons, par exemple, un dégradé linéaire simple entre deux couleurs (le paramètre spreadMethod étant réglé sur SpreadMethod.REFLECT). Les différentes méthodes d’interpolation influent sur l’aspect de la façon suivante :

InterpolationMethod.LINEAR_RGBInterpolationMethod.RGB
LINEAR_RGB
IGraphicsPath Cette interface vous permet de définir des objets pouvant être utilisés comme paramètres de tracé dans les méthodes flash.display.Graphics et les classes de dessin. Cette interface vous permet de définir des objets pouvant être utilisés comme paramètres de tracé dans les méthodes flash.display.Graphics et les classes de dessin. Utilisez les classes implémenteur de cette interface pour créer et gérer les données de la propriété path et pour réutiliser les mêmes données pour plusieurs occurrences. flash.display.Graphics.drawGraphicsData()flash.display.Graphics.drawPath()IGraphicsFill Cette interface vous permet de définir des objets pouvant être utilisés comme paramètres de remplissage dans les méthodes flash.display.Graphics et les classes de dessin. Cette interface vous permet de définir des objets pouvant être utilisés comme paramètres de remplissage dans les méthodes flash.display.Graphics et les classes de dessin. Utilisez les classes implémenteur de cette interface pour créer et gérer les données de la propriété fill et pour réutiliser les mêmes données pour plusieurs occurrences. flash.display.Graphics.drawGraphicsData()flash.display.GraphicsStroke.fillLoaderInfo La classe LoaderInfo fournit des informations relatives à un fichier SWF ou à un fichier d’image (JPEG, GIF ou PNG) chargé.flash.events:EventDispatcher La classe LoaderInfo fournit des informations relatives à un fichier SWF ou à un fichier d’image (JPEG, GIF ou PNG) chargé. Les objets LoaderInfo sont disponibles pour n’importe quel objet d’affichage. Les informations indiquées comprennent la progression du chargement, les URL de l’objet Loader et du contenu chargé, le nombre total d’octets du média, ainsi que la hauteur et la largeur nominales de ce dernier.

Vous pouvez accéder aux objets LoaderInfo de deux façons :

  • La propriété contentLoaderInfo d’un objet flash.display.Loader. La propriété contentLoaderInfo reste disponible quel que soit l’objet Loader. Si un objet Loader n’a pas appelé la méthode load() ou loadBytes() ou que la proportion chargée n’est pas suffisante, tenter d’accéder à la plupart des propriétés de contentLoaderInfo renvoie une erreur.
  • La propriété loaderInfo d’un objet d’affichage.

La propriété contentLoaderInfo d’un objet Loader fournit des informations sur le contenu chargé par cet objet, tandis que la propriété loaderInfo d’un objet DisplayObject propose des informations sur le fichier SWF racine correspondant à l’objet d’affichage.

Lorsque vous utilisez un objet Loader pour charger un objet d’affichage (par exemple, un fichier SWF ou une image bitmap), la propriété loaderInfo de l’objet d’affichage est la même que la propriété contentLoaderInfo de l’objet Loader (DisplayObject.loaderInfo = Loader.contentLoaderInfo). L’occurrence de la classe principale du fichier SWF ne disposant pas d’un objet Loader, la propriété loaderInfo est l’unique moyen dont elle dispose pour accéder à LoaderInfo.

Le diagramme ci-dessous indique les différentes utilisations de l’objet LoaderInfo pour l’occurrence de la classe principale du fichier SWF, pour la propriété contentLoaderInfo d’un objet Loader et pour la propriété loaderInfo d’un objet chargé :

Certaines propriétés de la propriété contentLoaderInfo d’un objet Loader ne sont pas disponibles tant que l’opération de chargement n’est pas terminée. Vous avez cependant accès à certaines propriétés, telles que bytesLoaded, bytesTotal, url, loaderURL et applicationDomain. Lorsque l’objet loaderInfo distribue l’événement init, vous pouvez accéder à toutes ses propriétésloaderInfo, ainsi qu’à l’image ou au fichier SWF chargés.

Remarque : toutes les propriétés des objets LoaderInfo sont accessibles en lecture seule.

La méthode EventDispatcher.dispatchEvent() ne s’applique pas aux objets LoaderInfo. Si vous appelez dispatchEvent() sur un objet LoaderInfo, une exception IllegalOperationError est renvoyée.

L’exemple suivant utilise la classe LoaderInfoExample pour afficher une image sur la scène. Pour ce faire, procédez comme suit :
  1. Une propriété url est créée pour désigner l’emplacement et le nom de l’image.
  2. Le constructeur de classe crée un objet Loader appelé loader.
  3. L’objet loader crée une occurrence d’écouteur d’événements pour s’assurer que l’image se charge correctement.
  4. Le constructeur crée une occurrence d’objet URLRequest, request, et transmet le paramètre url de façon à identifier le nom de fichier et son emplacement.
  5. L’objet request est ensuite transmis à la méthode load() de l’objet loader, qui charge l’image dans la liste d’affichage.

Important : cet exemple implique l’ajout d’un fichier appelé Image.gif dans le même répertoire que le fichier SWF compilé. Utilisez une image dont la zone corresponde aux dimensions du fichier SWF principal.

package { import flash.display.Loader; import flash.display.LoaderInfo; import flash.display.Sprite; import flash.events.*; import flash.net.URLRequest; public class LoaderInfoExample extends Sprite { private var url:String = "Image.gif"; public function LoaderInfoExample() { var loader:Loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.INIT, initHandler); loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); var request:URLRequest = new URLRequest(url); loader.load(request); addChild(loader); } private function initHandler(event:Event):void { var loader:Loader = Loader(event.target.loader); var info:LoaderInfo = LoaderInfo(loader.contentLoaderInfo); trace("initHandler: loaderURL=" + info.loaderURL + " url=" + info.url); } private function ioErrorHandler(event:IOErrorEvent):void { trace("ioErrorHandler: " + event); } } }
flash.display.Loaderflash.display.Loader.contentflash.display.DisplayObjectflash.display.DisplayObject.loaderInfohttpStatus Distribué lorsqu’une requête réseau est effectuée sur HTTP et qu’un code d’état HTTP peut être détecté.flash.events.HTTPStatusEvent.HTTP_STATUSflash.events.HTTPStatusEvent Distribué lorsqu’une requête réseau est effectuée sur HTTP et qu’un code d’état HTTP peut être détecté. Loader.load()unload Distribué par un objet LoaderInfo lorsqu’un objet chargé est supprimé à l’aide de la méthode unload() de l’objet Loader ou lorsqu’un second chargement est effectué par le même objet Loader et que le contenu d’origine est supprimé avant le début du chargement.flash.events.Event.UNLOADflash.events.Event Distribué par un objet LoaderInfo lorsqu’un objet chargé est supprimé à l’aide de la méthode unload() de l’objet Loader ou lorsqu’un second chargement est effectué par le même objet Loader et que le contenu d’origine est supprimé avant le début du chargement. Loader.load()Loader.unload()progress Distribué à la réception des données au fur et à mesure du téléchargement.flash.events.ProgressEvent.PROGRESSflash.events.ProgressEvent Distribué à la réception des données au fur et à mesure du téléchargement. Loader.load()open Distribué lors du démarrage d’une opération de chargement.flash.events.Event.OPENflash.events.Event Distribué lors du démarrage d’une opération de chargement. Loader.load()ioError Distribué lorsqu’il se produit une erreur d’entrée ou de sortie entraînant l’échec d’une opération de chargement.flash.events.IOErrorEvent.IO_ERRORflash.events.IOErrorEvent Distribué lorsqu’il se produit une erreur d’entrée ou de sortie entraînant l’échec d’une opération de chargement. Loader.load()init Distribué lorsqu’il est possible d’accéder aux propriétés et aux méthodes d’un fichier SWF chargé et de les utiliser. flash.events.Event.INITflash.events.Event Distribué lorsqu’il est possible d’accéder aux propriétés et aux méthodes d’un fichier SWF chargé et de les utiliser. Il est néanmoins toujours possible de télécharger le contenu. Un objet LoaderInfo distribue l’événement init lorsque les conditions suivantes sont remplies :
  • Il est possible d’accéder à toutes les propriétés et méthodes associées à l’objet chargé et celles associées à l’objet LoaderInfo.
  • L’exécution des constructeurs de tous les objets enfant est terminée.
  • Le code ActionScript contenu dans la première image du scénario principal du fichier SWF chargé a été exécuté.

Par exemple, un événement Event.INIT est distribué lorsque la première image d’un clip ou d’une animation est chargée. Vous pouvez alors accéder au clip et l’ajouter à la liste d’affichage. Il est toutefois possible que le téléchargement du clip complet soit un peu plus long. L’événement Event.COMPLETE n’est distribué que lorsque le clip complet est chargé.

L’événement init précède toujours l’événement complete.

Loader.load()
complete Distribué lorsque le chargement de données a abouti.flash.events.Event.COMPLETEflash.events.Event Distribué lorsque le chargement de données aboutit. En d’autres termes, il est distribué lorsque tout le contenu a été téléchargé et une fois le chargement terminé. L’événement complete est toujours distribué après l’événement init. L’événement init est distribué lorsque vous pouvez accéder à l’objet, même si le contenu est en cours de téléchargement. Loader.load()getLoaderInfoByDefinition Renvoie l’objet LoaderInfo associé à un fichier SWF défini sous forme d’objet.L’appelant n’est pas exécuté dans le sandbox approuvé local. SecurityErrorSecurityErrorObjet LoaderInfo associé. Renvoie null lorsqu’il est appelé dans des versions qui ne sont pas des versions débogueur (ou lorsque le débogage est désactivé) ou si l’objet référencé n’a pas d’objet LoaderInfo associé (comme certains objets utilisés par le moteur d’exécution AIR). flash.display:LoaderInfoobjectObjectL’objet pour lequel vous souhaitez obtenir un objet LoaderInfo associé. Renvoie l’objet LoaderInfo associé à un fichier SWF défini sous forme d’objet. actionScriptVersion Version ActionScript du fichier SWF chargé.uintSi le pourcentage téléchargé du fichier n’est pas suffisant pour extraire les informations requises. ErrorErrorSi le fichier n’est pas un fichier SWF. ErrorError Version ActionScript du fichier SWF chargé. La version du langage est spécifiée par le biais des énumérations de la classe ActionScriptVersion, telles que ActionScriptVersion.ACTIONSCRIPT2 et ActionScriptVersion.ACTIONSCRIPT3.

Remarque : cette propriété possède toujours la valeur ActionScriptVersion.ACTIONSCRIPT2 ou ActionScriptVersion.ACTIONSCRIPT3. ActionScript 1.0 et 2.0 correspondent tous deux à ActionScriptVersion.ACTIONSCRIPT2 (version 2.0). Cette propriété se contente de distinguer ActionScript 1.0 et 2.0 d’ActionScript 3.0.

flash.display.ActionScriptVersion
applicationDomain Lorsqu’un fichier SWF externe est chargé, toutes les définitions ActionScript 3.0 que contient la classe chargée sont enregistrées dans la propriété applicationDomain.flash.system:ApplicationDomainCe sandbox de sécurité de l’appelant n’est pas autorisé à accéder à la propriété ApplicationDomain. SecurityErrorSecurityError Lorsqu’un fichier SWF externe est chargé, toutes les définitions ActionScript 3.0 que contient la classe chargée sont enregistrées dans la propriété applicationDomain.

L’ensemble du code d’un fichier SWF est défini de sorte à exister dans un domaine d’application. Votre application principale s’exécute dans le domaine d’application en cours. Le domaine du système contient tous les domaines d’application, y compris le domaine actuel et toutes les classes utilisées par Flash Player ou Adobe AIR.

A l’exception du domaine du système, tous les domaines d’application sont associés à un domaine du parent. Le domaine du parent de la propriété applicationDomain de votre application principale est le domaine système. Les classes chargées ne sont définies que si leur parent ne les définit pas encore. Vous ne pouvez pas remplacer une définition de classe chargée par une définition plus récente.

Pour obtenir des exemples d’utilisation de domaines d’application, voir le chapitre « Environnement du système client » du Guide du développeur d’ActionScript 3.0.

flash.system.ApplicationDomain
bytesLoaded Nombre d’octets chargés pour le média.uint Nombre d’octets chargés pour le média. Lorsque ce nombre atteint la valeur de bytesTotal, tous les octets sont chargés. bytesTotal Nombre d’octets compressés du fichier multimédias entier.uint Nombre d’octets compressés du fichier multimédias entier.

Avant la distribution du premier événement progress par l’objet Loader correspondant de cet objet LoaderInfo, bytesTotal est défini sur 0. Après la distribution du premier événement progress par l’objet Loader, bytesTotal reflète le nombre réel d’octets à télécharger.

flash.events.ProgressEventflash.display.Loader
bytes Octets associés à un objet LoaderInfo.flash.utils:ByteArraySi l’objet qui accède à cette API ne peut pas accéder à l’objet chargé en raison de restrictions de sécurité. Ce cas de figure se produit par exemple lorsqu’un fichier Loader tente d’accéder à la propriété contentLoaderInfo.content et n’est pas autorisé à accéder au contenu chargé.

Pour plus d’informations concernant la sécurité, voir la rubrique du Pôle de développement Flash Player : Sécurité (disponible en anglais uniquement).

SecurityErrorSecurityError
Octets associés à un objet LoaderInfo.
childAllowsParent Exprime la relation de confiance qui lie le contenu (l’enfant) à l’objet Loader (le parent).Boolean Exception renvoyée si le pourcentage téléchargé du fichier n’est pas suffisant pour extraire les informations requises. ErrorError Exprime la relation de confiance qui lie le contenu (l’enfant) à l’objet Loader (le parent). Renvoie true si l’enfant a autorisé l’accès du parent, false dans le cas contraire. Cette propriété est définie sur true si l’objet enfant a appelé la méthode allowDomain() pour accorder une autorisation d’accès au domaine parent, ou si un fichier de régulation d’URL chargé dans le domaine enfant accorde une autorisation d’accès au domaine parent. Si l’enfant et le parent appartiennent au même domaine, cette propriété est réglée sur true.

Pour plus d’informations concernant la sécurité, voir la rubrique du Pôle de développement Flash Player : Sécurité (disponible en anglais uniquement).

childSandboxBridge Un objet qui peut être définir par le code du contenu chargé pour exposer des propriétés et des méthodes auxquelles le code dans le sandbox de l’objet Loader peut accéder.ObjectSeul le contenu dans le sandbox du contenu chargé peut définir cette propriété. SecurityErrorSecurityError Un objet qui peut être défini par le code du contenu chargé pour exposer des propriétés et des méthodes auxquelles le code dans le sandbox de l’objet Loader peut accéder. Ce pont de sandboxpermet au contenu d’un domaine qui n’est pas un domaine d’application de bénéficier d’un accès contrôlé aux scripts dans le sandbox de l’application AIR, et vice-versa. Le pont de sandbox sert de passerelle entre les sandboxes, fournissant une interaction explicite entre les sandboxes de sécurité de l’application et les autres. parentSandboxBridgecontentType Type MIME du fichier chargé.String Type MIME du fichier chargé. Le paramètre est défini sur null si le pourcentage chargé du fichier est insuffisant pour déterminer le type. La liste suivante répertorie les valeurs gérées :
  • "application/x-shockwave-flash"
  • "image/jpeg"
  • "image/gif"
  • "image/png"
content Objet chargé associé à cet objet LoaderInfo.flash.display:DisplayObjectSi l’objet qui accède à cette API ne peut pas accéder à l’objet chargé en raison de restrictions de sécurité. Ce cas de figure se produit par exemple lorsqu’un fichier Loader tente d’accéder à la propriété contentLoaderInfo.content et n’est pas autorisé à accéder au contenu chargé.

Pour plus d’informations concernant la sécurité, voir la rubrique du Pôle de développement Flash Player : Sécurité (disponible en anglais uniquement).

SecurityErrorSecurityError
Objet chargé associé à cet objet LoaderInfo.
frameRate Cadence nominale, en images par seconde, du fichier SWF chargé.NumberSi le pourcentage téléchargé du fichier n’est pas suffisant pour extraire les informations requises. ErrorErrorSi le fichier n’est pas un fichier SWF. ErrorError Cadence nominale, en images par seconde, du fichier SWF chargé. Cette valeur correspond souvent, mais pas nécessairement, à un entier.

Elle peut être différente de la cadence utilisée. Flash Player ou Adobe AIR utilise la même cadence pour tous les fichiers SWF chargés. Cette valeur est déterminée par la cadence nominale du fichier SWF principal. De même, la cadence principale risque de ne pas pouvoir être atteinte, selon le matériel, la synchronisation du son, et d’autres facteurs.

height Hauteur nominale du fichier chargé.intSi le pourcentage téléchargé du fichier n’est pas suffisant pour extraire les informations requises. ErrorError Hauteur nominale du fichier chargé. Elle peut être différente de la hauteur réelle du contenu affiché, car le contenu chargé ou ses objets d’affichage parent risquent d’avoir été redimensionnés. isURLInaccessible Indique si la propriété LoaderInfo.url a été tronquée.Boolean Indique si la propriété LoaderInfo.url a été tronquée. Lorsque la valeur isURLInaccessible est définie sur true, la valeur LoaderInfo.url correspond uniquement au domaine de l’URL finale à partir de laquelle le contenu a été chargé. Par exemple, la propriété est tronquée si le contenu est chargé depuis http://www.adobe.com/assets/hello.swf, et la propriété LoaderInfo.url a la valeur http://www.adobe.com. La valeur isURLInaccessible est définie sur true uniquement lorsque toutes les affirmations suivantes sont également vraies :
  • Une redirection HTTP s’est produite lors du chargement du contenu.
  • Le fichier SWF qui appelle Loader.load() provient d’un domaine différent de celui de l’URL finale du contenu.
  • Le fichier SWF qui appelle Loader.load() n’est pas autorisé à accéder au contenu. L’autorisation d’accéder au contenu s’obtient de la même façon que l’autorisation d’accéder à BitmapData.draw() : appelez Security.allowDomain() pour accéder à un fichier SWF (ou pour le contenu des fichiers non SWF, créez un fichier de régulation et utilisez la propriété LoaderContext.checkPolicyFile).

Remarque : la propriété isURLInaccessible a été ajoutée à Flash Player 10.1 et AIR 2.0. Toutefois, cette propriété est disponible pour les fichiers SWF de toutes les versions lorsque le moteur d’exécution de Flash la prend en charge. Ainsi, l’utilisation de certains outils de création en « mode strict » entraîne une erreur de compilation. Pour contourner cette erreur, utilisez la syntaxe indirecte myLoaderInfo["isURLInaccessible"] ou désactivez le mode strict. Si vous utilisez Flash Professional CS5 ou le kit SDK Flex version 4.1, vous pouvez utiliser et compiler cette API pour les moteurs d’exécution publiés avant Flash Player 10.1 et AIR 2.

Pour le contenu de l’application dans AIR, la valeur de cette propriété est toujours false.

urlBitmapData.draw()flash.system.Security.allowDomain()flash.system.LoaderContext.checkPolicyFile
loaderURL URL du fichier SWF qui a initié le chargement du média décrit par l’objet LoaderInfo.String URL du fichier SWF qui a initié le chargement du média décrit par l’objet LoaderInfo. Pour l’occurrence de la classe principale du fichier SWF, cette URL correspond à l’URL du fichier SWF. loader Objet Loader associé à cet objet LoaderInfo.flash.display:LoaderSi l’objet qui accède à cette API ne peut pas accéder à l’objet Loader en raison de restrictions de sécurité. Ce cas de figure se produit par exemple lorsqu’un fichier SWF chargé tente d’accéder à sa propriété loaderInfo.loader et n’est pas autorisé à accéder au fichier SWF en cours de chargement.

Pour plus d’informations concernant la sécurité, voir la rubrique du Pôle de développement Flash Player : Sécurité (disponible en anglais uniquement).

SecurityErrorSecurityError
Objet Loader associé à cet objet LoaderInfo. Si cet objet LoaderInfo figure dans la propriété loaderInfo de l’occurrence de la classe principale du fichier SWF, il n’est associé à aucun objet Loader.
parameters Objet contenant des paires nom-valeur qui représentent les paramètres fournis au fichier SWF chargé.Object Objet contenant des paires nom-valeur qui représentent les paramètres fournis au fichier SWF chargé.

L’utilisation d’une boucle for-in vous permet d’extraire tous les noms et toutes les valeurs de l’objet parameters.

Les deux sources de paramètres sont : la chaîne de requête que contient l’URL du fichier SWF principal et la valeur du paramètre HTML FlashVars (qui n’affecte que le fichier SWF principal).

La propriété parameters remplace la technique ActionScript 1.0 et 2.0 qui consistait à utiliser des paramètres de fichier SWF en tant que propriétés du scénario principal.

La valeur de la propriété parameters est null pour les objets Loader qui contiennent des fichiers SWF qui utilisent ActionScript 1.0 ou 2.0. Elle est différente de null pour les objets Loader qui contiennent des fichiers SWF ayant recours à ActionScript 3.0.

parentAllowsChild Exprime la relation de confiance qui lie l’objet Loader (le parent) au contenu (l’enfant).Boolean Exception renvoyée si le pourcentage téléchargé du fichier n’est pas suffisant pour extraire les informations requises. ErrorError Exprime la relation de confiance qui lie l’objet Loader (le parent) au contenu (l’enfant). Renvoie true si le parent a autorisé l’accès de l’enfant, false dans le cas contraire. Cette propriété est définie sur true si l’objet parent a appelé la méthode allowDomain() pour accorder une autorisation d’accès au domaine enfant, ou si un fichier de régulation d’URL chargé dans le domaine parent accorde une autorisation d’accès au domaine enfant. Si l’enfant et le parent appartiennent au même domaine, cette propriété est réglée sur true.

Pour plus d’informations concernant la sécurité, voir la rubrique du Pôle de développement Flash Player : Sécurité (disponible en anglais uniquement).

parentSandboxBridge Un objet qui peut être défini par le code dans le sandbox de l’objet Loader pour exposer les propriétés et les méthodes auxquelles le code du contenu chargé peut accéder.ObjectSeul le contenu dans le sandbox de l’objet Loader peut définir cette propriété. SecurityErrorSecurityError Un objet qui peut être défini par le code dans le sandbox de l’objet Loader pour exposer les propriétés et les méthodes auxquelles le code du contenu chargé peut accéder. Ce pont de sandboxpermet au contenu d’un domaine qui n’est pas un domaine d’application de bénéficier d’un accès contrôlé aux scripts dans le sandbox de l’application AIR, et vice-versa. Le pont de sandbox sert de passerelle entre les sandboxes, fournissant une interaction explicite entre les sandboxes de sécurité de l’application et les autres. childSandboxBridgesameDomain Exprime la relation entre les domaines de l’objet loader et du contenu : true s’ils proviennent du même domaine ; false dans tous les autres cas.Boolean Exception renvoyée si le pourcentage téléchargé du fichier n’est pas suffisant pour extraire les informations requises. ErrorError Exprime la relation entre les domaines de l’objet loader et du contenu : true s’ils proviennent du même domaine ; false dans tous les autres cas. sharedEvents Occurrence de EventDispatcher permettant d’échanger des événements hors des limites de sécurité.flash.events:EventDispatcher Occurrence de EventDispatcher permettant d’échanger des événements hors des limites de sécurité. Même lorsque l’objet Loader et le contenu chargé proviennent de domaines de sécurité qui ne s’approuvent pas, ils peuvent accéder à sharedEvents ainsi qu’envoyer et recevoir des événements via cet objet. swfVersion Version du format du fichier SWF chargé.uintSi le pourcentage téléchargé du fichier n’est pas suffisant pour extraire les informations requises. ErrorErrorSi le fichier n’est pas un fichier SWF. ErrorError Version du format du fichier SWF chargé. Le format du fichier est spécifié par le biais des énumérations de la classe SWFVersion, telles que SWFVersion.FLASH7 et SWFVersion.FLASH9. flash.display.SWFVersionuncaughtErrorEvents Objet qui distribue un événement uncaughtError lorsqu’une erreur non interceptée se produit dans le code du fichier SWF de cet objet LoaderInfo.flash.events:UncaughtErrorEvents Objet qui distribue un événement uncaughtError lorsqu’une erreur non interceptée se produit dans le code du fichier SWF de cet objet LoaderInfo. Une erreur non interceptée se produit lorsqu’une erreur est renvoyée en dehors de tout bloc try..catch ou lorsqu’un objet ErrorEvent est distribué avec aucun écouteur enregistré.

Cette propriété est créée à la fin du chargement du fichier SWF associé à cet objet LoaderInfo. Tant que la propriété uncaughtErrorEvents n’est pas définie sur null, Dans un projet ActionScript uniquement, vous pouvez accéder à cette propriété pendant ou après l’exécution de la fonction constructeur de la classe principale du fichier SWF. Pour un projet Flex, la propriété uncaughtErrorEvents n’est disponible qu’une fois l’événement applicationComplete distribué.

L’exemple suivant explique comment utiliser le gestionnaire d’événement uncaughtError pour détecter les erreurs non interceptées dans un projet ActionScript. Cet exemple définit un gestionnaire d’événement uncaughtError pour détecter les erreurs non interceptées. Il fournit également un bouton qui, lorsque l’utilisateur clique dessus, renvoie une erreur qui est ensuite interceptée par le gestionnaire d’événement uncaughtError.

Dans le constructeur, le code enregistre un écouteur pour l’événement uncaughtError distribué par la propriété uncaughtErrorEvents de l’objet LoaderInfo.

Dans la méthode uncaughtErrorHandler(), le code vérifie le type de données de la propriété error et répond en conséquence.

package { import flash.display.Sprite; import flash.events.ErrorEvent; import flash.events.MouseEvent; import flash.events.UncaughtErrorEvent; public class UncaughtErrorEventExample extends Sprite { public function UncaughtErrorEventExample() { loaderInfo.uncaughtErrorEvents.addEventListener(UncaughtErrorEvent.UNCAUGHT_ERROR, uncaughtErrorHandler); drawUI(); } private function uncaughtErrorHandler(event:UncaughtErrorEvent):void { if (event.error is Error) { var error:Error = event.error as Error; // do something with the error } else if (event.error is ErrorEvent) { var errorEvent:ErrorEvent = event.error as ErrorEvent; // do something with the error } else { // a non-Error, non-ErrorEvent type was thrown and uncaught } } private function drawUI():void { var btn:Sprite = new Sprite(); btn.graphics.clear(); btn.graphics.beginFill(0xFFCC00); btn.graphics.drawRect(0, 0, 100, 50); btn.graphics.endFill(); addChild(btn); btn.addEventListener(MouseEvent.CLICK, clickHandler); } private function clickHandler(event:MouseEvent):void { throw new Error("Gak!"); } } }
L’exemple suivant est l’équivalent Flex de l’exemple précédent. Cet exemple utilise un document MXML comme contenu racine au lieu d’une classe ActionScript. <?xml version="1.0" encoding="utf-8"?> <s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/halo" applicationComplete="applicationCompleteHandler();"> <fx:Script> <![CDATA[ import flash.events.ErrorEvent; import flash.events.MouseEvent; import flash.events.UncaughtErrorEvent; private function applicationCompleteHandler():void { loaderInfo.uncaughtErrorEvents.addEventListener(UncaughtErrorEvent.UNCAUGHT_ERROR, uncaughtErrorHandler); } private function uncaughtErrorHandler(event:UncaughtErrorEvent):void { if (event.error is Error) { var error:Error = event.error as Error; // do something with the error } else if (event.error is ErrorEvent) { var errorEvent:ErrorEvent = event.error as ErrorEvent; // do something with the error } else { // a non-Error, non-ErrorEvent type was thrown and uncaught } } private function clickHandler(event:MouseEvent):void { throw new Error("Gak!"); } ]]> </fx:Script> <s:Button label="Cause Error" click="clickHandler(event);"/> </s:WindowedApplication>
UncaughtErrorEventLoader.uncaughtErrorEvents
url URL du média en cours de chargement.String URL du média en cours de chargement.

Avant la distribution du premier événement progress par l’objet Loader correspondant associé à cet objet LoaderInfo, la valeur de la propriété url risque de ne refléter que l’URL initiale spécifiée par l’appel de la méthode load() de l’objet Loader. Après la distribution du premier événement progress, la propriété url reflète l’URL finale du média, suite à la résolution de toute redirection et URL relative.

Dans certains cas, la valeur de la propriété url est tronquée. Voir la propriété isURLInaccessible pour plus d’informations.

isURLInaccessibleflash.display.Loader.load()
width Largeur nominale du contenu chargé.intSi le pourcentage téléchargé du fichier n’est pas suffisant pour extraire les informations requises. ErrorError Largeur nominale du contenu chargé. Elle peut être différente de la largeur réelle du contenu affiché, car le contenu chargé ou ses objets d’affichage parent risquent d’avoir été redimensionnés.
StageQuality La classe StageQuality fournit les valeurs de la propriété Stage.quality.Object La classe StageQuality fournit les valeurs de la propriété Stage.quality. flash.display.Stage.qualityBEST Spécifie la meilleure qualité de rendu possible : les images sont anticrènelées selon une grille de 4 x 4 pixels et les bitmaps sont toujours lissés.bestString Spécifie la meilleure qualité de rendu possible : les images sont anticrènelées selon une grille de 4 x 4 pixels et les bitmaps sont toujours lissés. HIGH Spécifie la qualité de rendu supérieure : les images sont anticrènelées en appliquant une grille de 4 x 4 pixels et les bitmaps sont lissés lorsque l’animation est statique.highString Spécifie la qualité de rendu supérieure : les images sont anticrènelées en appliquant une grille de 4 x 4 pixels et les bitmaps sont lissés lorsque l’animation est statique. LOW Spécifie la qualité de rendu inférieure : les images ne sont pas anticrènelées et les bitmaps ne sont pas lissés.lowString Spécifie la qualité de rendu inférieure : les images ne sont pas anticrènelées et les bitmaps ne sont pas lissés. MEDIUM Spécifie la qualité de rendu intermédiaire : les images sont anticrènelées selon une grille de 2 x 2 pixels, mais les bitmaps ne sont pas lissés.mediumString Spécifie la qualité de rendu intermédiaire : les images sont anticrènelées selon une grille de 2 x 2 pixels, mais les bitmaps ne sont pas lissés. Ce niveau de qualité convient aux animations qui ne contiennent pas de texte. BitmapData La classe BitmapData vous permet d’utiliser les données (pixels) de l’image bitmap d’un objet Bitmap. Permet de manipuler les données bitmap d’un objet Bitmap. flash.display:IBitmapDrawableObject La classe BitmapData vous permet d’utiliser les données (pixels) d’un objet Bitmap. Les méthodes de cette classe vous permettent de créer des images bitmap transparentes ou opaques dimensionnées de manière arbitraire et de les manipuler à votre guise lors de l’exécution. Vous pouvez également accéder aux objets BitmapData pour une image bitmap chargée avec la classe flash.display.Loader.

Cette classe vous permet de séparer les opérations de rendu de bitmap dans les routines de mise à jour de l’affichage interne de Flash Player. En manipulant un objet BitmapData directement, vous pouvez créer des images complexes sans utiliser de temps système supplémentaire par image résultant du retraçage constant du contenu des données vectorielles.

Les méthodes de la classe BitmapData prennent en charge les effets qui ne sont pas disponibles par le biais des filtres associés aux objets d’affichage non bitmap.

Un objet BitmapData contient un tableau de données de pixels. Ces données peuvent représenter une image bitmap entièrement opaque ou entièrement transparente contenant des données de canal alpha. Chaque type d’objet BitmapData est stocké en tant que tampon converti en entiers 32 bits. Chaque entier 32 bits détermine les propriétés d’un pixel unique de l’image bitmap.

Chaque entier 32 bits est une combinaison de quatre valeurs de canal de 8 bits (de 0 à 255) décrivant les valeurs de transparence alpha et les valeurs de rouge, vert et bleu (ARVB) du pixel (pour les valeurs ARVB, l’octet le plus significatif représente la valeur du canal alpha, suivie de rouge, vert et bleu).

Les quatre canaux (alpha, rouge, vert et bleu) sont représentés sous forme de nombres lorsque vous les utilisez avec la méthode BitmapData.copyChannel() ou les propriétés DisplacementMapFilter.componentX et DisplacementMapFilter.componentY. Ces nombres sont en retour représentés par les constantes suivantes dans la classe BitmapDataChannel :

  • BitmapDataChannel.ALPHA
  • BitmapDataChannel.RED
  • BitmapDataChannel.GREEN
  • BitmapDataChannel.BLUE

Vous pouvez associer des objets BitmapData à un objet Bitmap à l’aide de la propriété bitmapData de l’objet Bitmap.

Vous pouvez utiliser un objet BitmapData pour remplir un objet Graphics à l’aide de la méthode Graphics.beginBitmapFill().

Dans le moteur d’exécution AIR, les classes DockIcon, Icon, InteractiveIcon et SystemTrayIcon comprennent chacune une propriété bitmaps qui est un tableau d’objets BitmapData qui définissent les images bitmap pour une icône.

Dans AIR 1.5 et Flash Player 10, la taille maximale d’un objet BitmapData est de 8 191 pixels en largeur ou en hauteur, et le nombre total de pixels ne peut pas excéder 16 777 215 pixels (ainsi, si la largeur d’un objet BitmapData est de 8 191 pixels, sa hauteur maximale doit être de 2 048 pixels). Dans Flash Player 9 et les versions antérieures, ainsi que dans AIR 1.1 et les versions antérieures, la limite est de 2 880 pixels de haut sur 2 880 pixels de large.

Les appels de toute méthode ou propriété d’un objet BitmapData renvoient une erreur ArgumentError si l’objet BitmapData n’est pas valide (si height == 0 et width == 0, par exemple) ou s’il a été éliminé par le biais de dispose().

L’exemple suivant utilise la classe BitmapDataExample pour charger le fichier Image.gif dans DisplayObject à l’emplacement par défaut (0, 0). Une copie d’Image.gif est ensuite placée à droite de l’original, qui applique de nouvelles couleurs aux pixels qui répondent aux critères définis par la méthode threshold(). La tâche s’accomplit de la façon suivante :
  1. Une propriété url est créée pour désigner l’emplacement et le nom du fichier d’image.
  2. Le constructeur de classe crée un objet Loader, qui crée à son tour un écouteur d’événements, qui est transmis lorsque la méthode completeHandler() termine la manipulation de l’image.
  3. Le paramètre request de l’objet URLRequest est ensuite transmise à loader.load(), qui charge l’image en mémoire à l’aide d’un objet d’affichage.
  4. L’image est ensuite placée dans la liste d’affichage, qui affiche l’image aux coordonnées x = 0, y = 0.
  5. La méthode completeHandler() effectue ensuite les opérations suivantes :
    • Crée un deuxième objet Loader, ainsi qu’un objet Bitmap, qui est initialisé avec l’objet Loader.
    • Crée un deuxième objet Bitmap, duplicate, qui appelle en retour la méthode duplicateImage(), qui crée elle-même un double de l’image d’origine.
    • Crée un objet BitmapData qui est associé à l’objet BitmapData de l’objet duplicate.
    • Crée un objet Rectangle qui est initialisé avec les mêmes coordonnées, la même largeur et hauteur, que l’image d’origine.
    • Crée un objet Point, qui emploie par défaut les coordonnées x = 0, y = 0.
    • Crée les variables suivantes :
      • operation — Applique la nouvelle couleur lorsque la valeur de seuil est supérieure ou égale à l’original.
      • threshold — La valeur de chaque pixel est comparée (dans cet exemple, gris clair avec une valeur alpha de 0xCC).
      • color — La couleur des pixels qui répondent aux critères imposés, soit jaune uni dans ce cas.
      • mask — Le contraire exact de la couleur (bleu transparent).
      • copySource — Défini sur false, indique que les valeurs des pixels ne sont pas copiées si les critères de la valeur de seuil ne sont pas réunis. Cette valeur n’a aucune signification, car l’image est dupliquée et seuls les pixels qui répondent aux critères de seuil sont modifiés.
    • Appelle la méthode threshold() à l’aide des variables précédentes. L’équation de seuil qui en résulte figure ci-dessous : if (current pixel Value & 0x000000FF) >= (0xCCCCCCCC & 0x000000FF) then set pixel to 0xFFFFFF00.

Remarques :

  • Vous devrez compiler le fichier SWF en définissant Sécurité de lecture locale sur Accès aux fichiers locaux uniquement.
  • Pour exécuter cet exemple, il est nécessaire de placer un fichier intitulé Image.txt dans le même répertoire que votre fichier SWF.
  • Il est recommandé d’utiliser une image qui ne dépasse pas 80 pixels de largeur.

package { import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.Loader; import flash.display.Sprite; import flash.events.*; import flash.geom.Point; import flash.geom.Rectangle; import flash.net.URLRequest; public class BitmapDataExample extends Sprite { private var url:String = "Image.gif"; private var size:uint = 80; public function BitmapDataExample() { configureAssets(); } private function configureAssets():void { var loader:Loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler); loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); var request:URLRequest = new URLRequest(url); loader.x = size * numChildren; loader.load(request); addChild(loader); } private function duplicateImage(original:Bitmap):Bitmap { var image:Bitmap = new Bitmap(original.bitmapData.clone()); image.x = size * numChildren; addChild(image); return image; } private function completeHandler(event:Event):void { var loader:Loader = Loader(event.target.loader); var image:Bitmap = Bitmap(loader.content); var duplicate:Bitmap = duplicateImage(image); var bitmapData:BitmapData = duplicate.bitmapData; var sourceRect:Rectangle = new Rectangle(0, 0, bitmapData.width, bitmapData.height); var destPoint:Point = new Point(); var operation:String = ">="; var threshold:uint = 0xCCCCCCCC; var color:uint = 0xFFFFFF00; var mask:uint = 0x000000FF; var copySource:Boolean = true; bitmapData.threshold(bitmapData, sourceRect, destPoint, operation, threshold, color, mask, copySource); } private function ioErrorHandler(event:IOErrorEvent):void { trace("Unable to load image: " + url); } } }
flash.display.Bitmap.bitmapDataflash.desktop.DockIcon.bitmapsflash.display.Graphics.beginBitmapFill()flash.desktop.Icon.bitmapsflash.desktop.InteractiveIcon.bitmapsflash.display.Loaderflash.desktop.SystemTrayIcon.bitmapsBitmapData Crée un objet BitmapData à la largeur et la hauteur spécifiées.La largeur et/ou la hauteur dépassent les dimensions maximales. ArgumentErrorArgumentErrorwidthintLargeur de l’image bitmap en pixels. heightintLa hauteur de l’image bitmap en pixels. transparentBooleantrueSpécifie si l’image bitmap prend en charge la transparence par pixel. La valeur par défaut est true (transparent). Pour créer une image bitmap entièrement transparente, réglez la valeur du paramètre transparent sur true et celle du paramètre fillColor sur 0x00000000 (ou sur 0). Le réglage de la propriété transparent sur false peut entraîner une légère amélioration des performances de rendu. fillColoruint0xFFFFFFFFValeur de couleur ARVB 32 bits utilisée pour remplir la zone de l’image bitmap. La valeur par défaut est 0xFFFFFFFF (blanc uni). Crée un objet BitmapData à la largeur et la hauteur spécifiées. Si vous spécifiez une valeur pour le paramètre fillColor, chaque pixel de l’image bitmap est défini sur cette couleur.

Par défaut, l’image bitmap créée est transparente, sauf si vous transmettez la valeur false au paramètre transparent. Une fois l’image bitmap opaque créée, vous ne pouvez pas la transformer en bitmap transparente. Chaque pixel d’une image bitmap opaque utilise uniquement 24 bits d’informations du canal de couleur. Si vous réglez l’image bitmap sur transparent, chaque pixel utilise 32 bits d’informations de canal de couleur, y compris un canal de transparence alpha.

Dans AIR 1.5 et Flash Player 10, la taille maximale d’un objet BitmapData est de 8 191 pixels en largeur ou en hauteur, et le nombre total de pixels ne peut pas excéder 16 777 215 pixels (ainsi, si la largeur d’un objet BitmapData est de 8 191 pixels, sa hauteur maximale doit être de 2 048 pixels). Dans Flash Player 9 et les versions antérieures, ainsi que dans AIR 1.1 et les versions antérieures, la limite est de 2 880 pixels de haut sur 2 880 pixels de large. Si vous spécifiez une valeur de largeur ou de hauteur supérieure à 2880, la nouvelle occurrence n’est pas créée.

applyFilter Prend une image source et un objet filtre et génère l’image filtrée.Les paramètres sourceBitmapData, sourceRect, destPoint ou filter sont réglés sur la valeur null. TypeErrorTypeErrorLa transparence des objets BitmapData n’est pas compatible avec l’opération de filtrage. IllegalOperationErrorflash.errors:IllegalOperationErrorNombre indiquant si l’application du filtre a abouti. Si 0 est renvoyé, l’application du filtre a abouti. Si un nombre négatif est renvoyé, une erreur s’est produite lors de l’application du filtre. sourceBitmapDataflash.display:BitmapDataL’image bitmap d’entrée à utiliser. L’image source peut être un autre objet BitmapData ou faire référence à l’occurrence de BitmapData actuelle. sourceRectflash.geom:RectangleRectangle qui définit la zone de l’image source à utiliser en tant qu’entrée. destPointflash.geom:PointPoint de l’image de destination (l’occurrence de BitmapData actuelle) correspondant au coin supérieur gauche du rectangle source. filterflash.filters:BitmapFilterObjet filtre utilisé pour effectuer l’opération de filtrage. Chaque type de filtre dispose d’exigences spécifiques, comme suit :
  • BlurFilter - Ce filtre peut utiliser les images source et de destination opaques ou transparentes. Si les formats des images sont différents, la copie de l’image source effectuée lors du filtrage correspond au format de l’image de destination.
  • BevelFilter, DropShadowFilter, GlowFilter, ChromeFilter - L’image de destination de ces filtres doit être transparente. L’appel de DropShadowFilter ou de GlowFilter permet de créer une image contenant les données de canal alpha de l’ombre portée ou du rayonnement. Il ne permet pas de créer l’ombre portée sur l’image de destination. Si vous utilisez l’un de ces filtres sur une image de destination opaque, une exception est renvoyée.
  • ConvolutionFilter - Ce filtre peut utiliser les images source et de destination opaques ou transparentes.
  • ColorMatrixFilter - Ce filtre peut utiliser les images source et de destination opaques ou transparentes.
  • DisplacementMapFilter - Ce filtre peut utiliser les images source et de destination opaques ou transparentes à condition que leurs formats soient identiques.
Prend une image source et un objet filtre et génère l’image filtrée.

Cette méthode repose sur le comportement des objets filtres intégrés, qui déterminent le rectangle de destination affecté par un rectangle source d’entrée.

Une fois le filtre appliqué, la taille de l’image obtenue peut être supérieure à celle de l’image d’entrée. Par exemple, si vous utilisez une classe BlurFilter pour rendre flou un rectangle source de (50,50,100,100) et un point de destination de (10,10), la zone modifiée sur l’image de destination est supérieure à (10,10,60,60) en raison du flou. Cela se produit en interne au cours de l’appel applyFilter().

Si le paramètre sourceRect du paramètre sourceBitmapData est une zone intérieure, telle que (50,50,100,100) sur une image 200 x 200, le filtre utilise les pixels source hors du paramètre sourceRect pour générer le rectangle de destination.

Si l’objet BitmapData et l’objet spécifié en tant que paramètre sourceBitmapData sont identiques, l’application utilise une copie temporaire de l’objet pour effectuer le filtrage. Pour optimiser les performances, évitez ce cas de figure.

L’exemple suivant indique comment appliquer un filtre de flou à une occurrence BitmapData : import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Point; import flash.geom.Rectangle; import flash.filters.BlurFilter; var bmd:BitmapData = new BitmapData(80, 30, false, 0xFFCC00); var rect:Rectangle = new Rectangle(10, 10, 40, 10); bmd.fillRect(rect, 0xFF0000); var pt:Point = new Point(10, 10); var filter:BlurFilter = new BlurFilter(); bmd.applyFilter(bmd, rect, pt, filter); var bm:Bitmap = new Bitmap(bmd); addChild(bm);
flash.filters.BevelFilterflash.filters.BlurFilterflash.filters.ColorMatrixFilterflash.filters.ConvolutionFilterflash.filters.DisplacementMapFilterflash.filters.DropShadowFilterflash.filters.GlowFilterflash.display.DisplayObject.filters
clone Renvoie un nouvel objet BitmapData, clone de l’occurrence d’origine avec une copie exacte de l’image bitmap contenue.Nouvel objet BitmapData identique à l’original. flash.display:BitmapDataRenvoie un nouvel objet BitmapData avec une copie exacte de l’image bitmap originale. Renvoie un nouvel objet BitmapData, clone de l’occurrence d’origine avec une copie exacte de l’image bitmap contenue. L’exemple suivant indique comment cloner une occurrence BitmapData. Elle indique également que lorsque vous modifiez l’occurrence BitmapData clonée, l’original reste tel quel : import flash.display.Bitmap; import flash.display.BitmapData; var bmd1:BitmapData = new BitmapData(100, 80, false, 0x00000000); var bmd2:BitmapData = bmd1.clone(); bmd1.setPixel32(1, 1, 0xFFFFFFFF); trace(bmd1.getPixel32(1, 1).toString(16)); // ffffffff trace(bmd2.getPixel32(1, 1).toString(16)); // ff000000 var bm1:Bitmap = new Bitmap(bmd1); this.addChild(bm1); var bm2:Bitmap = new Bitmap(bmd2); bm2.x = 110; this.addChild(bm2); colorTransform Définit les valeurs de couleur dans une zone spécifiée d’une image bitmap avec un objet ColorTransform.Le paramètre rect ou colorTransform est défini sur null. TypeErrorTypeErrorrectflash.geom:RectangleObjet Rectangle qui définit la zone de l’image dans laquelle l’objet ColorTransform est appliqué. colorTransformflash.geom:ColorTransformObjet ColorTransform décrivant les valeurs de transformation de couleur à appliquer. Définit les valeurs de couleur dans une zone spécifiée d’une image bitmap en utilisant un objet ColorTransform. Si le rectangle correspond aux limites de l’image bitmap, cette méthode transforme les valeurs de couleur de l’image tout entière. L’exemple suivant indique comment appliquer une transformation de couleur à la partie gauche (rectangle) d’un objet BitmapData : import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Rectangle; import flash.geom.ColorTransform; var bmd:BitmapData = new BitmapData(80, 30, false, 0xFF0000); var cTransform:ColorTransform = new ColorTransform(); cTransform.alphaMultiplier = 0.5 var rect:Rectangle = new Rectangle(0, 0, 40, 30); bmd.colorTransform(rect, cTransform); var bm:Bitmap = new Bitmap(bmd); addChild(bm); flash.geom.ColorTransformflash.geom.Rectanglecompare Compare deux objets BitmapData.Le paramètre otherBitmapData est défini sur null. TypeErrorTypeErrorS’ils ont tous deux les mêmes dimensions (largeur et hauteur), la méthode renvoie un nouvel objet BitmapData, qui reprend la différence entre les deux objets (voir la discussion principale). Si les objets BitmapData sont équivalents, la méthode renvoie la valeur 0. Si les largeurs des objets BitmapData ne sont pas identiques, la méthode renvoie la valeur -3. Si les hauteurs des objets BitmapData ne sont pas identiques, la méthode renvoie la valeur -4. ObjectotherBitmapDataflash.display:BitmapDataObjet BitmapData à comparer à l’objet BitmapData source. Compare deux objets BitmapData. S’ils ont tous deux les mêmes dimensions (largeur et hauteur), la méthode renvoie un nouvel objet BitmapData, dans lequel chaque pixel correspond à la « différence » entre les pixels des deux objets source :
  • Si deux pixels sont équivalents, le pixel de différence est 0x00000000.
  • Si deux pixels ont des valeurs RVB différentes (en dehors de la valeur alpha), le pixel de différence est 0xRRGGBB où RR/GG/BB sont les valeurs de différences individuelles entre les canaux rouge, vert et bleu (la valeur du pixel dans l’objet source moins la valeur du pixel dans l’objet otherBitmapData). Les différences relatives au canal alpha ne sont pas prises en compte dans ce cas.
  • Si seule la valeur du canal alpha diffère, la valeur du pixel est 0xZZFFFFFF, où ZZ est la différence entre les valeurs alpha (la valeur alpha dans l’objet source moins la valeur alpha dans l’objet otherBitmapData).

Prenons l’exemple des deux objets BitmapData suivants :

var bmd1:BitmapData = new BitmapData(50, 50, true, 0xFFFF8800); var bmd2:BitmapData = new BitmapData(50, 50, true, 0xCCCC6600); var diffBmpData:BitmapData = bmd1.compare(bmd2) as BitmapData; trace ("0x" + diffBmpData.getPixel(0,0).toString(16); // 0x332200

Remarque : les couleurs utilisées pour remplir les deux objets BitmapData ont des valeurs RVB légèrement différentes (0xFF0000 et 0xFFAA00). L’utilisation de la méthode compare() entraîne la création d’un objet BitmapData dont chaque pixel indique la différence entre les valeurs RVB des deux bitmaps.

Prenez l’exemple des deux objets BitmapData suivants, dans lesquels les couleurs RVB sont identiques, mais les valeurs alpha sont différentes :

var bmd1:BitmapData = new BitmapData(50, 50, true, 0xFFFFAA00); var bmd2:BitmapData = new BitmapData(50, 50, true, 0xCCFFAA00); var diffBmpData:BitmapData = bmd1.compare(bmd2) as BitmapData; trace ("0x" + diffBmpData.getPixel32(0,0).toString(16); // 0x33ffffff

L’utilisation de la méthode compare() entraîne la création d’un objet BitmapData dont chaque pixel indique la différence entre les valeurs alpha des deux bitmaps.

Si les objets BitmapData sont équivalents (largeur, hauteur et valeurs de pixels identiques), la méthode renvoie la valeur 0.

Si les largeurs des objets BitmapData ne sont pas identiques, la méthode renvoie la valeur -3.

Si les hauteurs des objets BitmapData ne sont pas identiques, mais que les largeurs sont les mêmes, la méthode renvoie la valeur -4.

L’exemple suivant compare deux objets Bitmap de différentes largeurs (50 et 60) :

var bmd1:BitmapData = new BitmapData(100, 50, false, 0xFFFF0000); var bmd2:BitmapData = new BitmapData(100, 60, false, 0xFFFFAA00); trace(bmd1.compare(bmd2)); // -4
L’exemple suivant affiche la valeur d’un pixel dans l’objet BitmapData qui résulte de la comparaison entre deux objets BitmapData de mêmes dimensions : import flash.display.Bitmap; import flash.display.BitmapData; var bmd1:BitmapData = new BitmapData(50, 50, true, 0xFFFFAA00); var bmd2:BitmapData = new BitmapData(50, 50, true, 0xCCFFAA00); var diffBmpData:BitmapData = BitmapData(bmd1.compare(bmd2)); var diffValue:String = diffBmpData.getPixel32(1, 1).toString(16); trace (diffValue); // 33ffffff var bm1:Bitmap = new Bitmap(bmd1); addChild(bm1); var bm2:Bitmap = new Bitmap(bmd2); addChild(bm2); bm2.x = 60;
copyChannel Transfère les données du canal d’un autre objet BitmapData ou de l’objet BitmapData actuel vers un canal de l’objet BitmapData actuel.Les paramètres sourceBitmapData, sourceRect ou destPoint sont définis sur null. TypeErrorTypeErrorsourceBitmapDataflash.display:BitmapDataL’image bitmap d’entrée à utiliser. L’image source peut être un objet BitmapData différent ou peut faire référence à l’objet BitmapData actuel. sourceRectflash.geom:RectangleObjet Rectangle source. Pour copier uniquement les données de canal à partir d’une zone de taille inférieure sur l’image bitmap, spécifiez un rectangle source dont la taille est inférieure à la taille globale de l’objet BitmapData. destPointflash.geom:PointObjet Point de destination qui représente le coin supérieur gauche de la zone rectangulaire dans laquelle les nouvelles données de canal sont placées. Pour copier uniquement les données de canal d’une zone vers une autre sur l’image de destination, spécifiez un point autre que (0,0). sourceChanneluintCanal source. Utilisez une valeur provenant de la classe BitmapDataChannel (BitmapDataChannel.RED, BitmapDataChannel.BLUE, BitmapDataChannel.GREEN, BitmapDataChannel.ALPHA). destChanneluintCanal de destination. Utilisez une valeur provenant de la classe BitmapDataChannel (BitmapDataChannel.RED, BitmapDataChannel.BLUE, BitmapDataChannel.GREEN, BitmapDataChannel.ALPHA). Transfère les données du canal d’un autre objet BitmapData ou de l’objet BitmapData actuel vers un canal de l’objet BitmapData actuel. Toutes les données contenues dans les autres canaux de l’objet BitmapData de destination sont préservées.

La valeur du canal source et de destination peut être l’une des valeurs suivantes :

  • BitmapDataChannel.RED
  • BitmapDataChannel.GREEN
  • BitmapDataChannel.BLUE
  • BitmapDataChannel.ALPHA
L’exemple suivant indique comment copier le canal rouge dans un objet BitmapData, dans son propre canal bleu, dans une zone de 20 x 20 pixels : import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Rectangle; import flash.geom.Point; var bmd:BitmapData = new BitmapData(100, 80, false, 0x00FF0000); var rect:Rectangle = new Rectangle(0, 0, 20, 20); var pt:Point = new Point(10, 10); bmd.copyChannel(bmd, rect, pt, BitmapDataChannel.RED, BitmapDataChannel.BLUE); var bm:Bitmap = new Bitmap(bmd); this.addChild(bm);
flash.geom.Rectangle
copyPixels Met en place une routine rapide permettant de manipuler les pixels de différentes images sans effets d’étirement, de rotation ou de couleur.Les paramètres sourceBitmapData, sourceRect et destPoint sont définis sur null. TypeErrorTypeErrorsourceBitmapDataflash.display:BitmapDataImage bitmap d’entrée à partir de laquelle les pixels sont copiés. L’image source peut être une occurrence de BitmapData différente ou peut faire référence à l’occurrence de BitmapData actuelle. sourceRectflash.geom:RectangleRectangle qui définit la zone de l’image source à utiliser en tant qu’entrée. destPointflash.geom:PointPoint de destination représentant le coin supérieur gauche de la zone rectangulaire dans laquelle les nouveaux pixels sont placés. alphaBitmapDataflash.display:BitmapDatanullSource de l’objet BitmapData alpha secondaire. alphaPointflash.geom:PointnullPoint, sur l’objet BitmapData alpha, correspondant au coin supérieur gauche du paramètre sourceRect. mergeAlphaBooleanfalsePour utiliser le canal alpha, définissez la valeur sur true. Pour copier des pixels sans canal alpha, définissez la valeur sur false. Met en place une routine rapide permettant de manipuler les pixels de différentes images sans effets d’étirement, de rotation ou de couleur. Cette méthode copie une zone rectangulaire d’une image source dans une zone rectangulaire de taille identique au point de destination de l’objet BitmapData de destination.

Si vous incluez les paramètres alphaBitmap et alphaPoint, vous pouvez utiliser une image secondaire en tant que source alpha pour l’image source. Si l’image source contient des données alpha, les deux ensembles de données alpha sont utilisés pour composer des pixels de l’image source vers l’image de destination. Le paramètre alphaPoint est le point, sur l’image alpha, correspondant au coin supérieur gauche du rectangle source. Aucun pixel situé hors de l’intersection de l’image source et de l’image alpha n’est copié sur l’image de destination.

La propriété mergeAlpha contrôle si le canal alpha est utilisé ou non lorsqu’une image transparente est copiée sur une autre image transparente. Pour copier des pixels avec les données du canal alpha, définissez la propriété mergeAlpha sur true . Par défaut, la propriété mergeAlpha est définie sur false.

L’exemple suivant indique comment copier des pixels à partir d’une zone de 20 x 20 pixels d’un objet BitmapData vers un autre objet BitmapData : import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Rectangle; import flash.geom.Point; var bmd1:BitmapData = new BitmapData(40, 40, false, 0x000000FF); var bmd2:BitmapData = new BitmapData(80, 40, false, 0x0000CC44); var rect:Rectangle = new Rectangle(0, 0, 20, 20); var pt:Point = new Point(10, 10); bmd2.copyPixels(bmd1, rect, pt); var bm1:Bitmap = new Bitmap(bmd1); this.addChild(bm1); var bm2:Bitmap = new Bitmap(bmd2); this.addChild(bm2); bm2.x = 50;
dispose Libère la mémoire utilisée pour stocker l’objet BitmapData. Libère la mémoire utilisée pour stocker l’objet BitmapData.

Lorsque la méthode dispose() est appelée sur une image, la largeur et la hauteur de celle-ci sont définies sur 0. Tous les appels ultérieurs des méthodes ou des propriétés de cette occurrence de BitmapData échouent et une exception est renvoyée.

BitmapData.dispose() libère immédiatement la mémoire occupée par les données bitmap actuelles (une image bitmap peut consommer jusqu’à 64 Mo de mémoire). Après avoir utilisé BitmapData.dispose(), l’objet BitmapData n’est plus utilisable et le moteur d’exécution de Flash renvoie une exception si vous appelez des fonctions sur l’objet BitmapData. Toutefois, BitmapData.dispose() ne nettoie pas l’objet BitmapData (environ 128 octets) ; la mémoire occupée par l’objet BitmapData actuel est libérée lorsque le nettoyeur de mémoire collecte l’objet BitmapData.

L’exemple suivant illustre l’effet de l’appel d’une méthode d’objet BitmapData consécutif à l’appel de la méthode dispose() (une exception est renvoyée) : import flash.display.BitmapData; var myBitmapData:BitmapData = new BitmapData(100, 80, false, 0x000000FF); trace(myBitmapData.getPixel(1, 1)); // 255 == 0xFF myBitmapData.dispose(); try { trace(myBitmapData.getPixel(1, 1)); } catch (error:Error) { trace(error); // ArgumentError }
flash.system.System.gc()
draw Dessine l’objet d’affichage source sur l’image bitmap avec la fonctionnalité de rendu vectoriel du moteur d’exécution de Flash.Le paramètre source n’est pas un objet BitmapData ou DisplayObject. ArgumentErrorArgumentErrorL’objet source et (dans le cas d’un objet Sprite ou MovieClip) tous les objets enfant correspondants ne proviennent pas du même domaine que l’appelant, ou ne résident pas dans un contenu auquel ce dernier peut accéder par le biais de la méthode Security.allowDomain(). Cette restriction ne s’applique pas au contenu AIR dans le sandbox de sécurité de l’application. SecurityErrorSecurityErrorLa source est réglée sur null ou n’est pas un objet IBitmapDrawable valide. ArgumentErrorArgumentErrorsourceflash.display:IBitmapDrawableObjet d’affichage ou objet BitmapData à dessiner sur l’objet BitmapData (les classes DisplayObject et BitmapData mettent en œuvre l’interface IBitmapDrawable). matrixflash.geom:MatrixnullObjet Matrix utilisé pour redimensionner, faire pivoter ou traduire les coordonnées de l’image bitmap. Si vous ne souhaitez pas appliquer une matrice de transformation à l’image, réglez ce paramètre sur une matrice d’identité, créée à l’aide du constructeur new Matrix() par défaut, ou transmettez une valeur null. colorTransformflash.geom:ColorTransformnullObjet ColorTransform utilisé pour définir les valeurs de couleur du bitmap. Si aucun objet n’est fourni, les couleurs de l’image bitmap ne sont pas transformées. Si ce paramètre doit être transmis, alors que vous ne souhaitez pas transformer l’image, réglez-le sur un objet ColorTransform créé à l’aide du constructeur new ColorTransform() par défaut. blendModeStringnullChaîne extraite de la classe flash.display.BlendMode, qui spécifie le mode de fondu à appliquer au bitmap générée par l’opération. clipRectflash.geom:RectanglenullObjet Rectangle qui définit la zone de l’image source à dessiner. Si cette valeur n’est pas fournie, aucun découpage n’est effectué et l’objet source est dessiné dans sa totalité. smoothingBooleanfalseUne valeur booléenne qui détermine si l’objet BitmapData doit être lissé lors d’une mise à l’échelle ou d’une rotation demandée par le paramètre matrix. Le paramètre smoothing s’applique uniquement lorsque le paramètre source est un objet BitmapData. Lorsque le paramètre smoothing est défini sur false, l’image BitmapData pivotée ou mise à l’échelle peut sembler pixélisée ou irrégulière. Par exemple, les deux images suivantes utilisent le même objet BitmapData pour le paramètre source, mais le paramètre smoothing est défini sur true à gauche et sur false à droite :

Le traçage d’une image bitmap avec le paramètre smoothing défini sur true prend plus de temps que lorsque smoothing est défini sur false.

Dessine l’objet d’affichage source sur l’image bitmap avec la fonctionnalité de rendu vectoriel du moteur d’exécution de Flash. Vous pouvez spécifier les paramètres matrix, colorTransform, blendMode, ainsi qu’un paramètre de destination clipRect pour contrôler l’exécution du rendu. Vous pouvez éventuellement indiquer si l’image bitmap doit être lissée lorsqu’elle est redimensionnée (cette opération ne fonctionne que si l’objet source est un objet BitmapData).

Cette méthode correspond directement au mode de traçage des objets à l’aide de la fonctionnalité de rendu vectoriel standard dans l’interface de l’outil de création.

L’objet d’affichage source n’utilise pas les transformations appliquées pour cet appel. Il est traité de la manière dont il apparaît dans la bibliothèque ou dans le fichier, sans transformation de matrice, de couleurs et sans mode de fondu. Pour dessiner un objet d’affichage, tel qu’un clip, en utilisant ses propres propriétés de transformation, vous pouvez copier sa propriété transform dans la propriété transform de l’objet Bitmap qui utilise l’objet BitmapData.

Cette méthode est prise en charge sur RTMP dans Flash Player 9.0.115.0 et versions ultérieures, et dans Adobe AIR. Vous pouvez contrôler l’accès aux flux sur un serveur FMS (Flash Media Server) dans un script coté serveur. Pour plus d’informations, voir les propriétés Client.audioSampleAccess et Client.videoSampleAccess dans le Guide de référence du langage ActionScript d’Adobe Flash Media Server côté serveur.

Si l’objet source et (dans le cas d’un objet Sprite ou MovieClip) tous les objets enfant correspondants ne proviennent pas du même domaine que l’appelant, ou ne résident pas dans un contenu auquel ce dernier peut accéder par le biais de la méthode Security.allowDomain(), un appel à la méthode draw() renvoie une exception SecurityError. Cette restriction ne s’applique pas au contenu AIR dans le sandbox de sécurité de l’application.

Il existe également des restrictions concernant l’utilisation d’une image bitmap chargée en tant que source. Un appel de la méthode draw() aboutit si l’image chargée provient du même domaine que l’appelant. Par ailleurs, un fichier de régulation interdomaine sur le serveur de l’image peut autoriser le domaine du contenu SWF qui appelle la méthode draw(). Le cas échéant, vous devez définir la propriété checkPolicyFile d’un objet LoaderContext, puis utiliser cet objet en tant que paramètre context lors de l’appel de la méthode load() de l’objet Loader utilisée pour charger l’image. Le contenu AIR du sandbox de sécurité de l’application n’est pas soumis à ces restrictions.

Dans Windows, la méthode draw() ne peut pas capturer le contenu SWF incorporé dans une page HTML dans un objet HTMLLoader dans Adobe AIR.

La méthode draw() ne peut pas capturer un contenu PDF dans Adobe AIR. Elle ne peut pas non plus capturer un contenu SWF intégré dans HTML dont l’attribut wmode est défini sur "window" dans Adobe AIR.

L’exemple suivant indique comment dessiner un objet TextField sur un objet BitmapData : import flash.display.Bitmap; import flash.display.BitmapData; import flash.text.TextField; var tf:TextField = new TextField(); tf.text = "bitmap text"; var myBitmapData:BitmapData = new BitmapData(80, 20); myBitmapData.draw(tf); var bmp:Bitmap = new Bitmap(myBitmapData); this.addChild(bmp);
flash.display.BlendModeflash.geom.ColorTransformflash.geom.Matrixflash.system.JPEGLoaderContext
fillRect Remplit une zone rectangulaire de pixels avec une couleur ARVB spécifiée.Le paramètre rect est défini sur null. TypeErrorTypeErrorrectflash.geom:RectangleZone rectangulaire à remplir. coloruintValeur de couleur ARVB qui remplit la zone. Les couleurs ARVB sont souvent spécifiées au format hexadécimal, par exemple 0xFF336699. Remplit une zone rectangulaire de pixels avec une couleur ARVB spécifiée. L’exemple suivant indique comment remplir une zone rectangulaire d’un objet BitmapData en bleu : import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Rectangle; var myBitmapData:BitmapData = new BitmapData(40, 40, false, 0x0000FF00); var rect:Rectangle = new Rectangle(0, 0, 20, 20); myBitmapData.fillRect(rect, 0x0000FF); var bm:Bitmap = new Bitmap(myBitmapData); addChild(bm); flash.geom.RectanglefloodFill Effectue une opération de peinture sur une image à partir de certaines coordonnées (x, y) et à l’aide d’une certaine couleur.xintCoordonnée x de l’image. yintCoordonnée y de l’image. coloruintCouleur ARVB à utiliser pour le remplissage. Effectue une opération de peinture sur une image à partir de certaines coordonnées (x, y). Effectue une opération de peinture sur une image à partir de certaines coordonnées (x, y) et à l’aide d’une certaine couleur. La méthode floodFill() est similaire à l’outil Pot de peinture dans divers programmes de dessin. La couleur ARVB contient des informations alpha ainsi que des informations sur les couleurs. L’exemple suivant indique comment remplir la zone d’un objet BitmapData, c’est-à-dire la zone qui entoure le pixel défini par le point (10, 10) où toutes les couleurs correspondent à ce stade avec le rouge. import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Rectangle; var myBitmapData:BitmapData = new BitmapData(40, 40, false, 0x0000FF00); var rect:Rectangle = new Rectangle(0, 0, 20, 20); myBitmapData.fillRect(rect, 0x000000FF); rect = new Rectangle(15, 15, 25, 25); myBitmapData.fillRect(rect, 0x000000FF); myBitmapData.floodFill(10, 10, 0x00FF0000); var bm:Bitmap = new Bitmap(myBitmapData); addChild(bm); generateFilterRect Détermine le rectangle de destination affecté par l’appel de la méthode applyFilter(), en fonction d’un objet BitmapData, d’un rectangle source et d’un objet filtre spécifiés.Le paramètre sourceRect ou filter est défini sur une valeur null. TypeErrorTypeErrorRectangle de destination dont les dimensions ont été calculées à l’aide d’une image, du paramètre sourceRect et d’un filtre. flash.geom:RectanglesourceRectflash.geom:RectangleRectangle définissant la zone de l’image source à utiliser en tant qu’entrée. filterflash.filters:BitmapFilterObjet filtre utilisé pour calculer les dimensions du rectangle de destination. Détermine le rectangle de destination qui sera affecté par l’appel de applyFilter(). Détermine le rectangle de destination affecté par l’appel de la méthode applyFilter(), en fonction d’un objet BitmapData, d’un rectangle source et d’un objet filtre spécifiés.

Par exemple, un filtre de flou affecte normalement une zone dont la taille est supérieure à celle de l’image d’origine. Une image de 100 x 200 pixels filtrée par une occurrence BlurFilter par défaut, où blurX = blurY = 4 génère un rectangle de destination de (-2,-2,104,204). La méthode generateFilterRect() permet de déterminer la taille de ce rectangle de destination à l’avance, de sorte que vous puissiez dimensionner l’image de destination en conséquence avant d’effectuer une opération de filtrage.

Certains filtres découpent leur rectangle de destination selon la taille de l’image source. Par exemple, un filtre DropShadow interne ne génère pas de résultat de taille supérieure à celle de son image source. Dans cette interface API, l’objet BitmapData fait office de limites source et n’est pas utilisé en tant que paramètre rect.

L’exemple suivant indique comment utiliser la méthode generateFilterRect() pour déterminer la zone rectangulaire devant recevoir le résultat du filtre de flou. Les résultats de la méthode generateFilterRect() sont renvoyés par la fonction trace() : import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Point; import flash.geom.Rectangle; import flash.filters.BlurFilter; var bmd:BitmapData = new BitmapData(80, 30, false, 0xFFCC00); var rect:Rectangle = new Rectangle(10, 10, 40, 10); bmd.fillRect(rect, 0xFF0000); var pt:Point = new Point(10, 10); var filter:BlurFilter = new BlurFilter(); trace(bmd.generateFilterRect(rect, filter)); // (x=8, y=8, w=44, h=14) bmd.applyFilter(bmd, rect, pt, filter); var bm:Bitmap = new Bitmap(bmd); addChild(bm); Tenez compte du fait que la méthode generateFilterRect() ne s’applique pas au filtre. Appelez la méthode applyFilter() pour appliquer le filtre.
getColorBoundsRect Détermine une zone rectangulaire qui regroupe entièrement tous les pixels d’une couleur spécifiée au sein de l’image bitmap (si le paramètre findColor est défini sur true) ou tous les pixels qui n’incluent pas la couleur spécifiée (si le paramètre findColor est défini sur false).Zone de l’image correspondant à la couleur spécifiée. flash.geom:RectanglemaskuintValeur hexadécimale qui spécifie les bits de la couleur ARVB à prendre en compte. La valeur de la couleur est combinée à cette valeur hexadécimale à l’aide de l’opérateur & (AND au niveau du bit). coloruintValeur hexadécimale qui spécifie la couleur ARVB à prendre en compte (si findColor est défini sur true) ou à ne pas prendre en compte (si findColor est défini sur false). findColorBooleantrueSi la valeur est définie sur true, renvoie les limites d’une valeur de couleur dans une image. Si la valeur est définie sur false, renvoie les limites dans lesquelles cette couleur n’existe pas dans une image. Détermine une zone rectangulaire qui regroupe entièrement tous les pixels d’une couleur spécifiée au sein de l’image bitmap (si le paramètre findColor est défini sur true) ou tous les pixels qui n’incluent pas la couleur spécifiée (si le paramètre findColor est défini sur false).

Par exemple, si vous disposez d’une image source et souhaitez déterminer le rectangle de l’image qui contient un canal alpha différent de zéro, utilisez {mask: 0xFF000000, color: 0x00000000} en tant que paramètres. Si le paramètre findColor est défini sur true, les limites de pixels caractérisées par (value & mask) == color (value correspondant à la valeur de la couleur du pixel) sont recherchées dans l’image entière. Si le paramètre findColor est défini sur false, la recherche des limites des pixels porte sur l’ensemble de l’image pour laquelle (value & mask) != color (où value correspond à la valeur de couleur du pixel). Pour déterminer l’espace blanc entourant une image, transmettez {mask: 0xFFFFFFFF, color: 0xFFFFFFFF} pour rechercher les limites des pixels qui ne sont pas blancs.

L’exemple suivant crée un objet BitmapData comportant du rouge dans la partie supérieure de ses pixels. Il appelle ensuite la méthode getColorBoundsRect() pour déterminer le rectangle où les pixels sont rouges (0xFF0000), puis à nouveau la même méthode pour déterminer le rectangle où les pixels ne sont pas rouges (en définissant le paramètre findColor sur false : import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Rectangle; var bmd:BitmapData = new BitmapData(80, 40, false, 0xFFFFFF); var rect:Rectangle = new Rectangle(0, 0, 80, 20); bmd.fillRect(rect, 0xFF0000); var maskColor:uint = 0xFFFFFF; var color:uint = 0xFF0000; var redBounds:Rectangle = bmd.getColorBoundsRect(maskColor, color, true); trace(redBounds); // (x=0, y=0, w=80, h=20) var notRedBounds:Rectangle = bmd.getColorBoundsRect(maskColor, color, false); trace(notRedBounds); // (x=0, y=20, w=80, h=20) var bm:Bitmap = new Bitmap(bmd); addChild(bm);
getPixel32 Renvoie une valeur de couleur ARVB qui contient des données de canal alpha, ainsi que les données RVB.Nombre représentant une valeur de pixels ARVB. Si les coordonnées (x, y) se trouvent à l’extérieur des limites de l’image, 0 est renvoyé. uintxintCoordonnée x du pixel. yintCoordonnée y du pixel. Renvoie une valeur de couleur ARVB qui contient des données de canal alpha, ainsi que les données RVB. Cette méthode est similaire à la méthode getPixel() qui renvoie une couleur RVB sans les données de canal alpha.

Tous les pixels d’un objet BitmapData sont stockés en tant que valeurs de couleur prémultipliées. Les valeurs des canaux de couleur rouge, vert et bleu d’un pixel image prémultiplié sont déjà multipliées par les données alpha. Par exemple, si la valeur alpha est 0, les canaux RVB sont également définis sur 0, indépendamment de leurs valeurs non multipliées. Cette perte de données peut entraîner certains problèmes lorsque vous effectuez ces opérations. Toutes les méthodes BitmapData utilisent et renvoient des valeurs non multipliées. La représentation des pixels interne est convertie du format prémultiplié au format non multiplié avant d’être renvoyée en tant que valeur. Au cours d’une opération de définition, la valeur de pixels est prémultipliée avant de définir le pixel d’image brut.

L’exemple suivant crée un objet BitmapData de la couleur spécifiée, puis utilise la méthode getPixel32() pour déterminer la valeur de couleur du pixel supérieur gauche. Enfin, elle détermine les valeurs hexadécimales de chaque composant de couleur (alpha, rouge, vert et bleu) : import flash.display.BitmapData; var bmd:BitmapData = new BitmapData(80, 40, true, 0xFF44AACC); var pixelValue:uint = bmd.getPixel32(0, 0); var alphaValue:uint = pixelValue >> 24 & 0xFF; var red:uint = pixelValue >> 16 & 0xFF; var green:uint = pixelValue >> 8 & 0xFF; var blue:uint = pixelValue & 0xFF; trace(alphaValue.toString(16)); // ff trace(red.toString(16)); // 44 trace(green.toString(16)); // aa trace(blue.toString(16)); // cc
getPixel()setPixel32()
getPixel Renvoie un entier représentant une valeur de pixels RVB à partir d’un objet BitmapData à un point spécifique (x, y).Nombre représentant une valeur de pixels RVB. Si les coordonnées (x, y) se trouvent à l’extérieur des limites de l’image, la méthode renvoie 0. uintxintCoordonnée x du pixel. yintCoordonnée y du pixel. Renvoie un entier représentant une valeur de pixels RVB à partir d’un objet BitmapData à un point spécifique. Renvoie un entier représentant une valeur de pixels RVB à partir d’un objet BitmapData à un point spécifique (x, y). La méthode getPixel() renvoie une valeur de pixels non multipliée. Aucune information alpha n’est renvoyée.

Tous les pixels d’un objet BitmapData sont stockés en tant que valeurs de couleur prémultipliées. Les valeurs des canaux de couleur rouge, vert et bleu d’un pixel image prémultiplié sont déjà multipliées par les données alpha. Par exemple, si la valeur alpha est 0, les canaux RVB sont également définis sur 0, indépendamment de leurs valeurs non multipliées. Cette perte de données peut entraîner certains problèmes lorsque vous effectuez ces opérations. Toutes les méthodes BitmapData utilisent et renvoient des valeurs non multipliées. La représentation des pixels interne est convertie du format prémultiplié au format non multiplié avant d’être renvoyée en tant que valeur. Au cours d’une opération de définition, la valeur de pixels est prémultipliée avant de définir le pixel d’image brut.

L’exemple suivant crée un objet BitmapData en rouge, puis utilise la méthode getPixel() pour déterminer la valeur de couleur dans le pixel supérieur gauche : import flash.display.BitmapData; var bmd:BitmapData = new BitmapData(80, 40, false, 0xFF0000); var pixelValue:uint = bmd.getPixel(0, 0); trace(pixelValue.toString(16)); // ff0000;
getPixel32()setPixel()
getPixels Génère un tableau d’octets à partir d’une zone rectangulaire de données de pixels.Le paramètre rect est défini sur null. TypeErrorTypeErrorByteArray représentant les pixels dans le paramètre Rectangle spécifié. flash.utils:ByteArrayrectflash.geom:RectangleZone rectangulaire de l’objet BitmapData en cours. Génère un tableau d’octets à partir d’une zone rectangulaire de données de pixels. Ecrit un entier non signé (valeur de pixel non multipliée 32 bits) pour chaque pixel dans le tableau d’octets. L’exemple suivant crée un objet BitmapData rempli avec des pixels de bruit aléatoires, puis applique la méthode getPixels() pour remplir un objet ByteArray avec la valeur de pixels pour l’objet BitmapData. import flash.display.BitmapData; import flash.geom.Rectangle; import flash.utils.ByteArray; var bmd:BitmapData = new BitmapData(80, 40, true); var seed:int = int(Math.random() * int.MAX_VALUE); bmd.noise(seed); var bounds:Rectangle = new Rectangle(0, 0, bmd.width, bmd.height); var pixels:ByteArray = bmd.getPixels(bounds); flash.utils.ByteArraygetVector Génère un tableau de vecteurs à partir d’une zone rectangulaire de données de pixels.Le paramètre rect est défini sur null. TypeErrorTypeErrorVecteur représentant le Rectangle donné. rectflash.geom:RectangleZone rectangulaire de l’objet BitmapData en cours. Génère un tableau de vecteurs à partir d’une zone rectangulaire de données de pixels. Renvoie un objet Vector d’entiers non signés (une valeur de pixel non multipliée de 32 bits) pour le rectangle spécifié. histogram Calcule l’histogramme binaire à 256 valeurs d’un objet BitmapData.hRectflash.geom:RectanglenullLa zone de l’objet BitmapData à utiliser. Calcule l’histogramme binaire à 256 valeurs d’un objet BitmapData. Cette méthode renvoie un objet Vector contenant quatre occurrences de Vector.<Number> (quatre objets Vector qui contiennent des objets Number). Les quatre occurrences de Vector représentent les composants rouge, vert, bleu et alpha, dans l’ordre. Chaque occurrence de Vector contient 256 valeurs qui représentent le nombre de remplissages d’un composant individuel, de 0 à 255. hitTest Procède à la détection des clics au niveau des pixels entre une image bitmap et un point, un rectangle ou toute autre image bitmap.Le paramètre secondObject n’est pas un objet Point, Rectangle, Bitmap ou BitmapData. ArgumentErrorArgumentErrorLe paramètre firstPoint est défini sur null. TypeErrorTypeErrorValeur true s’il se produit un clic, false dans le cas contraire. BooleanfirstPointflash.geom:Point Position du coin supérieur gauche de l’image BitmapData dans un espace de coordonnées arbitraire. Le même espace de coordonnées est utilisé pour définir le paramètre secondBitmapPoint. firstAlphaThresholduintPlus petite valeur du canal alpha considéré comme étant opaque pour ce test de recherche. secondObjectObjectObjet Rectangle, Point, Bitmap ou BitmapData. secondBitmapDataPointflash.geom:PointnullPoint qui définit l’emplacement d’un pixel dans le deuxième objet BitmapData. Utilisez uniquement ce paramètre lorsque la valeur de secondObject est un objet BitmapData. secondAlphaThresholduint1Plus petite valeur du canal alpha considéré comme étant opaque dans le deuxième objet BitmapData. Utilisez uniquement ce paramètre lorsque la valeur de secondObject est un objet BitmapData et que les deux objets BitmapData sont transparents. Procède à la détection des clics au niveau des pixels entre une image bitmap et un point, un rectangle ou toute autre image bitmap. Un clic est défini comme le chevauchement d’un point ou d’un rectangle sur un pixel opaque, ou comme deux pixels opaque se chevauchant. Aucun étirement, aucune rotation ou autre transformation n’est pris en compte lorsque vous effectuez un test de recherche.

Si une image est opaque, elle est considérée comme étant un rectangle entièrement opaque pour cette méthode. Les deux images doivent être transparentes pour effectuer un test de recherche au niveau des pixels tenant compte de la transparence. Lorsque vous testez deux images transparentes, les paramètres de seuil alpha déterminent les valeurs des canaux alpha, comprises entre 0 et 255, considérées comme étant opaques.

L’exemple suivant crée un objet BitmapData qui n’est opaque que dans une zone rectangulaire (20, 20, 40, 40) et appelle la méthode hitTest() avec un objet Point en tant qu’objet secondObject. Lors du premier appel, l’objet Point définit le coin supérieur gauche de l’objet BitmapData, qui n’est pas opaque, et lors du second appel, l’objet Point définit le centre de l’objet BitmapData, qui est opaque. import flash.display.BitmapData; import flash.geom.Rectangle; import flash.geom.Point; var bmd1:BitmapData = new BitmapData(80, 80, true, 0x00000000); var rect:Rectangle = new Rectangle(20, 20, 40, 40); bmd1.fillRect(rect, 0xFF0000FF); var pt1:Point = new Point(1, 1); trace(bmd1.hitTest(pt1, 0xFF, pt1)); // false var pt2:Point = new Point(40, 40); trace(bmd1.hitTest(pt1, 0xFF, pt2)); // true
lock Verrouille une image de sorte que les objets qui référencent l’objet BitmapData, tels que les objets Bitmap, ne sont pas mis à jour lorsque celui-ci est modifié. Verrouille une image de sorte que les objets qui référencent l’objet BitmapData, tels que les objets Bitmap, ne sont pas mis à jour lorsque celui-ci est modifié. Pour améliorer les performances, utilisez cette méthode en conjonction avec la méthode unlock() avant et après les appels répétés de la méthode setPixel() ou setPixel32(). L’exemple suivant crée un objet BitmapData reposant sur la propriété bitmapData d’un objet Bitmap, picture. Il appelle ensuite la méthode lock() avant d’appeler une fonction personnalisée complexe, complexTransformation(), qui modifie l’objet BitmapData (l’objet picture et la fonction complexTransformation() ne sont pas définis dans cet exemple). Même si la fonction complexTransformation() met à jour la propriété bitmapData de l’objet picture, les modifications ne sont reportées que lorsque le code appelle la méthode unlock() sur l’objet bitmapData : import flash.display.BitmapData; var bitmapData:BitmapData = picture.bitmapData; bitmapData.lock(); bitmapData = complexTransformation(bitmapData); bitmapData.unlock(); picture.bitmapData = bitmapData; setPixel()setPixel32()unlock()merge Procède à la fusion canal par canal d’une image source vers une image de destination.Les paramètres sourceBitmapData, sourceRect ou destPoint sont définis sur null. TypeErrorTypeErrorsourceBitmapDataflash.display:BitmapDataL’image bitmap d’entrée à utiliser. L’image source peut être un objet BitmapData différent ou peut faire référence à l’objet BitmapData actuel. sourceRectflash.geom:RectangleRectangle qui définit la zone de l’image source à utiliser en tant qu’entrée. destPointflash.geom:PointPoint de l’image de destination (l’occurrence de BitmapData actuelle) correspondant au coin supérieur gauche du rectangle source. redMultiplieruintValeur uint hexadécimale par laquelle la valeur du canal rouge doit être multipliée. greenMultiplieruintValeur uint hexadécimale par laquelle la valeur du canal vert doit être multipliée. blueMultiplieruintValeur uint hexadécimale par laquelle la valeur du canal bleu doit être multipliée. alphaMultiplieruintValeur uint hexadécimale par laquelle la valeur du canal alpha doit être multipliée. Procède à la fusion canal par canal d’une image source vers une image de destination. Pour chaque canal et chaque pixel, une nouvelle valeur est calculée en fonction des valeurs de canal des pixels source et cible. Par exemple, dans le canal rouge, la nouvelle valeur est calculée comme suit (où redSrc est la valeur du canal rouge d’un pixel dans l’image source et redDest la valeur du canal rouge du pixel correspondant dans l’image cible) :

new redDest = [(redSrc * redMultiplier) + (redDest * (256 - redMultiplier))] / 256;

Les multiplicateurs redMultiplier, greenMultiplier, blueMultiplier et alphaMultiplier sont utilisés pour chaque canal de couleur. Servez-vous d’une valeur hexadécimale comprise entre 0 et 0x100 (256), où 0 spécifie que la valeur entière de la cible est utilisée dans le résultat, 0x100 spécifie que la valeur entière de la source est utilisée, et les nombres intermédiaires spécifient l’utilisation de la fusion (par exemple 0x80 pour 50 %).

L’exemple suivant crée deux objets BitmapData. Tous deux font 100 x 80 pixels. Le premier est rempli en vert et le deuxième en rouge. Le code appelle la méthode merge(), fusionne les pixels du deuxième objet BitmapData avec ceux du premier, mais uniquement dans la zone rectangulaire spécifiée : import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Rectangle; import flash.geom.Point; var bmd1:BitmapData = new BitmapData(100, 80, true, 0xFF00FF00); var bmd2:BitmapData = new BitmapData(100, 80, true, 0xFFFF0000); var rect:Rectangle = new Rectangle(0, 0, 20, 20); var pt:Point = new Point(20, 20); var mult:uint = 0x80; // 50% bmd1.merge(bmd2, rect, pt, mult, mult, mult, mult); var bm1:Bitmap = new Bitmap(bmd1); addChild(bm1); var bm2:Bitmap = new Bitmap(bmd2); addChild(bm2); bm2.x = 110;
noise Remplit une image avec des pixels représentant un bruit aléatoire.randomSeedintNombre de la valeur de départ aléatoire à utiliser. Si vous conservez tous les autres paramètres, vous pouvez générer différents résultats pseudo-aléatoires en variant la valeur de départ aléatoire. La fonction de bruit est une fonction de mappage et non une véritable fonction de génération de nombres aléatoires. Elle permet donc de créer systématiquement les mêmes résultats à partir d’une même valeur de départ aléatoire. lowuint0Valeur la plus faible à générer pour chaque canal (de 0 à 255). highuint255Valeur la plus élevée à générer pour chaque canal (de 0 à 255). channelOptionsuint7Nombre pouvant être une combinaison des quatre valeurs de canaux de couleur (BitmapDataChannel.RED, BitmapDataChannel.BLUE, BitmapDataChannel.GREEN et BitmapDataChannel.ALPHA). Vous pouvez utiliser l’opérateur logique OR (|) pour combiner les valeurs de canaux. grayScaleBooleanfalseValeur booléenne. Si la valeur est true, une image en nuances de gris est créée en définissant tous les canaux de couleur sur la même valeur. La sélection du canal alpha n’est pas affectée en définissant ce paramètre sur true. Remplit une image avec des pixels représentant un bruit aléatoire. L’exemple suivant crée deux objets BitmapData et appelle la méthode noise() sur les deux. Cependant, le paramètre grayscale est défini sur false pour l’appel à la méthode noise() du premier objet, et est défini sur true pour l’appel à la méthode noise() du deuxième objet : import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.BitmapDataChannel; var bmd1:BitmapData = new BitmapData(80, 80); var bmd2:BitmapData = new BitmapData(80, 80); var seed:int = int(Math.random() * int.MAX_VALUE); bmd1.noise(seed, 0, 0xFF, BitmapDataChannel.RED, false); bmd2.noise(seed, 0, 0xFF, BitmapDataChannel.RED, true); var bm1:Bitmap = new Bitmap(bmd1); this.addChild(bm1); var bm2:Bitmap = new Bitmap(bmd2); this.addChild(bm2); bm2.x = 90; flash.display.BitmapDataChannel.REDflash.display.BitmapDataChannel.BLUEflash.display.BitmapDataChannel.GREENflash.display.BitmapDataChannel.ALPHApaletteMap Remappe les valeurs des canaux de couleur dans une image recevant jusqu’à quatre tableaux de données de palette de couleurs, un pour chaque canal.Les paramètres sourceBitmapData, sourceRect ou destPoint sont définis sur null. TypeErrorTypeErrorsourceBitmapDataflash.display:BitmapDataL’image bitmap d’entrée à utiliser. L’image source peut être un autre objet BitmapData ou faire référence à l’occurrence de BitmapData actuelle. sourceRectflash.geom:RectangleRectangle qui définit la zone de l’image source à utiliser en tant qu’entrée. destPointflash.geom:PointPoint de l’image de destination (l’objet BitmapData actuel) correspondant au coin supérieur gauche du rectangle source. redArrayArraynullSi redArray n’a pas la valeur null, red = redArray[source red value] else red = source rect value. greenArrayArraynullSi greenArray n’a pas la valeur null, green = greenArray[source green value] else green = source green value. blueArrayArraynullSi blueArray n’a pas la valeur null, blue = blueArray[source blue value] else blue = source blue value. alphaArrayArraynullSi alphaArray n’a pas la valeur null, alpha = alphaArray[source alpha value] else alpha = source alpha value. Remappe les valeurs des canaux de couleur dans une image recevant jusqu’à quatre tableaux de données de palette de couleurs, un pour chaque canal.

Les moteurs d’exécution de Flash utilisent la procédure suivante pour générer l’image résultante :

  1. Une fois le calcul des valeurs rouge, vert, bleu et alpha effectué, celles-ci sont additionnées en effectuant une opération arithmétique standard s’articulant autour d’un entier 32 bits.
  2. Les valeurs de couleur rouge, vert, bleu et alpha de chaque pixel sont extraites dans des valeurs distinctes comprises entre 0 et 255. Ces valeurs permettent de rechercher de nouvelles valeurs de couleur dans le tableau voulu : redArray, greenArray, blueArray et alphaArray. Chacun de ces quatre tableaux doit contenir 256 valeurs.
  3. Une fois les quatre nouvelles valeurs de canaux récupérées, elles sont combinées dans une valeur ARVB standard appliquée au pixel.

Les effets multicanaux sont pris en charge par cette méthode. Chaque tableau d’entrée peut contenir des valeurs entières 32 bits ; aucun décalage ne se produit lorsque les valeurs sont additionnées. Cette routine ne prend pas en charge le verrouillage canal par canal.

Si aucun tableau n’est spécifié pour un canal, le canal de couleur est copié de l’image source vers l’image de destination.

Vous pouvez utiliser cette méthode pour de nombreux effets, tel que le mappage de palette général (qui consiste à sélectionner un canal pour le convertir en image couleur de valeur false). Vous pouvez également utiliser cette méthode pour de nombreux algorithmes de manipulation de couleurs avancés, tels que gamma, courbes, niveaux et quantification.

L’exemple suivant crée un objet BitmapData avec un carré central rouge, puis utilise la méthode paletteMap() pour remplacer le rouge par du vert dans la moitié rectangulaire du bas de l’objet BitmapData : import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Rectangle; import flash.geom.Point; var myBitmapData:BitmapData = new BitmapData(80, 80, false, 0x00FF0000); myBitmapData.fillRect(new Rectangle(20, 20, 40, 40), 0x0000FF00); var redArray:Array = new Array(256); var greenArray:Array = new Array(256); for(var i:uint = 0; i < 255; i++) { redArray[i] = 0x00000000; greenArray[i] = 0x00000000; } redArray[0xFF] = 0x0000FF00; greenArray[0xFF] = 0x00FF0000; var bottomHalf:Rectangle = new Rectangle(0, 0, 100, 40); var pt:Point = new Point(0, 0); myBitmapData.paletteMap(myBitmapData, bottomHalf, pt, redArray, greenArray); var bm1:Bitmap = new Bitmap(myBitmapData); addChild(bm1);
perlinNoise Génère une image de bruit Perlin.baseXNumberFréquence à utiliser dans la direction x. Par exemple, pour générer un bruit adapté à une image de 64x128 pixels, réglez la valeur baseX sur 64. baseYNumberFréquence à utiliser dans la direction y. Par exemple, pour générer un bruit adapté à une image de 64x128 pixels, réglez la valeur baseY sur 128. numOctavesuintNombre d’octaves ou de fonctions de bruit individuelles à combiner pour créer ce bruit. Plus les nombres d’octaves sont élevés, plus les images créées sont détaillées. Les nombres d’octaves plus élevés nécessitent également un temps de traitement plus important. randomSeedintNombre de la valeur de départ aléatoire à utiliser. Si vous conservez tous les autres paramètres, vous pouvez générer différents résultats pseudo-aléatoires en variant la valeur de départ aléatoire. La fonction de bruit Perlin est une fonction de mappage, plutôt qu’une véritable fonction de génération de nombres aléatoires. Elle permet donc de créer systématiquement les mêmes résultats à partir d’une même valeur de départ aléatoire. stitchBooleanValeur booléenne. Si la valeur est true, la méthode tente de lisser les bords de transition de l’image pour créer des textures transparentes en vue du remplissage en mosaïque bitmap. fractalNoiseBooleanValeur booléenne. Si la valeur est true, la méthode génère un bruit fractal ; sinon, elle génère une turbulence. Les dégradés d’une image créée à partir d’une turbulence présentent des discontinuités visibles qui lui permettent de mieux appréhender les effets visuels plus saillants, comme les flammes ou les vagues de l’océan. channelOptionsuint7 Nombre pouvant être une combinaison des quatre valeurs de canaux de couleur (BitmapDataChannel.RED, BitmapDataChannel.BLUE, BitmapDataChannel.GREEN et BitmapDataChannel.ALPHA). Vous pouvez utiliser l’opérateur logique OR (|) pour combiner les valeurs de canaux. grayScaleBooleanfalseValeur booléenne. Si la valeur est true, une image en nuances de gris est créée en définissant les canaux de couleur rouge, vert et bleu sur des valeurs identiques. La valeur du canal alpha n’est pas affectée si cette valeur est définie sur true. offsetsArraynullTableau de points correspondant aux décalages x et y pour chaque octave. En manipulant les valeurs de décalage, vous pouvez effectuer un défilement lisse d’une image perlinNoise. Chaque point du tableau de décalage affecte une fonction de bruit d’octave spécifique. Génère une image de bruit Perlin.

L’algorithme permettant de générer un bruit Perlin interpole et combine des fonctions de bruit aléatoire individuelles (appelées octaves) en fonction unique qui génère un bruit aléatoire qui semble plus naturel. Tout comme les octaves musicales, la fréquence de chaque fonction d’octave est doublée par rapport à celle qui la précède. Le bruit Perlin est décrit comme étant une « somme de bruit fractale » car il combine plusieurs ensembles de données de bruit avec différents niveaux de détails.

Vous pouvez utiliser les fonctions de bruit Perlin pour simuler des phénomènes naturels et des paysages tels que le grain du bois, les nuages ou les chaînes de montagnes. Dans la plupart des cas, la sortie d’une fonction de bruit Perlin ne s’affiche pas directement mais est utilisée pour améliorer d’autres images et leur attribuer des variations pseudo-aléatoires.

Les fonctions de bruit aléatoire numériques simples produisent souvent des images aux points durs et contrastés. On ne retrouve pas souvent ce type de contraste dur dans la nature. L’algorithme de bruit Perlin mélange plusieurs fonctions de bruit ayant des niveaux de détails différents. Cet algorithme engendre des variations plus petites parmi les valeurs des pixels environnants.

L’exemple suivant crée un objet BitmapData de 200x200 pixels qui appelle la méthode perlinNoise() pour générer un effet d’aquarelle rouge et bleu : import flash.display.Bitmap; import flash.display.BitmapData; var bmd:BitmapData = new BitmapData(200, 200, false, 0x00CCCCCC); var seed:Number = Math.floor(Math.random() * 10); var channels:uint = BitmapDataChannel.RED | BitmapDataChannel.BLUE; bmd.perlinNoise(100, 80, 6, seed, false, true, channels, false, null); var bm:Bitmap = new Bitmap(bmd); addChild(bm);
pixelDissolve Procède à la dissolution de pixels, soit d’une image source vers une image de destination, soit en utilisant la même image.Les paramètres sourceBitmapData, sourceRect ou destPoint sont définis sur null. TypeErrorTypeErrorLa valeur numPixels est négative. TypeErrorTypeErrorNouvelle valeur de départ aléatoire à utiliser pour les appels suivants. intsourceBitmapDataflash.display:BitmapDataL’image bitmap d’entrée à utiliser. L’image source peut être un autre objet BitmapData ou faire référence à l’occurrence de BitmapData actuelle. sourceRectflash.geom:RectangleRectangle qui définit la zone de l’image source à utiliser en tant qu’entrée. destPointflash.geom:PointPoint de l’image de destination (l’occurrence de BitmapData actuelle) correspondant au coin supérieur gauche du rectangle source. randomSeedint0Valeur de départ aléatoire à utiliser pour démarrer la dissolution de pixels. numPixelsint0La valeur par défaut est égale à 1/30 de la zone source (largeur x hauteur). fillColoruint0Valeur de couleur ARVB utilisée pour remplir les pixels dont la valeur source est égale à la valeur de destination. Procède à la dissolution de pixels, soit d’une image source vers une image de destination, soit en utilisant la même image. Les moteurs d’exécution de Flash utilisent une valeur randomSeed pour générer une dissolution de pixels aléatoire. La valeur renvoyée par la fonction doit être transmise lors des appels suivants pour poursuivre la dissolution de pixels jusqu’à ce qu’elle soit terminée.

Si l’image source diffère de l’image de destination, les pixels sont copiés de la source vers la destination à l’aide de toutes les propriétés. Ce processus permet de procéder à la dissolution d’une image vide dans une image entièrement remplie.

Si les images source et de destination sont équivalentes, les pixels sont remplis avec le paramètre color. Ce processus permet de procéder à la dissolution d’une image entièrement remplie. Dans ce mode, le paramètre point de destination est ignoré.

L’exemple suivant utilise la méthode pixelDissolve() pour convertir un objet BitmapData gris en rouge en procédant à la dissolution de 40 pixels à la fois jusqu’à ce que tous les pixels aient changé de couleur : import flash.display.BitmapData; import flash.display.Bitmap; import flash.geom.Point; import flash.geom.Rectangle; import flash.utils.Timer; import flash.events.TimerEvent; var bmd:BitmapData = new BitmapData(100, 80, false, 0x00CCCCCC); var bitmap:Bitmap = new Bitmap(bmd); addChild(bitmap); var tim:Timer = new Timer(20); tim.start(); tim.addEventListener(TimerEvent.TIMER, timerHandler); function timerHandler(event:TimerEvent):void { var randomNum:Number = Math.floor(Math.random() * int.MAX_VALUE); dissolve(randomNum); } function dissolve(randomNum:Number):void { var rect:Rectangle = bmd.rect; var pt:Point = new Point(0, 0); var numberOfPixels:uint = 100; var red:uint = 0x00FF0000; bmd.pixelDissolve(bmd, rect, pt, randomNum, numberOfPixels, red); var grayRegion:Rectangle = bmd.getColorBoundsRect(0xFFFFFFFF, 0x00CCCCCC, true); if(grayRegion.width == 0 && grayRegion.height == 0 ) { tim.stop(); } }
scroll Fait défiler une image en fonction d’un certain montant en pixels (x, y).xintValeur du défilement horizontal. yintValeur du défilement vertical. Fait défiler une image en fonction d’un certain montant en pixels (x, y). Les zones du bord situées hors de la zone de défilement demeurent inchangées. L’exemple suivant affiche l’effet du défilement d’un objet de données Bitmap de 40 pixels vers la droite : import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Rectangle; var bmd:BitmapData = new BitmapData(80, 80, true, 0xFFCCCCCC); var rect:Rectangle = new Rectangle(0, 0, 40, 40); bmd.fillRect(rect, 0xFFFF0000); var bm:Bitmap = new Bitmap(bmd); addChild(bm); trace (bmd.getPixel32(50, 20).toString(16)); // ffcccccccc bmd.scroll(30, 0); trace (bmd.getPixel32(50, 20).toString(16)); // ffff0000 setPixel32 Définit les valeurs de couleur et transparence alpha d’un pixel unique d’un objet BitmapData.xintCoordonnée x du pixel dont la valeur change. yintCoordonnée y du pixel dont la valeur change. coloruintCouleur ARVB résultante du pixel. Si l’image bitmap est opaque (non transparente), la partie de transparence alpha de cette valeur de couleur est ignorée. Définit les valeurs de couleur et transparence alpha d’un pixel unique d’un objet BitmapData. Cette méthode est similaire à la méthode setPixel() ; la principale différence réside dans le fait que la méthode setPixel32() adopte une valeur de couleur ARVB contenant les informations de canal alpha.

Tous les pixels d’un objet BitmapData sont stockés en tant que valeurs de couleur prémultipliées. Les valeurs des canaux de couleur rouge, vert et bleu d’un pixel image prémultiplié sont déjà multipliées par les données alpha. Par exemple, si la valeur alpha est 0, les canaux RVB sont également définis sur 0, indépendamment de leurs valeurs non multipliées. Cette perte de données peut entraîner certains problèmes lorsque vous effectuez ces opérations. Toutes les méthodes BitmapData utilisent et renvoient des valeurs non multipliées. La représentation des pixels interne est convertie du format prémultiplié au format non multiplié avant d’être renvoyée en tant que valeur. Au cours d’une opération de définition, la valeur de pixels est prémultipliée avant de définir le pixel d’image brut.

Remarque : lorsque vous utilisez à plusieurs reprises la méthode setPixel() ou setPixel32(), appelez la méthode lock() avant setPixel() ou setPixel32(), puis appelez la méthode unlock() une fois tous les pixels modifiés. Vous optimiserez ainsi les performances. Ce processus empêche la mise à jour des objets qui référencent cette occurrence de BitmapData tant que les modifications de pixels ne sont pas terminées.

L’exemple suivant utilise la méthode setPixel32() pour tracer une ligne rouge (alpha == 0x60) autour de l’objet BitmapData : import flash.display.Bitmap; import flash.display.BitmapData; var bmd:BitmapData = new BitmapData(80, 80, true, 0xFFCCCCCC); for (var i:uint = 0; i < 80; i++) { var red:uint = 0x60FF0000; bmd.setPixel32(i, 40, red); } var bm:Bitmap = new Bitmap(bmd); addChild(bm);
setPixel()getPixel32()lock()unlock()
setPixel Définit un pixel unique d’un objet BitmapData.xintCoordonnée x du pixel dont la valeur change. yintCoordonnée y du pixel dont la valeur change. coloruintCouleur RVB résultante du pixel. Définit un pixel unique d’un objet BitmapData. La valeur de canal alpha actuelle du pixel de l’image est préservée au cours de cette opération. La valeur du paramètre de couleur RVB est traitée en tant que valeur de couleur non multipliée.

Remarque : lorsque vous utilisez à plusieurs reprises la méthode setPixel() ou setPixel32(), appelez la méthode lock() avant setPixel() ou setPixel32(), puis appelez la méthode unlock() une fois tous les pixels modifiés. Vous optimiserez ainsi les performances. Ce processus empêche la mise à jour des objets qui référencent cette occurrence de BitmapData tant que les modifications de pixels ne sont pas terminées.

L’exemple suivant utilise la méthode setPixel() pour tracer une ligne rouge autour de l’objet BitmapData : import flash.display.Bitmap; import flash.display.BitmapData; var bmd:BitmapData = new BitmapData(80, 80, false, 0xCCCCCC); for (var i:uint = 0; i < 80; i++) { var red:uint = 0xFF0000; bmd.setPixel(i, 40, red); } var bm:Bitmap = new Bitmap(bmd); addChild(bm);
getPixel()setPixel32()lock()unlock()
setPixels Convertit un tableau d’octets en une zone rectangulaire de données de pixels.L’objet inputByteArray ne comprend pas suffisamment de données pour remplir la zone du rectangle rect. La méthode remplit autant de pixels que possible avant de renvoyer l’exception. EOFErrorflash.errors:EOFErrorLes paramètres rect ou inputByteArray sont réglés sur une valeur null. TypeErrorTypeErrorrectflash.geom:RectangleSpécifie la zone rectangulaire de l’objet BitmapData. inputByteArrayflash.utils:ByteArrayObjet ByteArray composé de valeurs de pixel non multipliées 32 bits à utiliser dans la zone rectangulaire. Convertit un tableau d’octets en une zone rectangulaire de données de pixels. La méthode ByteArray.readUnsignedInt() est appelée pour chaque pixel et la valeur renvoyée est écrite dans ce dernier. Si le tableau d’octets prend fin avant l’écriture du rectangle complet, la fonction renvoie une valeur. Le système s’attend à ce que les données du tableau d’octets soient des valeurs de pixel ARVB 32 bits. Aucune recherche n’est effectuée dans le tableau d’octets avant ou après la lecture des pixels. L’exemple suivant a recours aux méthodes getPixels() et setPixels() pour copier des pixels d’un objet BitmapData à l’autre : import flash.display.Bitmap; import flash.display.BitmapData; import flash.utils.ByteArray; import flash.geom.Rectangle; var bmd1:BitmapData = new BitmapData(100, 100, true, 0xFFCCCCCC); var bmd2:BitmapData = new BitmapData(100, 100, true, 0xFFFF0000); var rect:Rectangle = new Rectangle(0, 0, 100, 100); var bytes:ByteArray = bmd1.getPixels(rect); bytes.position = 0; bmd2.setPixels(rect, bytes); var bm1:Bitmap = new Bitmap(bmd1); addChild(bm1); var bm2:Bitmap = new Bitmap(bmd2); addChild(bm2); bm2.x = 110; flash.utils.ByteArray.readUnsignedInt()setVector Convertit un objet Vector en une zone rectangulaire de données de pixels.Le tableau de vecteurs n’est pas assez grand pour lire toutes les données de pixels. RangeErrorRangeErrorrectflash.geom:RectangleSpécifie la zone rectangulaire de l’objet BitmapData. inputVectorObjet Vector composé de valeurs de pixel non multipliées 32 bits à utiliser dans la zone rectangulaire. Convertit un objet Vector en une zone rectangulaire de données de pixels. Pour chaque pixel, un élément Vector est lu et écrit dans le pixel BitmapData. Le système s’attend à ce que les données de l’objet Vector soient des valeurs de pixel ARVB 32 bits. threshold Teste les valeurs de pixels d’une image selon un seuil spécifié et définit les pixels qui réussissent le test sur de nouvelles valeurs de couleur.Les paramètres sourceBitmapData, sourceRect, destPoint ou operation sont définis sur null. TypeErrorTypeErrorL’opération de chaîne n’est pas une opération valide. ArgumentErrorArgumentErrorNombre de pixels modifiés. uintsourceBitmapDataflash.display:BitmapDataL’image bitmap d’entrée à utiliser. L’image source peut être un autre objet BitmapData ou faire référence à l’occurrence de BitmapData actuelle. sourceRectflash.geom:RectangleRectangle qui définit la zone de l’image source à utiliser en tant qu’entrée. destPointflash.geom:PointPoint de l’image de destination (l’occurrence de BitmapData actuelle) correspondant au coin supérieur gauche du rectangle source. operationStringL’un des opérateurs de comparaison suivants, transmis en tant que chaîne : "<", "<=", ">", ">=", "==", "!=" thresholduintValeur par rapport à laquelle chaque pixel est testé afin de déterminer s’il est inférieur ou égal au seuil ou s’il le dépasse. coloruint0Valeur de couleur sur laquelle un pixel est réglé si le test de seuil aboutit. La valeur par défaut est 0x00000000. maskuint0xFFFFFFFFMasque à utiliser pour isoler un composant de couleur. copySourceBooleanfalseSi la valeur est true, les valeurs de pixels de l’image source sont copiées vers la destination lorsque le test de seuil échoue. Si la valeur est false, l’image source n’est pas copiée lorsque le test de seuil échoue. Teste les valeurs de pixels d’une image selon un seuil spécifié et définit les pixels qui réussissent le test sur de nouvelles valeurs de couleur. L’utilisation de la méthode threshold() permet d’isoler et de remplacer les gammes de couleurs d’une image et d’effectuer d’autres opérations logiques sur les pixels de l’image.

La logique du test de la méthode threshold() est définie comme suit :

  1. Si ((pixelValue & mask) operation (threshold & mask)), définissez le pixel sur color.
  2. Dans le cas contraire, si copySource == true, réglez le pixel sur la valeur de pixel correspondante dans sourceBitmap.

Le paramètre operation spécifie l’opérateur de comparaison à utiliser pour le test de seuil. Par exemple, si vous utilisez « == » en tant que paramètre operation, vous pouvez isoler une valeur de couleur spécifique dans une image. Ou si vous utilisez {operation: "<", mask: 0xFF000000, threshold: 0x7F000000, color: 0x00000000}, vous pouvez définir tous les pixels de destination comme étant entièrement transparents lorsque la valeur alpha du pixel de l’image source est inférieure à 0x7F. Vous pouvez utiliser cette technique pour les transitions animées et d’autres effets.

L’exemple suivant exploite la méthode perlinNoise() pour ajouter un motif bleu et rouge à un objet BitmapData, puis applique la méthode threshold() pour copier ces pixels du premier objet BitmapData vers un deuxième, en remplaçant les pixels dont la valeur de rouge est supérieure à 0x80 (50 %) par des pixels en rouge transparent (0x20FF0000) : import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.BitmapDataChannel; import flash.geom.Point; import flash.geom.Rectangle; var bmd1:BitmapData = new BitmapData(200, 200, true, 0xFFCCCCCC); var seed:int = int(Math.random() * int.MAX_VALUE); var channels:uint = BitmapDataChannel.RED | BitmapDataChannel.BLUE; bmd1.perlinNoise(100, 80, 12, seed, false, true, channels, false, null); var bitmap1:Bitmap = new Bitmap(bmd1); addChild(bitmap1); var bmd2:BitmapData = new BitmapData(200, 200, true, 0xFFCCCCCC); var pt:Point = new Point(0, 0); var rect:Rectangle = new Rectangle(0, 0, 200, 200); var threshold:uint = 0x00800000; var color:uint = 0x20FF0000; var maskColor:uint = 0x00FF0000; bmd2.threshold(bmd1, rect, pt, ">", threshold, color, maskColor, true); var bitmap2:Bitmap = new Bitmap(bmd2); bitmap2.x = bitmap1.x + bitmap1.width + 10; addChild(bitmap2);
unlock Déverrouille une image de sorte que les objets qui référencent l’objet BitmapData, tels que les objets Bitmap, sont mis à jour lorsque celui est modifié.changeRectflash.geom:RectanglenullLa zone de l’objet BitmapData qui a été modifiée. Si vous ne spécifiez pas de valeur pour ce paramètre, la zone entière de l’objet BitmapData est considérée comme modifiée. Ce paramètre requiert Flash Player version 9.0.115.0 ou ultérieure. Déverrouille une image de sorte que les objets qui référencent l’objet BitmapData, tels que les objets Bitmap, sont mis à jour lorsque celui est modifié. Pour améliorer les performances, utilisez cette méthode en conjonction avec la méthode lock() avant et après les appels répétés de la méthode setPixel() ou setPixel32(). L’exemple suivant crée un objet BitmapData reposant sur la propriété bitmapData d’un objet Bitmap, picture. Il appelle ensuite la méthode lock() avant d’appeler une fonction personnalisée complexe, complexTransformation(), qui modifie l’objet BitmapData (l’objet picture et la fonction complexTransformation() ne sont pas définis dans cet exemple). Même si la fonction complexTransformation() met à jour la propriété bitmapData de l’objet picture, les modifications ne sont reportées que lorsque le code appelle la méthode unlock() sur l’objet bitmapData : import flash.display.BitmapData; var bitmapData:BitmapData = picture.bitmapData; bitmapData.lock(); bitmapData = complexTransformation(bitmapData); bitmapData.unlock(); picture.bitmapData = bitmapData; lock()setPixel()setPixel32()height La hauteur de l’image bitmap en pixels.int La hauteur de l’image bitmap en pixels. rect Le rectangle qui délimite la taille et l’emplacement de l’image bitmap.flash.geom:Rectangle Le rectangle qui délimite la taille et l’emplacement de l’image bitmap. Le haut et le côté gauche du rectangle sont définis sur 0 ; la largeur et la hauteur sont égales à la largeur et à la hauteur, en pixels, de l’objet BitmapData. transparent Définit si l’image bitmap prend en charge la transparence par pixel.Boolean Définit si l’image bitmap prend en charge la transparence par pixel. Vous pouvez définir cette valeur uniquement lorsque vous créez un objet BitmapData en transmettant la valeur true au paramètre transparent du constructeur. Après avoir créé un objet BitmapData, vous pouvez alors vérifier s’il prend en charge la transparence par pixel en déterminant si la valeur de la propriété transparent est true. width Largeur de l’image bitmap en pixels.int Largeur de l’image bitmap en pixels.
JointStyle La classe JointStyle est une énumération de valeurs constantes qui spécifient le style de liaison à utiliser pour tracer les lignes.Object La classe JointStyle est une énumération de valeurs constantes qui spécifient le style de liaison à utiliser pour tracer les lignes. Ces constantes sont utilisées en tant que valeurs du paramètre joints dans la méthode flash.display.Graphics.lineStyle(). Cette méthode prend en charge trois types de pointe : miter, round et bevel, comme indiqué dans l’exemple suivant :

L’exemple suivant utilise la classe JointStyleExample pour afficher le résultat de trois styles de joints distincts qui sont appliqués à trois ensembles de liaisons de lignes. Pour ce faire, procédez comme suit :
  1. Les propriétés de chaque ligne sont définies comme suit :
    • La longueur de ligne est définie sur 80 pixels.
    • La couleur de la bordure est définie sur orange.
    • La taille de la bordure est définie sur 30 pixels.
    • La couleur de surbrillance est définie sur gris.
    • La taille de la surbrillance est définie sur zéro pixels.
    • La valeur alpha est définie sur 1, ce qui rend la couleur unie.
    • L’index de lissage des pixels est défini sur false (les traits ne sont pas transformés en pixels).
    • Le mode de mise à l’échelle de la ligne est défini sur normal. Ce mode porte sur l’épaisseur de la ligne.
    • Les extrémités de la bordure et la limite de pointe sont déclarées sans être définies, de façon à appliquer les valeurs par défaut.
  2. Le constructeur de classe crée trois ensembles de deux segments de ligne connectés. Les segments commencent à x = 0, y = 0 en appelant trois fois la méthode doDrawCorner() à l’aide des trois styles de liaison (miter, round et bevel). Chacun des trois appels à doDrawCorner() applique le style liaison et les propriétés énumérées précédemment pour dessiner deux segments de ligne connectés et les lignes de surbrillance correspondantes. Cette opération peut s’exécuter en créant un objet Shape, child, puis exploite les méthodes de la classe Graphics pour définir le style de ligne et dessiner les lignes et les surbrillances. Chaque occurrence de child s’ajoute à la liste d’affichage et est dessinée rapidement sur la scène.
  3. Les segments de ligne connectés sont redessinés avec la méthode refreshLayout() à y = 80 pixels et commence à x = 80 pixels, avec une séparation de 25 pixels entre les segments de ligne.
package { import flash.display.DisplayObject; import flash.display.Graphics; import flash.display.JointStyle; import flash.display.LineScaleMode; import flash.display.Shape; import flash.display.Sprite; public class JointStyleExample extends Sprite { private var size:uint = 80; private var borderColor:uint = 0xFFCC00; private var borderSize:uint = 30; private var highlightColor:uint = 0x666666; private var highlightSize:uint = 0; private var gutter:uint = 25; private var borderAlpha:uint = 1; private var borderPixelHinting:Boolean = false; private var borderScaleMode:String = LineScaleMode.NORMAL; private var borderCaps:String; private var borderMiterLimit:uint; public function JointStyleExample() { doDrawCorner(JointStyle.MITER); doDrawCorner(JointStyle.ROUND); doDrawCorner(JointStyle.BEVEL); refreshLayout(); } private function doDrawCorner(jointStyle:String):void { var halfSize:uint = Math.round(size / 2); var child:Shape = new Shape(); child.graphics.lineStyle(borderSize, borderColor, borderAlpha, borderPixelHinting, borderScaleMode, borderCaps, jointStyle, borderMiterLimit); child.graphics.lineTo(0, 0); child.graphics.lineTo(size, 0); child.graphics.lineTo(halfSize, size); child.graphics.endFill(); child.graphics.moveTo(0, 0); child.graphics.lineStyle(highlightSize, highlightColor); child.graphics.lineTo(0, 0); child.graphics.lineTo(size, 0); child.graphics.lineTo(halfSize, size); addChild(child); } private function refreshLayout():void { var ln:uint = numChildren; var child:DisplayObject; var lastChild:DisplayObject = getChildAt(0); lastChild.x = size; lastChild.y = size; for (var i:uint = 1; i < ln; i++) { child = getChildAt(i); child.x = gutter + lastChild.x + lastChild.width; child.y = size; lastChild = child; } } } }
flash.display.Graphics.lineStyle()BEVEL Spécifie des liaisons biseautées dans le paramètre joints de la méthode flash.display.Graphics.lineStyle().bevelString Spécifie des liaisons biseautées dans le paramètre joints de la méthode flash.display.Graphics.lineStyle(). MITER Spécifie des liaisons en pointe dans le paramètre joints de la méthode flash.display.Graphics.lineStyle().miterString Spécifie des liaisons en pointe dans le paramètre joints de la méthode flash.display.Graphics.lineStyle(). ROUND Spécifie des liaisons rondes dans le paramètre joints de la méthode flash.display.Graphics.lineStyle().roundString Spécifie des liaisons rondes dans le paramètre joints de la méthode flash.display.Graphics.lineStyle().
AVM1Movie AVM1Movie est une classe simple représentant les clips AVM1, qui utilisent ActionScript 1.0 ou 2.0.flash.display:DisplayObject AVM1Movie est une classe simple représentant les clips AVM1, qui utilisent ActionScript 1.0 ou 2.0 (AVM1 désigne la machine virtuelle ActionScript qui exécute ActionScript 1.0 et 2.0. AVM2 désigne la machine virtuelle ActionScript qui exécute ActionScript 3.0). Lorsqu’un fichier SWF généré dans Flash Player 8 ou une version antérieure est chargé par un objet Loader, un objet AVM1Movie est créé. L’objet AVM1Movie dispose des méthodes et des propriétés dont il a hérité de la classe DisplayObject, telles que x, y, width, etc. Toute interaction (telle que l’appel de méthodes ou l’utilisation de paramètres) entre l’objet AVM1Movie et les objets AVM2 est cependant interdite.

Plusieurs restrictions s’appliquent à un fichier SWF AVM1 chargé par un fichier SWF AVM2 :

  • L’objet AVM1Movie chargé opère en tant qu’objet pseudo-racine pour les fichiers SWF d’AVM1 et tous les fichiers SWF chargés par AVM1 (comme si la propriété ActionScript 1.0 lockroot était définie sur true). L’animation AVM1 est toujours le premier code ActionScript 1.0 ou 2.0 exécuté dans tout enfant. La propriété _root associée aux enfants chargés correspond toujours à ce fichier SWF AVM1, à moins que la propriété lockroot ne soit définie dans un fichier SWF AVM1 chargé.
  • Le contenu AVM1 ne peut pas charger de fichiers dans un niveau. Il lui est par exemple impossible de charger des fichiers en appelant loadMovieNum("url", levelNum).
  • Le fichier SWF AVM1 chargé par un fichier SWF AVM2 ne peut pas charger un autre fichier SWF dans this. En d’autres termes, il ne peut pas charger un autre fichier SWF sur lui-même. Cependant, les objets enfant Sprite, les objets MovieClip ou d’autres fichiers SWF AVM1 chargés par ce fichier SWF peuvent être chargés dans this.
Classe DisplayObjectLoader
ShaderInput Une occurrence de ShaderInput représente une unique image d’entrée pour un noyau de shader.Object Une occurrence de ShaderInput représente une unique image d’entrée pour un noyau de shader. Un noyau peut être défini de manière à accepter aucune, une ou plusieurs images source utilisées dans l’exécution du noyau. Une occurrence de ShaderInput fournit un mécanisme qui permet de spécifier l’image d’entrée utilisée lorsque le shader s’exécute. Pour spécifier une valeur pour l’entrée, créez une occurrence de BitmapData, de ByteArray ou de Vector.<Number> contenant les données d’image et affectez-la à la propriété input.

L’occurrence de ShaderInput représentant l’image d’entrée d’une occurrence de Shader est accédée en tant que propriété de la propriété data de l’occurrence Shader. La propriété ShaderInput a le même nom que l’entrée dans le code du shader. Par exemple, si un shader définit une entrée nommée src, l’occurrence ShaderInput représentant l’entrée src est disponible en tant que propriété src, comme le montre cet exemple :

myShader.data.src.image = new BitmapData(50, 50, true, 0xFF990000);

Pour certaines utilisations d’une occurrence Shader, il n’est pas nécessaire de spécifier une image d’entrée car elle est automatiquement désignée par l’opération. Une entrée doit être spécifiée lorsqu’un Shader est utilisé dans les cas suivants :

  • Remplissage du shader
  • ShaderFilter, uniquement pour la seconde entrée ou pour les entrées supplémentaires si le shader est défini pour utiliser plusieurs entrées (l’objet auquel le filtre est appliqué est automatiquement utilisé comme première entrée).
  • Mode de fondu du shader, uniquement pour la troisième entrée ou pour les entrées supplémentaires si le shader est défini pour utiliser plus de deux entrées (les objets auxquels s’applique le fondu sont automatiquement utilisés comme première et seconde entrées).
  • Exécution en arrière-plan de ShaderJob

Si le shader est exécuté par le biais d’une occurrence ShaderJob pour traiter un ByteArray contenant un tableau de données linéaire, définissez la propriété height de l’occurrence ShaderInput sur 1 et la propriété width sur les valeurs en virgule flottante 32 bits du ByteArray. Dans ce cas, l’entrée dans le shader doit être définie avec le type de données image1.

En général, le code du développeur ne crée pas directement d’occurrence ShaderInput. Une occurrence ShaderInput est créée pour chacune des entrées d’un shader lors de la création de l’occurrence Shader.

flash.display.ShaderDataflash.display.Shader.dataflash.display.ShaderJobShaderInput Crée une occurrence ShaderInput. Crée une occurrence ShaderInput. Le code du développeur n’appelle pas directement le constructeur ShaderInput. Une occurrence ShaderInput est créée pour chacune des entrées d’un shader lors de la création de l’occurrence Shader. channels Nombre de canaux attendus par une entrée de shader.int Nombre de canaux attendus par une entrée de shader. Cette propriété doit être prise en compte lorsque les données d’entrée sont une occurrence ByteArray ou de Vector.<Number>. height Hauteur de l’entrée du shader.int Hauteur de l’entrée du shader. Cette propriété est utilisée uniquement lorsque les données d’entrée sont une occurrence de ByteArray ou de Vector.<Number>. Lorsque l’entrée est une occurrence BitmapData, la hauteur est déterminée automatiquement. index Index de base zéro de l’entrée dans le shader, indiquant l’ordre des définitions d’entrée dans le shader.int Index de base zéro de l’entrée dans le shader, indiquant l’ordre des définitions d’entrée dans le shader. input Données d’entrée qui sont utilisées lorsque le shader s’exécute.Object Données d’entrée qui sont utilisées lorsque le shader s’exécute. Cette propriété peut être une occurrence de BitmapData, une occurrence de ByteArray ou une occurrence de Vector.<Number>.

Lorsqu’une valeur ByteArray est affectée à la propriété input, les conditions suivantes doivent être satisfaites :

  • Les propriétés height et width doivent être définies.
  • Le tableau d’octets ne doit contenir que des valeurs en virgule flottante 32 bits. Ces valeurs peuvent être écrites à l’aide de la méthode ByteArray.writeFloat().
  • La longueur totale des octets dans le ByteArray doit être exactement width fois height fois channels fois 4.
  • La propriété endian du tableau d’octets doit être Endian.LITTLE_ENDIAN.

Si une occurrence de Vector.<Number> est affectée à la propriété input, la longueur du Vector doit être égale à width fois height fois channels.

width Largeur de l’entrée du shader.int Largeur de l’entrée du shader. Cette propriété est utilisée uniquement lorsque les données d’entrée sont une occurrence de ByteArray ou de Vector.<Number>. Lorsque l’entrée est une occurrence BitmapData, la largeur est déterminée automatiquement.
ColorCorrection La classe ColorCorrection fournit les valeurs de la propriété flash.display.Stage.colorCorrection.Object La classe ColorCorrection fournit les valeurs de la propriété flash.display.Stage.colorCorrection. flash.display.Stage.colorCorrectionDEFAULT Utilise la correction des couleurs par défaut de l’hôte.defaultString Utilise la correction des couleurs par défaut de l’hôte. Pour le lecteur Web, l’hôte est généralement un navigateur et Flash Player tente d’utiliser la même correction des couleurs que la page Web qui héberge le fichier SWF. OFF Désactive la correction des couleurs quel que soit l’environnement hôte du lecteur, le cas échéant.offString Désactive la correction des couleurs quel que soit l’environnement hôte du lecteur, le cas échéant. Ce réglage permet d’optimiser les performances de rapidité. ON Active la correction des couleurs quel que soit l’environnement hôte du lecteur, le cas échéant.onString Active la correction des couleurs quel que soit l’environnement hôte du lecteur, le cas échéant. Shader Une occurrence de Shader représente un noyau de shader de Pixel Bender dans le code ActionScript.Object Une occurrence de Shader représente un noyau de shader de Pixel Bender dans le code ActionScript. Pour utiliser un shader dans votre application, vous devez créer une occurrence de Shader pour le shader. Utilisez ensuite cette occurrence de Shader de manière à obtenir l’effet que vous souhaitez créer. Par exemple, pour utiliser le shader en tant que filtre, affectez l’occurrence Shader à la propriété shader d’un objet ShaderFilter.

Un shader définit une fonction qui s’exécute sur tous les pixels d’une image, un pixel après l’autre. Le résultat de chaque appel à la fonction est la couleur de sortie aux coordonnées de ce pixel dans l’image. Un shader peut spécifier une ou plusieurs images d’entrée, dont le contenu peut être utilisé pour déterminer le résultat de la fonction. Un shader peut également spécifier un ou plusieurs paramètres, correspondant aux valeurs d’entrée pouvant être utilisées pour calculer le résultat de la fonction. Dans une seule exécution de shader, les valeurs d’entrée et des paramètres sont constantes. Les seuls éléments qui varient sont les coordonnées du pixel dont la couleur est le résultat de la fonction. Les appels de la fonction du shader pour plusieurs coordonnées de pixel de sortie s’exécutent en parallèle pour améliorer les performances de l’exécution du shader.

Le code binaire du shader peut être chargé au moment de l’exécution à l’aide d’une occurrence URLLoader. L’exemple suivant montre le chargement d’un fichier de code binaire de shader à l’exécution et sa liaison à une occurrence Shader.

var loader:URLLoader = new URLLoader(); loader.dataFormat = URLLoaderDataFormat.BINARY; loader.addEventListener(Event.COMPLETE, onLoadComplete); loader.load(new URLRequest("myShader.pbj")); var shader:Shader; function onLoadComplete(event:Event):void { // Create a new shader and set the loaded data as its bytecode shader = new Shader(); shader.byteCode = loader.data; // You can also pass the bytecode to the Shader() constructor like this: // shader = new Shader(loader.data); // do something with the shader }

Vous pouvez intégrer le shader dans la séquence SWF au moment de la compilation à l’aide de la balise de métadonnées [Embed]. La balise de métadonnées [Embed] n’est disponible que si vous utilisez le kit de développement Flex pour compiler le fichier SWF. Le paramètre source de la balise [Embed] pointe vers le fichier du shader, et son paramètre mimeType est "application/octet-stream", comme dans cet exemple :

[Embed(source="myShader.pbj", mimeType="application/octet-stream)] var MyShaderClass:Class; // ... // create a new shader and set the embedded shader as its bytecode var shaderShader = new Shader(); shader.byteCode = new MyShaderClass(); // You can also pass the bytecode to the Shader() constructor like this: // var shader:Shader = new Shader(new MyShaderClass()); // do something with the shader

Dans tous les cas, vous liez le shader brut (la propriété URLLoader.data ou une occurrence de la classe de données [Embed]) à l’occurrence Shader. Comme le montre l’exemple précédent, vous avez deux moyens de le faire. Vous pouvez transmettre le pseudo-code binaire du shader sous forme d’argument au constructeur Shader(). Vous pouvez également le définir en tant que propriété byteCode de l’occurrence Shader.

Lorsqu’une occurrence Shader est créée, elle peut être utilisée de plusieurs manières :

  • Un remplissage de shader : le résultat du shader est utilisé comme remplissage lorsque le contenu est dessiné avec l’API de dessin. Transmettez l’occurrence Shader sous forme d’argument à la méthode Graphics.beginShaderFill().
  • Un filtre de shader : le résultat du shader est utilisé comme filtre graphique appliqué à un objet d’affichage. Affectez l’occurrence Shader à la propriété shader d’une occurrence ShaderFilter.
  • Un mode de fusion : le résultat du shader est restitué sous forme de fusion entre deux objets d’affichage qui se chevauchent. Affectez l’occurrence Shader à la propriété blendShader de celui des deux objets d’affichage qui placé au-dessus.
  • Traitement du shader en arrière-plan : le shader s’exécute en arrière-plan, ce qui évite à l’écran de geler, et déclenche un événement lorsque le traitement est terminé. Affectez l’occurrence Shader à la propriété shader d’une occurrence ShaderJob.

Les remplissages, filtres et dégradés de shader ne sont pas pris en charge sous le rendu sur GPU.

Prise en charge du navigateur mobile : cette fonctionnalité n’est pas prise en charge sur les navigateurs mobiles.

Prise en charge du profil AIR : cette fonctionnalité est prise en charge sur tous les systèmes d’exploitation de bureau, mais ne l’est pas sur tous les périphériques mobiles. Elle n’est pas prise en charge sur les périphériques AIR pour TV. Voir Prise en charge du profil AIR pour plus d’informations sur la prise en charge de l’API dans plusieurs profils.

L’exemple suivant charge un fichier de pseudo-code binaire de shader à l’exécution et crée une occurrence Shader liée au fichier.

Notez que cet exemple part du principe qu’un fichier de pseudo-code binaire du shader nommé « donothing.pbj » existe dans le répertoire de sortie de l’application. Le code source de Pixel Bender pour le shader DoNothing est disponible dans l’exemple de la classe ShaderData.

package { import flash.display.Shader; import flash.display.Sprite; import flash.events.Event; import flash.net.URLLoader; import flash.net.URLLoaderDataFormat; import flash.net.URLRequest; public class LoadedShaderExample extends Sprite { private var loader:URLLoader; public function LoadedShaderExample() { loader = new URLLoader(); loader.dataFormat = URLLoaderDataFormat.BINARY; loader.addEventListener(Event.COMPLETE, loadCompleteHandler); loader.load(new URLRequest("donothing.pbj")); } private function loadCompleteHandler(event:Event):void { var shader:Shader = new Shader(); shader.byteCode = loader.data; // do something with the Shader instance } } }
L’exemple suivant intègre un fichier de pseudo-code binaire de shader en le compilant dans le fichier SWF, et crée une occurrence Shader liée au fichier.

Notez que cet exemple part du principe qu’un fichier de pseudo-code binaire du shader nommé « donothing.pbj » existe dans le répertoire de sortie de l’application, et que le kit de développement Flex est utilisé pour compiler le fichier SWF. Le code source de Pixel Bender pour le shader DoNothing est disponible dans l’exemple de la classe ShaderData.

package { import flash.display.Shader; import flash.display.Sprite; public class EmbeddedShaderExample extends Sprite { [Embed(source="donothing.pbj", mimeType="application/octet-stream")] private static var DoNothingShader:Class; public function EmbeddedShaderExample() { var shader:Shader = new Shader(); shader.byteCode = new DoNothingShader(); // do something with the Shader instance } } }
flash.display.DisplayObject.blendShaderflash.display.Graphics.beginShaderFill()flash.display.ShaderJobflash.filters.ShaderFilterflash.net.URLLoaderShader Crée une occurrence Shader.codeflash.utils:ByteArraynullPseudo-code binaire du shader brut à lier au Shader. Crée une occurrence Shader. data Permet à l’occurrence Shader d’accéder aux paramètres, aux images d’entrée et aux métadonnées.flash.display:ShaderData Permet à l’occurrence Shader d’accéder aux paramètres, aux images d’entrée et aux métadonnées. Des objets ShaderParameter représentant des paramètres du shader, des objets ShaderInput représentant des images d’entrée du shader et d’autres valeurs représentant les métadonnées du shader sont ajoutées dynamiquement en tant que propriétés de l’objet data lors de la création de l’occurrence Shader. Ces propriétés peuvent être utilisées pour analyser le shader et pour définir les valeurs des entrées et des paramètres.

Pour plus d’informations sur l’accès et la manipulation des propriétés dynamiques de l’objet data, reportez-vous à la description de la classe ShaderData.

flash.display.ShaderDataflash.display.ShaderInputflash.display.ShaderParameter
precisionHint Précision des opérations mathématiques effectuées par le shader.String Précision des opérations mathématiques effectuées par le shader.

L’ensemble des valeurs possibles de la propriété precisionHint est défini par les constantes de la classe ShaderPrecision.

La valeur par défaut est ShaderPrecision.FULL. Le fait de définir la précision sur ShaderPrecision.FAST peut accélérer les opérations mathématiques au détriment de la précision.

Le mode de précision totale (ShaderPrecision.FULL) calcule toutes les opérations mathématiques avec toute la largeur de virgule flottante 32 bits de la norme IEEE et assure un comportement cohérent sur toutes les plates-formes. Dans ce mode, certaines opérations mathématiques, telles que les fonctions trigonométriques et exponentielles, peuvent être lentes.

Le mode de précision rapide (ShaderPrecision.FAST) est conçu pour des performances maximales, mais n’assure pas la même cohérence sur les différentes plates-formes et les configurations de CPU individuelles. Dans la plupart des cas, ce niveau de précision suffit pour créer des effets graphiques sans artefact visible.

Le choix du mode de précision affecte les opérations de shader suivantes. Ces opérations sont plus rapides sur un processeur Intel avec l’instruction SSE définie :

  • sin(x)
  • cos(x)
  • tan(x)
  • asin(x)
  • acos(x)
  • atan(x)
  • atan(x, y)
  • exp(x)
  • exp2(x)
  • log(x)
  • log2(x)
  • pow(x, y)
  • reciprocal(x)
  • sqrt(x)
flash.display.ShaderPrecision
byteCode Pseudo-code binaire du shader brut pour cette occurrence Shader.flash.utils:ByteArray Pseudo-code binaire du shader brut pour cette occurrence Shader.
LineScaleMode La classe LineScaleMode fournit des valeurs pour le paramètre scaleMode de la méthode Graphics.lineStyle().Object La classe LineScaleMode fournit des valeurs pour le paramètre scaleMode de la méthode Graphics.lineStyle(). flash.display.Graphics.lineStyle()HORIZONTAL Si ce réglage est utilisé en tant que paramètre scaleMode de la méthode lineStyle(), l’épaisseur de la ligne n’est redimensionnée qu’à la verticale.horizontalString Si ce réglage est utilisé en tant que paramètre scaleMode de la méthode lineStyle(), l’épaisseur de la ligne n’est redimensionnée qu’à la verticale. Considérons par exemple les cercles illustrés ci-dessous, dessinés dans un trait d’un pixel, et pour lesquels le paramètre scaleMode est défini sur LineScaleMode.VERTICAL. Le cercle de gauche est redimensionné à la verticale uniquement, tandis que le cercle de droite est redimensionné à la verticale et à l’horizontale.

NONE Si ce réglage est utilisé en tant que paramètre scaleMode de la méthode lineStyle(), l’épaisseur de la ligne n’est jamais redimensionnée.noneString Si ce réglage est utilisé en tant que paramètre scaleMode de la méthode lineStyle(), l’épaisseur de la ligne n’est jamais redimensionnée. NORMAL Si ce réglage est utilisé en tant que paramètre scaleMode de la méthode lineStyle(), l’épaisseur de la ligne est toujours redimensionnée lors du redimensionnement de l’objet (valeur par défaut).normalString Si ce réglage est utilisé en tant que paramètre scaleMode de la méthode lineStyle(), l’épaisseur de la ligne est toujours redimensionnée lors du redimensionnement de l’objet (valeur par défaut). VERTICAL Si ce réglage est utilisé en tant que paramètre scaleMode de la méthode lineStyle(), l’épaisseur de la ligne n’est redimensionnée qu’à l’horizontale.verticalString Si ce réglage est utilisé en tant que paramètre scaleMode de la méthode lineStyle(), l’épaisseur de la ligne n’est redimensionnée qu’à l’horizontale. Considérons par exemple les cercles illustrés ci-dessous, dessinés dans un trait d’un pixel, et pour lesquels le paramètre scaleMode est défini sur LineScaleMode.HORIZONTAL. Le cercle de gauche est redimensionné à l’horizontale uniquement, tandis que le cercle de droite est redimensionné à la verticale et à l’horizontale.

IGraphicsData Cette interface permet de définir des objets pouvant être utilisés comme paramètres dans les méthodes flash.display.Graphics, notamment des remplissages, des traits et des tracés. Cette interface permet de définir des objets pouvant être utilisés comme paramètres dans les méthodes flash.display.Graphics, notamment des remplissages, des traits et des tracés. Utilisez les classes implémenteur de cette interface pour créer et gérer les données de la propriété drawing et pour réutiliser les mêmes données pour plusieurs occurrences. Utilisez ensuite les méthodes de la classe Graphics pour restituer les objets de dessin. flash.display.Graphics.drawGraphicsData()MovieClip La classe MovieClip hérite des classes suivantes : Sprite, DisplayObjectContainer, InteractiveObject, DisplayObject et EventDispatcher.L’objet d’affichage de base des objets créés par ActionScript. flash.display:Sprite La classe MovieClip hérite des classes suivantes : Sprite, DisplayObjectContainer, InteractiveObject, DisplayObject et EventDispatcher.

A l’inverse de l’objet Sprite, un objet MovieClip dispose d’un scénario.

>Dans Flash Professional, les méthodes de la classe MovieClip fournissent les mêmes fonctionnalités que les actions permettant de cibler des clips. Certaines autres méthodes ne possèdent pas d’actions équivalentes dans la boîte à outils Actions du panneau Actions de l’outil de création de Flash.

Les occurrences enfant placées sur la scène dans Flash Professional ne sont pas accessibles par le code depuis l’intérieur du constructeur d’une occurrence parent car, à ce stade de l’exécution du code, elles n’ont pas été créées. Avant d’accéder à l’enfant, le parent doit soit créer l’occurrence enfant par du code, soit retarder l’accès à une fonction de rappel qui écoute l’enfant en vue de la distribution de son événement Event.ADDED_TO_STAGE.

Si vous modifiez l’une des propriétés suivantes d’un objet MovieClip contenant une interpolation de mouvement, la tête de lecture est arrêtée dans cet objet MovieClip : alpha, blendMode, filters, height, opaqueBackground, rotation, scaleX, scaleY, scale9Grid, scrollRect, transform, visible, width, x ou y. Il n’arrête cependant pas la tête de lecture dans tout objet MovieClip enfant de l’objet MovieClip correspondant.

Remarque : Flash Lite 4 prend en charge la propriété MovieClip.opaqueBackground uniquement si FEATURE_BITMAPCACHE est définie. La configuration par défaut de Flash Lite 4 ne définit pas FEATURE_BITMAPCACHE. Pour activer la propriété MovieClip.opaqueBackground pour un périphérique approprié, définissez FEATURE_BITMAPCACHE dans votre projet.

L’exemple suivant utilise la classe MovieClipExample pour illustrer la façon de suivre les différentes propriétés d’un objet MovieClip. Pour ce faire, procédez comme suit :
  1. La fonction constructeur définit un champ de texte, qui permet d’afficher les valeurs des propriétés de l’objet MovieClipExample (qui étend MovieClip).
  2. La valeur renvoyée par la méthode getPropertiesString() est utilisée en tant que texte pour le champ de texte outputText. La méthode getPropertiesString() renvoie une chaîne qui est remplie avec des valeurs provenant des propriétés suivantes du clip : currentFrame, currentLabel, currentScene, framesLoaded, totalFrames et trackAsMenu.
  3. Deux des lignes de code de la fonction constructeur règlent les propriétés width et height du champ de texte outputText.
  4. La dernière ligne de la fonction constructeur ajoute le champ de texte outputText à la liste d’affichage.
package { import flash.display.MovieClip; import flash.text.TextField; public class MovieClipExample extends MovieClip { public function MovieClipExample() { var outputText:TextField = new TextField(); outputText.text = getPropertiesString(); outputText.width = stage.stageWidth; outputText.height = outputText.textHeight; addChild(outputText); } private function getPropertiesString():String { var str:String = "" + "currentFrame: " + currentFrame + "\n" + "currentLabel: " + currentLabel + "\n" + "currentScene: " + currentScene + "\n" + "framesLoaded: " + framesLoaded + "\n" + "totalFrames: " + totalFrames + "\n" + "trackAsMenu: " + trackAsMenu + "\n"; return str; } } }
MovieClip Crée une occurrence de MovieClip. Crée une occurrence de MovieClip. Après avoir créé l’objet MovieClip, appelle la méthode addChild() ou addChildAt() d’un objet conteneur d’affichage qui est sur la scène. gotoAndPlay Commence la lecture du fichier SWF sur l’image spécifiée.frameObjectNombre représentant le numéro d’image ou une chaîne représentant l’étiquette de l’image cible de la tête de lecture. Si vous spécifiez un nombre, il est relatif à la séquence indiquée. Si vous ne spécifiez pas de séquence, la séquence en cours détermine le numéro d’image global à lire. Si vous spécifiez une séquence, la tête de lecture passe au numéro d’image de la séquence indiquée. sceneStringnullNom de la séquence à lire. Ce paramètre est facultatif. Commence la lecture du fichier SWF sur l’image spécifiée. Cette opération se produit lorsque l’exécution de toutes les autres actions de l’image est terminée. Pour spécifier une séquence et une image, affectez une valeur au paramètre scene. L’exemple suivant utilise la propriété gotoAndPlay() pour faire avancer de cinq images la tête de lecture du clip mc1 par rapport à sa position actuelle : mc1.gotoAndPlay(mc1.currentFrame + 5); Le code suivant utilise la méthode gotoAndPlay() pour diriger la tête de lecture du clip mc1 vers l’image "intro" de la séquence "Scene 12" : mc1.gotoAndPlay("intro", "Scene 12"); gotoAndStop Place la tête de lecture au niveau de l’image spécifiée du clip et l’arrête à cet endroit.Si les paramètres scene ou frame spécifiés ne figurent pas dans le clip. ArgumentErrorArgumentErrorframeObjectNombre représentant le numéro d’image ou une chaîne représentant l’étiquette de l’image cible de la tête de lecture. Si vous spécifiez un nombre, il est relatif à la séquence indiquée. Si vous ne spécifiez pas de séquence, la séquence en cours détermine le numéro d’image global cible sur laquelle s’arrêter. Si vous spécifiez une séquence, la tête de lecture passe au numéro d’image de la séquence indiquée et s’arrête. sceneStringnullNom de la séquence. Ce paramètre est facultatif. Place la tête de lecture au niveau de l’image spécifiée du clip et l’arrête à cet endroit. Cette opération se produit lorsque l’exécution de toutes les autres actions de l’image est terminée. Pour spécifier une séquence en plus d’une image, utilisez un paramètre scene. L’exemple suivant utilise la méthode gotoAndStop() et la propriété currentFrame pour diriger la tête de lecture du clip mc1 pour avancer de cinq images par rapport à sa position actuelle et s’arrêter : mc1.gotoAndStop(mc1.currentFrame + 5); Le code suivant utilise gotoAndStop() pour diriger la tête de lecture du clip mc1 vers l’image "finale" de la séquence "Scene 12" : mc1.gotoAndStop("finale", "Scene 12"); nextFrame Place la tête de lecture sur l’image suivante et l’arrête. Place la tête de lecture sur l’image suivante et l’arrête. Cette opération se produit lorsque l’exécution de toutes les autres actions de l’image est terminée. Dans l’exemple suivant, deux objets SimpleButton contrôlent le scénario. Le bouton prev déplace la tête de lecture vers l’image précédente alors que le bouton nextBtn la déplace vers l’image suivante. import flash.events.MouseEvent; mc1.stop(); prevBtn.addEventListener(MouseEvent.CLICK, goBack); nextBtn.addEventListener(MouseEvent.CLICK, goForward); function goBack(event:MouseEvent):void { mc1.prevFrame(); } function goForward(event:MouseEvent):void { mc1.nextFrame(); } prevFrame()nextScene Place la tête de lecture sur la séquence suivante de l’occurrence de MovieClip. Place la tête de lecture sur la séquence suivante de l’occurrence de MovieClip. Cette opération se produit lorsque l’exécution de toutes les autres actions de l’image est terminée. Dans l’exemple suivant, deux objets SimpleButton contrôlent le scénario. Le bouton prevBtn déplace la tête de lecture vers la séquence précédente alors que le bouton nextBtn la déplace vers la séquence suivante. import flash.events.MouseEvent; mc1.stop(); prevBtn.addEventListener(MouseEvent.CLICK, goBack); nextBtn.addEventListener(MouseEvent.CLICK, goForward); function goBack(event:MouseEvent):void { mc1.prevScene(); } function goForward(event:MouseEvent):void { mc1.nextScene(); } play Déplace la tête de lecture dans le scénario du clip. Déplace la tête de lecture dans le scénario du clip. Le code suivant exploite la méthode pour arrêter un clip stop() appelé mc1 et pour reprendre la lecture lorsque l’utilisateur clique sur le champ de texte appelé continueText : import flash.text.TextField; import flash.events.MouseEvent; var continueText:TextField = new TextField(); continueText.text = "Play movie..."; addChild(continueText); mc1.stop(); continueText.addEventListener(MouseEvent.CLICK, resumeMovie); function resumeMovie(event:MouseEvent):void { mc1.play(); } gotoAndPlay()prevFrame Place la tête de lecture sur l’image précédente et l’arrête. Place la tête de lecture sur l’image précédente et l’arrête. Cette opération se produit lorsque l’exécution de toutes les autres actions de l’image est terminée. Dans l’exemple suivant, deux objets SimpleButton contrôlent le scénario. Le bouton prev déplace la tête de lecture vers l’image précédente alors que le bouton nextBtn la déplace vers l’image suivante. import flash.events.MouseEvent; mc1.stop(); prevBtn.addEventListener(MouseEvent.CLICK, goBack); nextBtn.addEventListener(MouseEvent.CLICK, goForward); function goBack(event:MouseEvent):void { mc1.prevFrame(); } function goForward(event:MouseEvent):void { mc1.nextFrame(); } prevScene Place la tête de lecture sur la séquence précédente de l’occurrence de MovieClip. Place la tête de lecture sur la séquence précédente de l’occurrence de MovieClip. Cette opération se produit lorsque l’exécution de toutes les autres actions de l’image est terminée. Dans l’exemple suivant, deux objets SimpleButton contrôlent le scénario. Le bouton prevBtn déplace la tête de lecture vers la séquence précédente alors que le bouton nextBtn la déplace vers la séquence suivante. import flash.events.MouseEvent; mc1.stop(); prevBtn.addEventListener(MouseEvent.CLICK, goBack); nextBtn.addEventListener(MouseEvent.CLICK, goForward); function goBack(event:MouseEvent):void { mc1.prevScene(); } function goForward(event:MouseEvent):void { mc1.nextScene(); } stop Arrête la tête de lecture dans le clip. Arrête la tête de lecture dans le clip. currentFrameLabel Etiquette de l’image actuelle dans le scénario de l’occurrence MovieClip.String Etiquette de l’image actuelle dans le scénario de l’occurrence MovieClip. Si l’image actuelle ne possède aucune étiquette, currentLabel est null. currentFrame Spécifie le numéro de l’image où réside la tête de lecture dans le scénario de l’occurrence de MovieClip.int Spécifie le numéro de l’image où réside la tête de lecture dans le scénario de l’occurrence de MovieClip. Si le clip contient plusieurs séquences, cette valeur correspond au numéro de l’image dans la séquence en cours. L’exemple suivant utilise la méthode gotoAndStop() et la propriété currentFrame pour diriger la tête de lecture du clip mc1 pour avancer de cinq images par rapport à sa position actuelle et s’arrêter : mc1.gotoAndStop(mc1.currentFrame + 5); currentLabel Etiquette où réside actuellement la tête de lecture dans le scénario de l’occurrence de MovieClip.String Etiquette où réside actuellement la tête de lecture dans le scénario de l’occurrence de MovieClip. Si l’image suivante ne dispose pas d’étiquette, currentLabel est défini en fonction du nom de la première image ayant inclus une étiquette. Si l’image actuelle et les images précédentes n’incluent pas d’étiquette, currentLabel renvoie null. Le code suivant illustre comment accéder à la propriété currentLabel d’un objet MovieClip appelé mc1 : trace(mc1.currentLabel); currentLabels Renvoie un tableau des objets FrameLabel extraits de la séquence en cours.Array Renvoie un tableau des objets FrameLabel extraits de la séquence en cours. Si l’occurrence de MovieClip n’utilise pas de séquence, le tableau comprend toutes les étiquettes d’image extraites de la totalité de l’occurrence de MovieClip. Le code suivant illustre le mode d’utilisation de la propriété currentLabels d’un objet MovieClip appelé mc1 : import flash.display.FrameLabel; var labels:Array = mc1.currentLabels; for (var i:uint = 0; i < labels.length; i++) { var label:FrameLabel = labels[i]; trace("frame " + label.frame + ": " + label.name); } flash.display.FrameLabelcurrentScene Séquence où réside actuellement la tête de lecture dans le scénario de l’occurrence de MovieClip.flash.display:Scene Séquence où réside actuellement la tête de lecture dans le scénario de l’occurrence de MovieClip. Le code suivant illustre le mode d’utilisation de la propriété currentScene d’un objet MovieClip appelé mc1 : import flash.display.Scene; var scene:Scene = mc1.currentScene; trace(scene.name + ": " + scene.numFrames + " frames"); Scèneenabled Valeur booléenne indiquant si un clip est activé.Boolean Valeur booléenne indiquant si un clip est activé. La valeur par défaut de enabled est true. Si enabled est défini sur false, les images Dessus, Abaissé et Haut du clip sont désactivées. Le clip continue à recevoir des événements (par exemple, mouseDown, mouseUp, keyDown et keyUp).

La propriété enabled gère uniquement les propriétés spécifiques aux boutons d’un clip. Vous pouvez modifier la propriété enabled à tout moment ; le clip modifié est immédiatement activé ou désactivé. Si la propriété enabled est définie sur false, l’objet n’est pas inclus dans l’ordre de tabulation automatique.

Le code suivant illustre le mode d’utilisation de la propriété enabled pour désactiver les propriétés de type bouton d’un objet MovieClip appelé mc1 : mc1.enabled = false;
framesLoaded Nombre d’images à charger à partir d’un fichier SWF en diffusion continue.int Nombre d’images à charger à partir d’un fichier SWF en diffusion continue. Vous pouvez utiliser la propriété framesLoaded pour déterminer si le contenu d’une image spécifique, ainsi que l’ensemble des images chargées précédemment sont disponibles de façon locale dans le navigateur. Vous pouvez également l’utiliser pour superviser le téléchargement de fichiers SWF volumineux. Par exemple, si désiré, affichez un message aux utilisateurs leur indiquant que le chargement du fichier SWF ne commencera pas tant que le chargement d’une image spécifiée dans le fichier SWF ne sera pas terminé.

Si le clip contient plusieurs séquences, la propriété framesLoaded renvoie le nombre d’images chargées pour toutes les séquences.

Le code suivant illustre comment utiliser les propriétés framesLoaded et totalFrames pour déterminer si un objet MovieClip en flux continu appelé mc1 est totalement chargé : if (mc1.framesLoaded == mc1.totalFrames) { trace("OK."); }
Classe Loader
scenes Tableau des objets Scene, chacun d’eux indiquant le nom, le nombre d’images et les étiquettes d’image d’une séquence dans l’occurrence de MovieClip.Array Tableau des objets Scene, chacun d’eux indiquant le nom, le nombre d’images et les étiquettes d’image d’une séquence dans l’occurrence de MovieClip. Le code suivant illustre le mode d’utilisation de la propriété scenes d’un objet MovieClip appelé mc1 : import flash.display.Scene; for (var i:uint = 0; i < mc1.scenes.length; i++) { var scene:Scene = mc1.scenes[i]; trace("scene " + scene.name + ": " + scene.numFrames + " frames"); } ScènetotalFrames Nombre total d’images dans l’occurrence de MovieClip.int Nombre total d’images dans l’occurrence de MovieClip.

Si le clip contient plusieurs images, la propriété totalFrames renvoie le nombre total d’images dans all les séquences.

Le code suivant illustre l’utilisation de la propriété totalFrames d’un objet MovieClip appelé mc1 : trace(mc1.totalFrames);
trackAsMenu Indique si d’autres objets d’affichage de type SimpleButton ou MovieClip peuvent recevoir des événements de relâchement de souris ou d’autres types d’événements de relâchement.Boolean Indique si d’autres objets d’affichage de type SimpleButton ou MovieClip peuvent recevoir des événements de relâchement de souris ou d’autres types d’événements de relâchement. La propriété trackAsMenu permet de créer des menus. Vous pouvez définir la propriété trackAsMenu sur n’importe quel objet SimpleButton ou MovieClip. La valeur par défaut de la propriété trackAsMenu est false.

Vous pouvez modifier la propriété trackAsMenu à tout moment ; le clip modifié accepte immédiatement le nouveau comportement.

Le code suivant illustre comment utiliser la propriété trackAsMenu pour activer les événements de relâchement de la souris pour un objet MovieClip appelé mc1 : mc1.trackAsMenu = true;
SWFVersion La classe SWFVersion est une énumération de valeurs constantes qui indiquent la version du format d’un fichier SWF chargé.Object La classe SWFVersion est une énumération de valeurs constantes qui indiquent la version du format d’un fichier SWF chargé. Les constantes SWFVersion permettent de vérifier la propriété swfVersion d’un objet flash.display.LoaderInfo. flash.display.LoaderInfo.swfVersionFLASH10 Version 10.0 du format de fichier SWF.10uint Version 10.0 du format de fichier SWF. FLASH11 Version 11.0 du format de fichier SWF.11uint Version 11.0 du format de fichier SWF. FLASH1 Version 1.0 du format de fichier SWF.1uint Version 1.0 du format de fichier SWF. FLASH2 Version 2.0 du format de fichier SWF.2uint Version 2.0 du format de fichier SWF. FLASH3 Version 3.0 du format de fichier SWF.3uint Version 3.0 du format de fichier SWF. FLASH4 Version 4.0 du format de fichier SWF.4uint Version 4.0 du format de fichier SWF. FLASH5 Version 5.0 du format de fichier SWF.5uint Version 5.0 du format de fichier SWF. FLASH6 Version 6.0 du format de fichier SWF.6uint Version 6.0 du format de fichier SWF. FLASH7 Version 7.0 du format de fichier SWF.7uint Version 7.0 du format de fichier SWF. FLASH8 Version 8.0 du format de fichier SWF.8uint Version 8.0 du format de fichier SWF. FLASH9 Version 9.0 du format de fichier SWF.9uint Version 9.0 du format de fichier SWF. NativeWindowResize La classe NativeWindowResize définit des constantes pour les valeurs possibles du paramètre edgeOrCorner de la méthode NativeWindow startResize().Définit les constantes utilisées lors du redimensionnement d’une fenêtre en réponse à l’action d’un utilisateur. Object La classe NativeWindowResize définit des constantes pour les valeurs possibles du paramètre edgeOrCorner de la méthode NativeWindow startResize().

Une constante est définie pour nommer chaque bord et chaque angle d’une fenêtre.

flash.display.NativeWindow.startResize()BOTTOM_LEFT L’angle inférieur gauche de la fenêtre.BLString L’angle inférieur gauche de la fenêtre. BOTTOM_RIGHT L’angle inférieur droit de la fenêtre.BRString L’angle inférieur droit de la fenêtre. BOTTOM Le bord inférieur de la fenêtre.BString Le bord inférieur de la fenêtre. LEFT Le bord gauche de la fenêtre.LString Le bord gauche de la fenêtre. NONE Utilisé pour le redimensionnement du clavier dans les systèmes qui prennent en charge cette fonctionnalité (tels que Windows).String Utilisé pour le redimensionnement du clavier dans les systèmes qui prennent en charge cette fonctionnalité (tels que Windows). Sous Windows, cela équivaut à sélectionner la commande Taille dans le menu Alt+espace. Lorsque vous appelez NativeWindow.startResize(NativeWindowResize.NONE), un utilisateur Windows peut changer la taille de la fenêtre à l’aide des touches fléchées du clavier. RIGHT Le bord droit de la fenêtre.RString Le bord droit de la fenêtre. TOP_LEFT L’angle supérieur gauche de la fenêtre.TLString L’angle supérieur gauche de la fenêtre. TOP_RIGHT L’angle supérieur droit de la fenêtre.TRString L’angle supérieur droit de la fenêtre. TOP Le bord supérieur de la fenêtre.TString Le bord supérieur de la fenêtre.
BitmapDataChannel La classe BitmapDataChannel est une énumération de valeurs constantes qui désignent le canal à utiliser : rouge, bleu, vert ou transparence alpha.Object La classe BitmapDataChannel est une énumération de valeurs constantes qui désignent le canal à utiliser : rouge, bleu, vert ou transparence alpha.

Lorsque vous appelez certaines méthodes, vous pouvez utiliser l’opérateur OR au niveau du bit (|) pour combiner les constantes BitmapDataChannel de sorte à indiquer des canaux de couleur multiples.

Les constantes BitmapDataChannel sont utilisées en tant que valeurs comme suit :

  • dans les paramètres sourceChannel et destChannel de la méthode flash.display.BitmapData.copyChannel(),
  • dans le paramètre channelOptions de la méthode flash.display.BitmapData.noise(),
  • dans les propriétés flash.filters.DisplacementMapFilter.componentX et flash.filters.DisplacementMapFilter.componentY.
flash.display.BitmapData.copyChannel()flash.display.BitmapData.noise()flash.filters.DisplacementMapFilter.componentXflash.filters.DisplacementMapFilter.componentYALPHA Canal alpha.8uint Canal alpha. BLUE Canal bleu.4uint Canal bleu. GREEN Canal vert.2uint Canal vert. RED Canal rouge.1uint Canal rouge.
GraphicsSolidFill Définit un remplissage solide.flash.display:IGraphicsFillflash.display:IGraphicsDataObject Définit un remplissage solide.

Utilisez l’objet GraphicsSolidFill avec la méthode Graphics.drawGraphicsData(). Dessiner un objet GraphicsSolidFill revient à appeler la méthode Graphics.beginFill().

flash.display.Graphics.beginFill()flash.display.Graphics.drawGraphicsData()GraphicsSolidFill Crée un nouvel objet GraphicsSolidFill.coloruint0Valeur de couleur. Les valeurs disponibles sont au format hexadécimal 0xRRGGBB. alphaNumber1.0Valeur de transparence alpha. Les valeurs disponibles sont comprises entre 0 (entièrement transparent) et 1 (entièrement opaque). Crée un nouvel objet GraphicsSolidFill. alpha Indique la valeur de transparence alpha du remplissage.1.0Number Indique la valeur de transparence alpha du remplissage. Les valeurs gérées sont comprises entre 0 (entièrement transparent) et 1 (entièrement opaque). La valeur par défaut est 1. Les objets d’affichage où alpha est défini sur 0 sont actifs, même s’ils sont invisibles. color Couleur du remplissage.0uint Couleur du remplissage. Les valeurs disponibles sont au format hexadécimal 0xRRGGBB. La valeur par défaut est 0xFF0000 (ou uint 0).
IBitmapDrawable L’interface IBitmapDrawable est implémentée par des objets qui peuvent être transmis en tant que paramètre source de la méthode draw() à la classe BitmapData. L’interface IBitmapDrawable est implémentée par des objets qui peuvent être transmis en tant que paramètre source de la méthode draw() à la classe BitmapData. Ces objets sont de type BitmapData ou DisplayObject. flash.display.BitmapData.draw()flash.display.BitmapDataflash.display.DisplayObjectCapsStyle La classe CapsStyle est une énumération de valeurs constantes qui spécifient le style d’extrémité à utiliser pour tracer les lignes.Object La classe CapsStyle est une énumération de valeurs constantes qui spécifient le style d’extrémité à utiliser pour tracer les lignes. Ces constantes sont utilisées en tant que valeurs du paramètre caps dans la méthode flash.display.Graphics.lineStyle(). Vous pouvez spécifier les trois types d’extrémités suivants :

L’exemple suivant utilise la classe CapsStyleExample pour dessiner trois lignes parallèles, chacune disposant d’un style d’extrémité de ligne différent.
  1. Les propriétés de chaque ligne sont définies comme suit :
    • La longueur de ligne est définie sur 80 pixels.
    • La couleur de la bordure est définie sur orange.
    • La taille de la bordure est définie sur 30 pixels.
    • La couleur de surbrillance est définie sur gris.
    • La taille de la surbrillance est définie sur 0 pixel.
    • La valeur alpha est définie sur 1, ce qui rend la couleur unie.
    • L’index de lissage des pixels est défini sur false (les traits ne sont pas transformés en pixels).
    • Le mode de mise à l’échelle de la ligne est défini sur normal. Ce mode porte sur l’épaisseur de la ligne.
    • Le style de liaison des extrémités de la bordure est défini sur MITER.
    • La limite de pointe est définie sur 1, ce qui signifie que la pointe est coupée près de la ligne.
  2. Le constructeur de classe crée trois lignes verticales, qui commencent à x = 0, y = 0 en appelant la méthode drawLine() trois fois à l’aide de trois styles d’extrémité de ligne différents (none, round et square). Ces trois types d’appel de la méthode drawLine() utilisent le style d’extrémité et les propriétés énumérés précédemment pour dessiner une ligne verticale et la surbrillance de ligne correspondante. Les appels créent tout d’abord un objet Shape, child, puis exploite les méthodes de la classe Graphics pour définir le style de ligne et dessiner les lignes et les surbrillances. Chaque occurrence de child s’ajoute à la liste d’affichage et est dessinée sur la scène.
  3. Les segments de ligne connectés sont redessinés avec la méthode refreshLayout() à y = 80 pixels et commence à x = 80 pixels, avec une séparation de 25 pixels entre les segments de ligne.
package { import flash.display.CapsStyle; import flash.display.DisplayObject; import flash.display.Graphics; import flash.display.JointStyle; import flash.display.LineScaleMode; import flash.display.Shape; import flash.display.Sprite; public class CapsStyleExample extends Sprite { private var lineLength:uint = 80; private var borderColor:uint = 0xFFCC00; private var borderSize:uint = 30; private var highlightColor:uint = 0x666666; private var highlightSize:uint = 0; private var gutter:uint = 25; private var borderAlpha:uint = 1; private var borderPixelHinting:Boolean = false; private var borderScaleMode:String = LineScaleMode.NORMAL; private var borderJointStyle:String = JointStyle.MITER; private var borderMiterLimit:uint = 1; public function CapsStyleExample() { drawLine(CapsStyle.NONE); drawLine(CapsStyle.ROUND); drawLine(CapsStyle.SQUARE); refreshLayout(); } private function drawLine(capsStyle:String):void { var child:Shape = new Shape(); child.graphics.lineStyle(borderSize, borderColor, borderAlpha, borderPixelHinting, borderScaleMode, capsStyle, borderJointStyle, borderMiterLimit); child.graphics.lineTo(0, 0); child.graphics.lineTo(0, lineLength); child.graphics.endFill(); child.graphics.moveTo(0, 0); child.graphics.lineStyle(highlightSize, highlightColor); child.graphics.lineTo(0, 0); child.graphics.lineTo(0, lineLength); addChild(child); } private function refreshLayout():void { var ln:uint = numChildren; var child:DisplayObject; var lastChild:DisplayObject = getChildAt(0); lastChild.x = lineLength; lastChild.y = lineLength; for (var i:uint = 1; i < ln; i++) { child = getChildAt(i); child.x = gutter + lastChild.x + lastChild.width; child.y = lineLength; lastChild = child; } } } }
flash.display.Graphics.lineStyle()NONE Permet de ne pas employer d’extrémités à l’aide du paramètre caps de la méthode flash.display.Graphics.lineStyle().noneString Permet de ne pas utiliser d’extrémités à l’aide du paramètre caps de la méthode flash.display.Graphics.lineStyle(). ROUND Permet de spécifier les extrémités arrondies du paramètre caps de la méthode flash.display.Graphics.lineStyle().roundString Permet de spécifier les extrémités arrondies du paramètre caps de la méthode flash.display.Graphics.lineStyle(). SQUARE Permet de spécifier les extrémités carrées du paramètre caps de la méthode flash.display.Graphics.lineStyle().squareString Permet de spécifier des extrémités carrées à l’aide du paramètre caps de la méthode flash.display.Graphics.lineStyle().
StageScaleMode La classe StageScaleMode fournit les valeurs de la propriété Stage.scaleMode.Object La classe StageScaleMode fournit les valeurs de la propriété Stage.scaleMode. flash.display.Stage.scaleModeEXACT_FIT Indique que l’application entière est visible dans la zone spécifiée, sans tenter de conserver le format d’origine.exactFitString Indique que l’application entière est visible dans la zone spécifiée, sans tenter de conserver le format d’origine. Une distorsion risque de se produire. NO_BORDER Spécifie que l’application entière remplit la zone spécifiée, sans distorsion mais avec un recadrage éventuel, tout en conservant le format d’origine de l’application.noBorderString Spécifie que l’application entière remplit la zone spécifiée, sans distorsion mais avec un recadrage éventuel, tout en conservant le format d’origine de l’application. NO_SCALE Spécifie que la taille de l’application doit être fixe, afin de ne pas être modifiée même si la taille de la fenêtre du lecteur change.noScaleString Spécifie que la taille de l’application doit être fixe, afin de ne pas être modifiée même si la taille de la fenêtre du lecteur change. Un recadrage risque de se produire si la fenêtre du lecteur est plus petite que le contenu. SHOW_ALL Spécifie que l’application entière est visible dans la zone spécifiée, sans distorsion, tout en conservant le format d’origine de l’application.showAllString Spécifie que l’application entière est visible dans la zone spécifiée, sans distorsion, tout en conservant le format d’origine de l’application. Des bordures peuvent apparaître de part et d’autre de l’application. SpreadMethod La classe SpreadMethod fournit les valeurs du paramètre spreadMethod dans les méthodes beginGradientFill() et lineGradientStyle() de la classe Graphics.Object La classe SpreadMethod fournit les valeurs du paramètre spreadMethod dans les méthodes beginGradientFill() et lineGradientStyle() de la classe Graphics.

L’exemple suivant illustre le même remplissage dégradé basé sur des méthodes d’étalement différentes :

SpreadMethod.PADSpreadMethod.REFLECTSpreadMethod.REPEAT
flash.display.Graphics.beginGradientFill()flash.display.Graphics.lineGradientStyle()PAD Spécifie que le dégradé utilise la méthode d’étalement pad.padString Spécifie que le dégradé utilise la méthode d’étalement pad. REFLECT Spécifie que le dégradé utilise la méthode d’étalement reflect.reflectString Spécifie que le dégradé utilise la méthode d’étalement reflect. REPEAT Spécifie que le dégradé utilise la méthode d’étalement repeat.repeatString Spécifie que le dégradé utilise la méthode d’étalement repeat.
FocusDirection La classe FocusDirection énumère les valeurs à utiliser pour le paramètre direction de la méthode assignFocus() d’un objet Stage et pour la propriété direction d’un objet FocusEvent.Object La classe FocusDirection énumère les valeurs à utiliser pour le paramètre direction de la méthode assignFocus() d’un objet Stage et pour la propriété direction d’un objet FocusEvent. flash.events.FocusEvent.directionflash.display.Stage.assignFocus()BOTTOM Indique que le focus doit être attribué à l’objet situé à la fin de l’ordre de lecture.bottomString Indique que le focus doit être attribué à l’objet situé à la fin de l’ordre de lecture. NONE Indique que l’objet de focus au sein de l’objet interactif ne doit pas changer.noneString Indique que l’objet de focus au sein de l’objet interactif ne doit pas changer. TOP Indique que le focus doit être attribué à l’objet situé au début de l’ordre de lecture.topString Indique que le focus doit être attribué à l’objet situé au début de l’ordre de lecture. StageAlign La classe StageAlign fournit les valeurs constantes à utiliser pour la propriété Stage.align.Object La classe StageAlign fournit les valeurs constantes à utiliser pour la propriété Stage.align. flash.display.Stage.alignBOTTOM_LEFT Spécifie que la scène est alignée sur le coin inférieur gauche.BLString Spécifie que la scène est alignée sur le coin inférieur gauche. BOTTOM_RIGHT Spécifie que la scène est alignée sur le coin inférieur droit.BRString Spécifie que la scène est alignée sur le coin inférieur droit. BOTTOM Spécifie que la scène est alignée sur le bas.BString Spécifie que la scène est alignée sur le bas. LEFT Spécifie que la scène est alignée sur la gauche.LString Spécifie que la scène est alignée sur la gauche. RIGHT Spécifie que la scène est alignée sur la droite.RString Spécifie que la scène est alignée sur la droite. TOP_LEFT Spécifie que la scène est alignée sur le coin supérieur gauche.TLString Spécifie que la scène est alignée sur le coin supérieur gauche. TOP_RIGHT Spécifie que la scène est alignée sur le coin supérieur droit.TRString Spécifie que la scène est alignée sur le coin supérieur droit. TOP Spécifie que la scène est alignée sur le haut.TString Spécifie que la scène est alignée sur le haut. ColorCorrectionSupport La classe ColorCorrectionSupport fournit les valeurs de la propriété flash.display.Stage.colorCorrectionSupport.Object La classe ColorCorrectionSupport fournit les valeurs de la propriété flash.display.Stage.colorCorrectionSupport. flash.display.Stage.colorCorrectionSupportDEFAULT_OFF La correction des couleurs est prise en charge et est par défaut désactivée.defaultOffString La correction des couleurs est prise en charge et est par défaut désactivée. DEFAULT_ON La correction des couleurs est prise en charge et est par défaut activée.defaultOnString La correction des couleurs est prise en charge et est par défaut activée. UNSUPPORTED La correction de couleur n’est pas prise en charge par l’environnement hôte.unsupportedString La correction de couleur n’est pas prise en charge par l’environnement hôte. GraphicsShaderFill Définit un remplissage shader.flash.display:IGraphicsFillflash.display:IGraphicsDataObject Définit un remplissage shader.

Utilisez l’objet GraphicsShaderFill avec la méthode Graphics.drawGraphicsData(). Dessiner un objet GraphicsShaderFill revient à appeler la méthode Graphics.beginShaderFill().

flash.display.Graphics.beginShaderFill()flash.display.Graphics.drawGraphicsData()GraphicsShaderFill Crée un nouvel objet GraphicsShaderFill.shaderflash.display:ShadernullShader à utiliser pour le remplissage. Cette occurrence Shader n’est pas obligatoire pour spécifier une entrée d’image. Toutefois, lorsqu’une entrée d’image est spécifiée dans le shader, l’entrée doit être fournie manuellement par la définition de la propriété input pour la propriété ShaderInput correspondante de la propriété Shader.data. matrixflash.geom:MatrixnullObjet matrice (de la classe flash.geom.Matrix), que vous pouvez utiliser pour définir des transformations sur le shader. Crée un nouvel objet GraphicsShaderFill. flash.geom.Matrixflash.display.Shadermatrix Objet matrice (de la classe flash.geom.Matrix), que vous pouvez utiliser pour définir des transformations sur le shader.flash.geom:Matrix Objet matrice (de la classe flash.geom.Matrix), que vous pouvez utiliser pour définir des transformations sur le shader. Par exemple, vous pouvez utiliser la matrice suivante pour faire pivoter un shader de 45 degrés (pi/4 radians) : matrix = new flash.geom.Matrix(); matrix.rotate(Math.PI / 4);

Les coordonnées reçues dans le shader sont basées sur la matrice spécifiée dans le paramètre matrix. Dans le cas d’une matrice par défaut (null), les coordonnées dans le shader sont en coordonnées de pixel locales qui peuvent être utilisées pour échantillonner une entrée.

flash.geom.Matrix
shader Shader à utiliser pour le remplissage. flash.display:Shader Shader à utiliser pour le remplissage. Cette occurrence Shader n’est pas obligatoire pour spécifier une entrée d’image. Toutefois, lorsqu’une entrée d’image est spécifiée dans le shader, l’entrée doit être fournie manuellement par la définition de la propriété input pour la propriété ShaderInput correspondante de la propriété Shader.data.

Lorsque vous transmettez une occurrence Shader sous forme d’argument, le shader est copié en interne et l’opération de remplissage utilise cette copie interne, et non une référence au shader d’origine. Toute modification apportée au shader, par exemple la modification de la valeur d’un paramètre, l’entrée ou le pseudo-code binaire, n’est pas appliquée au shader copié utilisé pour le remplissage.

flash.display.Shader
Shape Cette classe sert à créer des formes légères par le biais de l’interface de programmation d’applications (API) de dessin ActionScript.Objet d’affichage utilisé pour les formes. flash.display:DisplayObject Cette classe sert à créer des formes légères par le biais de l’interface de programmation d’applications (API) de dessin ActionScript. Cette classe comprend une propriété graphics, qui vous permet d’accéder aux méthodes de la classe Graphics.

La classe Sprite comporte également une propriété graphics, ainsi que d’autres fonctions exclues de la classe Shape. Par exemple, un objet Sprite est un conteneur d’objet d’affichage, ce qui n’est pas le cas d’un objet Shape (qui ne peut pas contenir d’objets d’affichage enfant). De ce fait, les objets Shape consomment moins de mémoire que les objets Sprite qui contiennent les mêmes images. Néanmoins, un objet Sprite prend en charge les événements de saisie utilisateur, ce qui n’est pas le cas d’un objet Shape.

L’exemple suivant utilise la classe ShapeExample pour dessiner un cercle, un rectangle arrondi et un carré. Pour ce faire, procédez comme suit :
  1. Elle déclare la propriété size qui servira par la suite à déterminer la taille de chaque forme.
  2. Elle déclare les propriétés qui définissent la couleur de fond sur orange, la couleur de bordure sur gris foncé, la taille de la bordure sur 0 pixel, le rayon de l’angle sur 9 pixels et définit l’espace entre le bord de la scène et les autres objets sur 5 pixels.
  3. Utilisez les propriétés déclarées au cours des étapes précédentes, ainsi que les méthodes intégrées de la classe Graphics pour dessiner le cercle, le rectangle arrondi et le carré aux coordonnées x = 0, y = 0.
  4. Elle redessine les formes situées le long de la partie supérieure de la scène, en commençant par x = 5, y = 5, avec un espacement de 5 pixels entre les formes à l’aide de la méthode refreshLayout().
package { import flash.display.DisplayObject; import flash.display.Graphics; import flash.display.JointStyle; import flash.display.LineScaleMode; import flash.display.Shape; import flash.display.Sprite; public class ShapeExample extends Sprite { private var size:uint = 80; private var bgColor:uint = 0xFFCC00; private var borderColor:uint = 0x666666; private var borderSize:uint = 0; private var cornerRadius:uint = 9; private var gutter:uint = 5; public function ShapeExample() { doDrawCircle(); doDrawRoundRect(); doDrawRect(); refreshLayout(); } private function refreshLayout():void { var ln:uint = numChildren; var child:DisplayObject; var lastChild:DisplayObject = getChildAt(0); lastChild.x = gutter; lastChild.y = gutter; for (var i:uint = 1; i < ln; i++) { child = getChildAt(i); child.x = gutter + lastChild.x + lastChild.width; child.y = gutter; lastChild = child; } } private function doDrawCircle():void { var child:Shape = new Shape(); var halfSize:uint = Math.round(size/2); child.graphics.beginFill(bgColor); child.graphics.lineStyle(borderSize, borderColor); child.graphics.drawCircle(halfSize, halfSize, halfSize); child.graphics.endFill(); addChild(child); } private function doDrawRoundRect():void { var child:Shape = new Shape(); child.graphics.beginFill(bgColor); child.graphics.lineStyle(borderSize, borderColor); child.graphics.drawRoundRect(0, 0, size, size, cornerRadius); child.graphics.endFill(); addChild(child); } private function doDrawRect():void { var child:Shape = new Shape(); child.graphics.beginFill(bgColor); child.graphics.lineStyle(borderSize, borderColor); child.graphics.drawRect(0, 0, size, size); child.graphics.endFill(); addChild(child); } } }
flash.display.Graphicsflash.display.SpriteShape Crée un objet Shape. Crée un objet Shape. graphics Spécifie l’objet Graphics qui appartient à l’objet Shape qui prend en charge les commandes de dessin vectoriel.flash.display:GraphicsSpécifie l’objet Graphics associé à l’objet Shape. Spécifie l’objet Graphics qui appartient à l’objet Shape qui prend en charge les commandes de dessin vectoriel.
ShaderParameterType Cette classe définit les constantes qui représentent les valeurs possibles de la propriété type de la classe ShaderParameter.Object Cette classe définit les constantes qui représentent les valeurs possibles de la propriété type de la classe ShaderParameter. Chaque constante représente l’un des types de données disponibles dans Flash Player pour définir les paramètres dans le langage shader de Pixel Bender. flash.display.ShaderParameter.typeBOOL2 Indique que le paramètre du shader est défini en tant que valeur bool2, ce qui correspond à un tableau de deux occurrences Boolean dans ActionScript.bool2String Indique que le paramètre du shader est défini en tant que valeur bool2, ce qui correspond à un tableau de deux occurrences Boolean dans ActionScript. BOOL3 Indique que le paramètre du shader est défini en tant que valeur bool3, ce qui correspond à un tableau de trois occurrences Boolean dans ActionScript.bool3String Indique que le paramètre du shader est défini en tant que valeur bool3, ce qui correspond à un tableau de trois occurrences Boolean dans ActionScript. BOOL4 Indique que le paramètre du shader est défini en tant que valeur bool4, ce qui correspond à un tableau de quatre occurrences Boolean dans ActionScript.bool4String Indique que le paramètre du shader est défini en tant que valeur bool4, ce qui correspond à un tableau de quatre occurrences Boolean dans ActionScript. BOOL Indique que le paramètre du shader est défini en tant que valeur bool, ce qui correspond à une unique occurrence Boolean dans ActionScript.boolString Indique que le paramètre du shader est défini en tant que valeur bool, ce qui correspond à une unique occurrence Boolean dans ActionScript.

Notez que, bien que le paramètre n’attende qu’une seule valeur, la propriété ShaderParameter.value est un tableau ; cette valeur unique doit donc être le seul élément d’un tableau affecté à la propriété value, tel que :

// assumes the shader has a parameter named "param" // whose data type is bool myShader.data.param.value = [true];
FLOAT2 Indique que le paramètre du shader est défini en tant que valeur float2, ce qui correspond à un tableau de deux occurrences Number dans ActionScript.float2String Indique que le paramètre du shader est défini en tant que valeur float2, ce qui correspond à un tableau de deux occurrences Number dans ActionScript. flash.display.ShaderParameter.typeFLOAT3 Indique que le paramètre du shader est défini en tant que valeur float3, ce qui correspond à un tableau de trois occurrences Number dans ActionScript.float3String Indique que le paramètre du shader est défini en tant que valeur float3, ce qui correspond à un tableau de trois occurrences Number dans ActionScript. FLOAT4 Indique que le paramètre du shader est défini en tant que valeur float4, ce qui correspond à un tableau de quatre occurrences Number dans ActionScript.float4String Indique que le paramètre du shader est défini en tant que valeur float4, ce qui correspond à un tableau de quatre occurrences Number dans ActionScript. FLOAT Indique que le paramètre du shader est défini en tant que valeur float, ce qui correspond à une unique occurrence Number dans ActionScript.floatString Indique que le paramètre du shader est défini en tant que valeur float, ce qui correspond à une unique occurrence Number dans ActionScript.

Notez que, bien que le paramètre n’attende qu’une seule valeur, la propriété ShaderParameter.value est un tableau ; cette valeur unique doit donc être le seul élément d’un tableau affecté à la propriété value, tel que :

// assumes the shader has a parameter named "param" // whose data type is float myShader.data.param.value = [22.5];
flash.display.ShaderParameter.type
INT2 Indique que le paramètre du shader est défini en tant que valeur int2, ce qui correspond à un tableau de deux occurrences int ou uint dans ActionScript.int2String Indique que le paramètre du shader est défini en tant que valeur int2, ce qui correspond à un tableau de deux occurrences int ou uint dans ActionScript. INT3 Indique que le paramètre du shader est défini en tant que valeur int3, ce qui correspond à un tableau de trois occurrences int ou uint dans ActionScript.int3String Indique que le paramètre du shader est défini en tant que valeur int3, ce qui correspond à un tableau de trois occurrences int ou uint dans ActionScript. INT4 Indique que le paramètre du shader est défini en tant que valeur int4, ce qui correspond à un tableau de quatre occurrences int ou uint dans ActionScript.int4String Indique que le paramètre du shader est défini en tant que valeur int4, ce qui correspond à un tableau de quatre occurrences int ou uint dans ActionScript. INT Indique que le paramètre du shader est défini en tant que valeur int, ce qui correspond à une unique occurrence int ou uint dans ActionScript.intString Indique que le paramètre du shader est défini en tant que valeur int, ce qui correspond à une unique occurrence int ou uint dans ActionScript.

Notez que, bien que le paramètre n’attende qu’une seule valeur, la propriété ShaderParameter.value est un tableau ; cette valeur unique doit donc être le seul élément d’un tableau affecté à la propriété value, tel que :

// assumes the shader has a parameter named "param" // whose data type is int myShader.data.param.value = [275];
MATRIX2X2 Indique que le paramètre du shader est défini en tant que valeur float2x2, ce qui correspond à une matrice 2 par 2.matrix2x2String Indique que le paramètre du shader est défini en tant que valeur float2x2, ce qui correspond à une matrice 2 par 2. Cette matrice est représentée par un tableau de quatre occurrences Number dans ActionScript. MATRIX3X3 Indique que le paramètre du shader est défini en tant que valeur float3x3, ce qui correspond à une matrice 3 par 3.matrix3x3String Indique que le paramètre du shader est défini en tant que valeur float3x3, ce qui correspond à une matrice 3 par 3. Cette matrice est représentée par un tableau de neuf occurrences Number dans ActionScript. MATRIX4X4 Indique que le paramètre du shader est défini en tant que valeur float4x4, ce qui correspond à une matrice 4 par 4.matrix4x4String Indique que le paramètre du shader est défini en tant que valeur float4x4, ce qui correspond à une matrice 4 par 4. Cette matrice est représentée par un tableau de 16 occurrences Number dans ActionScript.
GraphicsPathWinding La classe GraphicsPathWinding fournit des valeurs pour la propriété flash.display.GraphicsPath.winding et la méthode flash.display.Graphics.drawPath() afin de déterminer la direction du tracé.Object La classe GraphicsPathWinding fournit des valeurs pour la propriété flash.display.GraphicsPath.winding et la méthode flash.display.Graphics.drawPath() afin de déterminer la direction du tracé. Un tracé dans le sens des aiguilles d’une montre est enroulé positivement et un tracé dans le sens inverse des aiguilles d’une montre est enroulé négativement :

Lorsque les tracés se croisent ou se chevauchent, la direction d’enroulement détermine les règles de remplissage des zones créées par l’intersection ou le chevauchement :

flash.display.GraphicsPath.windingflash.display.Graphics.drawPath()EVEN_ODD Etablit le type d’enroulement pair/impair.evenOddString Etablit le type d’enroulement pair/impair. Le type d’enroulement pair/impair correspond à la règle utilisée par toutes les API de dessin d’origine ; il correspond en outre au type d’enroulement par défaut pour la méthode flash.display.Graphics.drawPath(). Tous les tracés se chevauchant alterneront les remplissages ouverts et les remplissages fermés. Si deux carrés qui utilisent le même remplissage se croisent, la zone d’intersection n’est pas remplie. Les zones adjacentes ne sont pas les mêmes (elles ne sont ni toutes deux remplies, ni toutes deux vides). NON_ZERO Etablit le type d’enroulement non nul.nonZeroString Etablit le type d’enroulement non nul. Le type d’enroulement non nul indique que lorsque les tracés possédant des enroulements opposés se croisent, la zone d’intersection n’est pas remplie (comme avec le type d’enroulement pair/impair). Pour les tracés possédant le même type d’enroulement, l’intersection est remplie.
ActionScriptVersion La classe ActionScriptVersion est une énumération de valeurs constantes qui indiquent la version de langue du fichier SWF chargé.Object La classe ActionScriptVersion est une énumération de valeurs constantes qui indiquent la version de langue du fichier SWF chargé. Les constantes de version du langage permettent de vérifier la propriété actionScriptVersion d’un objet flash.display.LoaderInfo. flash.display.LoaderInfo.actionScriptVersionACTIONSCRIPT2 Langage ActionScript version 2.0 et antérieure.2uint Langage ActionScript version 2.0 et antérieure. ACTIONSCRIPT3 Langage ActionScript version 3.0.3uint Langage ActionScript version 3.0. GraphicsPath Collection de commandes de dessin et de leurs paramètres de coordonnées.flash.display:IGraphicsPathflash.display:IGraphicsDataObject Collection de commandes de dessin et de leurs paramètres de coordonnées.

Utilisez un objet GraphicsPath avec la méthode Graphics.drawGraphicsData(). Dessiner un objet GraphicsPath revient à appeler la méthode Graphics.drawPath().

La classe GraphicsPath dispose également de son propre jeu de méthodes (curveTo(), lineTo(), moveTo() wideLineTo() et wideMoveTo()), similaire à celui de la classe Graphics, permettant d’effectuer des réglages sur les tableaux vectoriels GraphicsPath.commands et GraphicsPath.data.

flash.display.Graphics.drawGraphicsData()flash.display.Graphics.drawPath()GraphicsPath Crée un nouvel objet GraphicsPath.commandsnullVecteur d’entiers représentant les commandes définies par la classe GraphicsPathCommand. datanullVecteur de Nombres, où chaque paire de nombres est traitée comme un point (paire x, y). windingStringevenOddSpécifie la règle d’enroulement à l’aide d’une valeur définie dans la classe GraphicsPathWinding. Crée un nouvel objet GraphicsPath. flash.display.GraphicsPathCommandflash.display.GraphicsPathWindingcurveTo Ajoute une nouvelle commande « curveTo » au vecteur commands et de nouvelles coordonnées au vecteur data.controlXNumberNombre qui spécifie la position horizontale du point de contrôle par rapport au point d’alignement de l’objet d’affichage parent. controlYNumberNombre qui spécifie la position verticale du point de contrôle par rapport au point d’alignement de l’objet d’affichage parent. anchorXNumberNombre qui spécifie la position horizontale du point d’ancrage suivant par rapport au point d’alignement de l’objet d’affichage parent. anchorYNumberNombre qui spécifie la position verticale du point d’ancrage suivant par rapport au point d’alignement de l’objet d’affichage parent. Ajoute une nouvelle commande « curveTo » au vecteur commands et de nouvelles coordonnées au vecteur data. flash.display.GraphicsPathCommand.CURVE_TOflash.display.Graphics.curveTo()lineTo Ajoute une nouvelle commande « lineTo » au vecteur commands et de nouvelles coordonnées au vecteur data.xNumberCoordonnées x du point de destination pour la ligne. yNumberCoordonnées y du point de destination pour la ligne. Ajoute une nouvelle commande « lineTo » au vecteur commands et de nouvelles coordonnées au vecteur data. flash.display.GraphicsPathCommand.LINE_TOflash.display.Graphics.lineTo()moveTo Ajoute une nouvelle commande « moveTo » au vecteur commands et de nouvelles coordonnées au vecteur data.xNumberCoordonnées x du point de destination. yNumberCoordonnées y du point de destination. Ajoute une nouvelle commande « moveTo » au vecteur commands et de nouvelles coordonnées au vecteur data. flash.display.GraphicsPathCommand.MOVE_TOflash.display.Graphics.moveTo()wideLineTo Ajoute une nouvelle commande « wideLineTo » au vecteur commands et de nouvelles coordonnées au vecteur data.xNumberCoordonnées x du point de destination pour la ligne. yNumberCoordonnées y du point de destination pour la ligne. Ajoute une nouvelle commande « wideLineTo » au vecteur commands et de nouvelles coordonnées au vecteur data. flash.display.GraphicsPathCommand.WIDE_LINE_TOwideMoveTo Ajoute une nouvelle commande « wideMoveTo » au vecteur commands et de nouvelles coordonnées au vecteur data.xNumberCoordonnées x du point de destination. yNumberCoordonnées y du point de destination. Ajoute une nouvelle commande « wideMoveTo » au vecteur commands et de nouvelles coordonnées au vecteur data. flash.display.GraphicsPathCommand.WIDE_MOVE_TOcommands Vecteur des commandes de dessin sous forme d’entiers représentant le tracé. Vecteur des commandes de dessin sous forme d’entiers représentant le tracé. Chaque commande peut correspondre à l’une des valeurs définies par la classe GraphicsPathCommand. flash.display.GraphicsPathCommanddata Vecteur de nombres contenant les paramètres utilisés avec les commandes de dessin. Vecteur de nombres contenant les paramètres utilisés avec les commandes de dessin. winding Spécifie la règle d’enroulement à l’aide d’une valeur définie dans la classe GraphicsPathWinding.String Spécifie la règle d’enroulement à l’aide d’une valeur définie dans la classe GraphicsPathWinding. flash.display.GraphicsPathWinding
MorphShape La classe MorphShape représente les objets MorphShape figurant dans la liste d’affichage.flash.display:DisplayObject La classe MorphShape représente les objets MorphShape figurant dans la liste d’affichage. Il est impossible de créer directement des objets MorphShape dans ActionScript. Ils sont créés lorsque vous générez une interpolation de forme dans l’outil de création de Flash. PixelSnapping La classe PixelSnapping est une énumération de valeurs constantes destinées à la définition des options d’accrochage aux pixels par le biais de la propriété pixelSnapping d’un objet Bitmap.Object La classe PixelSnapping est une énumération de valeurs constantes destinées à la définition des options d’accrochage aux pixels par le biais de la propriété pixelSnapping d’un objet Bitmap. flash.display.Bitmap.pixelSnappingALWAYS Valeur constante utilisée dans la propriété pixelSnapping d’un objet Bitmap pour spécifier que l’image bitmap est toujours accrochée au pixel le plus proche, quelle que soit la transformation appliquée.alwaysString Valeur constante utilisée dans la propriété pixelSnapping d’un objet Bitmap pour spécifier que l’image bitmap est toujours accrochée au pixel le plus proche, quelle que soit la transformation appliquée. AUTO Valeur constante utilisée dans la propriété pixelSnapping d’un objet Bitmap pour spécifier que l’image bitmap est accrochée au pixel le plus proche si elle est dessinée sans rotation ni inclinaison et que son facteur de redimensionnement est compris entre 99,9 % et 100,1 %.autoString Valeur constante utilisée dans la propriété pixelSnapping d’un objet Bitmap pour spécifier que l’image bitmap est accrochée au pixel le plus proche si elle est dessinée sans rotation ni inclinaison et que son facteur de redimensionnement est compris entre 99,9 % et 100,1 %. Si ces conditions sont remplies, l’image est dessinée à l’échelle 100 % et accrochée au pixel le plus proche. En interne, ce réglage permet de dessiner l’image aussi rapidement que possible à l’aide de la fonctionnalité de rendu vectoriel. NEVER Valeur constante utilisée dans la propriété pixelSnapping d’un objet Bitmap pour spécifier que l’accrochage aux pixels est désactivé.neverString Valeur constante utilisée dans la propriété pixelSnapping d’un objet Bitmap pour spécifier que l’accrochage aux pixels est désactivé. GraphicsPathCommand Définit les valeurs devant être utilisées pour spécifier les commandes de tracé.Object Définit les valeurs devant être utilisées pour spécifier les commandes de tracé.

Les valeurs de cette classe sont utilisées par la méthode Graphics.drawPath() ou stockées dans le vecteur commands d’un objet GraphicsPath.

flash.display.Graphics.drawPath()flash.display.GraphicsPath.commandsCURVE_TO Spécifie une commande de dessin traçant une courbe de la position actuelle du dessin vers les coordonnées x et y spécifiées dans le vecteur de données, à l’aide d’un point de contrôle.3int Spécifie une commande de dessin traçant une courbe de la position actuelle du dessin vers les coordonnées x et y spécifiées dans le vecteur de données, à l’aide d’un point de contrôle. Cette commande a le même effet que la méthode Graphics.lineTo() et utilise deux points (un point de contrôle et un point d’ancrage) dans le vecteur data : (cx, cy, ax, ay). flash.display.Graphics.curveTo()LINE_TO Spécifie une commande de dessin traçant une ligne de la position actuelle du dessin vers les coordonnées x et y spécifiées dans le vecteur de données.2int Spécifie une commande de dessin traçant une ligne de la position actuelle du dessin vers les coordonnées x et y spécifiées dans le vecteur de données. Cette commande a le même effet que la méthode Graphics.lineTo() et utilise un point dans le vecteur data : (x,y). flash.display.Graphics.lineTo()MOVE_TO Spécifie une commande de dessin se déplaçant vers les coordonnées de dessin actuelles x et y spécifiées dans le vecteur de données.1int Spécifie une commande de dessin se déplaçant vers les coordonnées de dessin actuelles x et y spécifiées dans le vecteur de données. Cette commande a le même effet que la méthode Graphics.moveTo() et utilise un point dans le vecteur data : (x,y). flash.display.Graphics.moveTo()NO_OP Représente la commande « Ne rien faire » par défaut.0int Représente la commande « Ne rien faire » par défaut. WIDE_LINE_TO Spécifie une commande de dessin « line to », mais utilise deux jeux de coordonnées (soit quatre valeurs) au lieu d’un.5int Spécifie une commande de dessin « line to », mais utilise deux jeux de coordonnées (soit quatre valeurs) au lieu d’un. Cette commande vous permet de basculer entre les commandes « line to » et « curve to », sans modifier le nombre de valeurs de données utilisées par commande. Cette commande utilise deux jeux dans le vecteur data : un faux emplacement et un emplacement (x,y).

Les variantes des commandes WIDE_LINE_TO et WIDE_MOVE_TO consomment le même nombre de paramètres que la commande CURVE_TO.

LINE_TOflash.display.Graphics.lineTo()
WIDE_MOVE_TO Spécifie une commande de dessin « move to », mais utilise deux jeux de coordonnées (soit quatre valeurs) au lieu d’un.4int Spécifie une commande de dessin « move to », mais utilise deux jeux de coordonnées (soit quatre valeurs) au lieu d’un. Cette commande vous permet de basculer entre les commandes « move to » et « curve to », sans modifier le nombre de valeurs de données utilisées par commande. Cette commande utilise deux jeux dans le vecteur data : un faux emplacement et un emplacement (x,y).

Les variantes des commandes WIDE_LINE_TO et WIDE_MOVE_TO consomment le même nombre de paramètres que la commande CURVE_TO.

MOVE_TOflash.display.Graphics.moveTo()