ActionScript® 3.0 Referenzhandbuch für die Adobe® Flash®-Plattform
Home  |  Liste der Pakete und Klassen ausblenden |  Pakete  |  Klassen  |  Neue Funktionen  |  Stichwortverzeichnis  |  Anhänge  |  Warum auf Englisch?
Filter: AIR 30.0 und früher, Flash Player 30.0 und früher, Flash Lite 4
Flex 4.6 und früher, Flash Pro CS6 und früher
Filter ausblenden
flash.geom 

Matrix3D  - AS3

Paketex

Oberste Ebene
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

Sprachelemente

Globale Konstanten
Globale Funktionen
Operatoren
Anweisungen, Schlüsselwörter und Direktiven
Sondertypen

Anhänge

Neue Funktionen
Compiler-Fehler
Compiler-Warnungen
Laufzeitfehler
Migration zu ActionScript 3
Unterstützte Zeichensätze
Nur MXML-Tags
Motion-XML-Elemente
Timed Text-Tags
Liste veralteter Elemente
Konstanten für die Implementierung von Eingabehilfen
Verwendung der ActionScript-Beispiele
Rechtliche Hinweise
Paketflash.geom
Klassepublic class Matrix3D
VererbungMatrix3D Inheritance Object

Sprachversion: ActionScript 3.0
Laufzeitversionen: Flash Player 10, AIR 1.5

Die Matrix3D-Klasse stellt eine Transformationsmatrix dar, die die Position und Ausrichtung eines dreidimensionalen (3D-)Anzeigeobjekts bestimmt. Die Matrix kann Transformationsfunktionen, einschließlich Versetzungen (Neupositionierung entlang der x-, y- oder z-Achse), Drehungen und Skalierungen (Größenänderungen) ausführen. Mithilfe der Matrix3D-Klasse können auch perspektivische Projektionen durchgeführt werden, d. h. Punkte aus dem dreidimensionalen Koordinatenraum werden einer zweidimensionalen (2D-)Ansicht zugeordnet.

In einer Matrix können mehrere Transformationen kombiniert und in einem Vorgang auf ein 3D-Anzeigeobjekt angewendet werden. Eine Matrix kann zum Beispiel auf dreidimensionale Koordinaten angewendet werden, um eine Drehung gefolgt von einer Versetzung auszuführen.

Wenn Sie die z-Eigenschaft oder eine der Drehungs- oder Skalierungseigenschaften eines Anzeigeobjekts explizit einstellen, wird automatisch ein entsprechendes Matrix3D-Objekt erstellt.

Der Zugriff auf das Matrix3D-Objekt eines 3D-Anzeigeobjekts erfolgt über die transform.matrix3d-Eigenschaft. 2D-Objekte weisen kein Matrix3D-Objekt auf.

Der Wert der z-Eigenschaft eines 2D-Objekts ist null und der Wert seiner matrix3D-Eigenschaft ist null.

Hinweis: Wenn ein Matrix3D-Objekt zwei verschiedenen Anzeigeobjekten zugewiesen wird, wird ein Laufzeitfehler ausgegeben.

Die Matrix3D-Klasse verwendet eine quadratische 4x4-Matrix: eine Tabelle mit vier Zeilen und vier Spalten von Zahlen, die die Daten für die Transformation enthalten. Die ersten drei Zeilen der Matrix enthalten die Daten für die dreidimensionalen Achsen (x,y,z). Die Versetzungsinformationen befinden sich in der letzten Spalte. Die Daten für Ausrichtung und Skalierung befinden sich in den ersten drei Spalten. Die Skalierungsfaktoren sind die diagonalen Zahlen in den ersten drei Spalten. Dies ist eine Darstellung von Matrix3D-Elementen:

Matrix3D-Elemente

Sie brauchen keine Matrizenrechnung zu beherrschen, um mit der Matrix3D-Klasse zu arbeiten. Sie bietet spezifische Methoden, die Transformationen und Projektionen vereinfachen, zum Beispiel die appendTranslation()-, appendRotation()- und interpolateTo()-Methode. Außerdem können Sie mithilfe der decompose()- und recompose()-Methode oder der rawData-Eigenschaft auf die zugrunde liegenden Matrizenelemente zugreifen.

Die Eigenschafen für die Achsendrehung von Anzeigeobjekten können zwischengespeichert werden. Das ermöglicht das separate Drehen der Achsen sowie die Verwaltung der verschiedenen Drehungskombinationen. Wird eine Methode eines Matrix3D-Objekts aufgerufen, um ein Anzeigeobjekt zu transformieren, so wird der Drehungszwischenspeicher des Objekts ungültig.

Verwandte API-Elemente



Öffentliche Eigenschaften
 EigenschaftDefiniert von
 Inheritedconstructor : Object
Ein Verweis auf das Klassenobjekt oder die Konstruktorfunktion für eine angegebene Objektinstanz.
Object
  determinant : Number
[schreibgeschützt] Eine Zahl, die festlegt, ob eine Matrix invertierbar ist.
Matrix3D
  position : Vector3D
Ein Vector3D-Objekt, das die Position, die 3D-Koordinate (x, y, z) eines Anzeigeobjekts innerhalb des Bezugsrahmens der Transformation, enthält.
Matrix3D
  rawData : Vector.<Number>
Ein Vektor von 16 Zahlen, wobei jeweils vier Elemente eine Spalte einer 4x4-Matrix bilden.
Matrix3D
Öffentliche Methoden
 MethodeDefiniert von
  
Matrix3D(v:Vector.<Number> = null)
Erstellt ein Matrix3D-Objekt.
Matrix3D
  
Hängt die Matrix an, indem ein anderes Matrix3D-Objekt mit dem aktuellen Matrix3D-Objekt multipliziert wird.
Matrix3D
  
appendRotation(degrees:Number, axis:Vector3D, pivotPoint:Vector3D = null):void
Hängt eine inkrementelle Drehung an ein Matrix3D-Objekt an.
Matrix3D
  
appendScale(xScale:Number, yScale:Number, zScale:Number):void
Hängt ein Matrix3D-Objekt durch inkrementelles Skalieren entlang der x-, y- und z-Achse an.
Matrix3D
  
Hängt eine inkrementelle Versetzung, eine Neupositionierung entlang der x-, y- und z-Achsen, an ein Matrix3D-Objekt an.
Matrix3D
  
Gibt ein neues Matrix3D-Objekt zurück, das eine genaue Kopie des aktuellen Matrix3D-Objekts ist.
Matrix3D
  
copyColumnFrom(column:uint, vector3D:Vector3D):void
Kopiert ein Vector3D-Objekt in eine bestimmte Spalte des aufrufenden Matrix3D-Objekts.
Matrix3D
  
copyColumnTo(column:uint, vector3D:Vector3D):void
Kopiert die angegebene Spalte des aufrufenden Matrix3D-Objekts in das Vector3D-Objekts.
Matrix3D
  
copyFrom(sourceMatrix3D:Matrix3D):void
Kopiert alle Matrixdaten aus dem Matrix3D-Quellobjekt in das aufrufende Matrix3D-Objekt.
Matrix3D
  
copyRawDataFrom(vector:Vector.<Number>, index:uint = 0, transpose:Boolean = false):void
Kopiert alle Vektordaten aus dem Vector-Quellobjekt in das aufrufende Matrix3D-Objekt.
Matrix3D
  
copyRawDataTo(vector:Vector.<Number>, index:uint = 0, transpose:Boolean = false):void
Kopiert alle Matrixdaten aus dem aufrufenden Matrix3D-Objekt in den angegebenen Vektor.
Matrix3D
  
copyRowFrom(row:uint, vector3D:Vector3D):void
Kopiert ein Vector3D-Objekt in eine bestimmte Zeile des aufrufenden Matrix3D-Objekts.
Matrix3D
  
copyRowTo(row:uint, vector3D:Vector3D):void
Kopiert die angegebene Zeile des aufrufenden Matrix3D-Objekts in das Vector3D-Objekts.
Matrix3D
  
Matrix3D
  
decompose(orientationStyle:String = "eulerAngles"):Vector.<Vector3D>
Gibt die Versetzungs-, Drehungs- und Skalierungseinstellungen der Transformationsmatrix als Vektor dreier Vector3D-Objekte zurück.
Matrix3D
  
Verwendet die Transformationsmatrix ohne deren Versetzungselemente, um ein Vector3D-Objekt von einer Raumkoordinate zu einer anderen zu transformieren.
Matrix3D
 Inherited
Gibt an, ob für ein Objekt eine bestimmte Eigenschaft definiert wurde.
Object
  
Konvertiert die aktuelle Matrix in eine Identitäts- oder Einheitsmatrix.
Matrix3D
  
interpolate(thisMat:Matrix3D, toMat:Matrix3D, percent:Number):Matrix3D
[statisch] Interpoliert die Versetzungs-, Drehungs- und Skalierungstransformation der einen Matrix in Richtung der Transformationen der Zielmatrix.
Matrix3D
  
Interpoliert diese Matrix in Richtung der Versetzungs-, Drehungs- und Skalierungstransformationen der Zielmatrix.
Matrix3D
  
Invertiert die aktuelle Matrix.
Matrix3D
 Inherited
Gibt an, ob eine Instanz der Object-Klasse in der Prototypkette des Objekts vorhanden ist, das als Parameter angegeben wurde.
Object
  
pointAt(pos:Vector3D, at:Vector3D = null, up:Vector3D = null):void
Dreht das Anzeigeobjekt, sodass es auf eine bestimmte Position zeigt.
Matrix3D
  
Stellt eine Matrix voran, indem das aktuelle Matrix3D-Objekt mit einem anderen Matrix3D-Objekt multipliziert wird.
Matrix3D
  
prependRotation(degrees:Number, axis:Vector3D, pivotPoint:Vector3D = null):void
Stellt einem Matrix3D-Objekt eine inkrementelle Drehung voran.
Matrix3D
  
prependScale(xScale:Number, yScale:Number, zScale:Number):void
Stellt einem Matrix3D-Objekt eine inkrementelle Skalierungsänderung der x-, y- und z-Achse voran.
Matrix3D
  
Stellt einem Matrix3D-Objekt eine inkrementelle Versetzung, eine Neupositionierung entlang der x-, y- und z-Achse voran.
Matrix3D
 Inherited
Gibt an, ob die angegebene Eigenschaft vorhanden ist und durchlaufen werden kann.
Object
  
recompose(components:Vector.<Vector3D>, orientationStyle:String = "eulerAngles"):Boolean
Legt die Einstellungen der Transformationsmatrix für die Versetzung, Drehung und Skalierung fest.
Matrix3D
 Inherited
Legt die Verfügbarkeit einer dynamischen Eigenschaft für Schleifenoperationen fest.
Object
 Inherited
Gibt die Stringdarstellung dieses Objekts zurück, formatiert entsprechend den Konventionen des Gebietsschemas.
Object
 Inherited
Gibt das angegebene Objekt als String zurück.
Object
  
Verwendet die Transformationsmatrix zum Transformieren eines Vector3D-Objekts von einer Raumkoordinate zu einer anderen.
Matrix3D
  
Verwendet die Transformationsmatrix zum Transformieren eines Zahlenvektors von einem Koordinatenraum in einen anderen.
Matrix3D
  
Konvertiert das aktuelle Matrix3D-Objekt in eine Matrix, deren Zeilen und Spalten vertauscht sind.
Matrix3D
 Inherited
Gibt den Grundwert des angegebenen Objekts zurück.
Object
Eigenschaftendetails

determinant

Eigenschaft
determinant:Number  [schreibgeschützt]

Sprachversion: ActionScript 3.0
Laufzeitversionen: Flash Player 10, AIR 1.5

Eine Zahl, die festlegt, ob eine Matrix invertierbar ist.

Ein Matrix3D-Objekt muss invertierbar sein. Mit der determinant-Eigenschaft können Sie sicherstellen, dass ein Matrix3D-Objekt invertierbar ist. Wenn die Determinante null ist, ist keine invertierte Matrix vorhanden. Wenn zum Beispiel eine ganze Zeile oder Spalte einer Matrix null ist oder zwei Zeilen oder Spalten gleich sind, ist die Determinante null. Die Determinante wird auch verwendet, um eine Reihe von Gleichungen zu lösen.

Nur eine quadratische Matrix, wie die Matrix3D-Klasse, hat eine Determinante.



Implementierung
    public function get determinant():Number

Verwandte API-Elemente

position

Eigenschaft 
position:Vector3D

Sprachversion: ActionScript 3.0
Laufzeitversionen: Flash Player 10, AIR 1.5

Ein Vector3D-Objekt, das die Position, die 3D-Koordinate (x, y, z) eines Anzeigeobjekts innerhalb des Bezugsrahmens der Transformation, enthält. Die position-Eigenschaft gewährt unmittelbaren Zugriff auf den Versetzungsvektor der Matrix des Anzeigeobjekts, ohne dass die Matrix zerlegt und wieder zusammengesetzt werden muss.

Mit der position-Eigenschaft können Sie auf die Versetzungselemente der Transformationsmatrix zugreifen und diese festlegen.



Implementierung
    public function get position():Vector3D
    public function set position(value:Vector3D):void

Verwandte API-Elemente

rawData

Eigenschaft 
rawData:Vector.<Number>

Sprachversion: ActionScript 3.0
Laufzeitversionen: Flash Player 10, AIR 1.5

Ein Vektor von 16 Zahlen, wobei jeweils vier Elemente eine Spalte einer 4x4-Matrix bilden.

Wird die rawData-Eigenschaft auf eine nicht invertierbare Matrix gesetzt, so wird eine Ausnahme ausgegeben. Das Matrix3D-Objekt muss invertierbar sein. Wenn Sie eine nicht-invertierbare Matrix benötigen, erstellen Sie eine Unterklasse des Matrix3D-Objekts.



Implementierung
    public function get rawData():Vector.<Number>
    public function set rawData(value:Vector.<Number>):void

Verwandte API-Elemente

Konstruktordetails

Matrix3D

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

Sprachversion: ActionScript 3.0
Laufzeitversionen: Flash Player 10, AIR 1.5

Erstellt ein Matrix3D-Objekt. Matrix3D-Objekte können mit einem Vektor von 16 Zahlen initialisiert werden, wobei jeweils vier Elemente eine Spalte darstellen. Nachdem das Matrix3D-Objekt erstellt wurde, können Sie mit der rawData-Eigenschaft auf seine Matrixelemente zugreifen.

Wenn kein Parameter definiert ist, erstellt der Konstruktor ein Identitäts- oder Einheits-Matrix3D-Objekt. In der Matrixschreibweise hat eine Identitätsmatrix einen Wert von eins für alle Elemente in der diagonalen Hauptposition und einen Wert von null für alle anderen Elemente. Der Wert der rawData-Eigenschaft einer Identitätsmatrix lautet 1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1. Der Positions- oder Versetzungswert der Identitätsmatrix lautet Vector3D(0,0,0), die Rotationseinstellung ist Vector3D(0,0,0) und der Skalenwert ist Vector3D(1,1,1).

Parameter
v:Vector.<Number> (default = null) — Ein Vektor von 16 Zahlen, wobei jeweils vier Elemente eine Spalte einer 4x4-Matrix bilden.

Verwandte API-Elemente

Methodendetails

append

()Methode
public function append(lhs:Matrix3D):void

Sprachversion: ActionScript 3.0
Laufzeitversionen: Flash Player 10, AIR 1.5

Hängt die Matrix an, indem ein anderes Matrix3D-Objekt mit dem aktuellen Matrix3D-Objekt multipliziert wird. Das Ergebnis kombiniert beide Matrixtransformationen. Sie können ein Matrix3D-Objekt mit vielen Matrizen multiplizieren. Das endgültige Matrix3D-Objekt enthält das Ergebnis aller Transformationen.

Die Matrixmultiplikation unterscheidet sich von der Matrixaddition. Die Matrixmultiplikation ist nicht kommutativ. Anders ausgedrückt, A mal B ist nicht gleich B mal A. Mit der append()-Methode wird die Multiplikation von links ausgeführt, das heißt, das lhs-Matrix3D-Objekt befindet sich links vom Multiplikationsoperator.

thisMatrix = lhs * thisMatrix;

Wenn die append()-Methode zum ersten Mal aufgerufen wird, nimmt sie eine Änderung relativ zum übergeordneten Raum vor. Nachfolgende Aufrufe sind relativ zum Referenzrahmen des angehängten Matrix3D-Objekts.

Die append()-Methode ersetzt die aktuelle Matrix durch die angehängte Matrix. Wenn Sie zwei Matrizen anhängen möchten, ohne die aktuelle Matrix zu ändern, kopieren Sie die aktuelle Matrix mithilfe der clone()-Methode und wenden dann die append()-Methode auf die Kopie an.

Parameter

lhs:Matrix3D — Die linke Matrix, die mit dem aktuellen Matrix3D-Objekt multipliziert wird.

Verwandte API-Elemente

appendRotation

()Methode 
public function appendRotation(degrees:Number, axis:Vector3D, pivotPoint:Vector3D = null):void

Sprachversion: ActionScript 3.0
Laufzeitversionen: Flash Player 10, AIR 1.5

Hängt eine inkrementelle Drehung an ein Matrix3D-Objekt an. Wenn das Matrix3D-Objekt auf ein Anzeigeobjekt angewendet wird, führt die Matrix die Drehung nach den anderen Transformationen im Matrix3D-Objekt aus.

Die Drehung eines Anzeigeobjekts wird durch eine Achse, einen inkrementellen Drehwinkel um die Achse und einen optionalen Drehpunkt als Mittelpunkt der Drehung des Objekts bestimmt. Die Achse kann in jede Richtung zeigen. Die üblichen Achsen sind X_AXIS (Vector3D(1,0,0)), Y_AXIS (Vector3D(0,1,0)) und Z_AXIS (Vector3D(0,0,1)). In der Luftfahrtterminologie wird die Drehung um die y-Achse als Gieren bezeichnet. Die Drehung um die x-Achse heißt Nicken. Die Drehung um die z-Achse wird als Rollen bezeichnet.

Die Transformationsreihenfolge ist von Bedeutung. Eine Drehung gefolgt von einer Versetzungstransformation erzeugt einen anderen Effekt als eine Versetzung gefolgt von einer Drehungstransformation.

Der Drehungseffekt ist nicht absolut. Er ist relativ zur aktuellen Position und Ausrichtung. Um absolute Änderungen der Transformationsmatrix vorzunehmen, verwenden Sie die recompose()-Methode. Die appendRotation()-Methode unterscheidet sich auch von der Achsendrehungseigenschaft des Anzeigeobjekts, zum Beispiel von der rotationX-Eigenschaft. Die Drehungseigenschaft wird immer vor einer Versetzung angewendet, während die appendRotation()-Methode relativ zu dem bereits in der Matrix Vorhandenen ausgeführt wird. Um sicherzustellen, dass Sie einen ähnlichen Effekt erzielen wie mit der Achsendrehungseigenschaft des Anzeigeobjekts, verwenden Sie die prependRotation-Methode, die die Drehung vor allen anderen Transformationen in der Matrix ausführt.

Wenn die Transformation der appendRotation()-Methode auf ein Matrix3D-Objekt eines Anzeigeobjekts angewendet wird, werden die zwischengespeicherten Werte der Drehungseigenschaft des Anzeigeobjekts ungültig.

Eine Möglichkeit, ein Anzeigeobjekt um einen bestimmten Punkt relativ zu seiner Position zu drehen, besteht darin, die Versetzung des Objekts auf den angegebenen Punkt festzulegen, das Objekt mithilfe der appendRotation-Methode zu drehen und das Objekt dann an die ursprüngliche Position zurückzuversetzen. Im folgenden Beispiel führt das myObject-3D-Anzeigeobjekt eine Drehung um die y-Achse um die Koordinate (10,10,0) aus.

    
    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);
     
    

Parameter

degrees:Number — Der Drehungsgrad.
 
axis:Vector3D — Die Drehachse oder -richtung. Die üblichen Achsen sind X_AXIS (Vector3D(1,0,0)), Y_AXIS (Vector3D(0,1,0)) und Z_AXIS (Vector3D(0,0,1)). Dieser Vektor sollte eine Länge von eins haben.
 
pivotPoint:Vector3D (default = null) — Ein Punkt, der den Mittelpunkt der Drehung eines Objekts bestimmt. Der Standarddrehpunkt eines Objekts ist sein Registrierungspunkt.

Verwandte API-Elemente

appendScale

()Methode 
public function appendScale(xScale:Number, yScale:Number, zScale:Number):void

Sprachversion: ActionScript 3.0
Laufzeitversionen: Flash Player 10, AIR 1.5

Hängt ein Matrix3D-Objekt durch inkrementelles Skalieren entlang der x-, y- und z-Achse an. Wenn das Matrix3D-Objekt auf ein Anzeigeobjekt angewendet wird, führt die Matrix die Skalierungsänderungen nach den anderen Transformationen im Matrix3D-Objekt aus. Der Standardskalierungsfaktor ist (1.0, 1.0, 1.0).

Die Skalierung ist als Satz dreier inkrementeller Änderungen entlang der drei Achsen (x, y, z) definiert. Jede Achse kann mit einer anderen Zahl multipliziert werden. Wenn Skalierungsänderungen auf ein Anzeigeobjekt angewendet werden, erhöht oder verringert sich dessen Größe. Beispiel: Wird die x-, y- und z-Achse auf „2“ gesetzt, so wird die Größe verdoppelt. Dagegen wird sie halbiert wird, wenn die Achsen auf 0.5 gesetzt werden. Um sicherzustellen, dass sich die Skalierungstransformation nur auf eine bestimmte Achse auswirkt, setzen Sie die anderen Parameter auf eins. Der Parameter „1“ bedeutet, dass keine Skalierung an der betroffenen Achse stattfindet.

Die appendScale()-Methode kann sowohl zum Ändern der Größe als auch zum Verwalten von Verzerrungen, zum Beispiel Strecken oder Stauchen eines Anzeigeobjekts, oder zum Zoomen verwendet werden. Skalierungstransformationen werden während der Drehung und Versetzung eines Anzeigeobjekts automatisch durchgeführt.

Die Transformationsreihenfolge ist von Bedeutung. Eine Größenänderung gefolgt von einer Versetzungstransformation erzeugt einen anderen Effekt als eine Versetzung gefolgt von einer Größentransformation.

Parameter

xScale:Number — Ein Multiplikator zur Skalierung des Objekts entlang der x-Achse.
 
yScale:Number — Ein Multiplikator zur Skalierung des Objekts entlang der y-Achse.
 
zScale:Number — Ein Multiplikator zur Skalierung des Objekts entlang der z-Achse.

Verwandte API-Elemente

appendTranslation

()Methode 
public function appendTranslation(x:Number, y:Number, z:Number):void

Sprachversion: ActionScript 3.0
Laufzeitversionen: Flash Player 10, AIR 1.5

Hängt eine inkrementelle Versetzung, eine Neupositionierung entlang der x-, y- und z-Achsen, an ein Matrix3D-Objekt an. Wenn das Matrix3D-Objekt auf ein Anzeigeobjekt angewendet wird, führt die Matrix die Versetzungsänderungen nach den anderen Transformationen im Matrix3D-Objekt aus.

Die Versetzung ist als ein Satz von drei inkrementellen Änderung entlang der drei Achsen (x,y,z) definiert. Wenn die Transformation auf ein Anzeigeobjekt angewendet wird, bewegt sich das Anzeigeobjekt von seiner aktuellen Position entlang der x-, y- und z-Achse, wie in den Parametern angegeben. Damit die Versetzung nur eine bestimmte Achse betrifft, setzen Sie die anderen Parameter auf null. Der Parameter „0“ bedeutet, dass keine Veränderung an der betroffenen Achse stattfindet.

Die Änderungen durch Versetzung sind nicht absolut. Sie sind relativ zur aktuellen Position und Ausrichtung der Matrix. Um absolute Änderungen der Transformationsmatrix vorzunehmen, verwenden Sie die recompose()-Methode. Die Transformationsreihenfolge ist ebenfalls von Bedeutung. Eine Versetzung gefolgt von einer Drehungstransformation erzeugt einen anderen Effekt als eine Drehung gefolgt von einer Versetzung.

Parameter

x:Number — Eine inkrementelle Versetzung entlang der x-Achse.
 
y:Number — Eine inkrementelle Versetzung entlang der y-Achse.
 
z:Number — Eine inkrementelle Versetzung entlang der z-Achse.

Verwandte API-Elemente

clone

()Methode 
public function clone():Matrix3D

Sprachversion: ActionScript 3.0
Laufzeitversionen: Flash Player 10, AIR 1.5

Gibt ein neues Matrix3D-Objekt zurück, das eine genaue Kopie des aktuellen Matrix3D-Objekts ist.

Rückgabewerte
Matrix3D — Ein neues Matrix3D-Objekt, das eine genaue Kopie des aktuellen Matrix3D-Objekts ist.

copyColumnFrom

()Methode 
public function copyColumnFrom(column:uint, vector3D:Vector3D):void

Sprachversion: ActionScript 3.0
Laufzeitversionen: Flash Player 11, AIR 3.0, Flash Lite 4

Kopiert ein Vector3D-Objekt in eine bestimmte Spalte des aufrufenden Matrix3D-Objekts.

Parameter

column:uint — Die Zielspalte der Kopie.
 
vector3D:Vector3D — Das Vector3D-Objekt, aus dem die Daten kopiert werden.

copyColumnTo

()Methode 
public function copyColumnTo(column:uint, vector3D:Vector3D):void

Sprachversion: ActionScript 3.0
Laufzeitversionen: Flash Player 11, AIR 3.0, Flash Lite 4

Kopiert die angegebene Spalte des aufrufenden Matrix3D-Objekts in das Vector3D-Objekts.

Parameter

column:uint — Die Spalte, aus der die Daten kopiert werden.
 
vector3D:Vector3D — Das Vector3D-Zielobjekt der Kopie.

copyFrom

()Methode 
public function copyFrom(sourceMatrix3D:Matrix3D):void

Sprachversion: ActionScript 3.0
Laufzeitversionen: Flash Player 11, AIR 3.0, Flash Lite 4

Kopiert alle Matrixdaten aus dem Matrix3D-Quellobjekt in das aufrufende Matrix3D-Objekt.

Parameter

sourceMatrix3D:Matrix3D — Das Matrix3D-Objekt, aus dem die Daten kopiert werden.

copyRawDataFrom

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

Sprachversion: ActionScript 3.0
Laufzeitversionen: Flash Player 11, AIR 3.0, Flash Lite 4

Kopiert alle Vektordaten aus dem Vector-Quellobjekt in das aufrufende Matrix3D-Objekt. Der optionale index-Parameter ermöglicht Ihnen, eine beliebige Startposition im Vektor auszuwählen.

Parameter

vector:Vector.<Number> — Das Vector-Objekt, aus dem die Daten kopiert werden.
 
index:uint (default = 0)
 
transpose:Boolean (default = false)

copyRawDataTo

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

Sprachversion: ActionScript 3.0
Laufzeitversionen: Flash Player 11, AIR 3.0, Flash Lite 4

Kopiert alle Matrixdaten aus dem aufrufenden Matrix3D-Objekt in den angegebenen Vektor. Der optionale index-Parameter ermöglicht Ihnen, eine beliebige Ziel-Startposition im Vektor auszuwählen.

Parameter

vector:Vector.<Number> — Das Vector-Objekt, in das die Daten kopiert werden.
 
index:uint (default = 0)
 
transpose:Boolean (default = false)

copyRowFrom

()Methode 
public function copyRowFrom(row:uint, vector3D:Vector3D):void

Sprachversion: ActionScript 3.0
Laufzeitversionen: Flash Player 11, AIR 3.0, Flash Lite 4

Kopiert ein Vector3D-Objekt in eine bestimmte Zeile des aufrufenden Matrix3D-Objekts.

Parameter

row:uint — Die Zeile, in die die Daten kopiert werden.
 
vector3D:Vector3D — Das Vector3D-Objekt, aus dem die Daten kopiert werden.

copyRowTo

()Methode 
public function copyRowTo(row:uint, vector3D:Vector3D):void

Sprachversion: ActionScript 3.0
Laufzeitversionen: Flash Player 11, AIR 3.0, Flash Lite 4

Kopiert die angegebene Zeile des aufrufenden Matrix3D-Objekts in das Vector3D-Objekts.

Parameter

row:uint — Die Zeile, aus der die Daten kopiert werden.
 
vector3D:Vector3D — Das Vector3D-Objekt, in das die Daten kopiert werden.

copyToMatrix3D

()Methode 
public function copyToMatrix3D(dest:Matrix3D):void

Parameter

dest:Matrix3D

decompose

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

Sprachversion: ActionScript 3.0
Laufzeitversionen: Flash Player 10, AIR 1.5

Gibt die Versetzungs-, Drehungs- und Skalierungseinstellungen der Transformationsmatrix als Vektor dreier Vector3D-Objekte zurück. Das erste Vector3D-Objekt enthält die Versetzungselemente. Das zweite Vector3D-Objekt enthält die Drehungselemente. Das dritte Vector3D-Objekt enthält die Skalierungselemente.

Einige Matrix3D-Methoden, beispielsweise die interpolateTo()-Methode, führen die Transformation aus, indem sie die Matrix automatisch zerlegen und wieder zusammensetzen.

Um die Transformation der Matrix mithilfe eines absoluten übergeordneten Referenzrahmens zu ändern, rufen Sie die Einstellungen mithilfe der decompose()-Methode ab und nehmen die entsprechenden Änderungen vor. Sie können das Matrix3D-Objekt auf die geänderte Transformation setzen, indem Sie die recompose()-Methode verwenden.

Der Parameter der decompose()-Methode legt den Ausrichtungsstil für die Transformation fest. Die Standardausrichtung ist eulerAngles. Dabei wird die Ausrichtung durch einen separaten Drehwinkel pro Achse festgelegt. Die Drehungen folgen aufeinander und ändern die Achsen der jeweils anderen Drehungen nicht. Die Achsendrehungseigenschaften des Anzeigeobjekts bewirken eine Transformation des Ausrichtungsstils gemäß Eulerschen Winkeln. Weitere Optionen für den Ausrichtungsstil sind axisAngle und quaternion. Die Achsenwinkelausrichtung verwendet zur Bestimmung der Ausrichtung eine Kombination von Achse und Winkel. Die Achse, um die sich das Objekt dreht, ist ein Einheitsvektor, der die Richtung darstellt. Der Winkel stellt die Stärke der Drehung um den Vektor dar. Die Richtung bestimmt auch, wohin das Anzeigeobjekt zeigt und der Winkel bestimmt, wo oben liegt. Die appendRotation()- und prependRotation()-Methode verwendet die Achsenwinkelausrichtung. Die Quaternionausrichtung verwendet komplexe Zahlen und das vierte Element eines Vektors. Die drei Drehsachsen (x, y, z) und der Drehwinkel (w) stellen die Ausrichtung dar. Die interpolate()-Methode verwendet Quaternionen.

Parameter

orientationStyle:String (default = "eulerAngles") — Ein optionaler Parameter, der den Ausrichtungsstil für die Matrixtransformation bestimmt. Die drei Ausrichtungsstile sind eulerAngles (Konstante EULER_ANGLES), axisAngle (Konstante AXIS_ANGLE) und quaternion (Konstante QUATERNION). Weitere Informationen zu den verschiedenen Ausrichtungsstilen finden Sie im Abschnitt über die geom.Orientation3D-Klasse.

Rückgabewerte
Vector.<Vector3D> — Ein Vektor aus drei Vector3D-Objekten, die jeweils die Einstellungen für die Versetzung, Drehung und Skalierung enthalten.

Verwandte API-Elemente


Beispiel  ( Verwendung dieses Beispiels )

In diesem Beispiel werden die decompose()- und recompose()-Methode verwendet, damit sich die Ellipse horizontal ausdehnt, während sie sich auf den Fluchtpunkt zubewegt. Das erste von der decompose()-Methode zurückgegebene Vector3D-Objekt enthält die Koordinaten für die Versetzung. Das dritte Vector3D-Objekt enthält die Skalierungseinstellungen. Die incrementBy()-Methode des Vector3D-Objekts inkrementiert die absoluten Versetzungs- und Skalierungseinstellungen der Matrix.
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

()Methode 
public function deltaTransformVector(v:Vector3D):Vector3D

Sprachversion: ActionScript 3.0
Laufzeitversionen: Flash Player 10, AIR 1.5

Verwendet die Transformationsmatrix ohne deren Versetzungselemente, um ein Vector3D-Objekt von einer Raumkoordinate zu einer anderen zu transformieren. Das zurückgegebene Vector3D-Objekt enthält die neuen Koordinaten nach Anwendung der Drehungs- und Skalierungsinformationen. Wendet die deltaTransformVector()-Methode eine Matrix an, die nur eine Versetzungstransformation enthält, so ist das zurückgegebene Vector3D-Objekt mit dem ursprünglichen Vector3D-Objekt identisch.

Sie können die deltaTransformVector()-Methode verwenden, um zu bewirken, dass ein Anzeigeobjekt in einem Koordinatenraum auf die Drehungstransformation eines zweiten Anzeigeobjekts reagiert. Das Objekt kopiert die Drehung nicht; es ändert nur seine Position, um die Änderungen der Drehung wiederzuspiegeln. Um zum Beispiel mit der display.Graphics-API ein sich drehendes dreidimensionales Objekt zu zeichnen, müssen Sie die sich drehenden Koordinaten des Objekts einem zweidimensionalen Punkt zuordnen. Rufen Sie zunächst mit der deltaTransformVector()-Methode die dreidimensionalen Koordinaten des Objekts nach jeder Drehung ab. Wenden Sie als Nächstes die local3DToGlobal()-Methode des Anzeigeobjekts an, um die dreidimensionalen Koordinaten in zweidimensionale Punkte zu übersetzen. Mithilfe der zweidimensionalen Punkte können Sie dann das sich drehende dreidimensionale Objekt zeichnen.

Hinweis: Diese Methode legt die w-Komponente des übergebenen Vector3D auf 0.0 fest.

Parameter

v:Vector3D — Ein Vector3D-Objekt, das die zu transformierenden Koordinaten enthält.

Rückgabewerte
Vector3D — Ein Vector3D-Objekt mit den transformierten Koordinaten.

Verwandte API-Elemente

identity

()Methode 
public function identity():void

Sprachversion: ActionScript 3.0
Laufzeitversionen: Flash Player 10, AIR 1.5

Konvertiert die aktuelle Matrix in eine Identitäts- oder Einheitsmatrix. Eine Identitätsmatrix hat einen Wert von 1 für alle Elemente in der Hauptdiagonale und einen Wert von 0 für alle anderen Elemente. Das Ergebnis ist eine Matrix mit den folgenden Einstellungen: Der rawData-Wert ist 1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1, die Drehungseinstellung ist auf Vector3D(0,0,0) gesetzt, die Positions- oder Versetzungseinstellungen sind auf Vector3D(0,0,0) gesetzt und die Skalierung auf Vector3D(1,1,1). Hier sehen Sie eine Darstellung einer Identitätsmatrix.

Identitätsmatrix

Ein Objekt, das durch Anwenden einer Identitätsmatrix transformiert wird, führt keine Transformation aus. Anders ausgedrückt, wenn eine Matrix mit einer Identitätsmatrix multipliziert wird, ist das Ergebnis eine Matrix, die mit der ursprünglichen Matrix identisch ist.

interpolate

()Methode 
public static function interpolate(thisMat:Matrix3D, toMat:Matrix3D, percent:Number):Matrix3D

Sprachversion: ActionScript 3.0
Laufzeitversionen: Flash Player 10, AIR 1.5

Interpoliert die Versetzungs-, Drehungs- und Skalierungstransformation der einen Matrix in Richtung der Transformationen der Zielmatrix.

Die interpolate()-Methode vermeidet einige der unerwünschten Ergebnisse, die auftreten können, wenn Methoden wie zum Beispiel die Eigenschaften für die Achsendrehung des Anzeigeobjekts verwendet werden. Die interpolate()-Methode macht den zwischengespeicherten Wert der Drehungseigenschaft des Anzeigeobjekts ungültig und rechnet die Ausrichtungselemente der Matrix des Anzeigeobjekts vor der Interpolation in Quaternionen um. Diese Methode gewährleistet den kürzesten, effizientesten Drehungspfad. Sie erzeugt auch eine ruckfreie Drehung und vermeidet eine Blockade der kardanischen Aufhängung (Gimbal Lock). Ein Gimbal Lock kann bei Eulerschen Winkeln auftreten, da die Achsen unabhängig voneinander behandelt werden. Bei der Drehung um zwei oder mehr Achsen können die Achsen zusammenfallen, was zu unerwarteten Ergebnissen führt. Das Gimbal Lock wird durch die Drehung mittels Quaternionen vermieden.

Aufeinanderfolgende Aufrufe der interpolate()-Methode können einen Effekt erzeugen, bei dem ein Anzeigeobjekt schnell startet und sich dann langsam einem anderen Anzeigeobjekt nähert. Wenn Sie zum Beispiel den thisMat-Parameter auf das zurückgegebene Matrix3D-Objekt setzen, den toMat-Parameter auf das mit dem Zielanzeigeobjekt verknüpfte Matrix3D-Objekt und den percent-Parameter auf 0.1, so bewegt sich das Anzeigeobjekt um zehn Prozent in Richtung des Zielobjekts. Durch aufeinanderfolgende Aufrufe oder in aufeinanderfolgenden Bildern bewegt sich das Objekt um zehn Prozent der verbleibenden 90 Prozent, dann um zehn Prozent der verbleibenden Distanz usw., bis das Ziel erreicht ist.

Parameter

thisMat:Matrix3D — Das Matrix3D-Objekt, das interpoliert wird.
 
toMat:Matrix3D — Das Matrix3D-Zielobjekt.
 
percent:Number — Ein Wert zwischen 0 und 1, der den Prozentwert angibt, um den das thisMat-Matrix3D-Objekt in Richtung des Matrix3D-Zielobjekts interpoliert wird.

Rückgabewerte
Matrix3D — Ein Matrix3D-Objekt mit Elementen, die die Werte der Matrix zwischen der Original- und der Zielmatrix anordnen. Wird die zurückgegebene Matrix auf das this-Anzeigeobjekt angewendet, so bewegt sich das Objekt um die angegebene Prozentzahl näher zum Zielobjekt.

Verwandte API-Elemente

interpolateTo

()Methode 
public function interpolateTo(toMat:Matrix3D, percent:Number):void

Sprachversion: ActionScript 3.0
Laufzeitversionen: Flash Player 10, AIR 1.5

Interpoliert diese Matrix in Richtung der Versetzungs-, Drehungs- und Skalierungstransformationen der Zielmatrix.

Die interpolateTo()-Methode vermeidet die unerwünschten Ergebnisse, die auftreten können, wenn Methoden wie zum Beispiel die Eigenschaften für die Achsendrehung des Anzeigeobjekts verwendet werden. Die interpolateTo()-Methode macht den zwischengespeicherten Wert der Drehungseigenschaft des Anzeigeobjekts ungültig und rechnet die Ausrichtungselemente der Matrix des Anzeigeobjekts vor der Interpolation in Quaternionen um. Diese Methode gewährleistet den kürzesten, effizientesten Drehungspfad. Sie erzeugt auch eine ruckfreie Drehung und vermeidet eine Blockade der kardanischen Aufhängung (Gimbal Lock). Ein Gimbal Lock kann bei Eulerschen Winkeln auftreten, da die Achsen unabhängig voneinander behandelt werden. Bei der Drehung um zwei oder mehr Achsen können die Achsen zusammenfallen, was zu unerwarteten Ergebnissen führt. Das Gimbal Lock wird durch die Drehung mittels Quaternionen vermieden.

Hinweis: Im Falle einer Interpolation wird der Skalierungswert der Matrix zurückgesetzt und die Matrix wird normalisiert.

Aufeinanderfolgende Aufrufe der interpolateTo()-Methode können einen Effekt erzeugen, bei dem ein Anzeigeobjekt schnell startet und sich dann langsam einem anderen Anzeigeobjekt nähert. Wenn der percent-Parameter beispielsweise auf 0.1 gesetzt ist, bewegt sich das Anzeigeobjekt um zehn Prozent in Richtung des im toMat-Parameter angegebenen Zielobjekts. Durch aufeinanderfolgende Aufrufe oder in aufeinanderfolgenden Bildern bewegt sich das Objekt um zehn Prozent der verbleibenden 90 Prozent, dann um zehn Prozent der verbleibenden Distanz usw., bis das Ziel erreicht ist.

Parameter

toMat:Matrix3D — Das Matrix3D-Zielobjekt.
 
percent:Number — Ein Wert zwischen 0 und 1, der die Position des Anzeigeobjekts in Bezug auf sein Ziel bestimmt. Je näher der Wert an 1.0 liegt, desto näher ist das Anzeigeobjekt seiner aktuellen Position. Je näher der Wert an 0 liegt, desto näher ist das Anzeigeobjekt dem Ziel.

Verwandte API-Elemente


Beispiel  ( Verwendung dieses Beispiels )

In diesem Beispiel bewegt sich das dreidimensionale Anzeigeobjekt ellipse2 in Richtung eines anderen dreidimensionalen Anzeigeobjekts ellipse1. ellipse2 folgt ellipse1 wie bei einer Verfolgungsjagd. Wenn ellipse1 nicht um seine y-Achse rotiert, erreicht ellipse2 das ellipse1-Objekt und „landet“ auf ihm. Die beiden Ellipsen werden auf die gleiche Weise gezeichnet, aber an unterschiedlichen dreidimensionalen Positionen des globalen Raums platziert.
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

()Methode 
public function invert():Boolean

Sprachversion: ActionScript 3.0
Laufzeitversionen: Flash Player 10, AIR 1.5

Invertiert die aktuelle Matrix. Eine invertierte Matrix hat dieselbe Größe wie das Original, führt jedoch die der Originalmatrix entgegengesetzte Transformation aus. Wenn die Originalmatrix zum Beispiel ein Objekt in eine Richtung um die x-Achse dreht, dreht die invertierte Matrix das Objekt in die entgegengesetzte Richtung um diese Achse. Durch das Anwenden einer invertierten Matrix auf ein Objekt wird die von der Originalmatrix durchgeführte Transformation rückgängig gemacht. Wenn eine Matrix mit ihrer invertierten Matrix multipliziert wird, ist das Ergebnis eine Identitätsmatrix.

Mit einer invertierten Matrix kann eine Matrix durch eine andere dividiert werden. Um Matrix A durch Matrix B zu dividieren, wird Matrix A mit der invertierten Matrix B multipliziert. Die invertierte Matrix kann auch bei einem Kameraraum verwendet werden. Wenn sich die Kamera im Raum der Welt bewegt, muss sich das Objekt in dieser Welt in die entgegengesetzte Richtung bewegen, damit die Transformation von der Weltsicht in den Kameraraum bzw. Sichtraum erfolgt. Wenn die Kamera zum Beispiel näher kommt, werden die Objekte größer. Anders ausgedrückt, wenn sich die Kamera entlang der z-Achse der Welt nach unten (nach hinten) bewegt, bewegen sich die Objekte entlang der z-Achse der Welt nach oben (nach vorn).

Die invert()-Methode ersetzt die aktuelle Matrix durch die invertierte Matrix. Wenn Sie eine Matrix invertieren möchten, ohne die aktuelle Matrix zu ändern, kopieren Sie zunächst die aktuelle Matrix mithilfe der clone()-Methode und wenden dann die invert()-Methode auf die Kopie an.

Das Matrix3D-Objekt muss invertierbar sein.

Rückgabewerte
Boolean — Gibt true zurück, wenn die Matrix erfolgreich invertiert wurde.

Verwandte API-Elemente

pointAt

()Methode 
public function pointAt(pos:Vector3D, at:Vector3D = null, up:Vector3D = null):void

Sprachversion: ActionScript 3.0
Laufzeitversionen: Flash Player 10, AIR 1.5

Dreht das Anzeigeobjekt, sodass es auf eine bestimmte Position zeigt. Diese Methode ermöglicht die direkte Änderung der Ausrichtung. Der vorwärts zeigende Vektor des Anzeigeobjekts (das at-Vector3D-Objekt) zeigt auf die angegebene auf die Welt bezogene Position. Die Aufwärtsrichtung des Anzeigeobjekts wird mit dem up-Vector3D-Objekt festgelegt.

Die pointAt()-Methode macht den zwischengespeicherten Wert der Drehungseigenschaft des Anzeigeobjekts ungültig. Die Methode zerlegt die Matrix des Anzeigeobjekts und ändert die Drehungselemente, damit sich das Objekt in die angegebene Position dreht. Danach wird die Matrix des Anzeigeobjekts wieder zusammengesetzt (aktualisiert), wodurch die Transformation ausgeführt wird. Wenn das Objekt auf ein sich bewegendes Ziel zeigt, zum Beispiel die Position eines sich bewegenden Objekts, wird das Objekt bei jedem folgenden Aufruf der Methode in Richtung des sich bewegenden Ziels gedreht.

Hinweis: Wenn Sie die Matrix3D.pointAt()-Methode verwenden, ohne die optionalen Parameter festzulegen, nimmt ein Zielobjekt nicht standardmäßig die angegebene erdbezogene Position ein. Sie müssen die Werte für at auf die -y-Achse (0,-1,0) und up auf die -z-Achse (0,0,-1) festlegen.

Parameter

pos:Vector3D — Die auf die Welt bezogene Position des Zielobjekts. „Auf die Welt bezogen“ bezeichnet die Transformation des Objekts relativ zum Raum der Welt und den Koordinaten, die angeben wo die Objekte dort platziert sind.
 
at:Vector3D (default = null) — Der objektbezogene Vektor, der festlegt, in welche Richtung das Anzeigeobjekt weist. „Objektbezogen“ bezeichnet die Transformation des Objekts relativ zum Objektraum, dem eigenen Bezugsrahmen des Objekts mit seinem eigenen Koordinatensystem. Der Standardwert ist die +y-Achse (0,1,0).
 
up:Vector3D (default = null) — Der objektbezogene Vektor, der die Aufwärtsrichtung des Anzeigeobjekts definiert. Wenn das Objekt so gezeichnet ist, dass es von oben nach unten zeigt, dann ist die +z-Achse der Aufwärtsvektor. „Objektbezogen“ bezeichnet die Transformation des Objekts relativ zum Objektraum, dem eigenen Bezugsrahmen des Objekts mit seinem eigenen Koordinatensystem. Der Standardwert ist die +z-Achse (0,0,1).

Verwandte API-Elemente


Beispiel  ( Verwendung dieses Beispiels )

In diesem Beispiel zeigt ein Dreieck auf den Bewegungspfad einer Ellipse und folgt dieser. Die Ellipse und das Dreieck sind auf verschiedene Positionen eingestellt. Die Ellipse bewegt sich dann nach oben zur Ecke der Bühne. Das Dreieck folgt den Versetzungsänderungen der Ellipse. Sie können die Form des Dreiecks und die „at“- und „up“-Parameter von pointAt() ändern, um die Auswirkungen auf die Bewegung des Dreiecks zu sehen.
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

()Methode 
public function prepend(rhs:Matrix3D):void

Sprachversion: ActionScript 3.0
Laufzeitversionen: Flash Player 10, AIR 1.5

Stellt eine Matrix voran, indem das aktuelle Matrix3D-Objekt mit einem anderen Matrix3D-Objekt multipliziert wird. Das Ergebnis kombiniert beide Matrixtransformationen.

Die Matrixmultiplikation unterscheidet sich von der Matrixaddition. Die Matrixmultiplikation ist nicht kommutativ. Anders ausgedrückt, A mal B ist nicht gleich B mal A. Mit der prepend()-Methode wird die Multiplikation von rechts ausgeführt, das heißt, das rhs-Matrix3D-Objekt befindet sich rechts vom Multiplikationsoperator.

thisMatrix = thisMatrix * rhs

Die durch die prepend()-Methode ausgeführten Änderungen sind relativ zum Objektraum. Anders ausgedrückt beziehen Sie sich immer auf den ursprünglichen Referenzrahmen des Objekts.

Die prepend()-Methode ersetzt die aktuelle Matrix durch die vorangestellte Matrix. Wenn Sie zwei Matrizen voranstellen möchten, ohne die aktuelle Matrix zu ändern, kopieren Sie zuerst die aktuelle Matrix mithilfe der clone()-Methode und wenden dann die prepend()-Methode auf die Kopie an.

Parameter

rhs:Matrix3D — Rechte Seite der Matrix, mit der das aktuelle Matrix3D-Objekt multipliziert wird.

Verwandte API-Elemente

prependRotation

()Methode 
public function prependRotation(degrees:Number, axis:Vector3D, pivotPoint:Vector3D = null):void

Sprachversion: ActionScript 3.0
Laufzeitversionen: Flash Player 10, AIR 1.5

Stellt einem Matrix3D-Objekt eine inkrementelle Drehung voran. Wenn das Matrix3D-Objekt auf ein Anzeigeobjekt angewendet wird, führt die Matrix die Drehung vor den anderen Transformationen im Matrix3D-Objekt aus.

Die Drehung eines Anzeigeobjekts wird durch eine Achse, einen inkrementellen Drehwinkel um die Achse und einen optionalen Drehpunkt als Mittelpunkt der Drehung des Objekts bestimmt. Die Achse kann in jede Richtung zeigen. Die üblichen Achsen sind X_AXIS (Vector3D(1,0,0)), Y_AXIS (Vector3D(0,1,0)) und Z_AXIS (Vector3D(0,0,1)). In der Luftfahrtterminologie wird die Drehung um die y-Achse als Gieren bezeichnet. Die Drehung um die x-Achse heißt Nicken. Die Drehung um die z-Achse wird als Rollen bezeichnet.

Die Transformationsreihenfolge ist von Bedeutung. Eine Drehung gefolgt von einer Versetzungstransformation hat andere Auswirkungen als eine Versetzung gefolgt von einer Drehung.

Der Drehungseffekt ist nicht absolut. Die Auswirkung ist objektbezogen, relativ zum Bezugsrahmen der ursprünglichen Position und Ausrichtung. Um absolute Änderungen der Transformation vorzunehmen, verwenden Sie die recompose()-Methode.

Wenn die Transformation der prependRotation()-Methode auf ein Matrix3D-Objekt eines Anzeigeobjekts angewendet wird, werden die zwischengespeicherten Werte der Drehungseigenschaft des Anzeigeobjekts ungültig.

Eine Möglichkeit, ein Anzeigeobjekt um einen bestimmten Punkt relativ zu seiner Position zu drehen, besteht darin, die Versetzung des Objekts auf den angegebenen Punkt festzulegen, das Objekt mithilfe der prependRotation-Methode zu drehen und das Objekt dann an die ursprüngliche Position zurückzuversetzen. Im folgenden Beispiel führt das myObject-3D-Anzeigeobjekt eine Drehung um die y-Achse um die Koordinate (10,10,0) aus.

    
    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);
     
    

Parameter

degrees:Number — Der Drehungsgrad.
 
axis:Vector3D — Die Drehachse oder -richtung. Die üblichen Achsen sind X_AXIS (Vector3D(1,0,0)), Y_AXIS (Vector3D(0,1,0)) und Z_AXIS (Vector3D(0,0,1)). Dieser Vektor sollte eine Länge von eins haben.
 
pivotPoint:Vector3D (default = null) — Ein Punkt, der die Mitte der Drehung bestimmt. Der Standarddrehpunkt eines Objekts ist sein Registrierungspunkt.

Verwandte API-Elemente


Beispiel  ( Verwendung dieses Beispiels )

In diesem Beispiel kann der Benutzer eine Maus verwenden, um eine Ellipse um ihre x- und y-Achsen zu drehen. Die Ellipse wird mit ihrem Registrierungspunkt in ihrer Mitte gezeichnet. Die Ellipse dreht sich um ihre y-Achse, indem sie die x-Koordinate der Maus verwendet. Sie dreht sich um ihre x-Achse, indem sie die y-Koordinate der Maus verwendet.
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

()Methode 
public function prependScale(xScale:Number, yScale:Number, zScale:Number):void

Sprachversion: ActionScript 3.0
Laufzeitversionen: Flash Player 10, AIR 1.5

Stellt einem Matrix3D-Objekt eine inkrementelle Skalierungsänderung der x-, y- und z-Achse voran. Wenn das Matrix3D-Objekt auf ein Anzeigeobjekt angewendet wird, führt die Matrix die Skalierungsänderungen vor den anderen Transformationen im Matrix3D-Objekt aus. Die Änderungen sind objektbezogen, relativ zum Bezugsrahmen der ursprünglichen Position und Ausrichtung. Der Standardskalierungsfaktor ist (1.0, 1.0, 1.0).

Die Skalierung ist als Satz dreier inkrementeller Änderungen entlang der drei Achsen (x, y, z) definiert. Jede Achse kann mit einer anderen Zahl multipliziert werden. Wenn Skalierungsänderungen auf ein Anzeigeobjekt angewendet werden, erhöht oder verringert sich dessen Größe. Beispiel: Wird die x-, y- und z-Achse auf „2“ gesetzt, so wird die Größe verdoppelt. Dagegen wird sie halbiert wird, wenn die Achsen auf 0.5 gesetzt werden. Um sicherzustellen, dass sich die Skalierungstransformation nur auf eine bestimmte Achse auswirkt, setzen Sie die anderen Parameter auf eins. Der Parameter „1“ bedeutet, dass keine Skalierung an der betroffenen Achse stattfindet.

Die prependScale()-Methode kann sowohl zum Ändern der Größe als auch zum Verwalten von Verzerrungen, zum Beispiel Strecken oder Stauchen eines Anzeigeobjekts, verwendet werden. Sie kann auch für das Ein- und Auszoomen auf eine Position verwendet werden. Skalierungstransformationen werden während der Drehung und Versetzung eines Anzeigeobjekts automatisch durchgeführt.

Die Transformationsreihenfolge ist von Bedeutung. Eine Größenänderung gefolgt von einer Versetzungstransformation erzeugt einen anderen Effekt als eine Versetzung gefolgt von einer Größentransformation.

Parameter

xScale:Number — Ein Multiplikator zur Skalierung des Objekts entlang der x-Achse.
 
yScale:Number — Ein Multiplikator zur Skalierung des Objekts entlang der y-Achse.
 
zScale:Number — Ein Multiplikator zur Skalierung des Objekts entlang der z-Achse.

Verwandte API-Elemente

prependTranslation

()Methode 
public function prependTranslation(x:Number, y:Number, z:Number):void

Sprachversion: ActionScript 3.0
Laufzeitversionen: Flash Player 10, AIR 1.5

Stellt einem Matrix3D-Objekt eine inkrementelle Versetzung, eine Neupositionierung entlang der x-, y- und z-Achse voran. Wenn das Matrix3D-Objekt auf ein Anzeigeobjekt angewendet wird, führt die Matrix die Versetzungsänderungen vor den anderen Transformationen im Matrix3D-Objekt aus.

Die Versetzung gibt die Entfernung an, um die sich das Anzeigeobjekt von seiner aktuellen Position weg entlang der x-, y- und z-Achse entfernt. Die prependTranslation()-Methode definiert die Versetzung als einen Satz dreier inkrementeller Änderungen entlang der drei Achsen (x,y,z). Damit die Versetzung nur eine bestimmte Achse betrifft, setzen Sie die anderen Parameter auf null. Der Parameter „0“ bedeutet, dass keine Veränderung an der betroffenen Achse stattfindet.

Die Änderungen durch Versetzung sind nicht absolut. Die Auswirkung ist objektbezogen, relativ zum Bezugsrahmen der ursprünglichen Position und Ausrichtung. Um absolute Änderungen der Transformationsmatrix vorzunehmen, verwenden Sie die recompose()-Methode. Die Transformationsreihenfolge ist ebenfalls von Bedeutung. Eine Versetzung gefolgt von einer Drehungstransformation erzeugt einen anderen Effekt als eine Drehung gefolgt von einer Versetzungstransformation. Wenn Sie prependTranslation() verwenden, bewegt sich das Anzeigeobjekt weiterhin in die Richtung, in die es zeigt, unabhängig von den anderen Transformationen. Beispiel: Wenn ein Anzeigeobjekt in Richtung einer positiven x-Achse zeigte, so bewegt es sich weiterhin in die Richtung, die von der prependTranslation()-Methode festgelegt wird, unabhängig von der Drehung des Objekts. Um Versetzungsänderungen nach anderen Transformationen auszuführen, verwenden Sie die appendTranslation()-Methode.

Parameter

x:Number — Eine inkrementelle Versetzung entlang der x-Achse.
 
y:Number — Eine inkrementelle Versetzung entlang der y-Achse.
 
z:Number — Eine inkrementelle Versetzung entlang der z-Achse.

Verwandte API-Elemente


Beispiel  ( Verwendung dieses Beispiels )

In diesem Beispiel kann der Benutzer die Ellipse mithilfe einer Maus an der y-Achse der Bühne nach oben schieben. Bewegt der Benutzer die Maus über die Ellipse, so springt diese zehn Koordinaten an der y-Achse nach oben. Verlässt die Maus die Ellipse, bevor diese die obere Grenze erreicht, so springt die Ellipse an der y-Achse wieder um zehn Koordinaten nach oben. Sobald die Ellipse die obere Grenze erreicht hat, wird sie wieder zurück an das untere Ende der Bühne bewegt.
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

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

Sprachversion: ActionScript 3.0
Laufzeitversionen: Flash Player 10, AIR 1.5

Legt die Einstellungen der Transformationsmatrix für die Versetzung, Drehung und Skalierung fest. Die Änderungen aufgrund der recompose()-Methode sind absolut, anders als die inkrementellen Änderungen aufgrund der Drehungseigenschaften des Anzeigeobjekts oder der Drehungsmethoden des Matrix3D-Objekts. Die recompose()-Methode überschreibt die Transformation der Matrix.

Um die Transformation der Matrix mithilfe eines absoluten übergeordneten Referenzrahmens zu ändern, rufen Sie die Einstellungen mithilfe der decompose()-Methode ab und nehmen die entsprechenden Änderungen vor. Sie können das Matrix3D-Objekt auf die geänderte Transformation setzen, indem Sie die recompose()-Methode verwenden.

Der Parameter der recompose()-Methode gibt den Ausrichtungsstil an, der für die Transformation verwendet wurde. Die Standardausrichtung ist eulerAngles. Dabei wird die Ausrichtung durch einen separaten Drehwinkel pro Achse festgelegt. Die Drehungen folgen aufeinander und ändern die Achsen der jeweils anderen Drehungen nicht. Die Achsendrehungseigenschaften des Anzeigeobjekts bewirken eine Transformation des Ausrichtungsstils gemäß Eulerschen Winkeln. Weitere Optionen für den Ausrichtungsstil sind axisAngle und quaternion. Die Achsenwinkelausrichtung verwendet zur Bestimmung der Ausrichtung eine Kombination von Achse und Winkel. Die Achse, um die sich das Objekt dreht, ist ein Einheitsvektor, der die Richtung darstellt. Der Winkel stellt die Stärke der Drehung um den Vektor dar. Die Richtung bestimmt auch, wohin das Anzeigeobjekt zeigt und der Winkel bestimmt, wo oben liegt. Die appendRotation()- und prependRotation()-Methode verwendet die Achsenwinkelausrichtung. Die Quaternionausrichtung verwendet komplexe Zahlen und das vierte Element eines Vektors. Die Ausrichtung wird durch die drei Drehachsen (x, y, z) und den Drehwinkel (w) dargestellt. Die interpolate()-Methode verwendet Quaternionen.

Parameter

components:Vector.<Vector3D> — Ein Vektor aus drei Vector3D-Objekten, die die Versetzungs-, Drehungs- und Skalierungselemente des Matrix3D-Objekts ersetzen.
 
orientationStyle:String (default = "eulerAngles") — Ein optionaler Parameter, der den Ausrichtungsstil für die Matrixtransformation bestimmt. Die drei Ausrichtungsstile sind eulerAngles (Konstante EULER_ANGLES), axisAngle (Konstante AXIS_ANGLE) und quaternion (Konstante QUATERNION). Weitere Informationen zu den verschiedenen Ausrichtungsstilen finden Sie im Abschnitt über die geom.Orientation3D-Klasse.

Rückgabewerte
Boolean — Gibt false zurück, falls ein beliebiges Vector3D-Element des components-Vektors nicht existiert oder null ist.

Verwandte API-Elemente

transformVector

()Methode 
public function transformVector(v:Vector3D):Vector3D

Sprachversion: ActionScript 3.0
Laufzeitversionen: Flash Player 10, AIR 1.5

Verwendet die Transformationsmatrix zum Transformieren eines Vector3D-Objekts von einer Raumkoordinate zu einer anderen. Das zurückgegebene Vector3D-Objekt enthält die neuen Koordinaten nach der Transformation. Alle Matrixtransformationen einschließlich Versetzung werden auf das Vector3D-Objekt angewendet.

Wurde das Ergebnis der transformVector()-Methode auf die Position eines Anzeigeobjekts angewendet, so ändert sich nur seine Position. Die Drehungs- und Skalierungselemente des Anzeigeobjekts bleiben unverändert.

Hinweis: Diese Methode legt die w-Komponente des übergebenen Vector3D auf 1.0 fest.

Parameter

v:Vector3D — Ein Vector3D-Objekt, das die zu transformierenden Koordinaten enthält.

Rückgabewerte
Vector3D — Ein Vector3D-Objekt mit den transformierten Koordinaten.

Verwandte API-Elemente

transformVectors

()Methode 
public function transformVectors(vin:Vector.<Number>, vout:Vector.<Number>):void

Sprachversion: ActionScript 3.0
Laufzeitversionen: Flash Player 10, AIR 1.5

Verwendet die Transformationsmatrix zum Transformieren eines Zahlenvektors von einem Koordinatenraum in einen anderen. Die transformVectors()-Methode liest jeweils drei Zahlen im Vector-Objekt vin als eine dreidimensionale Koordinate (x,y,z) und platziert eine transformierte dreidimensionale Koordinate in das Vector-Objekt vout. Alle Matrixtransformationen, einschließlich der Versetzung, werden auf das Vector-Objekt vin angewendet. Mit der transformVectors()-Methode können Sie ein dreidimensionales Objekt als Gitter darstellen und transformieren. Ein Gitter ist eine Sammlung von Scheitelpunkten, die die Form des Objekts definieren.

Parameter

vin:Vector.<Number> — Ein Vektor von Zahlen, wobei jeweils drei Zahlen eine dreidimensionale Koordinate (x,y,z) bilden, die transformiert wird.
 
vout:Vector.<Number> — Ein Vektor von Zahlen, wobei jeweils drei Zahlen eine transformierte dreidimensionale Koordinate (x,y,z) bilden.

Verwandte API-Elemente

transpose

()Methode 
public function transpose():void

Sprachversion: ActionScript 3.0
Laufzeitversionen: Flash Player 10, AIR 1.5

Konvertiert das aktuelle Matrix3D-Objekt in eine Matrix, deren Zeilen und Spalten vertauscht sind. Wenn beispielsweise rawData des aktuellen Matrix3D-Objekts die folgenden 16 Zahlen enthält, 1,2,3,4,11,12,13,14,21,22,23,24,31,32,33,34, so liest die transpose()-Methode jeweils vier Elemente als Zeilen und wandelt sie in Spalten um. Das Ergebnis ist eine Matrix mit folgenden rawData: 1,11,21,31,2,12,22,32,3,13,23,33,4,14,24,34.

Die transpose()-Methode ersetzt die aktuelle Matrix mit einer transponierten Matrix. Wenn Sie eine Matrix transponieren möchten, ohne die aktuelle Matrix zu ändern, kopieren Sie zunächst die aktuelle Matrix mithilfe der clone()-Methode und wenden dann die transpose()-Methode auf die Kopie an.

Eine orthogonale Matrix ist eine quadratische Matrix, deren transponierte gleich ihrer invertierten Matrix ist.





[ X ]Warum auf Englisch?
Inhalt des ActionScript 3.0-Referenzhandbuchs wird in englischer Sprache angezeigt

Nicht alle Teile des ActionScript 3.0-Referenzhandbuchs wurden in alle Sprachen übersetzt. Wenn der Text zu einem Sprachelement nicht übersetzt wurde, wird er auf Englisch angezeigt. Zum Beispiel wurden die Informationen zur ga.controls.HelpBox-Klasse nicht in andere Sprachen übersetzt. In der deutschen Version des Referenzhandbuchs erscheint der Abschnitt zur ga.controls.HelpBox-Klasse deshalb auf Englisch.