Guide de référence ActionScript® 3.0 pour la plate-forme Adobe® Flash®
Accueil  |  Masquer la liste des packages et des classes |  Packages  |  Classes  |  Nouveautés  |  Index  |  Annexes  |  Pourquoi existe-t-il du contenu en anglais ?
Filtres : AIR 30.0 et versions antérieures, Flash Player 30.0 et versions antérieures, Flash Lite 4
Flex 4.6 et versions antérieures, Flash Pro CS6 et versions antérieures
Masquer les filtres
flash.geom 

Matrix3D  - AS3

Packagesx

Niveau supérieur
adobe.utils
air.desktop
air.net
air.update
air.update.events
coldfusion.air
coldfusion.air.errors
coldfusion.air.events
coldfusion.service
coldfusion.service.events
coldfusion.service.mxml
com.adobe.acm.solutions.authoring.domain.extensions
com.adobe.acm.solutions.ccr.domain.extensions
com.adobe.consulting.pst.vo
com.adobe.dct.component
com.adobe.dct.component.datadictionary
com.adobe.dct.component.datadictionaryElement
com.adobe.dct.component.dataElementsPanel
com.adobe.dct.component.toolbars
com.adobe.dct.event
com.adobe.dct.exp
com.adobe.dct.model
com.adobe.dct.service
com.adobe.dct.service.provider
com.adobe.dct.transfer
com.adobe.dct.util
com.adobe.dct.view
com.adobe.ep.taskmanagement.domain
com.adobe.ep.taskmanagement.event
com.adobe.ep.taskmanagement.filter
com.adobe.ep.taskmanagement.services
com.adobe.ep.taskmanagement.util
com.adobe.ep.ux.attachmentlist.component
com.adobe.ep.ux.attachmentlist.domain
com.adobe.ep.ux.attachmentlist.domain.events
com.adobe.ep.ux.attachmentlist.domain.renderers
com.adobe.ep.ux.attachmentlist.skin
com.adobe.ep.ux.attachmentlist.skin.renderers
com.adobe.ep.ux.content.event
com.adobe.ep.ux.content.factory
com.adobe.ep.ux.content.handlers
com.adobe.ep.ux.content.managers
com.adobe.ep.ux.content.model.asset
com.adobe.ep.ux.content.model.preview
com.adobe.ep.ux.content.model.relation
com.adobe.ep.ux.content.model.search
com.adobe.ep.ux.content.model.toolbar
com.adobe.ep.ux.content.search
com.adobe.ep.ux.content.services
com.adobe.ep.ux.content.services.load
com.adobe.ep.ux.content.services.permissions
com.adobe.ep.ux.content.services.preview
com.adobe.ep.ux.content.services.providers
com.adobe.ep.ux.content.services.query
com.adobe.ep.ux.content.services.relationships
com.adobe.ep.ux.content.services.search.lccontent
com.adobe.ep.ux.content.services.version
com.adobe.ep.ux.content.view
com.adobe.ep.ux.content.view.components.activate
com.adobe.ep.ux.content.view.components.grid
com.adobe.ep.ux.content.view.components.grid.hover
com.adobe.ep.ux.content.view.components.grid.hover.component
com.adobe.ep.ux.content.view.components.grid.renderers
com.adobe.ep.ux.content.view.components.relationships
com.adobe.ep.ux.content.view.components.review
com.adobe.ep.ux.content.view.components.search.renderers
com.adobe.ep.ux.content.view.components.searchpod
com.adobe.ep.ux.content.view.components.toolbar
com.adobe.ep.ux.content.view.components.toolbar.controlRenderers
com.adobe.ep.ux.content.view.components.version
com.adobe.ep.ux.documentsubmit.component
com.adobe.ep.ux.documentsubmit.domain
com.adobe.ep.ux.documentsubmit.skin
com.adobe.ep.ux.taskaction.component
com.adobe.ep.ux.taskaction.domain
com.adobe.ep.ux.taskaction.domain.events
com.adobe.ep.ux.taskaction.skin
com.adobe.ep.ux.taskdetails.component
com.adobe.ep.ux.taskdetails.domain
com.adobe.ep.ux.taskdetails.skin
com.adobe.ep.ux.tasklist.component
com.adobe.ep.ux.tasklist.domain
com.adobe.ep.ux.tasklist.skin
com.adobe.ep.ux.webdocumentviewer.domain
com.adobe.exm.expression
com.adobe.exm.expression.error
com.adobe.exm.expression.event
com.adobe.exm.expression.impl
com.adobe.fiber.runtime.lib
com.adobe.fiber.services
com.adobe.fiber.services.wrapper
com.adobe.fiber.styles
com.adobe.fiber.util
com.adobe.fiber.valueobjects
com.adobe.gravity.binding
com.adobe.gravity.context
com.adobe.gravity.flex.bundleloader
com.adobe.gravity.flex.progress
com.adobe.gravity.flex.serviceloader
com.adobe.gravity.framework
com.adobe.gravity.init
com.adobe.gravity.service.bundleloader
com.adobe.gravity.service.logging
com.adobe.gravity.service.manifest
com.adobe.gravity.service.progress
com.adobe.gravity.tracker
com.adobe.gravity.ui
com.adobe.gravity.utility
com.adobe.gravity.utility.async
com.adobe.gravity.utility.error
com.adobe.gravity.utility.events
com.adobe.gravity.utility.factory
com.adobe.gravity.utility.flex.async
com.adobe.gravity.utility.logging
com.adobe.gravity.utility.message
com.adobe.gravity.utility.sequence
com.adobe.gravity.utility.url
com.adobe.guides.control
com.adobe.guides.domain
com.adobe.guides.i18n
com.adobe.guides.spark.components.skins
com.adobe.guides.spark.components.skins.mx
com.adobe.guides.spark.headers.components
com.adobe.guides.spark.headers.skins
com.adobe.guides.spark.layouts.components
com.adobe.guides.spark.layouts.skins
com.adobe.guides.spark.navigators.components
com.adobe.guides.spark.navigators.renderers
com.adobe.guides.spark.navigators.skins
com.adobe.guides.spark.util
com.adobe.guides.spark.wrappers.components
com.adobe.guides.spark.wrappers.skins
com.adobe.guides.submit
com.adobe.icc.dc.domain
com.adobe.icc.dc.domain.factory
com.adobe.icc.editors.events
com.adobe.icc.editors.handlers
com.adobe.icc.editors.managers
com.adobe.icc.editors.model
com.adobe.icc.editors.model.config
com.adobe.icc.editors.model.el
com.adobe.icc.editors.model.el.operands
com.adobe.icc.editors.model.el.operators
com.adobe.icc.enum
com.adobe.icc.external.dc
com.adobe.icc.obj
com.adobe.icc.services
com.adobe.icc.services.category
com.adobe.icc.services.config
com.adobe.icc.services.download
com.adobe.icc.services.export
com.adobe.icc.services.external
com.adobe.icc.services.formbridge
com.adobe.icc.services.fragmentlayout
com.adobe.icc.services.layout
com.adobe.icc.services.letter
com.adobe.icc.services.locator
com.adobe.icc.services.module
com.adobe.icc.services.render
com.adobe.icc.services.submit
com.adobe.icc.services.user
com.adobe.icc.token
com.adobe.icc.vo
com.adobe.icc.vo.render
com.adobe.icomm.assetplacement.controller
com.adobe.icomm.assetplacement.controller.utils
com.adobe.icomm.assetplacement.data
com.adobe.icomm.assetplacement.model
com.adobe.livecycle.assetmanager.client
com.adobe.livecycle.assetmanager.client.event
com.adobe.livecycle.assetmanager.client.handler
com.adobe.livecycle.assetmanager.client.managers
com.adobe.livecycle.assetmanager.client.model
com.adobe.livecycle.assetmanager.client.model.cms
com.adobe.livecycle.assetmanager.client.service
com.adobe.livecycle.assetmanager.client.service.search
com.adobe.livecycle.assetmanager.client.service.search.cms
com.adobe.livecycle.assetmanager.client.utils
com.adobe.livecycle.content
com.adobe.livecycle.rca.model
com.adobe.livecycle.rca.model.constant
com.adobe.livecycle.rca.model.document
com.adobe.livecycle.rca.model.participant
com.adobe.livecycle.rca.model.reminder
com.adobe.livecycle.rca.model.stage
com.adobe.livecycle.rca.service
com.adobe.livecycle.rca.service.core
com.adobe.livecycle.rca.service.core.delegate
com.adobe.livecycle.rca.service.process
com.adobe.livecycle.rca.service.process.delegate
com.adobe.livecycle.rca.token
com.adobe.livecycle.ria.security.api
com.adobe.livecycle.ria.security.service
com.adobe.mosaic.layouts
com.adobe.mosaic.layouts.dragAndDrop
com.adobe.mosaic.layouts.interfaces
com.adobe.mosaic.mxml
com.adobe.mosaic.om.constants
com.adobe.mosaic.om.events
com.adobe.mosaic.om.impl
com.adobe.mosaic.om.interfaces
com.adobe.mosaic.skinning
com.adobe.mosaic.sparklib.editors
com.adobe.mosaic.sparklib.optionMenu
com.adobe.mosaic.sparklib.scrollableMenu
com.adobe.mosaic.sparklib.scrollableMenu.skins
com.adobe.mosaic.sparklib.tabLayout
com.adobe.mosaic.sparklib.tabLayout.events
com.adobe.mosaic.sparklib.tabLayout.layouts
com.adobe.mosaic.sparklib.tabLayout.skins
com.adobe.mosaic.sparklib.text
com.adobe.mosaic.sparklib.util
com.adobe.solutions.acm.authoring.presentation
com.adobe.solutions.acm.authoring.presentation.actionbar
com.adobe.solutions.acm.authoring.presentation.common
com.adobe.solutions.acm.authoring.presentation.events
com.adobe.solutions.acm.authoring.presentation.fragment
com.adobe.solutions.acm.authoring.presentation.letter
com.adobe.solutions.acm.authoring.presentation.letter.data
com.adobe.solutions.acm.authoring.presentation.preview
com.adobe.solutions.acm.authoring.presentation.rte
com.adobe.solutions.acm.ccr.presentation
com.adobe.solutions.acm.ccr.presentation.contentcapture
com.adobe.solutions.acm.ccr.presentation.contentcapture.events
com.adobe.solutions.acm.ccr.presentation.contentcapture.preview
com.adobe.solutions.acm.ccr.presentation.datacapture
com.adobe.solutions.acm.ccr.presentation.datacapture.renderers
com.adobe.solutions.acm.ccr.presentation.pdf
com.adobe.solutions.exm
com.adobe.solutions.exm.authoring
com.adobe.solutions.exm.authoring.components.controls
com.adobe.solutions.exm.authoring.components.toolbars
com.adobe.solutions.exm.authoring.domain
com.adobe.solutions.exm.authoring.domain.expression
com.adobe.solutions.exm.authoring.domain.impl
com.adobe.solutions.exm.authoring.domain.method
com.adobe.solutions.exm.authoring.domain.variable
com.adobe.solutions.exm.authoring.enum
com.adobe.solutions.exm.authoring.events
com.adobe.solutions.exm.authoring.model
com.adobe.solutions.exm.authoring.renderer
com.adobe.solutions.exm.authoring.view
com.adobe.solutions.exm.expression
com.adobe.solutions.exm.impl
com.adobe.solutions.exm.impl.method
com.adobe.solutions.exm.method
com.adobe.solutions.exm.mock
com.adobe.solutions.exm.mock.method
com.adobe.solutions.exm.runtime
com.adobe.solutions.exm.runtime.impl
com.adobe.solutions.exm.variable
com.adobe.solutions.prm.constant
com.adobe.solutions.prm.domain
com.adobe.solutions.prm.domain.factory
com.adobe.solutions.prm.domain.impl
com.adobe.solutions.prm.domain.manager
com.adobe.solutions.prm.presentation.asset
com.adobe.solutions.prm.presentation.constant
com.adobe.solutions.prm.presentation.document
com.adobe.solutions.prm.presentation.event
com.adobe.solutions.prm.presentation.file
com.adobe.solutions.prm.presentation.project
com.adobe.solutions.prm.presentation.team
com.adobe.solutions.prm.presentation.util
com.adobe.solutions.prm.service
com.adobe.solutions.prm.services.impl
com.adobe.solutions.prm.vo
com.adobe.solutions.rca.constant
com.adobe.solutions.rca.domain
com.adobe.solutions.rca.domain.common
com.adobe.solutions.rca.domain.factory
com.adobe.solutions.rca.domain.impl
com.adobe.solutions.rca.domain.impl.manager
com.adobe.solutions.rca.domain.manager
com.adobe.solutions.rca.presentation
com.adobe.solutions.rca.presentation.comment
com.adobe.solutions.rca.presentation.constant
com.adobe.solutions.rca.presentation.event
com.adobe.solutions.rca.presentation.gantt
com.adobe.solutions.rca.presentation.gantt.ruler
com.adobe.solutions.rca.presentation.template
com.adobe.solutions.rca.presentation.template.audit
com.adobe.solutions.rca.presentation.template.definition
com.adobe.solutions.rca.presentation.template.documents
com.adobe.solutions.rca.presentation.template.stages
com.adobe.solutions.rca.presentation.util
com.adobe.solutions.rca.service
com.adobe.solutions.rca.services.impl
com.adobe.solutions.rca.vo
com.adobe.solutions.rca.vo.um
com.adobe.viewsource
fl.accessibility
fl.containers
fl.controls
fl.controls.dataGridClasses
fl.controls.listClasses
fl.controls.progressBarClasses
fl.core
fl.data
fl.display
fl.events
fl.ik
fl.lang
fl.livepreview
fl.managers
fl.motion
fl.motion.easing
fl.rsl
fl.text
fl.transitions
fl.transitions.easing
fl.video
flash.accessibility
flash.concurrent
flash.crypto
flash.data
flash.desktop
flash.display
flash.display3D
flash.display3D.textures
flash.errors
flash.events
flash.external
flash.filesystem
flash.filters
flash.geom
flash.globalization
flash.html
flash.media
flash.net
flash.net.dns
flash.net.drm
flash.notifications
flash.permissions
flash.printing
flash.profiler
flash.sampler
flash.security
flash.sensors
flash.system
flash.text
flash.text.engine
flash.text.ime
flash.ui
flash.utils
flash.xml
flashx.textLayout
flashx.textLayout.compose
flashx.textLayout.container
flashx.textLayout.conversion
flashx.textLayout.edit
flashx.textLayout.elements
flashx.textLayout.events
flashx.textLayout.factory
flashx.textLayout.formats
flashx.textLayout.operations
flashx.textLayout.utils
flashx.undo
ga.controls
ga.layouts
ga.model
ga.uiComponents
ga.util
ga.views
ga.wrappers
lc.foundation
lc.foundation.domain
lc.foundation.events
lc.foundation.ui
lc.foundation.util
lc.preloader
lc.procmgmt
lc.procmgmt.commands
lc.procmgmt.domain
lc.procmgmt.events
lc.procmgmt.formbridge
lc.procmgmt.impl
lc.procmgmt.ui.attachments
lc.procmgmt.ui.controls
lc.procmgmt.ui.controls.card
lc.procmgmt.ui.controls.renderer
lc.procmgmt.ui.help
lc.procmgmt.ui.layout
lc.procmgmt.ui.presentationmodel
lc.procmgmt.ui.process
lc.procmgmt.ui.search
lc.procmgmt.ui.startpoint
lc.procmgmt.ui.task
lc.procmgmt.ui.task.form
lc.procmgmt.ui.task.form.commands
lc.procmgmt.ui.tracking
mx.accessibility
mx.automation
mx.automation.air
mx.automation.delegates
mx.automation.delegates.advancedDataGrid
mx.automation.delegates.charts
mx.automation.delegates.containers
mx.automation.delegates.controls
mx.automation.delegates.controls.dataGridClasses
mx.automation.delegates.controls.fileSystemClasses
mx.automation.delegates.core
mx.automation.delegates.flashflexkit
mx.automation.events
mx.binding
mx.binding.utils
mx.charts
mx.charts.chartClasses
mx.charts.effects
mx.charts.effects.effectClasses
mx.charts.events
mx.charts.renderers
mx.charts.series
mx.charts.series.items
mx.charts.series.renderData
mx.charts.styles
mx.collections
mx.collections.errors
mx.containers
mx.containers.accordionClasses
mx.containers.dividedBoxClasses
mx.containers.errors
mx.containers.utilityClasses
mx.controls
mx.controls.advancedDataGridClasses
mx.controls.dataGridClasses
mx.controls.listClasses
mx.controls.menuClasses
mx.controls.olapDataGridClasses
mx.controls.scrollClasses
mx.controls.sliderClasses
mx.controls.textClasses
mx.controls.treeClasses
mx.controls.videoClasses
mx.core
mx.core.windowClasses
mx.data
mx.data.crypto
mx.data.errors
mx.data.events
mx.data.messages
mx.data.mxml
mx.data.offline.errors
mx.data.utils
mx.effects
mx.effects.easing
mx.effects.effectClasses
mx.events
mx.filters
mx.flash
mx.formatters
mx.geom
mx.graphics
mx.graphics.codec
mx.graphics.shaderClasses
mx.logging
mx.logging.errors
mx.logging.targets
mx.managers
mx.messaging
mx.messaging.channels
mx.messaging.config
mx.messaging.errors
mx.messaging.events
mx.messaging.management
mx.messaging.messages
mx.modules
mx.netmon
mx.olap
mx.olap.aggregators
mx.preloaders
mx.printing
mx.resources
mx.rpc
mx.rpc.events
mx.rpc.http
mx.rpc.http.mxml
mx.rpc.livecycle
mx.rpc.mxml
mx.rpc.remoting
mx.rpc.remoting.mxml
mx.rpc.soap
mx.rpc.soap.mxml
mx.rpc.wsdl
mx.rpc.xml
mx.skins
mx.skins.halo
mx.skins.spark
mx.skins.wireframe
mx.skins.wireframe.windowChrome
mx.states
mx.styles
mx.utils
mx.validators
org.osmf.containers
org.osmf.display
org.osmf.elements
org.osmf.events
org.osmf.layout
org.osmf.logging
org.osmf.media
org.osmf.metadata
org.osmf.net
org.osmf.net.dvr
org.osmf.net.httpstreaming
org.osmf.net.metrics
org.osmf.net.qos
org.osmf.net.rtmpstreaming
org.osmf.net.rules
org.osmf.traits
org.osmf.utils
spark.accessibility
spark.automation.delegates
spark.automation.delegates.components
spark.automation.delegates.components.gridClasses
spark.automation.delegates.components.mediaClasses
spark.automation.delegates.components.supportClasses
spark.automation.delegates.skins.spark
spark.automation.events
spark.collections
spark.components
spark.components.calendarClasses
spark.components.gridClasses
spark.components.mediaClasses
spark.components.supportClasses
spark.components.windowClasses
spark.core
spark.effects
spark.effects.animation
spark.effects.easing
spark.effects.interpolation
spark.effects.supportClasses
spark.events
spark.filters
spark.formatters
spark.formatters.supportClasses
spark.globalization
spark.globalization.supportClasses
spark.layouts
spark.layouts.supportClasses
spark.managers
spark.modules
spark.preloaders
spark.primitives
spark.primitives.supportClasses
spark.skins
spark.skins.mobile
spark.skins.mobile.supportClasses
spark.skins.spark
spark.skins.spark.mediaClasses.fullScreen
spark.skins.spark.mediaClasses.normal
spark.skins.spark.windowChrome
spark.skins.wireframe
spark.skins.wireframe.mediaClasses
spark.skins.wireframe.mediaClasses.fullScreen
spark.transitions
spark.utils
spark.validators
spark.validators.supportClasses
xd.core.axm.enterprise.view.components
xd.core.axm.enterprise.view.skins
xd.core.axm.view.components
xd.core.axm.view.components.support

Eléments du langage

Constantes globales
Fonctions globales
Opérateurs
Instructions, mots clés et directives
Types spéciaux

Annexes

Nouveautés
Erreurs de compilation
Avertissements du compilateur
Erreurs d’exécution
Migration vers ActionScript 3
Jeux de caractères pris en charge
Balises MXML uniquement
Eléments XML de mouvement
Balises Timed Text
Liste des éléments déconseillés
Constantes d’implémentation d’accessibilité
Utilisation des exemples de code ActionScript
Informations juridiques
Packageflash.geom
Classepublic class Matrix3D
HéritageMatrix3D Inheritance Object

Version du langage: ActionScript 3.0
Versions du moteur d’exécution: Flash Player 10, AIR 1.5

La classe Matrix3D représente une matrice de transformation qui détermine la position et l’orientation d’un l’objet d’affichage tridimensionnel (3D). La matrice peut exécuter des fonctions de transformation : translation (repositionnement le long des axes x, y et z), rotation et mise à l’échelle (redimensionnement), entre autres. La classe Matrix3D peut également exécuter une projection en perspective, qui mappe des points de l’espace de coordonnées 3D sur un affichage bidimensionnel (2D).

Une seule matrice peut combiner plusieurs transformations et les appliquer simultanément à un objet d’affichage 3D. Par exemple, une matrice peut être appliquée à des coordonnées 3D et effectuer une rotation, puis une translation.

Lorsque vous définissez de façon explicite la propriété z ou l’une des propriétés de rotation ou de mise à l’échelle d’un objet d’affichage, un objet Matrix3D correspondant est automatiquement créé.

Vous pouvez accéder à l’objet Matrix3D d’un objet d’affichage 3D par le biais de la propriété transform.matrix3d. Les objets 2D ne possèdent pas d’objet Matrix3D.

La valeur de la propriété z d’un objet 2D est zéro et la valeur de sa propriété matrix 3D est null.

Remarque : si le même objet Matrix3D est attribué à deux objets d’affichage distincts, une erreur d’exécution est renvoyée.

La classe Matrix3D utilise une matrice carrée 4x4 : une table de quatre lignes et colonnes de nombres qui contiennent les données de la transformation. Les trois premières lignes de la matrice contiennent les données de chaque axe 3D (x,y,z). Les informations de translation sont dans la dernière colonne. Les données d’orientation et de mise à l’échelle sont dans les trois premières colonnes. Les facteurs de mise à l’échelle sont les nombres situés dans les diagonales des trois premières colonnes. Voici une représentation d’éléments Matrix3D :

Eléments Matrix3D

Il n’est pas nécessaire de comprendre les mathématiques matricielles pour pouvoir utiliser la classe Matrix3D. Elle offre des méthodes spécifiques qui simplifient la tâche de la transformation et de la projection : appendTranslation(), appendRotation() et interpolateTo(). Vous pouvez également utiliser les méthodes decompose() et recompose() ou la propriété rawData pour accéder aux éléments de la matrice sous-jacente.

Les objets d’affichage mettent en cache les propriétés de rotation de leurs axes pour obtenir une rotation distincte pour chaque axe et gérer les différentes combinaisons de rotation. Lorsqu’une méthode d’un objet Matrix3D est appelée pour transformer un objet d’affichage, le cache de la rotation de l’objet est invalidé.

Plus d’exemples

Eléments de l’API associés



Propriétés publiques
 PropriétéDéfini par
 Inheritedconstructor : Object
Référence à l’objet de classe ou à la fonction constructeur d’une occurrence donnée d’un objet.
Object
  determinant : Number
[lecture seule] Objet Number qui détermine si une matrice est réversible.
Matrix3D
  position : Vector3D
Objet Vector3D contenant la position, les coordonnées 3D (x,y,z) d’un objet d’affichage dans l’image de référence de la transformation.
Matrix3D
  rawData : Vector.<Number>
Vecteur de 16 numéros, où chacun des quatre éléments est une colonne d’une matrice 4x4.
Matrix3D
Méthodes publiques
 MéthodeDéfini par
  
Matrix3D(v:Vector.<Number> = null)
Crée un objet Matrix3D.
Matrix3D
  
Ajoute la matrice en multipliant un autre objet Matrix3D par l’objet Matrix3D actuel.
Matrix3D
  
appendRotation(degrees:Number, axis:Vector3D, pivotPoint:Vector3D = null):void
Ajoute une rotation incrémentielle à la fin d’un objet Matrix3D.
Matrix3D
  
appendScale(xScale:Number, yScale:Number, zScale:Number):void
Ajoute un changement d’échelle incrémentiel le long des axes x, y et z à la fin d’un objet Matrix3D.
Matrix3D
  
Ajoute une translation incrémentielle, repositionnement le long des axes x, y et z, à la fin d’un objet Matrix3D.
Matrix3D
  
Renvoie un nouvel objet Matrix3D qui est une copie exacte de l’objet Matrix3D actuel.
Matrix3D
  
copyColumnFrom(column:uint, vector3D:Vector3D):void
Copie un objet Vector3D dans la colonne spécifique de l’objet Matrix3D appelant.
Matrix3D
  
copyColumnTo(column:uint, vector3D:Vector3D):void
Copie la colonne spécifique de l’objet Matrix3D appelant dans l’objet Vector3D.
Matrix3D
  
copyFrom(sourceMatrix3D:Matrix3D):void
Copie toutes les données de matrice de l’objet Matrix3D source dans l’objet Matrix3D appelant.
Matrix3D
  
copyRawDataFrom(vector:Vector.<Number>, index:uint = 0, transpose:Boolean = false):void
Copie toutes les données vectorielles de l’objet vectoriel source dans l’objet Matrix3D appelant.
Matrix3D
  
copyRawDataTo(vector:Vector.<Number>, index:uint = 0, transpose:Boolean = false):void
Copie toutes les données de matrice de l’objet Matrix3D appelant dans le vecteur fourni.
Matrix3D
  
copyRowFrom(row:uint, vector3D:Vector3D):void
Copie un objet Vector3D dans la ligne correspondante de l’objet Matrix3D appelant.
Matrix3D
  
copyRowTo(row:uint, vector3D:Vector3D):void
Copie la ligne correspondante de l’objet Matrix3D appelant dans l’objet Vector3D.
Matrix3D
  
Matrix3D
  
decompose(orientationStyle:String = "eulerAngles"):Vector.<Vector3D>
Renvoie les paramètres de translation, de rotation et d’échelle de la matrice de transformation, sous forme de vecteur de trois objets Vector3D.
Matrix3D
  
Utilise une matrice de transformation sans ses éléments de translation pour transformer un objet Vector3D d’une coordonnée spatiale en une autre.
Matrix3D
 Inherited
Indique si la propriété spécifiée d’un objet est définie.
Object
  
Convertit la matrice actuelle en matrice d’identité ou unitaire.
Matrix3D
  
interpolate(thisMat:Matrix3D, toMat:Matrix3D, percent:Number):Matrix3D
[statique] Interpole les transformations de translation, de rotation et d'échelle d'une seule matrice vers celles de la matrice cible.
Matrix3D
  
Interpole cette matrice vers les transformations de translation, de rotation et d'échelle de la matrice cible.
Matrix3D
  
Inverse la matrice actuelle.
Matrix3D
 Inherited
Indique si une occurrence de la classe Object figure dans la chaîne de prototype de l’objet spécifié en tant que paramètre.
Object
  
pointAt(pos:Vector3D, at:Vector3D = null, up:Vector3D = null):void
Fait pivoter l’objet d’affichage de sorte qu’il fasse face à une position spécifiée.
Matrix3D
  
Ajoute une matrice au début en multipliant l’objet Matrix3D actuel par un autre objet Matrix3D.
Matrix3D
  
prependRotation(degrees:Number, axis:Vector3D, pivotPoint:Vector3D = null):void
Ajoute une rotation incrémentielle au début d’un objet Matrix3D.
Matrix3D
  
prependScale(xScale:Number, yScale:Number, zScale:Number):void
Ajoute une modification d’échelle incrémentielle le long des axes x, y et z au début d’un objet Matrix3D.
Matrix3D
  
Ajoute une translation incrémentielle, repositionnement le long des axes x, y et z, au début d’un objet Matrix3D.
Matrix3D
 Inherited
Indique si la propriété spécifiée existe et est énumérable.
Object
  
recompose(components:Vector.<Vector3D>, orientationStyle:String = "eulerAngles"):Boolean
Définit les paramètres de translation, de rotation et d’échelle de la matrice de transformation.
Matrix3D
 Inherited
Définit la disponibilité d’une propriété dynamique pour les opérations en boucle.
Object
 Inherited
Renvoie la représentation de chaîne de cet objet, formatée selon les paramètres régionaux en vigueur.
Object
 Inherited
Renvoie la représentation sous forme de chaîne de l’objet spécifié.
Object
  
Utilise la matrice de transformation pour transformer un objet Vector3D d’une coordonnée spatiale en une autre.
Matrix3D
  
Utilise la matrice de transformation pour transformer un vecteur de nombres d’une coordonnée spatiale en une autre.
Matrix3D
  
Convertit l’objet Matrix3D en cours en une matrice dont les lignes et les colonnes sont permutées.
Matrix3D
 Inherited
Renvoie la valeur primitive de l’objet spécifié.
Object
Détails de la propriété

determinant

propriété
determinant:Number  [lecture seule]

Version du langage: ActionScript 3.0
Versions du moteur d’exécution: Flash Player 10, AIR 1.5

Objet Number qui détermine si une matrice est réversible.

Un objet Matrix3D doit être réversible. Pour être certain qu’un objet Matrix3D est réversible, vous pouvez utiliser la propriété determinant. Si la propriété determinant est zéro, il n’existe aucun inverse de la matrice. Par exemple, si une ligne ou une colonne entière d’une matrice est zéro ou si deux lignes ou deux colonnes sont égales, la propriété determinant est zéro. La propriété determinant permet également de résoudre une suite d’équations.

Seule une matrice carrée, telle que la classe Matrix3D, possède une propriété determinant.



Implémentation
    public function get determinant():Number

Eléments de l’API associés

position

propriété 
position:Vector3D

Version du langage: ActionScript 3.0
Versions du moteur d’exécution: Flash Player 10, AIR 1.5

Objet Vector3D contenant la position, les coordonnées 3D (x,y,z) d’un objet d’affichage dans l’image de référence de la transformation. La propriété position permet d’accéder immédiatement au vecteur de translation de la matrice de l’objet d’affichage sans qu’il soit nécessaire de décomposer et de recomposer la matrice.

La propriété position vous permet d’obtenir et de définir les éléments de translation de la matrice de transformation.



Implémentation
    public function get position():Vector3D
    public function set position(value:Vector3D):void

Eléments de l’API associés

rawData

propriété 
rawData:Vector.<Number>

Version du langage: ActionScript 3.0
Versions du moteur d’exécution: Flash Player 10, AIR 1.5

Vecteur de 16 numéros, où chacun des quatre éléments est une colonne d’une matrice 4x4.

Une exception est renvoyée si la propriété rawData est définie sur une matrice non réversible. L’objet Matrix3D doit être réversible. Si une matrice non réversible est nécessaire, créez une sous-classe de l’objet Matrix3D.



Implémentation
    public function get rawData():Vector.<Number>
    public function set rawData(value:Vector.<Number>):void

Eléments de l’API associés

Détails du constructeur

Matrix3D

()Constructeur
public function Matrix3D(v:Vector.<Number> = null)

Version du langage: ActionScript 3.0
Versions du moteur d’exécution: Flash Player 10, AIR 1.5

Crée un objet Matrix3D. Les objets Matrix3D peuvent être initialisés avec un objet Vector de 16 nombres, où chaque groupe de quatre éléments est une colonne. Après la création de l’objet Matrix3D, vous pouvez accéder aux éléments de sa matrice par la propriété rawData.

Si aucun paramètre n’est défini, le constructeur produit un objet Matrix3D d’identité ou unitaire. Dans la notation des matrices, une matrice d’identité a une valeur de un pour tous les éléments situés sur la diagonale principale et une valeur de zéro pour tous les autres éléments. La valeur de la propriété rawData d’une matrice d’identité est : 1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1. La position ou la valeur de translation de la matrice d’identité est Vector3D(0,0,0), le paramètre de rotation est Vector3D(0,0,0) et la valeur de mise à l’échelle est Vector3D(1,1,1).

Paramètres
v:Vector.<Number> (default = null) — Vecteur de 16 numéros, où chacun des quatre éléments est une colonne d’une matrice 4x4.

Eléments de l’API associés

Détails de la méthode

append

()méthode
public function append(lhs:Matrix3D):void

Version du langage: ActionScript 3.0
Versions du moteur d’exécution: Flash Player 10, AIR 1.5

Ajoute la matrice en multipliant un autre objet Matrix3D par l’objet Matrix3D actuel. Le résultat combine les deux transformations de matrice. Vous pouvez multiplier un objet Matrix3D par de nombreuses matrices. L’objet Matrix3D final contient le résultat de toutes les transformations.

Les multiplications de matrices diffèrent des additions de matrices. La multiplication de matrices n’est pas commutative. En d’autres termes, A fois B n’est pas égal à B fois A. Avec la méthode append(), la multiplication s’effectue à partir du côté gauche, ce qui signifie que l’objet Matrix3D lhs est situé à gauche de l’opérateur de la multiplication.

thisMatrix = lhs * thisMatrix;

La première fois que la méthode append() est appelée, elle effectue une modification par rapport à l’espace parent. Les appels suivants sont relatifs à l’image de référence de l’objet Matrix3D ajouté.

La méthode append() remplace la matrice actuelle par la matrice ajoutée. Si vous souhaitez ajouter deux matrices sans modifier la matrice actuelle, copiez cette dernière à l’aide de la méthode clone() et appliquez la méthode append() à la copie.

Paramètres

lhs:Matrix3D — Matrice gauche multipliée par l’objet Matrix3D actuel.

Eléments de l’API associés

appendRotation

()méthode 
public function appendRotation(degrees:Number, axis:Vector3D, pivotPoint:Vector3D = null):void

Version du langage: ActionScript 3.0
Versions du moteur d’exécution: Flash Player 10, AIR 1.5

Ajoute une rotation incrémentielle à la fin d’un objet Matrix3D. Lorsque l’objet Matrix3D est appliqué à un objet d’affichage, la matrice exécute la rotation après les autres transformations dans l’objet Matrix3D.

La rotation de l’objet d’affichage est définie par un axe, un degré incrémentiel de rotation autour de l’axe et un point de pivot facultatif pour le centre de la rotation de l’objet. L’axe peut être toute direction générale. Les axes courants sont X_AXIS (Vector3D(1,0,0)), Y_AXIS (Vector3D(0,1,0)) et Z_AXIS (Vector3D(0,0,1)). Dans la terminologie de l’aviation, la rotation autour de l’axe y est appelée lacet. La rotation autour de l’axe x est appelée tangage ou pas. La rotation autour de l’axe z est appelée roulis.

L’ordre des transformations a son importance. Une rotation suivie d’une transformation de translation n’a pas le même effet qu’une translation suivie d’une transformation de rotation.

L’effet de la rotation n’est pas absolu. Il est relatif à la position et à l’orientation actuelles. Pour apporter une modification absolue à la matrice de transformation, utilisez la méthode recompose(). La méthode appendRotation() diffère également de la propriété rotation de l’axe de l’objet d’affichage, telle que la propriété rotationX. La propriété rotation est toujours exécutée avant toute translation, puisque la méthode appendRotation() est exécutée par rapport à tout élément déjà présent dans la matrice. Pour être certain d’obtenir un effet similaire à la propriété rotation de l’axe de l’objet d’affichage, utilisez la méthode prependRotation(), qui exécute la rotation avant les autres transformations dans la matrice.

Lorsque la transformation de la méthode appendRotation() est appliquée à un objet Matrix3D d’un objet d’affichage, les valeurs mises en cache de la propriété rotation de l’objet d’affichage sont invalidées.

Pour qu’un objet d’affichage pivote autour d’un point spécifique par rapport à son emplacement, une méthode consiste à définir la translation de l’objet sur le point spécifié, à faire pivoter l’objet avec la méthode appendRotation() et à lui appliquer une translation pour le ramener dans sa position d’origine. Dans l’exemple suivant, l’objet d’affichage 3D myObject effectue une rotation sur l’axe y autour de la coordonnée (10,10,0).

    
    myObject.z = 1; 
    myObject.transform.matrix3D.appendTranslation(10,10,0);
    myObject.transform.matrix3D.appendRotation(1, Vector3D.Y_AXIS);
    myObject.transform.matrix3D.appendTranslation(-10,-10,0);
     
    

Paramètres

degrees:Number — Degré de la rotation.
 
axis:Vector3D — Axe ou direction de la rotation. Les axes habituels sont X_AXIS (Vector3D(1,0,0)), Y_AXIS (Vector3D(0,1,0)) et Z_AXIS (Vector3D(0,0,1)). Ce vecteur doivent avoir une longueur de 1.
 
pivotPoint:Vector3D (default = null) — Point qui détermine le centre de la rotation d’un objet. Le point de pivot par défaut d’un objet est son point d’alignement.

Eléments de l’API associés

appendScale

()méthode 
public function appendScale(xScale:Number, yScale:Number, zScale:Number):void

Version du langage: ActionScript 3.0
Versions du moteur d’exécution: Flash Player 10, AIR 1.5

Ajoute un changement d’échelle incrémentiel le long des axes x, y et z à la fin d’un objet Matrix3D. Lorsque l’objet Matrix3D est appliqué à un objet d’affichage, la matrice exécute les changements d’échelle après les autres transformations dans l’objet Matrix3D. Le facteur d’échelle par défaut est (1.0, 1.0, 1.0).

L’échelle est définie comme un ensemble de trois modifications incrémentielles le long des trois axes (x,y,z). Vous pouvez multiplier chaque axe par un nombre différent. Lorsque des modifications d’échelle sont appliquées à un objet d’affichage, la taille de l’objet augmente ou diminue. Par exemple, définir les axes x, y et z sur deux double la taille de l’objet, alors que définir les axes sur 0.5 réduit la taille de moitié. Pour être certain que la transformation d’échelle n’affecte qu’un axe spécifique, définissez les autres paramètres sur un. Un paramètre de un signifie qu’aucune modification d’échelle n’est apportée le long de l’axe spécifique.

La méthode appendScale() peut être utilisée pour le redimensionnement mais aussi pour la gestion des distorsions, par exemple pour étirer ou rétrécir un objet d’affichage, ou pour faire un zoom avant ou arrière sur un emplacement. Les transformations d’échelle sont exécutées automatiquement pendant la rotation et la translation d’un objet d’affichage.

L’ordre des transformations a son importance. Un redimensionnement suivi d’une transformation de translation n’a pas le même effet qu’une translation suivie d’une transformation de redimensionnement.

Paramètres

xScale:Number — Multiplicateur utilisé pour redimensionner l’objet le long de l’axe x.
 
yScale:Number — Multiplicateur utilisé pour redimensionner l’objet le long de l’axe y.
 
zScale:Number — Multiplicateur utilisé pour redimensionner l’objet le long de l’axe z.

Eléments de l’API associés

appendTranslation

()méthode 
public function appendTranslation(x:Number, y:Number, z:Number):void

Version du langage: ActionScript 3.0
Versions du moteur d’exécution: Flash Player 10, AIR 1.5

Ajoute une translation incrémentielle, repositionnement le long des axes x, y et z, à la fin d’un objet Matrix3D. Lorsque l’objet Matrix3D est appliqué à un objet d’affichage, la matrice effectue les modifications de translation après les autres transformations dans l’objet Matrix3D.

La translation est définie comme un ensemble de trois modifications incrémentielles le long des trois axes (x,y,z). Lorsque la transformation est appliquée à un objet d’affichage, celui-ci se déplace de son point d’origine le long des axes x, y et z, tel que spécifié par les paramètres. Pour être certain que la translation n’affecte qu’un axe spécifique, définissez les autres paramètres sur zéro. Un paramètre de valeur zéro signifie qu’aucune modification n’a lieu le long de l’axe spécifique.

Les modifications de translation ne sont pas absolues. Elles sont relatives à la position et à l’orientation actuelles de la matrice. Pour apporter une modification absolue à la matrice de transformation, utilisez la méthode recompose(). L’ordre des transformations a aussi son importance. Une translation suivie d’une transformation de rotation n’a pas le même effet qu’une rotation suivie d’une translation.

Paramètres

x:Number — Translation incrémentielle le long de l’axe x.
 
y:Number — Translation incrémentielle le long de l’axe y.
 
z:Number — Translation incrémentielle le long de l’axe z.

Eléments de l’API associés

clone

()méthode 
public function clone():Matrix3D

Version du langage: ActionScript 3.0
Versions du moteur d’exécution: Flash Player 10, AIR 1.5

Renvoie un nouvel objet Matrix3D qui est une copie exacte de l’objet Matrix3D actuel.

Valeur renvoyée
Matrix3D — Nouvel objet Matrix3D qui est une copie exacte de l’objet Matrix3D actuel.

copyColumnFrom

()méthode 
public function copyColumnFrom(column:uint, vector3D:Vector3D):void

Version du langage: ActionScript 3.0
Versions du moteur d’exécution: Flash Player 11, AIR 3.0, Flash Lite 4

Copie un objet Vector3D dans la colonne spécifique de l’objet Matrix3D appelant.

Paramètres

column:uint — Colonne de destination de la copie.
 
vector3D:Vector3D — Objet Vector3D à partir duquel copier les données.

copyColumnTo

()méthode 
public function copyColumnTo(column:uint, vector3D:Vector3D):void

Version du langage: ActionScript 3.0
Versions du moteur d’exécution: Flash Player 11, AIR 3.0, Flash Lite 4

Copie la colonne spécifique de l’objet Matrix3D appelant dans l’objet Vector3D.

Paramètres

column:uint — Colonne à partir de laquelle copier les données.
 
vector3D:Vector3D — Objet Vector3D de destination de la copie.

copyFrom

()méthode 
public function copyFrom(sourceMatrix3D:Matrix3D):void

Version du langage: ActionScript 3.0
Versions du moteur d’exécution: Flash Player 11, AIR 3.0, Flash Lite 4

Copie toutes les données de matrice de l’objet Matrix3D source dans l’objet Matrix3D appelant.

Paramètres

sourceMatrix3D:Matrix3D — Objet Matrix3D à partir duquel copier les données.

copyRawDataFrom

()méthode 
public function copyRawDataFrom(vector:Vector.<Number>, index:uint = 0, transpose:Boolean = false):void

Version du langage: ActionScript 3.0
Versions du moteur d’exécution: Flash Player 11, AIR 3.0, Flash Lite 4

Copie toutes les données vectorielles de l’objet vectoriel source dans l’objet Matrix3D appelant. Le paramètre d’index facultatif permet de sélectionner n’importe quel logement de départ dans le vecteur.

Paramètres

vector:Vector.<Number> — Objet vectoriel à partir duquel copier les données.
 
index:uint (default = 0)
 
transpose:Boolean (default = false)

copyRawDataTo

()méthode 
public function copyRawDataTo(vector:Vector.<Number>, index:uint = 0, transpose:Boolean = false):void

Version du langage: ActionScript 3.0
Versions du moteur d’exécution: Flash Player 11, AIR 3.0, Flash Lite 4

Copie toutes les données de matrice de l’objet Matrix3D appelant dans le vecteur fourni. Le paramètre d’index facultatif permet de sélectionner n’importe quel logement de départ cible dans le vecteur.

Paramètres

vector:Vector.<Number> — Objet vectoriel dans lequel copier les données.
 
index:uint (default = 0)
 
transpose:Boolean (default = false)

copyRowFrom

()méthode 
public function copyRowFrom(row:uint, vector3D:Vector3D):void

Version du langage: ActionScript 3.0
Versions du moteur d’exécution: Flash Player 11, AIR 3.0, Flash Lite 4

Copie un objet Vector3D dans la ligne correspondante de l’objet Matrix3D appelant.

Paramètres

row:uint — Ligne à partir de laquelle copier les données.
 
vector3D:Vector3D — Objet Vector3D à partir duquel copier les données.

copyRowTo

()méthode 
public function copyRowTo(row:uint, vector3D:Vector3D):void

Version du langage: ActionScript 3.0
Versions du moteur d’exécution: Flash Player 11, AIR 3.0, Flash Lite 4

Copie la ligne correspondante de l’objet Matrix3D appelant dans l’objet Vector3D.

Paramètres

row:uint — Ligne à partir de laquelle copier les données.
 
vector3D:Vector3D — Objet Vector3D dans lequel copier les données.

copyToMatrix3D

()méthode 
public function copyToMatrix3D(dest:Matrix3D):void

Paramètres

dest:Matrix3D

decompose

()méthode 
public function decompose(orientationStyle:String = "eulerAngles"):Vector.<Vector3D>

Version du langage: ActionScript 3.0
Versions du moteur d’exécution: Flash Player 10, AIR 1.5

Renvoie les paramètres de translation, de rotation et d’échelle de la matrice de transformation, sous forme de vecteur de trois objets Vector3D. Le premier objet Vector3D détient les éléments de translation. Le deuxième objet Vector3D détient les éléments de rotation. Le troisième objet Vector3D détient les éléments d’échelle.

Certaines méthodes Matrix3D, par exemple interpolateTo(), décomposent et recomposent automatiquement la matrice pour effectuer leur transformation.

Pour modifier la transformation de la matrice avec une image de référence de parent absolu, récupérez les paramètres avec la méthode decompose() et apportez les modifications appropriées. Vous pouvez alors définir l’objet Matrix3D sur la transformation modifiée à l’aide de la méthode recompose().

Le paramètre de la méthode decompose() définit le style d’orientation à utiliser pour la transformation. L’orientation par défaut est eulerAngles, qui définit l’orientation avec trois angles de rotation distincts pour chaque axe. Les rotations s’effectuent consécutivement et ne modifient pas l’axe des autres rotations. Les propriétés de rotation de l’axe de l’objet d’affichage effectuent une transformation de style d’orientation Angles d’Euler. Les autres options de style d’orientation sont axisAngle et quaternion. L’orientation Angle des axes utilise une combinaison d’un axe et d’un angle pour déterminer l’orientation. L’axe autour duquel l’objet pivote est un vecteur unitaire qui représente une direction. L’angle représente l’amplitude de la rotation autour du vecteur. La direction détermine également l’endroit qui fait face à l’objet d’affichage et l’angle détermine la direction du haut. Les méthodes appendRotation() et prependRotation() utilisent l’orientation Angle des axes. L’orientation quaternion utilise des nombres complexes et le quatrième élément d’un vecteur. Les trois axes de rotation (x,y,z) et un angle de rotation (w) représentent l’orientation. La méthode interpolate() utilise l’orientation quaternion.

Paramètres

orientationStyle:String (default = "eulerAngles") — Paramètre facultatif qui détermine le style d’orientation utilisé pour la transformation de la matrice. Les trois types de style d’orientation sont eulerAngles (EULER_ANGLES constants), axisAngle (AXIS_ANGLE constant) et quaternion (QUATERNION constant). Pour plus d’informations sur les différents styles d’orientation, voir la classe geom.Orientation3D.

Valeur renvoyée
Vector.<Vector3D> — Vecteur de trois objets Vector3D, contenant chacun les paramètres de translation, de rotation et de mise à l’échelle, respectivement.

Eléments de l’API associés


Exemple  ( Comment utiliser cet exemple )

Cet exemple utilise les méthodes decompose() et recompose() pour étirer horizontalement une ellipse lorsqu’elle va vers le point de fuite. Le premier objet Vector3D renvoyé par la méthode decompose() contient les coordonnées de translation. Le troisième objet Vector3D détient les paramètres d’échelle. La méthode incrementBy() de l’objet Vector3D incrémente les paramètres d’échelle et la translation absolue de la matrice.
package {
    import flash.display.MovieClip;
    import flash.display.Shape;
    import flash.geom.*;
    import flash.events.Event;
    
    public class Matrix3DdecomposeExample extends MovieClip {
        private var ellipse:Shape = new Shape();

        public function Matrix3DdecomposeExample():void {
            
            ellipse.x = (this.stage.stageWidth / 2);
            ellipse.y = (this.stage.stageHeight - 40);
            ellipse.z = 1;
            ellipse.graphics.beginFill(0xFF0000);
            ellipse.graphics.lineStyle(2);
            ellipse.graphics.drawEllipse(0, 0, 50, 40);
            ellipse.graphics.endFill();
            addChild(ellipse);

            ellipse.addEventListener(Event.ENTER_FRAME, enterFrameHandler);
        }

        private function enterFrameHandler(e:Event):void {  

            var v3:Vector.<Vector3D> = new Vector.<Vector3D>(3);
            v3 = ellipse.transform.matrix3D.decompose();
            v3[0].incrementBy(new Vector3D(0,0,1));
            v3[2].incrementBy(new Vector3D(0.01,0,0));
            ellipse.transform.matrix3D.recompose(v3);
        }
    }
}

deltaTransformVector

()méthode 
public function deltaTransformVector(v:Vector3D):Vector3D

Version du langage: ActionScript 3.0
Versions du moteur d’exécution: Flash Player 10, AIR 1.5

Utilise une matrice de transformation sans ses éléments de translation pour transformer un objet Vector3D d’une coordonnée spatiale en une autre. L’objet Vector3D renvoyé contient les nouvelles coordonnées après que les transformations de rotation et de mise à l’échelle aient été appliquées. Si la méthode deltaTransformVector() applique une matrice qui ne contient qu’une transformation de translation, l’objet Vector3D renvoyé correspond à l’objet Vector3D d’origine.

Vous pouvez utiliser la méthode deltaTransformVector() pour qu’un objet d’affichage d’un espace de coordonnées réponde à la transformation de rotation d’un deuxième objet d’affichage. L’objet ne copie pas la rotation, mais modifie sa position pour refléter les modifications de la rotation. Par exemple pour utiliser l’API display.Graphics en vue de dessiner un objet 3D en rotation, vous devez mapper les coordonnées de rotation de cet objet sur un point 2D. A l’aide de la méthode deltaTransformVector(), récupérez tout d’abord les coordonnées 3D de l’objet après chaque rotation. Ensuite, appliquez la méthode local3DToGlobal() de l’objet d’affichage pour convertir les coordonnées 3D en points 2D. Vous pouvez alors utiliser les points 2D pour dessiner l’objet 3D en rotation.

Remarque : cette méthode règle automatiquement le composant w de l’objet Vector3D transmis sur 0.0.

Paramètres

v:Vector3D — Objet Vector3D contenant les coordonnées à transformer.

Valeur renvoyée
Vector3D — Objet Vector3D avec les coordonnées transformées.

Eléments de l’API associés

identity

()méthode 
public function identity():void

Version du langage: ActionScript 3.0
Versions du moteur d’exécution: Flash Player 10, AIR 1.5

Convertit la matrice actuelle en matrice d’identité ou unitaire. Une matrice d’identité a une valeur de un pour les éléments situés sur la diagonale principale et une valeur de zéro pour tous les autres éléments. Le résultat est une matrice dont la valeur rawData est 1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1 et le paramètre de rotation est défini sur Vector3D(0,0,0), le paramètre de position ou de translation est défini sur Vector3D(0,0,0) et l’échelle est définie sur Vector3D(1,1,1). Voici une représentation de matrice d’identité.

Matrice d’identité

Un objet transformé par l’application d’une matrice d’identité n’effectue aucune transformation. En d’autres termes, lorsqu’une matrice est multipliée par une matrice d’identité, le résultat est une matrice identique à la matrice d’origine.

interpolate

()méthode 
public static function interpolate(thisMat:Matrix3D, toMat:Matrix3D, percent:Number):Matrix3D

Version du langage: ActionScript 3.0
Versions du moteur d’exécution: Flash Player 10, AIR 1.5

Interpole les transformations de translation, de rotation et d'échelle d'une seule matrice vers celles de la matrice cible.

La méthode interpolate() évite certains des résultats non désirés pouvant survenir avec l’utilisation de méthodes telles que les propriétés de rotation de l’axe de l’objet d’affichage. La méthode interpolate() invalide la valeur mise en cache de la propriété rotation de l’objet d’affichage et convertit les éléments de rotation de la matrice de l’objet d’affichage en quaternion avant l’interpolation. Un quaternion garantit le chemin le plus efficace et le plus court pour la rotation. Il permet également d’obtenir une rotation sans gimbal lock. Un gimbal lock peut se produire lorsque les angles d’Euler sont utilisés et que chaque axe est traité indépendamment. Lors d’une rotation autour de plusieurs axes, les axes peuvent s’aligner et entraîner des résultats inattendus. La rotation quaternion permet d’éviter le gimbal lock.

Les prochains appels à la méthode interpolate() peuvent produire un effet tel qu’un objet d’affichage démarrant rapidement, puis s’approchant lentement d’un autre objet d’affichage. Par exemple, si vous définissez le paramètre thisMat sur l’objet Matrix3D renvoyé, le paramètre toMat sur l’objet Matrix3D associé de l’objet d’affichage cible et le paramètre percent sur 0.1, l’objet d’affichage se déplace de dix pour-cent vers l’objet cible. Lors des prochains appels ou dans les images suivantes, l’objet parcourt dix pour cent des 90 pour cent restants, puis dix pour cent de la distance restante jusqu’à atteindre la cible.

Paramètres

thisMat:Matrix3D — Objet Matrix3D qui doit être interpolé.
 
toMat:Matrix3D — Objet Matrix3D cible.
 
percent:Number — Valeur comprise entre 0 et 1 qui détermine le pourcentage d’interpolation de l’objet Matrix3D thisMat vers l’objet Matrix3D cible.

Valeur renvoyée
Matrix3D — Objet Matrix3D avec des éléments qui placent les valeurs de la matrice entre la matrice d’origine et la matrice cible. Lorsque la matrice renvoyée est appliquée à l’objet d’affichage this, l’objet se rapproche de l’objet cible en fonction du pourcentage spécifié.

Eléments de l’API associés

interpolateTo

()méthode 
public function interpolateTo(toMat:Matrix3D, percent:Number):void

Version du langage: ActionScript 3.0
Versions du moteur d’exécution: Flash Player 10, AIR 1.5

Interpole cette matrice vers les transformations de translation, de rotation et d'échelle de la matrice cible.

La méthode interpolateTo() permet d’éviter des résultats non désirés pouvant survenir lors de l’utilisation de méthodes telles que les propriétés de rotation de l’axe de l’objet d’affichage. La méthode interpolateTo() invalide la valeur mise en cache de la propriété rotation de l’objet d’affichage et convertit les éléments d’orientation de la matrice de l’objet d’affichage en quaternion avant l’interpolation. Un quaternion garantit le chemin le plus efficace et le plus court pour la rotation. Il permet également d’obtenir une rotation sans gimbal lock. Un gimbal lock peut se produire lorsque les angles d’Euler sont utilisés et que chaque axe est traité indépendamment. Lors d’une rotation autour de plusieurs axes, les axes peuvent s’aligner et entraîner des résultats inattendus. La rotation quaternion permet d’éviter le gimbal lock.

Remarque : Dans le cas d’une interpolation, la valeur de redimensionnement de la matrice est réinitialisée et cette dernière est normalisée.

Les prochains appels à la méthode interpolateTo() peuvent produire un effet tel qu’un objet d’affichage démarrant rapidement, puis s’approchant lentement d’un autre objet d’affichage. Par exemple, si le paramètre percent est défini sur 0.1, l’objet d’affichage se déplace de 10 % vers l’objet cible spécifié par le paramètre toMat. Lors des prochains appels ou dans les images suivantes, l’objet parcourt dix pour cent des 90 pour cent restants, puis dix pour cent de la distance restante jusqu’à atteindre la cible.

Paramètres

toMat:Matrix3D — Objet Matrix3D cible.
 
percent:Number — Valeur comprise entre 0 et 1 qui détermine l’emplacement de l’objet d’affichage par rapport à la cible. Plus la valeur est proche de 1.0, plus l’objet d’affichage est proche de sa position actuelle. Plus la valeur est proche de 0, plus l’objet d’affichage est proche de la cible.

Eléments de l’API associés


Exemple  ( Comment utiliser cet exemple )

Dans cet exemple, un objet d’affichage tridimensionnel nommé ellipse2 s’avance vers ellipse1, un autre objet d’affichage tridimensionnel. ellipse2 suit ellipse1 en essayant de l’attraper. Si ellipse1 ne pivote pas autour de son axe y, ellipse2 va atteindre et se poser sur ellipse1. Les deux ellipses sont dessinées de la même façon mais sont placées dans différents espaces monde tridimensionnels.
package {
    import flash.display.MovieClip;
    import flash.display.Shape;
    import flash.display.Graphics;
    import flash.geom.*;
    import flash.events.Event;

    public class InterpolateToExample extends MovieClip {
        private var ellipse1:Shape = new Shape();
        private var ellipse2:Shape = new Shape();

        public function InterpolateToExample():void {

            ellipse1 = myEllipses(250, 100, 500, 0xFF0000);
            addChild(ellipse1);
            
            ellipse2 = myEllipses(-30, 120, 1, 0x00FF00);
            addChild(ellipse2);

            addEventListener(Event.ENTER_FRAME, enterFrameHandler);
        }

        private function myEllipses(x:Number, y:Number, z:Number, c:Number):Shape {
            var s:Shape = new Shape();                            
            s.x = x;
            s.y = y;
            s.z = z;
            s.graphics.beginFill(c);
            s.graphics.lineStyle(2);
            s.graphics.drawEllipse(100, 50, 100, 80);
            s.graphics.endFill();
            return s;
        }

        private function enterFrameHandler(e:Event) {
            ellipse1.rotationY += 1;

            ellipse2.transform.matrix3D.interpolateTo(ellipse1.transform.matrix3D, 0.1);
        }
    }
}

invert

()méthode 
public function invert():Boolean

Version du langage: ActionScript 3.0
Versions du moteur d’exécution: Flash Player 10, AIR 1.5

Inverse la matrice actuelle. Une matrice inversée a la même taille que l’originale mais effectue la transformation opposée à la matrice originale. Par exemple, si un objet de la matrice d’origine pivote autour de l’axe x dans une direction, l’objet de la matrice inverse pivote autour de l’axe dans la direction opposée. L’application d’une matrice inversée à un objet annule la transformation effectuée par la matrice d’origine. Lorsqu’une matrice est multipliée par sa matrice inverse, le résultat est une matrice d’identité.

L’inverse d’une matrice peut être utilisé pour diviser une matrice par une autre. Une manière de diviser une matrice A par une matrice B consiste à multiplier la matrice A par l’inverse de la matrice B. La matrice inverse peut également être utilisée avec un espace de caméra. Lorsque la caméra se déplace dans l’espace monde, l’objet présent dans le monde doit se déplacer dans le sens opposé pour passer de l’espace monde à l’espace de la caméra ou à l’espace visuel. Par exemple, si la caméra se rapproche, les objets deviennent plus gros. En d’autres termes, si la caméra se déplace vers le bas de l’axe z du monde, l’objet se déplace vers le haut de ce même axe.

La méthode invert() remplace la matrice actuelle par une matrice inversée. Pour inverser une matrice sans modifier la matrice actuelle, commencez par copier la matrice actuelle à l’aide de la méthode clone(), puis appliquez la méthode invert() à la copie.

L’objet Matrix3D doit être réversible.

Valeur renvoyée
Boolean — Renvoie true si la matrice a bien été inversée.

Eléments de l’API associés

pointAt

()méthode 
public function pointAt(pos:Vector3D, at:Vector3D = null, up:Vector3D = null):void

Version du langage: ActionScript 3.0
Versions du moteur d’exécution: Flash Player 10, AIR 1.5

Fait pivoter l’objet d’affichage de sorte qu’il fasse face à une position spécifiée. Cette méthode autorise une modification en place de l’orientation. Le vecteur de direction vers l’avant de l’objet d’affichage (objet Vector3D at) pointe vers la position relative au monde spécifiée. La direction vers le haut de l’objet d’affichage est spécifiée par l’objet Vector3D up.

La méthode pointAt() invalide la valeur mise en cache de la propriété rotation de l’objet d’affichage. La méthode décompose la matrice de l’objet d’affichage et modifie les éléments de rotation pour que l’objet tourne vers la position spécifiée. Elle recompose ensuite (met à jour) la matrice de l’objet d’affichage, qui effectue la transformation. Si l’objet pointe vers une cible en mouvement, par exemple vers la position d’un objet en mouvement, à chaque appel suivant, la méthode fait pivoter l’objet vers la cible en mouvement.

Remarque : si vous utilisez la méthode Matrix3D.pointAt() sans définir les paramètres facultatifs, un objet cible n’est pas face à la position par rapport au monde spécifiée par défaut. Vous devez définir les valeurs de at sur l’axe -y (0,-1,0) et up sur l’axe -z (0,0,-1).

Paramètres

pos:Vector3D — Position par rapport au monde de l’objet cible. Le terme « par rapport au monde » définit la transformation de l’objet par rapport aux coordonnées et à l’espace monde dans lequel tous les objets sont positionnés.
 
at:Vector3D (default = null) — Vecteur relatif à l’objet qui définit l’endroit vers lequel pointe l’objet d’affichage. Le terme « relatif à l’objet » définit la transformation de l’objet par rapport à l’espace de l’objet, c’est-à-dire sa propre image de référence et son propre système de coordonnées. La valeur par défaut est l’axe +y (0,1,0).
 
up:Vector3D (default = null) — Vecteur relatif à l’objet qui définit « up » pour l’objet d’affichage. Si l’objet est dessiné regardant vers le bas, l’axe +z est son vecteur « up ». Le terme « relatif à l’objet » définit la transformation de l’objet par rapport à l’espace de l’objet, c’est-à-dire sa propre image de référence et son propre système de coordonnées. La valeur par défaut est l’axe +z (0,0,1).

Eléments de l’API associés


Exemple  ( Comment utiliser cet exemple )

Dans cet exemple, un triangle pointe et suit la trajectoire du mouvement de l’ellipse. L’ellipse et le triangle sont définis sur des emplacements différents. L’ellipse se déplace ensuite vers le haut et le coin de la scène. Le triangle suit les modifications de translation de l’ellipse. Vous pouvez modifier la forme du triangle et les paramètres « at » et « up » de pointAt() pour observer leur impact sur le mouvement du triangle.
package {
    import flash.display.MovieClip;
    import flash.display.Shape;
    import flash.display.Graphics;
    import flash.geom.*;
    import flash.events.Event;

    public class PointAtExample extends MovieClip {
        private var ellipse:Shape = new Shape();
        private var triangle:Shape = new Shape();

        public function PointAtExample():void {
            ellipse.graphics.beginFill(0xFF0000);
            ellipse.graphics.lineStyle(2);
            ellipse.graphics.drawEllipse(30, 40, 50, 40);
            ellipse.graphics.endFill();
            ellipse.x = 100;
            ellipse.y = 150;
            ellipse.z = 1;

            triangle.graphics.beginFill(0x0000FF);
            triangle.graphics.moveTo(0, 0);
            triangle.graphics.lineTo(40, 40);
            triangle.graphics.lineTo(80, 0);
            triangle.graphics.lineTo(0, 0);
            triangle.graphics.endFill();
            triangle.x = 200;
            triangle.y = 50;
            triangle.z = 1;

            addChild(ellipse);
            addChild(triangle);

            ellipse.addEventListener(Event.ENTER_FRAME, ellipseEnterFrameHandler);
            triangle.addEventListener(Event.ENTER_FRAME, triangleEnterFrameHandler);
        }

        private function ellipseEnterFrameHandler(e:Event) {
            if(e.target.y > 0) {
                e.target.y -= 1;
                e.target.x -= 1;
            }
        }
        
        private function triangleEnterFrameHandler(e:Event) {
            e.target.transform.matrix3D.pointAt(ellipse.transform.matrix3D.position,
                                                Vector3D.X_AXIS, Vector3D.Y_AXIS);
        }
    }
}

prepend

()méthode 
public function prepend(rhs:Matrix3D):void

Version du langage: ActionScript 3.0
Versions du moteur d’exécution: Flash Player 10, AIR 1.5

Ajoute une matrice au début en multipliant l’objet Matrix3D actuel par un autre objet Matrix3D. Le résultat combine les deux transformations de matrice.

Les multiplications de matrices diffèrent des additions de matrices. La multiplication de matrices n’est pas commutative. En d’autres termes, A fois B n’est pas égal à B fois A. Avec la méthode prepend(), la multiplication s’effectue à partir du côté droit, ce qui signifie que l’objet Matrix3D rhs est situé à droite de l’opérateur de la multiplication.

thisMatrix = thisMatrix * rhs

Les modifications apportées par la méthode prepend() sont relatives à l’espace de l’objet. En d’autres termes, elles sont toujours relatives à l’image de référence initiale de l’objet.

La méthode prepend() remplace la matrice actuelle par la matrice ajoutée. Si vous souhaitez ajouter deux matrices sans modifier la matrice actuelle, commencez par copier la matrice actuelle à l’aide de la méthode clone(), puis appliquez la méthode prepend() à la copie.

Paramètres

rhs:Matrix3D — Côté droit de la matrice par laquelle l’objet Matrix3D actuel est multiplié.

Eléments de l’API associés

prependRotation

()méthode 
public function prependRotation(degrees:Number, axis:Vector3D, pivotPoint:Vector3D = null):void

Version du langage: ActionScript 3.0
Versions du moteur d’exécution: Flash Player 10, AIR 1.5

Ajoute une rotation incrémentielle au début d’un objet Matrix3D. Lorsque l’objet Matrix3D est appliqué à un objet d’affichage, la matrice exécute la rotation avant les autres transformations dans l’objet Matrix3D.

La rotation de l’objet d’affichage est définie par un axe, un degré incrémentiel de rotation autour de l’axe et un point de pivot facultatif pour le centre de la rotation de l’objet. L’axe peut être toute direction générale. Les axes courants sont X_AXIS (Vector3D(1,0,0)), Y_AXIS (Vector3D(0,1,0)) et Z_AXIS (Vector3D(0,0,1)). Dans la terminologie de l’aviation, la rotation autour de l’axe y est appelée lacet. La rotation autour de l’axe x est appelée tangage ou pas. La rotation autour de l’axe z est appelée roulis.

L’ordre des transformations a son importance. Une rotation suivie d’une transformation de translation n’a pas le même effet qu’une translation suivie d’une rotation.

L’effet de la rotation n’est pas absolu. L’effet est relatif à l’objet, relatif à l’image de référence de la position et de l’orientation d’origine. Pour apporter une modification absolue à la transformation, utilisez la méthode recompose().

Lorsque la transformation de la méthode prependRotation() est appliquée à un objet Matrix3D, les valeurs mises en cache de la propriété rotation de l’objet d’affichage sont invalidées.

Pour qu’un objet d’affichage pivote autour d’un point spécifique par rapport à son emplacement, une méthode consiste à définir la translation de l’objet sur le point spécifié, à faire pivoter l’objet avec la méthode prependRotation() et à lui appliquer une translation pour le ramener dans sa position d’origine. Dans l’exemple suivant, l’objet d’affichage 3D myObject effectue une rotation sur l’axe y autour de la coordonnée (10,10,0).

    
    myObject.z = 1; 
    myObject.transform.matrix3D.prependTranslation(10,10,0);
    myObject.transform.matrix3D.prependRotation(1, Vector3D.Y_AXIS);
    myObject.transform.matrix3D.prependTranslation(-10,-10,0);
     
    

Paramètres

degrees:Number — Degré de rotation.
 
axis:Vector3D — Axe ou direction de la rotation. Les axes habituels sont X_AXIS (Vector3D(1,0,0)), Y_AXIS (Vector3D(0,1,0)) et Z_AXIS (Vector3D(0,0,1)). Ce vecteur doivent avoir une longueur de 1.
 
pivotPoint:Vector3D (default = null) — Point qui détermine le centre de rotation. Le point de pivot par défaut d’un objet est son point d’alignement.

Eléments de l’API associés


Exemple  ( Comment utiliser cet exemple )

Dans cet exemple, l’utilisateur peut utiliser une souris pour faire pivoter une ellipse le long de ses axes x et y. L’ellipse est tracée avec son point d’alignement en son centre. Elle pivote autour de son axe y selon la coordonnée x de la souris. Elle pivote autour de son axe x selon la coordonnée y de la souris.
package {
    import flash.display.MovieClip;
    import flash.display.Shape;
    import flash.geom.*;
    import flash.events.MouseEvent;
    
    public class Matrix3DprependRotationExample extends MovieClip {
        private var ellipse:Shape = new Shape();

        public function Matrix3DprependRotationExample():void {

            ellipse.graphics.beginFill(0xFF0000);
            ellipse.graphics.lineStyle(2);
            ellipse.graphics.drawEllipse(-50, -40, 100, 80);
            ellipse.graphics.endFill();

            ellipse.x = (this.stage.stageWidth / 2);
            ellipse.y = (this.stage.stageHeight / 2);
            ellipse.z = 1;
            
            addChild(ellipse);

            stage.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler);
        }

        private function mouseMoveHandler(e:MouseEvent):void {
            var y:int;
            var x:int;
            
            if(e.localX > ellipse.x) {
                y = (Math.round(e.localX) / 100);   
            } else {
                y = -(Math.round(e.localX) / 10);   
            }
            
            if(e.localY > ellipse.y) {
                x = (Math.round(e.localY) / 100);
            } else {
                x = -(Math.round(e.localY) / 100);
            }
            
            ellipse.transform.matrix3D.prependRotation(y, Vector3D.Y_AXIS);
            ellipse.transform.matrix3D.prependRotation(x, Vector3D.X_AXIS);
        }
        
    }
}

prependScale

()méthode 
public function prependScale(xScale:Number, yScale:Number, zScale:Number):void

Version du langage: ActionScript 3.0
Versions du moteur d’exécution: Flash Player 10, AIR 1.5

Ajoute une modification d’échelle incrémentielle le long des axes x, y et z au début d’un objet Matrix3D. Lorsque l’objet Matrix3D est appliqué à un objet d’affichage, la matrice exécute les changements d’échelle avant les autres transformations dans l’objet Matrix3D. Les changements sont relatifs à l’objet, relatifs à l’image de référence de la position et de l’orientation d’origine. Le facteur d’échelle par défaut est (1.0, 1.0, 1.0).

L’échelle est définie comme un ensemble de trois modifications incrémentielles le long des trois axes (x,y,z). Vous pouvez multiplier chaque axe par un nombre différent. Lorsque des modifications d’échelle sont appliquées à un objet d’affichage, la taille de l’objet augmente ou diminue. Par exemple, définir les axes x, y et z sur deux double la taille de l’objet, alors que définir les axes sur 0.5 réduit la taille de moitié. Pour être certain que la transformation d’échelle n’affecte qu’un axe spécifique, définissez les autres paramètres sur un. Un paramètre de un signifie qu’aucune modification d’échelle n’est apportée le long de l’axe spécifique.

La méthode prependScale() peut être utilisée pour un redimensionnement mais aussi pour la gestion des distorsions, par exemple pour étirer ou compacter un objet d’affichage. Elle peut également être utilisée pour faire un zoom avant et arrière sur un emplacement. Les transformations d’échelle sont exécutées automatiquement pendant la rotation et la translation d’un objet d’affichage.

L’ordre des transformations a son importance. Un redimensionnement suivi d’une transformation de translation n’a pas le même effet qu’une translation suivie d’une transformation de redimensionnement.

Paramètres

xScale:Number — Multiplicateur utilisé pour redimensionner l’objet le long de l’axe x.
 
yScale:Number — Multiplicateur utilisé pour redimensionner l’objet le long de l’axe y.
 
zScale:Number — Multiplicateur utilisé pour redimensionner l’objet le long de l’axe z.

Eléments de l’API associés

prependTranslation

()méthode 
public function prependTranslation(x:Number, y:Number, z:Number):void

Version du langage: ActionScript 3.0
Versions du moteur d’exécution: Flash Player 10, AIR 1.5

Ajoute une translation incrémentielle, repositionnement le long des axes x, y et z, au début d’un objet Matrix3D. Lorsque l’objet Matrix3D est appliqué à un objet d’affichage, la matrice exécute les modifications de translation avant les autres transformations dans l’objet Matrix3D.

La translation définit la distance sur laquelle l’objet d’affichage se déplace, depuis son emplacement actuel le long des axes x, y et z. La méthode prependTranslation() définit la translation comme un ensemble de trois modifications incrémentielles le long des trois axes (x,y,z). Pour que la translation n’affecte qu’un axe spécifique, définissez les autres paramètres sur zéro. Un paramètre de valeur zéro signifie qu’aucune modification n’a lieu le long de l’axe spécifique.

Les modifications de translation ne sont pas absolues. L’effet est relatif à l’objet, relatif à l’image de référence de la position et de l’orientation d’origine. Pour apporter une modification absolue à la matrice de transformation, utilisez la méthode recompose(). L’ordre des transformations a aussi son importance. Une translation suivie d’une transformation de rotation n’a pas le même effet qu’une rotation suivie d’une transformation de translation. Lorsque la méthode prependTranslation() est utilisée, l’objet d’affichage poursuit son déplacement dans la direction à laquelle il fait face, quelles que soient les autres transformations. Par exemple, si un objet d’affichage faisait face à l’axe x positif, il poursuit son déplacement dans le sens spécifié par la méthode prependTranslation(), quelle que soit la rotation ayant été appliquée à l’objet. Pour que les modifications de translation se produisent après les autres transformations, utilisez la méthode appendTranslation().

Paramètres

x:Number — Translation incrémentielle le long de l’axe x.
 
y:Number — Translation incrémentielle le long de l’axe y.
 
z:Number — Translation incrémentielle le long de l’axe z.

Eléments de l’API associés


Exemple  ( Comment utiliser cet exemple )

Dans cet exemple, l’utilisateur peut pousser une ellipse sur la scène le long de l’axe y avec une souris. Lorsque l’utilisateur survole l’ellipse avec sa souris, l’ellipse saute de dix coordonnées vers le haut de l’axe y. Lorsque la souris quitte l’ellipse, si celle-ci n’a pas atteint le bord supérieur, elle saute de nouveau de dix coordonnées vers le haut de l’axe y. Lorsque l’ellipse atteint le bord supérieur, elle est ramenée en bas de la scène.
package {
    import flash.display.MovieClip;
    import flash.display.Sprite;
    import flash.geom.*;
    import flash.events.MouseEvent;

    public class Matrix3DprependTranslationExample extends MovieClip {
        private var ellipse:Sprite = new Sprite();

        public function Matrix3DprependTranslationExample():void {
            ellipse.x = this.stage.stageWidth / 2;
            ellipse.y = this.stage.stageHeight - 100;
            ellipse.z = 1;
            ellipse.graphics.beginFill(0xFF0000);
            ellipse.graphics.lineStyle(2);
            ellipse.graphics.drawEllipse(0, 0, 60, 50);
            ellipse.graphics.endFill();
            addChild(ellipse);

            ellipse.addEventListener(MouseEvent.MOUSE_OVER, mouseOverHandler);
            ellipse.addEventListener(MouseEvent.MOUSE_OUT, mouseOutHandler);
        }

        private function mouseOverHandler(e:MouseEvent):void {
            if(ellipse.y > 0) { 
                ellipse.transform.matrix3D.prependTranslation(0, -10, 0);
            } 
        }
        
        private function mouseOutHandler(e:MouseEvent):void {
            if(ellipse.y > 0) { 
                ellipse.transform.matrix3D.prependTranslation(0, -10, 0);
            } else {
                ellipse.transform.matrix3D.prependTranslation(0, 
                                     (this.stage.stageHeight - 100), 0);
            }   
        }
    }
}

recompose

()méthode 
public function recompose(components:Vector.<Vector3D>, orientationStyle:String = "eulerAngles"):Boolean

Version du langage: ActionScript 3.0
Versions du moteur d’exécution: Flash Player 10, AIR 1.5

Définit les paramètres de translation, de rotation et d’échelle de la matrice de transformation. Contrairement aux modifications incrémentielles apportées par les propriétés de rotation de l’objet d’affichage ou les méthodes de rotation de l’objet Matrix3D, les modifications apportées par la méthode recompose() sont des modifications absolues. La méthode recompose() remplace la transformation de la matrice.

Pour modifier la transformation de la matrice avec une image de référence de parent absolu, récupérez les paramètres avec la méthode decompose() et apportez les modifications appropriées. Vous pouvez alors définir l’objet Matrix3D sur la transformation modifiée à l’aide de la méthode recompose().

Le paramètre de la méthode recompose() spécifie le style d’orientation utilisé pour la transformation. L’orientation par défaut est eulerAngles, qui définit l’orientation avec trois angles de rotation distincts pour chaque axe. Les rotations s’effectuent consécutivement et ne modifient pas l’axe des autres rotations. Les propriétés de rotation de l’axe de l’objet d’affichage effectuent une transformation de style d’orientation Angles d’Euler. Les autres options de style d’orientation sont axisAngle et quaternion. L’orientation Angle des axes détermine l’orientation en combinant un axe et un angle. L’axe autour duquel l’objet pivote est un vecteur unitaire qui représente une direction. L’angle représente l’amplitude de la rotation autour du vecteur. La direction détermine également l’endroit qui fait face à l’objet d’affichage et l’angle détermine la direction du haut. Les méthodes appendRotation() et prependRotation() utilisent l’orientation Angle des axes. L’orientation quaternion utilise des nombres complexes et le quatrième élément d’un vecteur. Une orientation est représentée par les trois axes de rotation (x,y,z) et un angle de rotation (w). La méthode interpolate() utilise l’orientation quaternion.

Paramètres

components:Vector.<Vector3D> — Vecteur de trois objets Vector3D qui remplace les éléments d’échelle, de translation et de rotation de l’objet Matrix3D.
 
orientationStyle:String (default = "eulerAngles") — Paramètre facultatif qui détermine le style d’orientation utilisé pour la transformation de la matrice. Les trois types de styles d’orientation sont eulerAngles (EULER_ANGLES constants), axisAngle (AXIS_ANGLE constant) et quaternion (QUATERNION constant). Pour plus d’informations sur les différents styles d’orientation, voir la classe geom.Orientation3D.

Valeur renvoyée
Boolean — Renvoie false si l’un des éléments Vector3D du vecteur components n’existe pas ou est nul.

Eléments de l’API associés

transformVector

()méthode 
public function transformVector(v:Vector3D):Vector3D

Version du langage: ActionScript 3.0
Versions du moteur d’exécution: Flash Player 10, AIR 1.5

Utilise la matrice de transformation pour transformer un objet Vector3D d’une coordonnée spatiale en une autre. L’objet Vector3D renvoyé contient les nouvelles coordonnées après transformation. Toutes les transformations matricielles, y compris la translation, s’appliquent à l’objet Vector3D.

Si le résultat de la méthode transformVector() a été appliqué à la position d’un objet d’affichage, seule la position de cet objet change. Les éléments de rotation et d’échelle de l’objet d’affichage demeurent les mêmes.

Remarque : cette méthode définit automatiquement le composant w de l’objet Vector3D transmis sur 1.0.

Paramètres

v:Vector3D — Objet Vector3D contenant les coordonnées à transformer.

Valeur renvoyée
Vector3D — Objet Vector3D avec les coordonnées transformées.

Eléments de l’API associés

transformVectors

()méthode 
public function transformVectors(vin:Vector.<Number>, vout:Vector.<Number>):void

Version du langage: ActionScript 3.0
Versions du moteur d’exécution: Flash Player 10, AIR 1.5

Utilise la matrice de transformation pour transformer un vecteur de nombres d’une coordonnée spatiale en une autre. La méthode tranformVectors() lit chaque groupe de trois nombres dans l’objet Vector vin comme une coordonnée 3D (x,y,z) et place une coordonnée 3D transformée dans l’objet Vector vout. Toutes les transformations matricielles, y compris la translation, sont appliquées à l’objet Vector vin. Vous pouvez utiliser la méthode transformVectors() pour restituer et transformer un objet 3D en tant que maillage. Un maillage est un ensemble de sommets ou points qui définissent la forme de l’objet.

Paramètres

vin:Vector.<Number> — Vecteur de nombres, où chaque triplet de nombres est une coordonnée 3D (x,y,z) qui va être transformée.
 
vout:Vector.<Number> — Vecteur de nombres, où chaque triplet de nombres est une coordonnée 3D transformée (x,y,z).

Eléments de l’API associés

transpose

()méthode 
public function transpose():void

Version du langage: ActionScript 3.0
Versions du moteur d’exécution: Flash Player 10, AIR 1.5

Convertit l’objet Matrix3D en cours en une matrice dont les lignes et les colonnes sont permutées. Par exemple, si le paramètre rawData de l’objet Matrix3D actuel contient les 16 nombres suivants, 1,2,3,4,11,12,13,14,21,22,23,24,31,32,33,34, la méthode transpose() lit chaque ensemble de quatre éléments en tant que ligne et transforme ces lignes en colonnes. Le résultat est une matrice dont le paramètre rawData est : 1,11,21,31,2,12,22,32,3,13,23,33,4,14,24,34.

La méthode transpose() remplace la matrice actuelle par une matrice transposée. Pour transposer une matrice sans modifier la matrice actuelle, commencez par copier cette dernière à l’aide de la méthode clone(), puis appliquez la méthode transpose() à la copie.

Une matrice orthogonale est une matrice carrée dont la transposition est égale à son inverse.





[ X ]Pourquoi existe-t-il du contenu en anglais ?
Certaines parties du Guide de référence ActionScript 3.0 sont en anglais

Tout le contenu du Guide de référence ActionScript 3.0 n’a pas été traduit dans toutes les langues. Si un élément de langage n’est pas traduit, il s’affiche en anglais. Par exemple, la classe ga.controls.HelpBox n’est traduite dans aucune langue. Ainsi, dans la version française du guide de référence, la classe ga.controls.HelpBox apparaît en anglais.