flash.displayFrameLabel Das FrameLabel-Objekt umfasst Eigenschaften, die eine Bildnummer und die entsprechende Bildbezeichnung festlegen.Object Das FrameLabel-Objekt umfasst Eigenschaften, die eine Bildnummer und die entsprechende Bildbezeichnung festlegen. Die Scene-Klasse umfasst die labels-Eigenschaft, bei der es sich um ein Array an FrameLabel-Objekten für die Szene handelt. Scene.labelsMovieClip.currentLabelMovieClip.currentSceneMovieClip.scenesMovieClip.gotoAndPlay()MovieClip.gotoAndStop()frame Die Nummer des Bilds mit dieser Bezeichnung.int Die Nummer des Bilds mit dieser Bezeichnung. name Die Bildbezeichnung.String Die Bildbezeichnung. InteractiveObject Die InteractiveObject-Klasse ist die abstrakte Basisklasse für alle Anzeigeobjekte, mit denen Benutzer über Maus, Tastatur oder ein anderes Eingabegerät interagieren können.flash.display:DisplayObject Die InteractiveObject-Klasse ist die abstrakte Basisklasse für alle Anzeigeobjekte, mit denen Benutzer über Maus, Tastatur oder ein anderes Eingabegerät interagieren können.

Die InteractiveObject-Klasse lässt sich nicht direkt instanziieren. Beim Aufrufen des Konstruktors new InteractiveObject() wird eine ArgumentError-Ausnahme ausgelöst.

Die InteractiveObject-Klasse selbst enthält keine APIs zum Rendern von Inhalten auf dem Bildschirm. Um eine benutzerdefinierte Unterklasse der InteractiveObject-Klasse zu erstellen, erweitern Sie eine der Unterklassen, die über APIs zum Rendering von Inhalten auf dem Bildschirm verfügen, zum Beispiel die Sprite-, SimpleButton-, TextField- oder MovieClip-Klassen.

Im folgenden Beispiel wird mit der Klasse InteractiveObjectExample, die ihrerseits die Klasse ChildSprite verwendet, ein Rechteck gezeichnet und dann basierend auf verschiedenen Mausereignissen bearbeitet. Dies wird in den folgenden Schritten erreicht:
  1. Im Konstruktor InteractiveObjectExample wird ein neues ChildSprite-Objekt vom Typ „Sprite“ mit dem Namen child erstellt. Dieses Objekt ruft die ChildSprite-Konstruktormethode auf, um die Form zu zeichnen und für die Form Mausereignisse hinzuzufügen (dies ist in den folgenden Schritten erläutert). Das child-Objekt wird an der ersten Stelle der Anzeigeliste eingefügt, indem die Koordinaten x = 0, y = 0 verwendet werden.
  2. Deklarieren Sie in der Klasse ChildSprite die Eigenschaften size und overSize, die später in der draw()-Methode und den MouseEvent-Methoden verwendet werden.
  3. Deklarieren Sie Eigenschaften, die die Hintergrundfarbe auf Orange, die Mouseover-Farbe auf Dunkelgelb und die Mousedown-Farbe auf Hellblau setzen.
  4. Im Konstruktor ChildSprite zeichnen Sie ein orangefarbenes Quadrat, indem Sie Methoden der Graphics-Klasse und der draw()-Methode verwenden.
  5. Der Konstruktor fügt vier MouseEvent-Ereignis-Listener-Methoden hinzu:
    • mouseOverHandler: Zeichnet ein größeres Pixelquadrat mit den Maßen 60 x 60 in Dunkelgelb an den ursprünglichen Koordinaten.
    • mouseOutHandler: Setzt das Quadrat wieder auf die ursprüngliche Größe und Farbe zurück.
    • mouseDownHandler: Zeichnet ein größeres Pixelquadrat mit den Maßen 60 x 60 in Hellblau an den ursprünglichen Koordinaten.
    • mouseUpHandler: Identisch mit mouseOverHandler.
package { import flash.display.Sprite; public class InteractiveObjectExample extends Sprite { public function InteractiveObjectExample() { var child:Sprite = new ChildSprite(); addChild(child); } } } import flash.display.Sprite; import flash.events.MouseEvent; class ChildSprite extends Sprite { private var size:uint = 50; private var overSize:uint = 60; private var backgroundColor:uint = 0xFFCC00; private var overColor:uint = 0xCCFF00; private var downColor:uint = 0x00CCFF; public function ChildSprite() { buttonMode = true; draw(size, size, backgroundColor); addEventListener(MouseEvent.MOUSE_OVER, mouseOverHandler); addEventListener(MouseEvent.MOUSE_OUT, mouseOutHandler); addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler); addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler); } private function draw(w:uint, h:uint, bgColor:uint):void { graphics.clear(); graphics.beginFill(bgColor); graphics.drawRect(0, 0, w, h); graphics.endFill(); } public function mouseOverHandler(event:MouseEvent):void { trace("mouseOverHandler"); draw(overSize, overSize, overColor); } public function mouseOutHandler(event:MouseEvent):void { trace("mouseOutHandler"); draw(size, size, backgroundColor); } public function mouseDownHandler(event:MouseEvent):void { trace("mouseDownHandler"); draw(overSize, overSize, downColor); } public function mouseUpHandler(event:MouseEvent):void { trace("mouseUpHandler"); draw(overSize, overSize, overColor); } }
softKeyboardDeactivate Wird sofort nach dem Ausblenden der Softwaretastatur abgesetzt.flash.events.SoftKeyboardEvent.SOFT_KEYBOARD_DEACTIVATEflash.events.SoftKeyboardEventWird sofort nach dem Ausblenden der Softwaretastatur abgesetzt. Wird sofort nach dem Ausblenden der Softwaretastatur abgesetzt. flash.events.SoftKeyboardEventsoftKeyboardActivate Wird sofort nach dem Einblenden der Softwaretastatur abgesetzt.flash.events.SoftKeyboardEvent.SOFT_KEYBOARD_ACTIVATEflash.events.SoftKeyboardEventWird sofort nach dem Einblenden der Softwaretastatur abgesetzt. Wird sofort nach dem Einblenden der Softwaretastatur abgesetzt. flash.events.SoftKeyboardEventsoftKeyboardActivating Wird direkt vor dem Einblenden der Softwaretastatur abgesetzt.flash.events.SoftKeyboardEvent.SOFT_KEYBOARD_ACTIVATINGflash.events.SoftKeyboardEventWird direkt vor dem Einblenden der Softwaretastatur abgesetzt. Wird direkt vor dem Einblenden der Softwaretastatur abgesetzt. flash.events.SoftKeyboardEventtextInput Wird ausgelöst, wenn ein Benutzer ein oder mehrere Textzeichen eingibt.flash.events.TextEvent.TEXT_INPUTflash.events.TextEvent Wird ausgelöst, wenn ein Benutzer ein oder mehrere Textzeichen eingibt. Dieses Ereignis kann durch verschiedene Texteingabemethoden ausgelöst werden, z. B. die Standardtastatur, Eingabemethodeneditoren (Input Method Editors, IMEs), Spracherkennungssysteme oder das Einfügen von Text ohne Formatierungs- oder Stilinformationen. imeStartComposition Dieses Ereignis wird an jede Client-Anwendung abgesetzt, die die Inline-Eingabe mit einem IME unterstützt flash.events.IMEEvent Dieses Ereignis wird an jede Client-Anwendung abgesetzt, die die Inline-Eingabe mit einem IME unterstützt contextMenu Wird ausgelöst, wenn der Benutzer das Kontextmenü, das mit diesem interaktiven Objekt verknüpft ist, in einer AIR-Anwendung einblendet.flash.events.MouseEvent.CONTEXT_MENUflash.events.MouseEvent Wird ausgelöst, wenn der Benutzer das Kontextmenü, das mit diesem interaktiven Objekt verknüpft ist, in einer AIR-Anwendung einblendet. contextMenunativeDragComplete Wird vom InteractiveObject-Ziehinitiator ausgelöst, wenn der Benutzer die Ziehbewegung beendet.flash.events.NativeDragEvent.NATIVE_DRAG_COMPLETEflash.events.NativeDragEvent Wird vom InteractiveObject-Ziehinitiator ausgelöst, wenn der Benutzer die Ziehbewegung beendet.

Die dropAction-Eigenschaft des Ereignisses gibt die Aktion an, die vom Zielobjekt des Ziehvorgangs festgelegt ist. Der Wert „none“ (DragActions.NONE) bedeutet, dass der Ablegevorgang abgebrochen oder nicht akzeptiert wurde.

Die nativeDragComplete-Ereignisprozedur eignet sich, um den Status des einleitenden Anzeigeobjekts zu aktualisieren, beispielsweise durch Entfernen eines Elements aus einer Liste (für die move-Ziehaktion) oder durch Ändern der visuellen Eigenschaften.

nativeDragUpdate Wird während eines Ziehvorgangs von der InteractiveObject-Instanz ausgelöst, die als Ziehinitiator im DragManager.doDrag()-Aufruf festgelegt ist.flash.events.NativeDragEvent.NATIVE_DRAG_UPDATEflash.events.NativeDragEvent Wird während eines Ziehvorgangs von der InteractiveObject-Instanz ausgelöst, die als Ziehinitiator im DragManager.doDrag()-Aufruf festgelegt ist.

Unter Linux werden keine nativeDragUpdate-Ereignisse ausgelöst.

nativeDragStart Wird am Anfang eines Ziehvorgangs von der InteractiveObject-Instanz ausgelöst, die als Ziehinitiator im DragManager.doDrag()-Aufruf festgelegt ist.flash.events.NativeDragEvent.NATIVE_DRAG_STARTflash.events.NativeDragEvent Wird am Anfang eines Ziehvorgangs von der InteractiveObject-Instanz ausgelöst, die als Ziehinitiator im DragManager.doDrag()-Aufruf festgelegt ist. nativeDragExit Wird von einer InteractiveObject-Instanz ausgelöst, wenn eine Ziehbewegung ihre Begrenzungen verlässt.flash.events.NativeDragEvent.NATIVE_DRAG_EXITflash.events.NativeDragEvent Wird von einer InteractiveObject-Instanz ausgelöst, wenn eine Ziehbewegung ihre Begrenzungen verlässt. nativeDragDrop Wird vom InteractiveObject-Zielobjekt ausgelöst, wenn ein gezogenes Objekt darauf abgelegt wird und das Ablegen mit einem Aufruf von „DragManager.acceptDragDrop()“ akzeptiert wurde.flash.events.NativeDragEvent.NATIVE_DRAG_DROPflash.events.NativeDragEvent Wird vom InteractiveObject-Zielobjekt ausgelöst, wenn ein gezogenes Objekt darauf abgelegt wird und das Ablegen mit einem Aufruf von „DragManager.acceptDragDrop()“ akzeptiert wurde.

Auf die abgelegten Daten kann mit der clipboard-Eigenschaft des Ereignisobjekts zugegriffen werden.

Die Prozedur für dieses Ereignis sollte die DragManager.dropAction-Eigenschaft festlegen, um dem Initiatorobjekt mitzuteilen, welche Ziehaktion ausgeführt wurde. Wenn kein Wert festgelegt wird, wählt DragManager einen Standardwert in der Liste der zulässigen Aktionen aus.

nativeDragOver Wird von einer InteractiveObject-Instanz kontinuierlich ausgelöst, während eine Ziehbewegung innerhalb ihrer Begrenzungen verbleibt.flash.events.NativeDragEvent.NATIVE_DRAG_OVERflash.events.NativeDragEvent Wird von einer InteractiveObject-Instanz kontinuierlich ausgelöst, während eine Ziehbewegung innerhalb ihrer Begrenzungen verbleibt.

nativeDragOver-Ereignisse werden ausgelöst, wann immer die Maus bewegt wird. Unter Windows und Mac werden sie auch bei kurzen Timerintervallen ausgelöst, selbst, wenn sich die Maus nicht bewegt hat.

Entweder das nativeDragOver-Ereignis oder das nativeDragEnter-Ereignis sollte so eingestellt werden, dass das Anzeigeobjekt zum Ablageziel werden kann.

Um zu bestimmen, ob das auslösende Anzeigeobjekt den Ablegevorgang akzeptieren kann, überprüfen Sie die Eignung der Daten in der clipboard-Eigenschaft des Ereignisobjekts und die zulässigen Ziehaktionen in der allowedActions-Eigenschaft.

nativeDragEnter Wird von einer InteractiveObject-Instanz ausgelöst, wenn eine Ziehbewegung in ihre Begrenzungen eintritt.flash.events.NativeDragEvent.NATIVE_DRAG_ENTERflash.events.NativeDragEvent Wird von einer InteractiveObject-Instanz ausgelöst, wenn eine Ziehbewegung in ihre Begrenzungen eintritt.

Entweder das nativeDragEnter-Ereignis oder das nativeDragOver-Ereignis sollte so eingestellt werden, dass das Anzeigeobjekt zum Ablageziel werden kann.

Um zu bestimmen, ob das auslösende Anzeigeobjekt den Ablegevorgang akzeptieren kann, überprüfen Sie die Eignung der Daten in der clipboard-Eigenschaft des Ereignisobjekts und die zulässigen Ziehaktionen in der allowedActions-Eigenschaft.

tabIndexChange Wird ausgelöst, wenn sich der Wert der tabIndex-Eigenschaft des Objekts ändert.flash.events.Event.TAB_INDEX_CHANGEflash.events.Event Wird ausgelöst, wenn sich der Wert der tabIndex-Eigenschaft des Objekts ändert. tabEnabledChange Wird ausgelöst, wenn sich das tabEnabled-Flag des Objekts ändert.flash.events.Event.TAB_ENABLED_CHANGEflash.events.Event Wird ausgelöst, wenn sich das tabEnabled-Kennzeichen des Objekts ändert. tabChildrenChange Wird ausgelöst, wenn sich der Wert des tabChildren-Flags des Objekts ändert.flash.events.Event.TAB_CHILDREN_CHANGEflash.events.Event Wird ausgelöst, wenn sich der Wert des tabChildren-Kennzeichens des Objekts ändert. keyUp Wird ausgelöst, wenn der Benutzer eine Taste loslässt.flash.events.KeyboardEvent.KEY_UPflash.events.KeyboardEvent Wird ausgelöst, wenn der Benutzer eine Taste loslässt. Zuordnungen zwischen Tasten und spezifischen Zeichen variieren zwischen verschiedenen Geräten und Betriebssystemen. Dieser Ereignistyp wird erzeugt, nachdem eine Zuordnung dieser Art stattgefunden hat, aber vor der Verarbeitung eines IME (Input Method Editor, Eingabemethodeneditor). IMEs werden zur Eingabe von Zeichen verwendet, die auf der Standard-QWERTY-Tastatur nicht belegt sind, wie etwa chinesische Ideogramme. Dieses Ereignis tritt nach einem keyDown-Ereignis auf und besitzt die folgenden Merkmale: keyDown Wird ausgelöst, wenn der Benutzer eine Taste drückt.flash.events.KeyboardEvent.KEY_DOWNflash.events.KeyboardEvent Wird ausgelöst, wenn der Benutzer eine Taste drückt. Zuordnungen zwischen Tasten und spezifischen Zeichen variieren zwischen verschiedenen Geräten und Betriebssystemen. Dieser Ereignistyp wird erzeugt, nachdem eine Zuordnung dieser Art stattgefunden hat, aber vor der Verarbeitung eines IME (Input Method Editor, Eingabemethodeneditor). IMEs werden zur Eingabe von Zeichen verwendet, die auf der Standard-QWERTY-Tastatur nicht belegt sind, wie etwa chinesische Ideogramme. Dieses Ereignis tritt vor dem keyUp-Ereignis ein.

Wenn Sie in AIR dieses Ereignis abbrechen, wird verhindert, dass das Zeichen in ein Textfeld eingegeben wird.

rightMouseUp Wird ausgelöst, wenn der Benutzer die Taste des Zeigegeräts über einer InteractiveObject-Instanz loslässt.flash.events.MouseEvent.RIGHT_MOUSE_UPflash.events.MouseEvent Wird ausgelöst, wenn der Benutzer die Taste des Zeigegeräts über einer InteractiveObject-Instanz loslässt. rightMouseDown Wird ausgelöst, wenn der Benutzer die Taste des Zeigegeräts über einer InteractiveObject-Instanz drückt.flash.events.MouseEvent.RIGHT_MOUSE_DOWNflash.events.MouseEvent Wird ausgelöst, wenn der Benutzer die Taste des Zeigegeräts über einer InteractiveObject-Instanz drückt. rightClick Wird ausgelöst, wenn der Benutzer die rechte Taste des Zeigegeräts über derselben InteractiveObject-Instanz drückt und loslässt.flash.events.MouseEvent.RIGHT_CLICKflash.events.MouseEvent Wird ausgelöst, wenn der Benutzer die rechte Taste des Zeigegeräts über derselben InteractiveObject-Instanz drückt und loslässt. Damit ein rightClick-Ereignis auftritt, müssen zunächst immer die beiden folgenden Ereignisse in der angegebenen Reihenfolge auftreten: rightMouseDown, dann rightMouseUp. Das Zielobjekt muss für beide Ereignisse identisch sein; andernfalls tritt kein rightClick-Ereignis auf. Zwischen den Ereignissen rightMouseDown und rightMouseUp können noch verschiedene andere Mausereignisse auftreten, wobei das rightClick-Ereignis trotzdem auftritt. middleMouseUp Wird ausgelöst, wenn der Benutzer die Taste des Zeigegeräts über einer InteractiveObject-Instanz loslässt.flash.events.MouseEvent.MIDDLE_MOUSE_UPflash.events.MouseEvent Wird ausgelöst, wenn der Benutzer die Taste des Zeigegeräts über einer InteractiveObject-Instanz loslässt. middleMouseDown Wird ausgelöst, wenn der Benutzer die mittlere Taste des Zeigegeräts über einer InteractiveObject-Instanz drückt.flash.events.MouseEvent.MIDDLE_MOUSE_DOWNflash.events.MouseEvent Wird ausgelöst, wenn der Benutzer die mittlere Taste des Zeigegeräts über einer InteractiveObject-Instanz drückt. middleClick Wird ausgelöst, wenn der Benutzer die mittlere Taste des Zeigegeräts über derselben InteractiveObject-Instanz drückt und loslässt.flash.events.MouseEvent.MIDDLE_CLICKflash.events.MouseEvent Wird ausgelöst, wenn der Benutzer die mittlere Taste des Zeigegeräts über derselben InteractiveObject-Instanz drückt und loslässt. Damit ein middleClick-Ereignis auftritt, müssen zunächst immer die beiden folgenden Ereignisse in der angegebenen Reihenfolge auftreten: middleMouseDown, dann middleMouseUp. Das Zielobjekt muss für beide Ereignisse identisch sein; andernfalls tritt kein middleClick-Ereignis auf. Zwischen den Ereignissen middleMouseDown und middleMouseUp können noch verschiedene andere Mausereignisse auftreten, wobei das middleClick-Ereignis trotzdem auftritt. gestureSwipe Wird abgesetzt, wenn der Benutzer eine Swipe-Geste an einem Kontaktpunkt mit einer InteractiveObject-Instanz ausführt (zum Beispiel mit drei Fingern den Bildschirm eines Mobiltelefons oder Tablets berührt und die Finger dann parallel über ein Anzeigeobjekt bewegt).flash.events.TransformGestureEvent.GESTURE_SWIPEflash.events.TransformGestureEvent Wird abgesetzt, wenn der Benutzer eine Swipe-Geste an einem Kontaktpunkt mit einer InteractiveObject-Instanz ausführt (zum Beispiel mit drei Fingern den Bildschirm eines Mobiltelefons oder Tablets berührt und die Finger dann parallel über ein Anzeigeobjekt bewegt). Das parallele Bewegen mehrerer Finger ist eine gebräuchliche Swipe-Geste, jedoch kann jedes Gerät seine eigenen Anforderungen für eine Swipe-Geste haben. Einige Geräte interpretieren diese Art der Berührung möglicherweise auch als Kombination verschiedener Mausereignisse.

Insbesondere, wenn der Benutzer einen Finger über ein InteractiveObject bewegt und dann die Finger zusammen bewegt, kann die InteractiveObject-Instanz ein rollOver-Ereignis und ein rollOut-Ereignis (unter anderem) zusätzlich zum gestureSwipe-Ereignis absetzen, oder sogar alle diese Ereignisse, wenn die aktuelle Umgebung dies unterstützt. Wählen Sie, wie die Benutzerinteraktion verarbeitet werden soll. Wenn Sie sich dafür entscheiden, das rollOver-Ereignis zu verarbeiten, wird dieselbe Ereignisprozedur bei einem berührungsempfindlichen Gerät und auf einem mausfähigen Gerät ausgeführt. Entscheiden Sie sich jedoch dafür, das gestureSwipe-Ereignis zu verarbeiten, können Sie Ihre Ereignisprozedur so konstruieren, dass sie auf die spezifischen Anforderungen einer berührungsempfindlichen Umgebung reagiert und Benutzern eine umfassende Steuerung über Berührungen und Gesten ermöglicht. Sie können auch beide Ereignisse separat verarbeiten, um auf Berührungsereignisse anders zu reagieren als auf Mausereignisse.

Beachten Sie bei der Verarbeitung der Eigenschaften des Ereignisobjekts, dass die localX- und localY-Eigenschaften auf den primären Kontaktpunkt gesetzt sind. Die offsetX- und offsetY-Eigenschaften geben den Abstand zum Kontaktpunkt, an dem die Swipe-Geste abgeschlossen ist, an.

Hinweis: Während einige Geräte mit dem Betriebssystem Mac OS eine Swipe-Geste mit vier Fingern erkennen, unterstützt diese API nur Swipe-Gesten mit drei Fingern.

Die folgenden Beispiele zeigen die Ereignisverarbeitung für GESTURE_SWIPE-Ereignisse. Während der Benutzer eine Swipe-Geste auf dem berührungsempfindlichen Gerät ausführt, wird myTextField mit der Phase all ausgefüllt, welche die einzige Phase für Swipe-Ereignisse ist. Multitouch.inputMode = MultitouchInputMode.GESTURE; var mySprite = new Sprite(); mySprite.addEventListener(TransformGestureEvent.GESTURE_SWIPE , onSwipe); mySprite.graphics.beginFill(0x336699); mySprite.graphics.drawRect(0, 0, 100, 80); var myTextField = new TextField(); myTextField.y = 200; addChild(mySprite); addChild(myTextField); function onSwipe(evt:TransformGestureEvent):void { if (evt.offsetX == 1 ) { myTextField.text = "right"; } if (evt.offsetY == -1) { myTextField.text = "up"; } myTextField.text = evt.phase; }
rollOver-EreignistouchOver-Ereignisflash.ui.Multitouch
gestureZoom Wird abgesetzt, wenn der Benutzer eine Zoom-Geste an einem Kontaktpunkt mit einer InteractiveObject-Instanz ausführt (zum Beispiel mit zwei Fingern den Bildschirm eines Mobiltelefons oder Tablets berührt und die Finger dann schnell über einem Anzeigeobjekt spreizt).flash.events.TransformGestureEvent.GESTURE_ZOOMflash.events.TransformGestureEvent Wird abgesetzt, wenn der Benutzer eine Zoom-Geste an einem Kontaktpunkt mit einer InteractiveObject-Instanz ausführt (zum Beispiel mit zwei Fingern den Bildschirm eines Mobiltelefons oder Tablets berührt und die Finger dann schnell über einem Anzeigeobjekt spreizt). Das Spreizen von Fingern ist eine gebräuchliche Zoomgeste, jedoch kann jedes Gerät und jedes Betriebssystem eigene Anforderungen für Zoomvorgänge haben. Einige Geräte interpretieren diese Art der Berührung möglicherweise auch als Kombination verschiedener Mausereignisse.

Insbesondere, wenn der Benutzer einen Finger über ein InteractiveObject bewegt und die Finger spreizt, kann die InteractiveObject-Instanz ein mouseOver-Ereignis und ein click-Ereignis (unter anderem) zusätzlich zum gestureZoom-Ereignis absetzen, oder sogar alle diese Ereignisse, wenn die aktuelle Umgebung dies unterstützt. Wählen Sie, wie die Benutzerinteraktion verarbeitet werden soll. Verwenden Sie die flash.ui.Multitouch-Klasse, um die Verarbeitung von Berührungsereignissen zu verwalten (Verarbeitung von Berührungsgestenereignissen oder einfachen Kontaktpunktereignissen aktivieren oder Berührungsereignisse deaktivieren, sodass nur Mausereignisse abgesetzt werden). Wenn Sie sich dafür entscheiden, das mouseOver-Ereignis zu verarbeiten, wird dieselbe Ereignisprozedur bei einem berührungsempfindlichen Gerät und auf einem mausfähigen Gerät ausgeführt. Entscheiden Sie sich jedoch dafür, das gestureZoom-Ereignis zu verarbeiten, können Sie Ihre Ereignisprozedur so konstruieren, dass sie auf die spezifischen Anforderungen einer berührungsempfindlichen Umgebung reagiert und Benutzern eine umfassende Steuerung über Berührungen und Gesten ermöglicht. Sie können auch beide Ereignisse separat verarbeiten, um auf Berührungsereignisse anders zu reagieren als auf Mausereignisse.

Beachten Sie bei der Verarbeitung der Eigenschaften des Ereignisobjekts, dass die localX- und localY-Eigenschaften auf den primären Kontaktpunkt gesetzt sind. Die offsetX- und offsetY-Eigenschaften geben den Abstand zum Kontaktpunkt, an dem die Zoomgeste abgeschlossen ist, an.

Hinweis: Informationen zur Umgebungskompatibilität finden Sie im Abschnitt über die Multitouch-Klasse.

Die folgenden Beispiele zeigen die Ereignisverarbeitung für GESTURE_ZOOM-Ereignisse. Während der Benutzer eine Zoom-Geste auf dem berührungsempfindlichen Gerät ausführt, wird in myTextField die aktuelle Phase angezeigt. Multitouch.inputMode = MultitouchInputMode.GESTURE; var mySprite = new Sprite(); mySprite.addEventListener(TransformGestureEvent.GESTURE_ZOOM , onZoom); mySprite.graphics.beginFill(0x336699); mySprite.graphics.drawRect(0, 0, 100, 80); var myTextField = new TextField(); myTextField.y = 200; addChild(mySprite); addChild(myTextField); function onZoom(evt:TransformGestureEvent):void { evt.target.scaleX++; if (evt.phase==GesturePhase.BEGIN) { myTextField.text = "Begin"; } if (evt.phase==GesturePhase.UPDATE) { myTextField.text = "Update"; } if (evt.phase==GesturePhase.END) { myTextField.text = "End"; } }
mouseOver-EreignistouchOver-Ereignisflash.ui.Multitouch
gestureRotate Wird abgesetzt, wenn der Benutzer eine Drehgeste an einem Kontaktpunkt mit einer InteractiveObject-Instanz ausführt (zum Beispiel mit zwei Fingern den Bildschirm eines Mobiltelefons oder Tablets berührt und die Finger dann über einem Anzeigeobjekt dreht).flash.events.TransformGestureEvent.GESTURE_ROTATEflash.events.TransformGestureEvent Wird abgesetzt, wenn der Benutzer eine Drehgeste an einem Kontaktpunkt mit einer InteractiveObject-Instanz ausführt (zum Beispiel mit zwei Fingern den Bildschirm eines Mobiltelefons oder Tablets berührt und die Finger dann über einem Anzeigeobjekt dreht). Die Zwei-Fingerdrehung ist eine gebräuchliche Drehgeste, jedoch kann jedes Gerät und jedes Betriebssystem eigene Anforderungen für Drehvorgänge haben. Einige Geräte interpretieren diese Art der Berührung möglicherweise auch als Kombination verschiedener Mausereignisse.

Insbesondere, wenn der Benutzer einen Finger über ein InteractiveObject bewegt, kann die InteractiveObject-Instanz ein mouseOver-Ereignis und ein click-Ereignis (unter anderem) zusätzlich zum gestureZoom-Ereignis absetzen, oder sogar alle diese Ereignisse, wenn die aktuelle Umgebung dies unterstützt. Wählen Sie, wie die Benutzerinteraktion verarbeitet werden soll. Verwenden Sie die flash.ui.Multitouch-Klasse, um die Verarbeitung von Berührungsereignissen zu verwalten (Verarbeitung von Berührungsgestenereignissen oder einfachen Kontaktpunktereignissen aktivieren oder Berührungsereignisse deaktivieren, sodass nur Mausereignisse abgesetzt werden). Wenn Sie sich dafür entscheiden, das mouseOver-Ereignis zu verarbeiten, wird dieselbe Ereignisprozedur bei einem berührungsempfindlichen Gerät und auf einem mausfähigen Gerät ausgeführt. Entscheiden Sie sich jedoch dafür, das gestureRotate-Ereignis zu verarbeiten, können Sie Ihre Ereignisprozedur so konstruieren, dass sie auf die spezifischen Anforderungen einer berührungsempfindlichen Umgebung reagiert und Benutzern eine umfassende Steuerung über Berührungen und Gesten ermöglicht. Sie können auch beide Ereignisse separat verarbeiten, um auf Berührungsereignisse anders zu reagieren als auf Mausereignisse.

Beachten Sie bei der Verarbeitung der Eigenschaften des Ereignisobjekts, dass die localX- und localY-Eigenschaften auf den primären Kontaktpunkt gesetzt sind. Die offsetX- und offsetY-Eigenschaften geben den Abstand zum Kontaktpunkt, an dem die Drehgeste abgeschlossen ist, an.

Hinweis: Informationen zur Umgebungskompatibilität finden Sie im Abschnitt über die Multitouch-Klasse.

Die folgenden Beispiele zeigen die Ereignisverarbeitung für GESTURE_ROTATE-Ereignisse. Während der Benutzer eine Drehgeste auf dem berührungsempfindlichen Gerät ausführt, dreht sich mySprite und in myTextField wird die aktuelle Phase angezeigt. Multitouch.inputMode = MultitouchInputMode.GESTURE; var mySprite = new Sprite(); mySprite.addEventListener(TransformGestureEvent.GESTURE_ROTATE , onRotate ); mySprite.graphics.beginFill(0x336699); mySprite.graphics.drawRect(0, 0, 100, 80); var myTextField = new TextField(); myTextField.y = 200; addChild(mySprite); addChild(myTextField); function onRotate(evt:TransformGestureEvent):void { evt.target.rotation -= 45; if (evt.phase==GesturePhase.BEGIN) { myTextField.text = "Begin"; } if (evt.phase==GesturePhase.UPDATE) { myTextField.text = "Update"; } if (evt.phase==GesturePhase.END) { myTextField.text = "End"; } }
mouseOver-EreignistouchOver-Ereignisflash.ui.Multitouch
gesturePressAndTap Wird abgesetzt, wenn der Benutzer einen Kontaktpunkt mit einer InteractiveObject-Instanz erstellt und dann auf ein berührungsempfindliches Gerät tippt (zum Beispiel bei einem Mobiltelefon oder Tablet mit Touchscreen mehrere Finger auf einem Anzeigeobjekt platziert, um ein Menü zu öffnen, und dann mit einem Finger tippt, um einen Menüpunkt auszuwählen).flash.events.PressAndTapGestureEvent.GESTURE_PRESS_AND_TAPflash.events.PressAndTapGestureEvent Wird abgesetzt, wenn der Benutzer einen Kontaktpunkt mit einer InteractiveObject-Instanz erstellt und dann auf ein berührungsempfindliches Gerät tippt (zum Beispiel bei einem Mobiltelefon oder Tablet mit Touchscreen mehrere Finger auf einem Anzeigeobjekt platziert, um ein Menü zu öffnen, und dann mit einem Finger tippt, um einen Menüpunkt auszuwählen). Einige Geräte interpretieren diese Art der Berührung möglicherweise auch als Kombination verschiedener Mausereignisse.

Insbesondere, wenn der Benutzer einen Finger über ein InteractiveObject bewegt und dann ein sekundäres Tippen ausführt, kann die InteractiveObject-Instanz ein mouseOver-Ereignis und ein click-Ereignis (unter anderem) zusätzlich zum gesturePressAndTap-Ereignis absetzen, oder sogar alle diese Ereignisse, wenn die aktuelle Umgebung dies unterstützt. Wählen Sie, wie die Benutzerinteraktion verarbeitet werden soll. Verwenden Sie die flash.ui.Multitouch-Klasse, um die Verarbeitung von Berührungsereignissen zu verwalten (Verarbeitung von Berührungsgestenereignissen oder einfachen Kontaktpunktereignissen aktivieren oder Berührungsereignisse deaktivieren, sodass nur Mausereignisse abgesetzt werden). Wenn Sie sich dafür entscheiden, das mouseOver-Ereignis zu verarbeiten, wird dieselbe Ereignisprozedur bei einem berührungsempfindlichen Gerät und auf einem mausfähigen Gerät ausgeführt. Entscheiden Sie sich jedoch dafür, das gesturePressAndTap-Ereignis zu verarbeiten, können Sie Ihre Ereignisprozedur so konstruieren, dass sie auf die spezifischen Anforderungen einer berührungsempfindlichen Umgebung reagiert und Benutzern eine umfassende Steuerung über Berührungen und Gesten ermöglicht. Sie können auch beide Ereignisse separat verarbeiten, um auf Berührungsereignisse anders zu reagieren als auf Mausereignisse.

Beachten Sie bei der Verarbeitung der Eigenschaften des Ereignisobjekts, dass die localX- und localY-Eigenschaften auf den primären Kontaktpunkt (das Drücken) gesetzt sind. Die offsetX- und offsetY-Eigenschaften geben den Abstand zum sekundären Kontaktpunkt (das Tippen) an.

mouseOver-EreignistouchOver-Ereignisflash.ui.Multitouch
gesturePan Wird abgesetzt, wenn der Benutzer einen Berührungspunkt über die InteractiveObject-Instanz auf einem berührungsempfindlichen Gerät bewegt (zum Beispiel bei einem Mobiltelefon oder Tablet mit Touchscreen einen Finger über ein Anzeigeobjekt von links nach rechts bewegt).flash.events.TransformGestureEvent.GESTURE_PANflash.events.TransformGestureEvent Wird abgesetzt, wenn der Benutzer einen Berührungspunkt über die InteractiveObject-Instanz auf einem berührungsempfindlichen Gerät bewegt (zum Beispiel bei einem Mobiltelefon oder Tablet mit Touchscreen einen Finger über ein Anzeigeobjekt von links nach rechts bewegt). Einige Geräte interpretieren diese Berührung möglicherweise auch als ein mouseOver-Ereignis und als ein touchOver-Ereignis.

Insbesondere, wenn der Benutzer einen Finger über ein InteractiveObject bewegt, kann die InteractiveObject-Instanz ein mouseOver-Ereignis oder ein touchOver-Ereignis oder ein gesturePan-Ereignis absetzen, oder sogar alle diese Ereignisse, wenn die aktuelle Umgebung dies unterstützt. Wählen Sie, wie die Benutzerinteraktion verarbeitet werden soll. Verwenden Sie die flash.ui.Multitouch-Klasse, um die Verarbeitung von Berührungsereignissen zu verwalten (Verarbeitung von Berührungsgestenereignissen oder einfachen Kontaktpunktereignissen aktivieren oder Berührungsereignisse deaktivieren, sodass nur Mausereignisse abgesetzt werden). Wenn Sie sich dafür entscheiden, das mouseOver-Ereignis zu verarbeiten, wird dieselbe Ereignisprozedur bei einem berührungsempfindlichen Gerät und auf einem mausfähigen Gerät ausgeführt. Entscheiden Sie sich jedoch dafür, das gesturePan-Ereignis zu verarbeiten, können Sie Ihre Ereignisprozedur so konstruieren, dass sie auf die spezifischen Anforderungen einer berührungsempfindlichen Umgebung reagiert und Benutzern eine umfassende Steuerung über Berührungen und Gesten ermöglicht. Sie können auch beide Ereignisse separat verarbeiten, um auf Berührungsereignisse anders zu reagieren als auf Mausereignisse.

Hinweis: Informationen zur Umgebungskompatibilität finden Sie im Abschnitt über die Multitouch-Klasse.

Die folgenden Beispiele zeigen die Ereignisverarbeitung für GESTURE_PAN-Ereignisse. Während der Benutzer eine Bildlaufgeste auf dem berührungsempfindlichen Gerät ausführt, wird in myTextField die aktuelle Phase angezeigt. Multitouch.inputMode = MultitouchInputMode.GESTURE; var mySprite = new Sprite(); mySprite.addEventListener(TransformGestureEvent.GESTURE_PAN , onPan); mySprite.graphics.beginFill(0x336699); mySprite.graphics.drawRect(0, 0, 100, 80); var myTextField = new TextField(); myTextField.y = 200; addChild(mySprite); addChild(myTextField); function onPan(evt:TransformGestureEvent):void { evt.target.localX++; if (evt.phase==GesturePhase.BEGIN) { myTextField.text = "Begin"; } if (evt.phase==GesturePhase.UPDATE) { myTextField.text = "Update"; } if (evt.phase==GesturePhase.END) { myTextField.text = "End"; } }
mouseOver-EreignistouchOver-Ereignisflash.ui.Multitouch
gestureTwoFingerTap Wird abgesetzt, wenn der Benutzer auf zwei Kontaktpunkte über derselben InteractiveObject-Instanz auf einem berührungsempfindlichen Gerät drückt (zum Beispiel bei einem Mobiltelefon oder Tablet mit Touchscreen zwei Finger auf ein Anzeigeobjekt drückt und wieder loslässt).flash.events.GestureEvent.GESTURE_TWO_FINGER_TAPflash.events.GestureEvent Wird abgesetzt, wenn der Benutzer auf zwei Kontaktpunkte über derselben InteractiveObject-Instanz auf einem berührungsempfindlichen Gerät drückt (zum Beispiel bei einem Mobiltelefon oder Tablet mit Touchscreen zwei Finger auf ein Anzeigeobjekt drückt und wieder loslässt). Einige Geräte interpretieren diese Berührung möglicherweise auch als doubleClick-Ereignis.

Insbesondere, wenn der Benutzer mit zwei Fingern auf ein InteractiveObject tippt, kann die InteractiveObject-Instanz ein doubleClick-Ereignis oder ein gestureTwoFingerTap-Ereignis absetzen, oder beide Ereignisse, wenn die aktuelle Umgebung dies unterstützt. Wählen Sie, wie die Benutzerinteraktion verarbeitet werden soll. Verwenden Sie die flash.ui.Multitouch-Klasse, um die Verarbeitung von Berührungsereignissen zu verwalten (Verarbeitung von Berührungsgestenereignissen oder einfachen Kontaktpunktereignissen aktivieren oder Berührungsereignisse deaktivieren, sodass nur Mausereignisse abgesetzt werden). Wenn Sie sich dafür entscheiden, das doubleClick-Ereignis zu verarbeiten, wird dieselbe Ereignisprozedur bei einem berührungsempfindlichen Gerät und auf einem mausfähigen Gerät ausgeführt. Entscheiden Sie sich jedoch dafür, das gestureTwoFingerTap-Ereignis zu verarbeiten, können Sie Ihre Ereignisprozedur so konstruieren, dass sie auf die spezifischen Anforderungen einer berührungsempfindlichen Umgebung reagiert und Benutzern eine umfassende Steuerung über Berührungen und Gesten ermöglicht. Sie können auch beide Ereignisse separat verarbeiten, um auf Berührungsereignisse anders zu reagieren als auf Mausereignisse.

Hinweis: Informationen zur Umgebungskompatibilität finden Sie im Abschnitt über die Multitouch-Klasse.

doubleClick-Ereignisflash.ui.Multitouch
touchTap Wird abgesetzt, wenn der Benutzer den Kontaktpunkt über derselben InteractiveObject-Instanz anhebt, auf der der Kontakt eingeleitet wurde (zum Beispiel bei einem Mobiltelefon oder Tablet mit Touchscreen einen Finger von einem einzelnen Kontaktpunkt hebt).flash.events.TouchEvent.TOUCH_TAPflash.events.TouchEvent Wird abgesetzt, wenn der Benutzer den Kontaktpunkt über derselben InteractiveObject-Instanz anhebt, auf der der Kontakt eingeleitet wurde (zum Beispiel bei einem Mobiltelefon oder Tablet mit Touchscreen einen Finger von einem einzelnen Kontaktpunkt hebt). Einige Geräte interpretieren diese Berührung möglicherweise auch als click-Ereignis.

Insbesondere, wenn der Benutzer mit einem Finger auf ein InteractiveObject tippt, kann die InteractiveObject-Instanz ein click-Ereignis oder ein touchTap-Ereignis absetzen, oder beide Ereignisse, wenn die aktuelle Umgebung dies unterstützt. Wählen Sie, wie die Benutzerinteraktion verarbeitet werden soll. Verwenden Sie die flash.ui.Multitouch-Klasse, um die Verarbeitung von Berührungsereignissen zu verwalten (Verarbeitung von Berührungsgestenereignissen oder einfachen Kontaktpunktereignissen aktivieren oder Berührungsereignisse deaktivieren, sodass nur Mausereignisse abgesetzt werden). Wenn Sie sich dafür entscheiden, das click-Ereignis zu verarbeiten, wird dieselbe Ereignisprozedur bei einem berührungsempfindlichen Gerät und auf einem mausfähigen Gerät ausgeführt. Entscheiden Sie sich jedoch dafür, das touchTap-Ereignis zu verarbeiten, können Sie Ihre Ereignisprozedur so konstruieren, dass sie auf die spezifischen Anforderungen einer berührungsempfindlichen Umgebung reagiert und Benutzern eine umfassende Steuerung über Berührungen und Gesten ermöglicht. Sie können auch beide Ereignisse separat verarbeiten, um auf Berührungsereignisse anders zu reagieren als auf Mausereignisse.

Hinweis: Informationen zur Umgebungskompatibilität finden Sie im Abschnitt über die Multitouch-Klasse.

Im folgenden Beispiel wird eine Meldung angezeigt, wenn bei einem Touchscreen auf das in mySprite gezeichnete Quadrat getippt wird: Multitouch.inputMode=MultitouchInputMode.TOUCH_POINT; var mySprite:Sprite = new Sprite(); var myTextField:TextField = new TextField(); mySprite.graphics.beginFill(0x336699); mySprite.graphics.drawRect(0,0,40,40); addChild(mySprite); mySprite.addEventListener(TouchEvent.TOUCH_TAP, taphandler); function taphandler(e:TouchEvent): void { myTextField.text = "I've been tapped"; myTextField.y = 50; addChild(myTextField); }
click-Ereignisflash.ui.Multitouch
touchRollOver Wird abgesetzt, wenn der Benutzer den Kontaktpunkt bei einem berührungsempfindlichen Gerät über eine InteractiveObject-Instanz bewegt (zum Beispiel bei einem Mobiltelefon oder Tablet mit Touchscreen einen Finger von einem Punkt außerhalb des Anzeigeobjekts auf einen Punkt über einem Anzeigeobjekt zieht).flash.events.TouchEvent.TOUCH_ROLL_OVERflash.events.TouchEvent Wird abgesetzt, wenn der Benutzer den Kontaktpunkt bei einem berührungsempfindlichen Gerät über eine InteractiveObject-Instanz bewegt (zum Beispiel bei einem Mobiltelefon oder Tablet mit Touchscreen einen Finger von einem Punkt außerhalb des Anzeigeobjekts auf einen Punkt über einem Anzeigeobjekt zieht). Einige Geräte interpretieren diese Berührung möglicherweise auch als rollOver-Ereignis.

Insbesondere, wenn der Benutzer einen Finger über ein InteractiveObject bewegt, kann die InteractiveObject-Instanz ein rollOver-Ereignis oder ein touchRollOver-Ereignis absetzen, oder beide Ereignisse, wenn die aktuelle Umgebung dies unterstützt. Wählen Sie, wie die Benutzerinteraktion verarbeitet werden soll. Verwenden Sie die flash.ui.Multitouch-Klasse, um die Verarbeitung von Berührungsereignissen zu verwalten (Verarbeitung von Berührungsgestenereignissen oder einfachen Kontaktpunktereignissen aktivieren oder Berührungsereignisse deaktivieren, sodass nur Mausereignisse abgesetzt werden). Wenn Sie sich dafür entscheiden, das rollOver-Ereignis zu verarbeiten, wird dieselbe Ereignisprozedur bei einem berührungsempfindlichen Gerät und auf einem mausfähigen Gerät ausgeführt. Entscheiden Sie sich jedoch dafür, das touchRollOver-Ereignis zu verarbeiten, können Sie Ihre Ereignisprozedur so konstruieren, dass sie auf die spezifischen Anforderungen einer berührungsempfindlichen Umgebung reagiert und Benutzern eine umfassende Steuerung über Berührungen und Gesten ermöglicht. Sie können auch beide Ereignisse separat verarbeiten, um auf Berührungsereignisse anders zu reagieren als auf Mausereignisse.

Hinweis: Informationen zur Umgebungskompatibilität finden Sie im Abschnitt über die Multitouch-Klasse.

rollOver-Ereignisflash.ui.Multitouch
touchRollOut Wird abgesetzt, wenn der Benutzer den Kontaktpunkt bei einem berührungsempfindlichen Gerät von einer InteractiveObject-Instanz wegbewegt (zum Beispiel bei einem Mobiltelefon oder Tablet mit Touchscreen einen Finger von einem Anzeigeobjekt auf einen Punkt außerhalb des Anzeigeobjekts zieht).flash.events.TouchEvent.TOUCH_ROLL_OUTflash.events.TouchEvent Wird abgesetzt, wenn der Benutzer den Kontaktpunkt bei einem berührungsempfindlichen Gerät von einer InteractiveObject-Instanz wegbewegt (zum Beispiel bei einem Mobiltelefon oder Tablet mit Touchscreen einen Finger von einem Anzeigeobjekt auf einen Punkt außerhalb des Anzeigeobjekts zieht). Einige Geräte interpretieren diese Berührung möglicherweise auch als rollOut-Ereignis.

Insbesondere, wenn der Benutzer einen Finger über ein InteractiveObject bewegt, kann die InteractiveObject-Instanz ein rollOut-Ereignis oder ein touchRollOut-Ereignis absetzen, oder beide Ereignisse, wenn die aktuelle Umgebung dies unterstützt. Wählen Sie, wie die Benutzerinteraktion verarbeitet werden soll. Verwenden Sie die flash.ui.Multitouch-Klasse, um die Verarbeitung von Berührungsereignissen zu verwalten (Verarbeitung von Berührungsgestenereignissen oder einfachen Kontaktpunktereignissen aktivieren oder Berührungsereignisse deaktivieren, sodass nur Mausereignisse abgesetzt werden). Wenn Sie sich dafür entscheiden, das rollOut-Ereignis zu verarbeiten, wird dieselbe Ereignisprozedur bei einem berührungsempfindlichen Gerät und auf einem mausfähigen Gerät ausgeführt. Entscheiden Sie sich jedoch dafür, das touchRollOut-Ereignis zu verarbeiten, können Sie Ihre Ereignisprozedur so konstruieren, dass sie auf die spezifischen Anforderungen einer berührungsempfindlichen Umgebung reagiert und Benutzern eine umfassende Steuerung über Berührungen und Gesten ermöglicht. Sie können auch beide Ereignisse separat verarbeiten, um auf Berührungsereignisse anders zu reagieren als auf Mausereignisse.

Hinweis: Informationen zur Umgebungskompatibilität finden Sie im Abschnitt über die Multitouch-Klasse.

rollOut-Ereignisflash.ui.Multitouch
touchOver Wird abgesetzt, wenn der Benutzer den Kontaktpunkt bei einem berührungsempfindlichen Gerät über eine InteractiveObject-Instanz bewegt (zum Beispiel bei einem Mobiltelefon oder Tablet mit Touchscreen einen Finger von einem Punkt außerhalb des Anzeigeobjekts auf einen Punkt über einem Anzeigeobjekt zieht).flash.events.TouchEvent.TOUCH_OVERflash.events.TouchEvent Wird abgesetzt, wenn der Benutzer den Kontaktpunkt bei einem berührungsempfindlichen Gerät über eine InteractiveObject-Instanz bewegt (zum Beispiel bei einem Mobiltelefon oder Tablet mit Touchscreen einen Finger von einem Punkt außerhalb des Anzeigeobjekts auf einen Punkt über einem Anzeigeobjekt zieht). Einige Geräte interpretieren diese Berührung möglicherweise auch als mouseOver-Ereignis.

Insbesondere, wenn der Benutzer einen Finger über ein InteractiveObject bewegt, kann die InteractiveObject-Instanz ein mouseOver-Ereignis oder ein touchOver-Ereignis absetzen, oder beide Ereignisse, wenn die aktuelle Umgebung dies unterstützt. Wählen Sie, wie die Benutzerinteraktion verarbeitet werden soll. Verwenden Sie die flash.ui.Multitouch-Klasse, um die Verarbeitung von Berührungsereignissen zu verwalten (Verarbeitung von Berührungsgestenereignissen oder einfachen Kontaktpunktereignissen aktivieren oder Berührungsereignisse deaktivieren, sodass nur Mausereignisse abgesetzt werden). Wenn Sie sich dafür entscheiden, das mouseOver-Ereignis zu verarbeiten, wird dieselbe Ereignisprozedur bei einem berührungsempfindlichen Gerät und auf einem mausfähigen Gerät ausgeführt. Entscheiden Sie sich jedoch dafür, das touchOver-Ereignis zu verarbeiten, können Sie Ihre Ereignisprozedur so konstruieren, dass sie auf die spezifischen Anforderungen einer berührungsempfindlichen Umgebung reagiert und Benutzern eine umfassende Steuerung über Berührungen und Gesten ermöglicht. Sie können auch beide Ereignisse separat verarbeiten, um auf Berührungsereignisse anders zu reagieren als auf Mausereignisse.

Hinweis: Informationen zur Umgebungskompatibilität finden Sie im Abschnitt über die Multitouch-Klasse.

mouseOver-Ereignisflash.ui.Multitouch
touchOut Wird abgesetzt, wenn der Benutzer den Kontaktpunkt bei einem berührungsempfindlichen Gerät von einer InteractiveObject-Instanz wegbewegt (zum Beispiel bei einem Mobiltelefon oder Tablet mit Touchscreen einen Finger von einem Anzeigeobjekt zu einem anderen zieht).flash.events.TouchEvent.TOUCH_OUTflash.events.TouchEvent Wird abgesetzt, wenn der Benutzer den Kontaktpunkt bei einem berührungsempfindlichen Gerät von einer InteractiveObject-Instanz wegbewegt (zum Beispiel bei einem Mobiltelefon oder Tablet mit Touchscreen einen Finger von einem Anzeigeobjekt zu einem anderen zieht). Einige Geräte interpretieren diese Berührung möglicherweise auch als mouseOut-Ereignis.

Insbesondere, wenn der Benutzer einen Finger über einen Touchscreen bewegt, kann die InteractiveObject-Instanz ein mouseOut-Ereignis oder ein touchOut-Ereignis absetzen, oder beide Ereignisse, wenn die aktuelle Umgebung dies unterstützt. Wählen Sie, wie die Benutzerinteraktion verarbeitet werden soll. Verwenden Sie die flash.ui.Multitouch-Klasse, um die Verarbeitung von Berührungsereignissen zu verwalten (Verarbeitung von Berührungsgestenereignissen oder einfachen Kontaktpunktereignissen aktivieren oder Berührungsereignisse deaktivieren, sodass nur Mausereignisse abgesetzt werden). Wenn Sie sich dafür entscheiden, das mouseOut-Ereignis zu verarbeiten, wird dieselbe Ereignisprozedur bei einem berührungsempfindlichen Gerät und auf einem mausfähigen Gerät ausgeführt. Entscheiden Sie sich jedoch dafür, das touchOut-Ereignis zu verarbeiten, können Sie Ihre Ereignisprozedur so konstruieren, dass sie auf die spezifischen Anforderungen einer berührungsempfindlichen Umgebung reagiert und Benutzern eine umfassende Steuerung über Berührungen und Gesten ermöglicht. Sie können auch beide Ereignisse separat verarbeiten, um auf Berührungsereignisse anders zu reagieren als auf Mausereignisse.

Hinweis: Informationen zur Umgebungskompatibilität finden Sie im Abschnitt über die Multitouch-Klasse.

mouseOut-Ereignisflash.ui.Multitouch
touchMove Wird abgesetzt, wenn der Benutzer den Kontaktpunkt bei einem berührungsempfindlichen Gerät bewegt (zum Beispiel den Finger über das Touchscreen eines Mobiltelefons oder Tablets zieht).flash.events.TouchEvent.TOUCH_MOVEflash.events.TouchEvent Wird abgesetzt, wenn der Benutzer den Kontaktpunkt bei einem berührungsempfindlichen Gerät bewegt (zum Beispiel den Finger über das Touchscreen eines Mobiltelefons oder Tablets zieht). Einige Geräte interpretieren diese Berührung möglicherweise auch als mouseMove-Ereignis.

Insbesondere, wenn der Benutzer einen Finger über einen Touchscreen bewegt, kann die InteractiveObject-Instanz ein mouseMove-Ereignis oder ein touchMove-Ereignis absetzen, oder beide Ereignisse, wenn die aktuelle Umgebung dies unterstützt. Wählen Sie, wie die Benutzerinteraktion verarbeitet werden soll. Verwenden Sie die flash.ui.Multitouch-Klasse, um die Verarbeitung von Berührungsereignissen zu verwalten (Verarbeitung von Berührungsgestenereignissen oder einfachen Kontaktpunktereignissen aktivieren oder Berührungsereignisse deaktivieren, sodass nur Mausereignisse abgesetzt werden). Wenn Sie sich dafür entscheiden, das mouseMove-Ereignis zu verarbeiten, wird dieselbe Ereignisprozedur bei einem berührungsempfindlichen Gerät und auf einem mausfähigen Gerät ausgeführt. Entscheiden Sie sich jedoch dafür, das touchMove-Ereignis zu verarbeiten, können Sie Ihre Ereignisprozedur so konstruieren, dass sie auf die spezifischen Anforderungen einer berührungsempfindlichen Umgebung reagiert und Benutzern eine umfassende Steuerung über Berührungen und Gesten ermöglicht. Sie können auch beide Ereignisse separat verarbeiten, um auf Berührungsereignisse anders zu reagieren als auf Mausereignisse.

Hinweis: Informationen zur Umgebungskompatibilität finden Sie im Abschnitt über die Multitouch-Klasse.

Das folgende Beispiel zeigt die Ereignisverarbeitung für TOUCH_BEGIN-, TOUCH_MOVE- und TOUCH_END-Ereignisse. Während sich der Kontaktpunkt über den Bildschirm bewegt (onTouchMove), wird die x-Koordinate in Relation zur Bühne in der Ausgabe verfolgt. Für den Sprite.startTouchDrag-Parameter in der onTouchBegin-Funktion ist der Wert für touchPointID der Wert, der dem Ereignisobjekt zugewiesen wurde. Der bounds-Parameter ist das Rechteck, das die Grenzen des übergeordneten Anzeigeobjekts definiert (bg ist ein Anzeigeobjekt, das MySprite enthält). Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT; MySprite.addEventListener(TouchEvent.TOUCH_BEGIN, onTouchBegin); MySprite.addEventListener(TouchEvent.TOUCH_MOVE, onTouchMove); MySprite.addEventListener(TouchEvent.TOUCH_END, onTouchEnd); function onTouchBegin(eBegin:TouchEvent) { eBegin.target.startTouchDrag(eBegin.touchPointID, false, bg.getRect(this)); trace("touch begin"); } function onTouchMove(eMove:TouchEvent) { trace(eMove.stageX); } function onTouchEnd(eEnd:TouchEvent) { eEnd.target.stopTouchDrag(eEnd.touchPointID); trace("touch end"); }
mouseMove-Ereignisflash.ui.Multitouch
touchEnd Wird abgesetzt, wenn der Benutzer den Kontaktpunkt bei einem berührungsempfindlichen Gerät entfernt (zum Beispiel den Finger vom Touchscreen eines Mobiltelefons oder Tablets hebt).flash.events.TouchEvent.TOUCH_ENDflash.events.TouchEvent Wird abgesetzt, wenn der Benutzer den Kontaktpunkt bei einem berührungsempfindlichen Gerät entfernt (zum Beispiel den Finger vom Touchscreen eines Mobiltelefons oder Tablets hebt). Einige Geräte interpretieren diese Berührung möglicherweise auch als mouseUp-Ereignis.

Insbesondere, wenn der Benutzer einen Finger vom Touchscreen nimmt, kann die InteractiveObject-Instanz ein mouseUp-Ereignis oder ein touchEnd-Ereignis absetzen, oder beide Ereignisse, wenn die aktuelle Umgebung dies unterstützt. Wählen Sie, wie die Benutzerinteraktion verarbeitet werden soll. Verwenden Sie die flash.ui.Multitouch-Klasse, um die Verarbeitung von Berührungsereignissen zu verwalten (Verarbeitung von Berührungsgestenereignissen oder einfachen Kontaktpunktereignissen aktivieren oder Berührungsereignisse deaktivieren, sodass nur Mausereignisse abgesetzt werden). Wenn Sie sich dafür entscheiden, das mouseUp-Ereignis zu verarbeiten, wird dieselbe Ereignisprozedur bei einem berührungsempfindlichen Gerät und auf einem mausfähigen Gerät ausgeführt. Entscheiden Sie sich jedoch dafür, das touchEnd-Ereignis zu verarbeiten, können Sie Ihre Ereignisprozedur so konstruieren, dass sie auf die spezifischen Anforderungen einer berührungsempfindlichen Umgebung reagiert und Benutzern eine umfassende Steuerung über Berührungen und Gesten ermöglicht. Sie können auch beide Ereignisse separat verarbeiten, um auf Berührungsereignisse anders zu reagieren als auf Mausereignisse.

Hinweis: Informationen zur Umgebungskompatibilität finden Sie im Abschnitt über die Multitouch-Klasse.

Das folgende Beispiel zeigt die Ereignisverarbeitung für TOUCH_BEGIN-, TOUCH_MOVE- und TOUCH_END-Ereignisse. Während sich der Kontaktpunkt über den Bildschirm bewegt (onTouchMove), wird die x-Koordinate in Relation zur Bühne in der Ausgabe verfolgt. Für den Sprite.startTouchDrag-Parameter in der onTouchBegin-Funktion ist der Wert für touchPointID der Wert, der dem Ereignisobjekt zugewiesen wurde. Der bounds-Parameter ist das Rechteck, das die Grenzen des übergeordneten Anzeigeobjekts definiert (bg ist ein Anzeigeobjekt, das MySprite enthält). Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT; MySprite.addEventListener(TouchEvent.TOUCH_BEGIN, onTouchBegin); MySprite.addEventListener(TouchEvent.TOUCH_MOVE, onTouchMove); MySprite.addEventListener(TouchEvent.TOUCH_END, onTouchEnd); function onTouchBegin(eBegin:TouchEvent) { eBegin.target.startTouchDrag(eBegin.touchPointID, false, bg.getRect(this)); trace("touch begin"); } function onTouchMove(eMove:TouchEvent) { trace(eMove.stageX); } function onTouchEnd(eEnd:TouchEvent) { eEnd.target.stopTouchDrag(eEnd.touchPointID); trace("touch end"); }
mouseUp-Ereignisflash.ui.Multitouch
touchBegin Wird abgesetzt, wenn der Benutzer ein berührungsempfindliches Gerät erstmals berührt (zum Beispiel mit dem Finger das Touchscreen eines Mobiltelefons oder Tablets berührt).flash.events.TouchEvent.TOUCH_BEGINflash.events.TouchEvent Wird abgesetzt, wenn der Benutzer ein berührungsempfindliches Gerät erstmals berührt (zum Beispiel mit dem Finger das Touchscreen eines Mobiltelefons oder Tablets berührt). Einige Geräte interpretieren diese Berührung möglicherweise auch als mouseDown-Ereignis.

Insbesondere, wenn der Benutzer einen Finger auf den Touchscreen setzt, kann die InteractiveObject-Instanz ein mouseDown-Ereignis oder ein touchBegin-Ereignis absetzen, oder beide Ereignisse, wenn die aktuelle Umgebung dies unterstützt. Wählen Sie, wie die Benutzerinteraktion verarbeitet werden soll. Verwenden Sie die flash.ui.Multitouch-Klasse, um die Verarbeitung von Berührungsereignissen zu verwalten (Verarbeitung von Berührungsgestenereignissen oder einfachen Kontaktpunktereignissen aktivieren oder Berührungsereignisse deaktivieren, sodass nur Mausereignisse abgesetzt werden). Wenn Sie sich dafür entscheiden, das mouseDown-Ereignis zu verarbeiten, wird dieselbe Ereignisprozedur bei einem berührungsempfindlichen Gerät und auf einem mausfähigen Gerät ausgeführt. Entscheiden Sie sich jedoch dafür, das touchBegin-Ereignis zu verarbeiten, können Sie Ihre Ereignisprozedur so konstruieren, dass sie auf die spezifischen Anforderungen einer berührungsempfindlichen Umgebung reagiert und Benutzern eine umfassende Steuerung über Berührungen und Gesten ermöglicht. Sie können auch beide Ereignisse separat verarbeiten, um auf Berührungsereignisse anders zu reagieren als auf Mausereignisse.

Hinweis: Informationen zur Umgebungskompatibilität finden Sie im Abschnitt über die Multitouch-Klasse.

Das folgende Beispiel zeigt die Ereignisverarbeitung für TOUCH_BEGIN-, TOUCH_MOVE- und TOUCH_END-Ereignisse. Während sich der Kontaktpunkt über den Bildschirm bewegt (onTouchMove), wird die x-Koordinate in Relation zur Bühne in der Ausgabe verfolgt. Für den Sprite.startTouchDrag-Parameter in der onTouchBegin-Funktion ist der Wert für touchPointID der Wert, der dem Ereignisobjekt zugewiesen wurde. Der bounds-Parameter ist das Rechteck, das die Grenzen des übergeordneten Anzeigeobjekts definiert (bg ist ein Anzeigeobjekt, das MySprite enthält). Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT; MySprite.addEventListener(TouchEvent.TOUCH_BEGIN, onTouchBegin); MySprite.addEventListener(TouchEvent.TOUCH_MOVE, onTouchMove); MySprite.addEventListener(TouchEvent.TOUCH_END, onTouchEnd); function onTouchBegin(eBegin:TouchEvent) { eBegin.target.startTouchDrag(eBegin.touchPointID, false, bg.getRect(this)); trace("touch begin"); } function onTouchMove(eMove:TouchEvent) { trace(eMove.stageX); } function onTouchEnd(eEnd:TouchEvent) { eEnd.target.stopTouchDrag(eEnd.touchPointID); trace("touch end"); }
mouseDown-Ereignisflash.ui.Multitouch
rollOver Wird ausgelöst, wenn der Benutzer das Zeigegerät auf eine InteractiveObject-Instanz bewegt.flash.events.MouseEvent.ROLL_OVERflash.events.MouseEvent Wird ausgelöst, wenn der Benutzer das Zeigegerät auf eine InteractiveObject-Instanz bewegt. Das Ereignisziel ist das Objekt unter dem Zeigegerät oder ein Objekt, das diesem übergeordnet ist. relatedObject ist das Objekt, das sich davor unter dem Zeigegerät befunden hat. Die rollOver-Ereignisse werden über die übergeordnete Kette des Objekts fortlaufend nach unten hin ausgelöst, beginnend mit dem höchsten übergeordneten Objekt, das weder das Stammobjekt noch ein übergeordnetes Element des relatedObject-Objekts ist.

Der Zweck des rollOver-Ereignisses besteht darin, die Programmierung von Rollout-Verhaltensweisen für Anzeigeobjekt-Container mit untergeordneten Objekten zu vereinfachen. Kommt die Maus aus einem Objekt, das diesem Anzeigeobjekt nicht untergeordnet ist, in den Bereich eines Anzeigeobjekts oder in den Bereich, in dem sich die diesem untergeordneten Objekte befinden, löst das Anzeigeobjekt das rollOver-Ereignis aus. Dieses Verhalten unterscheidet sich vom mouseOver-Ereignis, das immer dann ausgelöst wird, wenn die Maus auf den Bereich eines dem Anzeigeobjekt-Container untergeordneten Objekts bewegt wird. Dies ist auch der Fall, wenn sich die Maus bereits über einem anderen dem Anzeigeobjekt-Container untergeordneten Objekt befunden hat.

rollOut Wird ausgelöst, wenn der Benutzer das Zeigegerät von einer InteractiveObject-Instanz wegbewegt.flash.events.MouseEvent.ROLL_OUTflash.events.MouseEvent Wird ausgelöst, wenn der Benutzer das Zeigegerät von einer InteractiveObject-Instanz wegbewegt. Das Ereignisziel ist das Objekt, das sich davor unter dem Zeigegerät befunden hat, oder ein Objekt, das diesem übergeordnet ist. relatedObject ist das Objekt, zu dem sich das Zeigegerät bewegt hat. Die rollOut-Ereignisse werden über die übergeordnete Kette des Objekts fortlaufend nach oben hin ausgelöst, beginnend mit dem Objekt selbst und endend mit dem höchsten übergeordneten Objekt, das weder das Stammobjekt noch ein übergeordnetes Element des relatedObject-Objekts ist.

Der Zweck des rollOut-Ereignisses besteht darin, die Programmierung von Rollover-Verhaltensweisen für Anzeigeobjekt-Container mit untergeordneten Objekten zu vereinfachen. Verlässt die Maus den Bereich eines Anzeigeobjekts oder den Bereich, in dem sich die diesem untergeordneten Objekte befinden, um auf ein Objekt zu zeigen, das diesem Objekt nicht untergeordnet ist, löst das Anzeigeobjekt das rollOut-Ereignis aus. Dieses Verhalten unterscheidet sich von dem des mouseOut-Ereignisses, das jeweils dann ausgelöst wird, wenn die Maus den Bereich eines dem Anzeigeobjekt-Container untergeordneten Objekts verlässt, selbst wenn die Maus über einem anderen dem Anzeigeobjekt-Container untergeordneten Objekt bleibt.

mouseWheel Wird ausgelöst, wenn das Mausrad über einer InteractiveObject-Instanz gedreht wird.flash.events.MouseEvent.MOUSE_WHEELflash.events.MouseEvent Wird ausgelöst, wenn das Mausrad über einer InteractiveObject-Instanz gedreht wird. Handelt es sich beim Ziel um ein Textfeld, wird als Standardverhalten der Text innerhalb des Textfelds nach oben oder unten verschoben. Nur unter Microsoft Windows verfügbar. mouseUp Wird ausgelöst, wenn der Benutzer die Taste des Zeigegeräts über einer InteractiveObject-Instanz loslässt.flash.events.MouseEvent.MOUSE_UPflash.events.MouseEvent Wird ausgelöst, wenn der Benutzer die Taste des Zeigegeräts über einer InteractiveObject-Instanz loslässt. Handelt es sich beim Ziel um eine SimpleButton-Instanz, zeigt das Objekt das upState-Anzeigeobjekt an. Handelt es sich beim Ziel um ein auswählbares Textfeld, wird als Standardverhalten die Textauswahl abgeschlossen. mouseOver Wird ausgelöst, wenn der Benutzer das Zeigegerät auf eine InteractiveObject-Instanz bewegt.flash.events.MouseEvent.MOUSE_OVERflash.events.MouseEvent Wird ausgelöst, wenn der Benutzer das Zeigegerät auf eine InteractiveObject-Instanz bewegt. relatedObject ist das Objekt, das sich davor unter dem Zeigegerät befunden hat. Handelt es sich beim Ziel um eine SimpleButton-Instanz, zeigt das Objekt als Standardverhalten das overState- oder das upState-Anzeigeobjekt an. Dies hängt davon ab, ob die Maustaste gerade gedrückt ist.

Das Ereignis mouseOver wird jedes Mal ausgelöst, wenn die Maus in den Bereich eines dem Anzeigeobjekt-Container untergeordneten Objekts bewegt wird, selbst wenn sich die Maus bereits über einem anderen dem Anzeigeobjekt-Container untergeordneten Objekt befindet. Dieses Verhalten unterscheidet sich vom Zweck des rollOver-Ereignisses, der darin besteht, die Programmierung von Rollout-Verhaltensweisen für Anzeigeobjekt-Container mit untergeordneten Objekten zu vereinfachen. Kommt die Maus aus einem Objekt, das diesem Anzeigeobjekt nicht untergeordnet ist, in den Bereich eines Anzeigeobjekts oder in den Bereich, in dem sich die diesem untergeordneten Objekte befinden, löst das Anzeigeobjekt das rollOver-Ereignis aus. Die rollOver-Ereignisse werden über die übergeordnete Kette des Objekts fortlaufend nach unten hin ausgelöst, beginnend mit dem höchsten übergeordneten Objekt, das weder das Stammobjekt noch ein übergeordnetes Element des relatedObject-Objekts ist.

mouseOut Wird ausgelöst, wenn der Benutzer das Zeigegerät von einer InteractiveObject-Instanz wegbewegt.flash.events.MouseEvent.MOUSE_OUTflash.events.MouseEvent Wird ausgelöst, wenn der Benutzer das Zeigegerät von einer InteractiveObject-Instanz wegbewegt. Das Ereignisziel ist das Objekt, das sich davor unter dem Zeigegerät befunden hat. relatedObject ist das Objekt, zu dem sich das Zeigegerät bewegt hat. Handelt es sich bei dem Ziel um eine SimpleButton-Instanz, zeigt die Schaltfläche als Standardverhalten das upState-Anzeigeobjekt an.

Das Ereignis mouseOut wird jedes Mal ausgelöst, wenn die Maus den Bereich eines dem Anzeigeobjekt-Container untergeordneten Objekts verlässt, selbst sich wenn die Maus weiterhin über einem anderen dem Anzeigeobjekt-Container untergeordneten Objekt befindet. Dieses Verhalten unterscheidet sich vom Zweck des rollOut-Ereignisses, der darin besteht, die Programmierung von Rollover-Verhaltensweisen für Anzeigeobjekt-Container mit untergeordneten Objekten zu vereinfachen. Verlässt die Maus den Bereich eines Anzeigeobjekts oder den Bereich, in dem sich die diesem untergeordneten Objekte befinden, um auf ein Objekt zu zeigen, das diesem Objekt nicht untergeordnet ist, löst das Anzeigeobjekt das rollOut-Ereignis aus. Die rollOut-Ereignisse werden über die übergeordnete Kette des Objekts fortlaufend nach oben hin ausgelöst, beginnend mit dem Objekt selbst und endend mit dem höchsten übergeordneten Objekt, das weder das Stammobjekt noch ein übergeordnetes Element des relatedObject-Objekts ist.

mouseMove Wird ausgelöst, wenn der Benutzer das Zeigegerät bewegt, während es sich auf einer InteractiveObject-Instanz befindet.flash.events.MouseEvent.MOUSE_MOVEflash.events.MouseEvent Wird ausgelöst, wenn der Benutzer das Zeigegerät bewegt, während es sich auf einer InteractiveObject-Instanz befindet. Handelt es sich beim Ziel um ein Textfeld, in dem der Benutzer eine Auswahl vornimmt, wird als Standardverhalten die Auswahl aktualisiert. mouseDown Wird ausgelöst, wenn der Benutzer die Taste des Zeigegeräts über einer InteractiveObject-Instanz drückt.flash.events.MouseEvent.MOUSE_DOWNflash.events.MouseEvent Wird ausgelöst, wenn der Benutzer die Taste des Zeigegeräts über einer InteractiveObject-Instanz drückt. Handelt es sich bei dem Ziel um eine SimpleButton-Instanz, zeigt die SimpleButton-Instanz als Standardverhalten das downState-Anzeigeobjekt an. Handelt es sich beim Ziel um ein auswählbares Textfeld, wird als Standardverhalten die Textauswahl begonnen. doubleClick Wird ausgelöst, wenn der Benutzer die Haupttaste des Zeigegeräts zweimal schnell hintereinander über dem gleichen InteractiveObject-Objekt drückt und das doubleClickEnabled-Flag des Objekts „true“ lautet.flash.events.MouseEvent.DOUBLE_CLICKflash.events.MouseEvent Wird ausgelöst, wenn der Benutzer die Haupttaste des Zeigegeräts zweimal schnell hintereinander über dem gleichen InteractiveObject-Objekt drückt und das doubleClickEnabled-Kennzeichen des Objekts true lautet. Damit ein doubleClick-Ereignis eintreten kann, muss es unmittelbar an die folgende Reihe von Ereignissen anschließen: mouseDown, mouseUp, click, mouseDown, mouseUp. Alle diese Ereignisse müssen dasselbe Ziel wie das doubleClick-Ereignis aufweisen. Der zweite Klick, der jeweils durch das zweite mouseDown- und mouseUp-Ereignis repräsentiert wird, muss innerhalb einer bestimmten Zeitspanne nach dem click-Ereignis eintreten. Die zulässige Dauer dieser Zeitspanne variiert für verschiedene Betriebssysteme und kann oft vom Benutzer selbst eingestellt werden. Handelt es sich beim Ziel um ein auswählbares Textfeld, wird als Standardverhalten das Wort an der Zeigerposition ausgewählt. Ist für die Ziel-InteractiveObject-Instanz das doubleClickEnabled-Kennzeichen nicht auf true gesetzt, empfängt es einfach zwei click-Ereignisse.

Die doubleClickEnabled-Eigenschaft ist standardmäßig auf false gesetzt.

Das Doppelklick-Textauswahlverhalten eines TextField-Objekts steht nicht in Bezug zum doubleClick-Ereignis. Verwenden Sie TextField.doubleClickEnabled, um die TextField-Auswahl zu steuern.

doubleClickEnabled
click Wird ausgelöst, wenn ein Benutzer die Haupttaste des Zeigegeräts über derselben InteractiveObject-Instanz drückt und wieder loslässt.flash.events.MouseEvent.CLICKflash.events.MouseEvent Wird ausgelöst, wenn ein Benutzer die Haupttaste des Zeigegeräts über derselben InteractiveObject-Instanz drückt und wieder loslässt. Damit ein Klickereignis eintreten kann, muss es immer an die folgende Reihe von Ereignissen anschließen, und zwar in der angegebenen Reihenfolge: mouseDown-Ereignis, dann mouseUp-Ereignis. Das Zielobjekt muss für beide Ereignisse identisch sein, da das click-Ereignis sonst nicht eintritt. Zwischen den Ereignissen mouseDown und mouseUp kann jederzeit eine beliebige Anzahl von Mausereignissen vorkommen. Das click-Ereignis tritt dennoch ein. mouseFocusChange Wird ausgelöst, wenn der Benutzer versucht, den Fokus mithilfe eines Zeigegeräts zu ändern.flash.events.FocusEvent.MOUSE_FOCUS_CHANGEflash.events.FocusEvent Wird ausgelöst, wenn der Benutzer versucht, den Fokus mithilfe eines Zeigegeräts zu ändern. Das Standardverhalten dieses Ereignisses besteht darin, den Fokus zu ändern und das entsprechende focusIn- und focusOut-Ereignis auszulösen.

Dieses Ereignis wird für das Objekt ausgelöst, das gerade den Eingabefokus hat. Das verwandte Objekt für dieses Ereignis ist die InteractiveObject-Instanz, die den Fokus erhält, wenn Sie das Standardverhalten nicht verhindern. Sie können den Fokuswechsel verhindern, indem Sie in einem Ereignis-Listener, der bei dem Zielobjekt ordentlich registriert ist, preventDefault() aufrufen. Die shiftKey-Eigenschaft wird nicht verwendet. Der Fokus wird gewechselt und die Ereignisse focusIn und focusOut werden standardmäßig ausgelöst.

keyFocusChange Wird ausgelöst, wenn der Benutzer versucht, den Fokus mithilfe der Tastatur zu ändern.flash.events.FocusEvent.KEY_FOCUS_CHANGEflash.events.FocusEvent Wird ausgelöst, wenn der Benutzer versucht, den Fokus mithilfe der Tastatur zu ändern. Das Standardverhalten dieses Ereignisses besteht darin, den Fokus zu ändern und das entsprechende focusIn- und focusOut-Ereignis auszulösen.

Dieses Ereignis wird für das Objekt ausgelöst, das gerade den Eingabefokus hat. Das verwandte Objekt für dieses Ereignis ist die InteractiveObject-Instanz, die den Fokus erhält, wenn Sie das Standardverhalten nicht verhindern. Sie können den Fokuswechsel verhindern, indem Sie in einem Ereignis-Listener, der bei dem Zielobjekt ordentlich registriert ist, die preventDefault()-Methode aufrufen. Der Fokus wird gewechselt und die Ereignisse focusIn und focusOut werden standardmäßig ausgelöst.

focusOut Wird ausgelöst, nachdem ein Anzeigeobjekt den Fokus verloren hat.flash.events.FocusEvent.FOCUS_OUTflash.events.FocusEvent Wird ausgelöst, nachdem ein Anzeigeobjekt den Fokus abgegeben hat. Dies passiert, wenn Benutzer ein anderes Objekt mit einem Zeigegerät oder per Tastaturnavigation hervorheben. Das Objekt, das den Fokus verliert, ist das Zielobjekt dieses Ereignisses, während die dazugehörige InteractiveObject-Instanz, die den Fokus erhält, „verwandtes Objekt“ genannt wird. Ein Verweis auf das verwandte Objekt wird in der Eigenschaft relatedObject des Zielobjekts gespeichert. Die shiftKey-Eigenschaft wird nicht verwendet. Das Ereignis kommt vor dem Auslösen des focusIn-Ereignisses durch das verwandte Objekt. focusIn Wird ausgelöst, nachdem ein Anzeigeobjekt den Fokus erhalten hat.flash.events.FocusEvent.FOCUS_INflash.events.FocusEvent Wird ausgelöst, nachdem ein Anzeigeobjekt den Fokus erhalten hat. Dies passiert, wenn Benutzer das Objekt mit einem Zeigegerät oder per Tastaturnavigation hervorheben. Der Empfänger des Fokus ist das Zielobjekt dieses Ereignisses, während die dazugehörige InteractiveObject-Instanz, die den Fokus verliert, „verwandtes Objekt“ genannt wird. Ein Verweis auf das verwandte Objekt wird in der Eigenschaft relatedObject des empfangenden Objekts gespeichert. Die shiftKey-Eigenschaft wird nicht verwendet. Dieses Ereignis folgt nach dem Auslösen des focusOut-Ereignisses des vorigen Objekts. selectAll Wird abgesetzt, wenn der Benutzer die plattformspezifische Tastenkombination für „Alles auswählen“ aktiviert oder im Kontextmenü des Texts „Alles auswählen“ wählt.flash.events.Event.SELECT_ALLflash.events.Event Wird abgesetzt, wenn der Benutzer die plattformspezifische Tastenkombination für „Alles auswählen“ aktiviert oder im Kontextmenü des Texts „Alles auswählen“ wählt. Dieses Ereignis wird für das Objekt ausgelöst, das gerade den Eingabefokus hat. Ist das Objekt, das derzeit den Fokus hat, ein TextField, wählt dieses Ereignis standardmäßig alle Inhalte des Textfelds aus. paste Wird abgesetzt, wenn der Benutzer die plattformspezifische Tastenkombination für „Einfügen“ aktiviert oder im Kontextmenü des Texts „Einfügen“ wählt.flash.events.Event.PASTEflash.events.Event Wird abgesetzt, wenn der Benutzer die plattformspezifische Tastenkombination für „Einfügen“ aktiviert oder im Kontextmenü des Texts „Einfügen“ wählt. Dieses Ereignis wird für das Objekt ausgelöst, das gerade den Eingabefokus hat. Ist das Objekt, das derzeit den Fokus hat, ein TextField, fügt dieses Ereignis standardmäßig die Inhalte der Zwischenablage an der aktuellen Einfügemarke im Textfeld ein, wobei aktuell ausgewählter Text ersetzt wird. cut Wird abgesetzt, wenn der Benutzer die plattformspezifische Tastenkombination für „Ausschneiden“ aktiviert oder im Kontextmenü des Texts „Ausschneiden“ wählt.flash.events.Event.CUTflash.events.Event Wird abgesetzt, wenn der Benutzer die plattformspezifische Tastenkombination für „Ausschneiden“ aktiviert oder im Kontextmenü des Texts „Ausschneiden“ wählt. Dieses Ereignis wird für das Objekt ausgelöst, das gerade den Eingabefokus hat. Ist das Objekt, das derzeit den Fokus hat, ein TextField, schneidet dieses Ereignis standardmäßig aktuell ausgewählten Text aus dem Textfeld aus und platziert ihn in die Zwischenablage. copy Wird abgesetzt, wenn der Benutzer die plattformspezifische Tastenkombination für „Kopieren“ aktiviert oder im Kontextmenü des Texts „Kopieren“ wählt.flash.events.Event.COPYflash.events.Event Wird abgesetzt, wenn der Benutzer die plattformspezifische Tastenkombination für „Kopieren“ aktiviert oder im Kontextmenü des Texts „Kopieren“ wählt. Dieses Ereignis wird für das Objekt ausgelöst, das gerade den Eingabefokus hat. Ist das Objekt, das derzeit den Fokus hat, ein TextField, kopiert dieses Ereignis standardmäßig aktuell ausgewählten Text aus dem Textfeld in die Zwischenablage. clear Wird ausgelöst, wenn der Benutzer aus dem Kontextmenü die Option „Löschen“ wählt.flash.events.Event.CLEARflash.events.Event Wird ausgelöst, wenn der Benutzer aus dem Kontextmenü die Option „Löschen“ wählt. Dieses Ereignis wird für das Objekt ausgelöst, das gerade den Eingabefokus hat. Ist das Objekt, das derzeit den Eingabefokus hat, ein TextField, löscht dieses Ereignis standardmäßig aktuell ausgewählten Text aus dem Textfeld. InteractiveObject Durch das Aufrufen des neuen Konstruktors „InteractiveObject()“ wird eine ArgumentError-Ausnahme ausgelöst. Durch das Aufrufen des Konstruktors new InteractiveObject() wird eine ArgumentError-Ausnahme ausgelöst. Sie können jedoch Konstruktoren für die folgenden Unterklassen von „InteractiveObject“ aufrufen:
  • new SimpleButton()
  • new TextField()
  • new Loader()
  • new Sprite()
  • new MovieClip()
requestSoftKeyboard Blendet eine virtuelle Tastatur ein.Der Wert true bedeutet, dass die virtuelle Tastatur genehmigt wurde; false bedeutet, dass die virtuelle Tastatur nicht eingeblendet wurde. BooleanZeigt die Tastatur an, wenn der aktuelle Kontext dies unterstützt. Blendet eine virtuelle Tastatur ein.

Der Aufruf dieser Methode fokussiert die InteractiveObject-Instanz und blendet die virtuelle Tastatur ein, falls erforderlich. Die needsSoftKeyboard-Eigenschaft muss ebenfalls den Wert true haben. Die virtuelle Tastatur wird nicht eingeblendet, wenn eine Hardwaretastatur verfügbar ist oder wenn das Clientsystem keine virtuelle Tastatur unterstützt.

Hinweis: Diese Methode wird in AIR-Anwendungen unter iOS nicht unterstützt.

needsSoftKeyboard
accessibilityImplementation Die aktuelle Eingabehilfenimplementierung (AccessibilityImplementation) für diese InteractiveObject-Instanz.flash.accessibility:AccessibilityImplementation Die aktuelle Eingabehilfenimplementierung (AccessibilityImplementation) für diese InteractiveObject-Instanz. flash.accessibility.AccessibilityImplementationcontextMenu Gibt das diesem Objekt zugeordnete Kontextmenü an.flash.display:NativeMenuDas mit diesem Objekt verknüpfte Kontextmenü. Gibt das diesem Objekt zugeordnete Kontextmenü an.

Für Inhalt, der in Flash Player ausgeführt wird, handelt es sich bei dieser Eigenschaft um ein ContextMenu-Objekt. In der AIR-Laufzeitumgebung erweitert die ContextMenu-Klasse die NativeMenu-Klasse, doch Flash Player unterstützt nur die ContextMenu-Klasse, nicht aber die NativeMenu-Klasse.

Hinweis: TextField-Objekte enthalten im Kontextmenü immer ein Zwischenablagemenü. Das Zwischenablagemenü enthält die Befehle „Ausschneiden“, „Kopieren“, „Einfügen“, Löschen“ und „Alles auswählen“. Diese Befehle können aus dem Kontextmenü von TextField-Objekten nicht entfernt werden. Bei TextField-Objekten werden beim Auswählen dieser Befehle (oder der entsprechenden Zugriffstastenkombinationen) keine clear-, copy-, cut-, paste- oder selectAll-Ereignisse ausgelöst.

Das folgende Beispiel zeigt, wie Sie ein benutzerdefiniertes Kontextmenüelement zu einem Sprite-Objekt hinzufügen können, indem Sie die contextMenu-Eigenschaft des Sprite-Objekts auf ein ContextMenu-Objekt einstellen. Beispiel bereitgestellt von ActionScriptExamples.com. var red_cmi:ContextMenuItem = new ContextMenuItem("red"); red_cmi.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, cmi_menuItemSelect); var cm:ContextMenu = new ContextMenu(); cm.customItems.push(red_cmi); cm.hideBuiltInItems(); var spr:Sprite = new Sprite(); spr.contextMenu = cm; spr.graphics.beginFill(0x000000); spr.graphics.drawRect(0, 0, 120, 90); spr.graphics.endFill(); spr.x = 10; spr.y = 10; addChild(spr); function cmi_menuItemSelect(evt:ContextMenuEvent):void { spr.graphics.clear(); spr.graphics.beginFill(0xFF0000); spr.graphics.drawRect(0, 0, 120, 90); spr.graphics.endFill(); }
doubleClickEnabled Gibt an, ob das Objekt doubleClick-Ereignisse empfängt.BooleanGibt an, ob dieses Objekt Doppelklick-Meldungen empfängt. Gibt an, ob dieses Objekt doubleClick-Ereignisse empfängt. Der Standardwert ist false. Das heißt, dass eine InteractiveObject-Instanz standardmäßig keine doubleClick-Ereignisse erhält. Ist die doubleClickEnabled-Eigenschaft auf true gesetzt, empfängt die Instanz doubleClick-Ereignisse innerhalb ihrer Grenzen. Die mouseEnabled-Eigenschaft der InteractiveObject-Instanz muss ebenfalls auf true gesetzt werden, damit das Objekt doubleClick-Ereignisse empfängt.

Durch das Festlegen dieser Eigenschaft wird kein Ereignis ausgelöst. Sie müssen die addEventListener()-Methode verwenden, um einen Ereignis-Listener für das doubleClick-Ereignis hinzuzufügen.

doubleClickmouseEnabledflash.display.DisplayObjectContainer.mouseChildren
focusRect Gibt an, ob für dieses Objekt ein Fokusrechteck angezeigt wird.Object Gibt an, ob für dieses Objekt ein Fokusrechteck angezeigt wird. Es sind drei Werte möglich: true, false oder null. Die Werte true und false geben an, ob ein Fokusrechteck angezeigt wird oder nicht. Der Wert null gibt an, dass dieses Objekt der stageFocusRect-Eigenschaft der Bühne unterliegt. mouseEnabled Gibt an, ob dieses Objekt Meldungen von der Maus oder einem anderen Benutzereingabegerät empfängt.Boolean Gibt an, ob dieses Objekt Meldungen von der Maus oder einem anderen Benutzereingabegerät empfängt. Der Standardwert ist true, d. h., dass standardmäßig jede InteractiveObject-Instanz, die sich in der Anzeigeliste befindet, Mausereignisse oder andere Benutzereingabeereignisse erhält. Wenn mouseEnabled auf false eingestellt ist, empfängt die Instanz keine Mausereignisse (oder andere Benutzereingabeereignisse wie Tastaturereignisse). Untergeordnete Elemente dieser Instanz in der Anzeigeliste sind nicht betroffen. Wenn Sie das mouseEnabled-Verhalten für alle Objekte ändern möchten, die einem Objekt in der Anzeigeliste untergeordnet sind, verwenden Sie flash.display.DisplayObjectContainer.mouseChildren.

Durch das Festlegen dieser Eigenschaft wird kein Ereignis ausgelöst. Um interaktive Funktionalität zu erzielen, müssen Sie die addEventListener()-Methode verwenden.

flash.display.DisplayObjectContainer.mouseChildren
needsSoftKeyboard Gibt an, ob eine virtuelle Tastatur (Bildschirmtastatur) angezeigt wird, wenn diese InteractiveObject-Instanz den Fokus erhält.Boolean Gibt an, ob eine virtuelle Tastatur (Bildschirmtastatur) angezeigt wird, wenn diese InteractiveObject-Instanz den Fokus erhält.

Standardmäßig ist der Wert false und wenn die InteractiveObject-Instanz den Fokus erhält, wird die Tastatur nicht eingeblendet. Wenn die needsSoftKeyboard-Eigenschaft den Wert true hat, blendet die Laufzeitumgebung eine virtuelle Tastatur ein, wenn die InteractiveObject-Instanz für Benutzereingaben bereit ist. Eine InteractiveObject-Instanz ist für Benutzereingaben bereit, nachdem ein programmgesteuerter Aufruf erfolgt ist, um die focus-Eigenschaft des Stage-Objekts zu setzen, oder nach einer Benutzerinteraktion, zum Beispiel Tippen auf den Bildschirm. Wenn das Clientsystem eine Hardwaretastatur bereitstellt oder keine virtuelle Tastatur unterstützt, wird die virtuelle Tastatur nicht eingeblendet.

Die InteractiveObject-Instanz setzt softKeyboardActivating-, softKeyboardActivate- und softKeyboardDeactivate-Ereignisse ab, wenn die virtuelle Tastatur ein- oder ausgeblendet wird.

Hinweis: Diese Eigenschaft wird in AIR-Anwendungen unter iOS nicht unterstützt.

softKeyboardActivatingsoftKeyboardActivatesoftKeyboardDeactivate
softKeyboardInputAreaOfInterest Definiert einen Bereich, der auf dem Bildschirm sichtbar bleiben soll, wenn eine virtuelle Tastatur angezeigt wird.flash.geom:RectangleLegt den Bereich fest, der beim Einblenden der virtuellen Tastatur auf dem Bildschirm angezeigt wird. Definiert einen Bereich, der auf dem Bildschirm sichtbar bleiben soll, wenn eine virtuelle Tastatur angezeigt wird.

Wenn die needsSoftKeyboard-Eigenschaft dieser InteractiveObject-Instant den Wert true hat, passt die Laufzeitumgebung die Anzeige so an, dass das Objekt sichtbar bleibt, während der Benutzer tippt. Normalerweise verwendet die Laufzeitumgebung die Objektgrenzen, die aus der DisplayObject.getBounds()-Methode bezogen werden. Mit dieser softKeyboardInputAreaOfInterest-Eigenschaft können Sie einen anderen Bereich festlegen.

Geben Sie den Wert für softKeyboardInputAreaOfInterest in Bühnenkoordinaten ein.

Hinweis: Unter Android wird softKeyboardInputAreaOfInterest im Querformat nicht berücksichtigt.

flash.display.DisplayObject.getBounds()
tabEnabled Gibt an, ob sich dieses Objekt in der Tabulatorreihenfolge befindet.BooleanGibt an, ob dieses Objekt in der Tabulatorreihenfolge vorliegt. Gibt an, ob sich dieses Objekt in der Tabulatorreihenfolge befindet. Liegt dieses Objekt in der Tabulatorreihenfolge vor, ist der Wert true, andernfalls false. Der Standardwert ist false, mit folgender Ausnahme:
  • Bei einem SimpleButton-Objekt lautet der Wert true.
  • Bei einem TextField-Objekt mit type = "input" lautet der Wert true.
  • Bei einem Sprite-Objekt oder MovieClip-Objekt mit buttonMode = true lautet der Wert true.
tabIndex Gibt die Tabulatorreihenfolge von Objekten in einer SWF-Datei an.intDer Tabulatorindex für dieses Objekt. Gibt die Tabulatorreihenfolge von Objekten in einer SWF-Datei an. Die Eigenschaft tabIndex hat standardmäßig den Wert -1, d. h., für das Objekt ist kein Tabulatorindex gesetzt.

Wenn eines der gegenwärtig in der SWF-Datei angezeigten Objekte die tabIndex-Eigenschaft aufweist, wird die automatische Tabulatorreihenfolge deaktiviert und die Tabulatorreihenfolge anhand der tabIndex-Eigenschaften der Objekte in der SWF-Datei ermittelt. Bei der benutzerdefinierten Tabulatorreihenfolge werden nur Objekte berücksichtigt, die über die tabIndex-Eigenschaft verfügen.

Die tabIndex-Eigenschaft kann eine positive Ganzzahl sein. Die Objekte werden entsprechend den tabIndex-Eigenschaften in aufsteigender Reihenfolge angeordnet. Dabei liegt ein Objekt mit einem tabIndex-Wert von 1 in der Reihenfolge vor einem Objekt mit einem tabIndex-Wert von 2. Derselbe tabIndex-Wert darf nicht für mehrere Objekte verwendet werden.

Die durch die tabIndex-Eigenschaft festgelegte benutzerdefinierte Tabulatorreihenfolge ist flat. Das heißt, die hierarchischen Beziehungen zwischen Objekten in der SWF-Datei bleiben unberücksichtigt. Alle Objekte in der SWF-Datei, die die tabIndex-Eigenschaften aufweisen, werden in die Tabulatorreihenfolge eingeordnet, die wiederum durch die Reihenfolge der tabIndex-Werte bestimmt wird.

Hinweis: Um die Tabulatorreihenfolge für TLFTextField-Instanzen festzulegen, wandeln Sie das untergeordnete Anzeigeobjekt von TLFTextField in ein InteractiveObject um und legen Sie dann die tabIndex-Eigenschaft fest. Beispiel:

	 InteractiveObject(tlfInstance.getChildAt(1)).tabIndex = 3;
	 
Um die Tabulatorreihenfolge von der Standardreihenfolge für drei Instanzen eines TLFTextField-Objekts (tlfInstance1, tlfInstance2 und tlfInstance3) umzukehren, verwenden Sie Folgendes:
	 InteractiveObject(tlfInstance1.getChildAt(1)).tabIndex = 3;
	 InteractiveObject(tlfInstance2.getChildAt(1)).tabIndex = 2;
	 InteractiveObject(tlfInstance3.getChildAt(1)).tabIndex = 1;
	 

GraphicsTrianglePath Definiert einen angeordneten Satz an Dreiecken, die entweder mithilfe von Füllkoordinaten (u, v) oder normaler Füllung dargestellt werden können.flash.display:IGraphicsPathflash.display:IGraphicsDataObject Definiert einen angeordneten Satz an Dreiecken, die entweder mithilfe von Füllkoordinaten (u, v) oder normaler Füllung dargestellt werden können. Jedes Dreieck im Pfad wird durch drei Koordinatensätze (x, y) dargestellt, die jeweils einen Punkt des Dreiecks bilden.

Die Scheitelpunkte der Dreiecke enthalten keine z-Koordinate und stellen nicht notwendigerweise eine 3D-Fläche dar. Der Pfad eines Dreiecks kann jedoch verwendet werden, um die 3D-Darstellung in einem 2D-Raum zu unterstützen.

flash.display.Graphics.drawTriangles()GraphicsTrianglePath Erstellt ein neues GraphicsTrianglePath-Objekt.verticesnullEin Zahlenvektor, bei dem jedes Zahlenpaar als Punkt behandelt wird (ein Paar bestehend aus x und y). Erforderlich. indicesnullEin Ganzzahl- oder Indexvektor, bei dem jeweils drei Indexwerte ein Dreieck definieren. uvtDatanullEin Vektor normalisierter Koordinaten, der für die Anwendung von Texturmapping verwendet wird. cullingStringnoneLegt fest, ob Dreiecke, die in eine bestimmte Richtung zeigen, dargestellt werden sollen. Wird für die Darstellung von Dreiecken verwendet, die in der aktuellen Ansicht nicht sichtbar sind. Kann auf einen beliebigen in der TriangleCulling-Klasse festgelegten Wert gesetzt werden. Erstellt ein neues GraphicsTrianglePath-Objekt. Cullingflash.display.TriangleCullingindices Ein Ganzzahl- oder Indexvektor, bei dem jeweils drei Indexwerte ein Dreieck definieren. Ein Ganzzahl- oder Indexvektor, bei dem jeweils drei Indexwerte ein Dreieck definieren. Ist der indexes-Parameter null, so definieren jeweils drei Scheitelpunkte (sechs Paare bestehend aus x und y im vertices-Vektor) ein Dreieck. Andernfalls bezieht sich jede Indexpositon auf einen Scheitelpunkt, ein Zahlenpaar im vertices-Vektor. Beispiel: indexes[1] verweist auf (vertices[2], vertices[3]). uvtData Ein Vektor normalisierter Koordinaten, der für die Anwendung von Texturmapping verwendet wird. Ein Vektor normalisierter Koordinaten, der für die Anwendung von Texturmapping verwendet wird. Jede Koordinate verweist auf einen Punkt in der Bitmap, der für die Füllung verwendet wird. Für jeden Scheitelpunkt muss es eine UV- oder UVT-Koordinate geben.

Die UV-Koordinaten (0,0) entsprechen dem linken oberen Bereich der Bitmap, während (1,1) dem rechten unteren Bereich entspricht.

Entspricht die Länge dieses Vektors der doppelten Länge des vertices-Vektors, so werden die normalisierten Koordinaten ohne Perspektivenkorrektur verwendet.

Entspricht die Länge dieses Vektors der dreifachen Länge des vertices-Vektors, so wird die dritte Koordinate als „t“ interpretiert, als Entfernung zwischen Auge und Textur im Sichtraum. Dies ermöglicht der Wiedergabe-Engine die korrekte Anwendung von Perspektiven beim Texturmapping im 3D-Raum.

vertices Ein Zahlenvektor, bei dem jedes Zahlenpaar als Punkt behandelt wird (ein Paar bestehend aus x und y). Ein Zahlenvektor, bei dem jedes Zahlenpaar als Punkt behandelt wird (ein Paar bestehend aus x und y). culling Legt fest, ob Dreiecke, die in eine bestimmte Richtung zeigen, dargestellt werden sollen.String Legt fest, ob Dreiecke, die in eine bestimmte Richtung zeigen, dargestellt werden sollen. Wird für die Darstellung von Dreiecken verwendet, die in der aktuellen Ansicht nicht sichtbar sind.

Kann auf einen beliebigen in der TriangleCulling-Klasse festgelegten Wert gesetzt werden.

flash.display.TriangleCulling
DisplayObject Die DisplayObject-Klasse ist die Basisklasse für alle Objekte, die in die Anzeigeliste eingefügt werden können.flash.display:IBitmapDrawableflash.events:EventDispatcher Die DisplayObject-Klasse ist die Basisklasse für alle Objekte, die in die Anzeigeliste eingefügt werden können. Die Anzeigeliste verwaltet alle Objekte, die in den Flash-Laufzeitumgebungen angezeigt werden. Um die Anzeigeobjekte innerhalb der Anzeigeliste anzuordnen, verwenden Sie die DisplayObjectContainer-Klasse. DisplayObjectContainer-Objekte können untergeordnete Anzeigeobjekte besitzen, während andere Anzeigeobjekte, wie die Objekte „Shape“ oder „TextField“, Endknoten sind, die nur übergeordnete und Parallelobjekte besitzen, aber keine untergeordneten Objekte.

Die DisplayObject-Klasse unterstützt grundlegende Funktionalitäten wie die x- und y-Position eines Objekts sowie Objekteigenschaften für fortgeschrittene Anwender, z. B. die Transformationsmatrix.

DisplayObject ist eine abstrakte Basisklasse. Daher können Sie DisplayObject nicht direkt aufrufen. Durch das Aufrufen von new DisplayObject() wird eine ArgumentError-Ausnahme ausgelöst.

Alle Anzeigeobjekte erben die Eigenschaften und Methoden der DisplayObject-Klasse.

Die DisplayObject-Klasse selbst enthält keine APIs zum Rendern von Inhalten auf dem Bildschirm. Wenn Sie eine benutzerdefinierte Unterklasse der DisplayObject-Klasse erstellen möchten, sollten Sie daher eine ihrer Unterklassen erweitern, die über APIs zum Rendern von Inhalt auf dem Bildschirm verfügt (wie die Klassen Shape, Sprite, Bitmap, SimpleButton, TextField oder MovieClip).

Die DisplayObject-Klasse enthält mehrere broadcast-Ereignisse. Normalerweise ist das Ziel eines bestimmten Ereignisses eine bestimmte DisplayObject-Instanz. So ist z. B. das Ziel eines added-Ereignisses die bestimmte DisplayObjectInstanz, die der Anzeigeliste hinzugefügt wurde. Bei einem einzigen Ziel ist die Platzierung des Ereignis-Listeners auf dieses Ziel beschränkt, in manchen Fällen auf die übergeordneten Elemente des Ziels in der Anzeigeliste. Bei broadcast-Ereignissen ist das Ziel jedoch keine bestimmte DisplayObject-Instanz, sondern alle DisplayObject-Instanzen, einschließlich jener, die nicht in der Anzeigeliste erscheinen. Das bedeutet, dass Sie jeder DisplayObject-Instanz einen Listener hinzufügen können, der auf broadcast-Ereignisse wartet. Zusätzlich zu den in der Ereignistabelle der DisplayObject-Klasse aufgelisteten broadcast-Ereignissen erbt die DisplayObject-Klasse zwei broadcast-Erignisse von der EventDispatcher-Klasse: activate und deactivate.

Einige der in den ActionScript 1.0- und 2.0-Klassen MovieClip, TextField und Button verwendeten Eigenschaften (wie _alpha, _height, _name, _width, _x, _y und andere) verfügen über Entsprechungen in der ActionScript 3.0-Klasse DisplayObject, wurden aber so umbenannt, dass der neue Name nicht mehr mit einem Unterstrich (_) beginnt.

Weitere Informationen finden Sie im Kapitel „Programmierung von Anzeigeobjekten“ des ActionScript 3.0 Entwicklerhandbuchs.

Im folgenden Beispiel wird die Klasse DisplayObjectExample verwendet, um in einer Ecke der Bühne ein orangefarbenes Quadrat zu zeichnen und dann auf Ereignisse zu reagieren, indem für die einzelnen Ereignisse Textinformationen angezeigt werden. Dies wird in den folgenden Schritten erreicht:
  1. Für die Farbe und Größe des Quadrats werden Klasseneigenschaften deklariert.
  2. Der Konstruktor ruft die draw()-Methode auf, die auf der Bühne an der Standardposition mit den Koordinaten x = 0, y = 0 ein orangefarbenes Quadrat zeichnet.
  3. Dem Quadrat sind die folgenden Ereignis-Listener-Methoden zugeordnet:
    • addedHandler(): Listener für added-Ereignisse, die ausgelöst werden, wenn das Quadrat der Anzeigeliste hinzugefügt wird.
    • enterFrameHandler(): Listener für enterFrame-Ereignisse, die in diesem Beispiel keine besondere Bedeutung haben.
    • removedHandler(): Listener für removed-Ereignisse, die ausgelöst werden, wenn das Quadrat aus der Anzeigeliste entfernt wird. Dies ist der Fall, wenn Benutzer auf das Quadrat klicken.
    • clickHandler(): Listener für click-Ereignisse, die ausgelöst werden, wenn Benutzer auf das orangefarbene Quadrat klicken.
    • renderHandler(): Listener für render-Ereignisse, die ausgelöst werden, nachdem die Anzeigeliste aktualisiert wurde.
package { import flash.display.Sprite; public class DisplayObjectExample extends Sprite { public function DisplayObjectExample() { var child:CustomDisplayObject = new CustomDisplayObject(); addChild(child); } } } import flash.display.DisplayObject; import flash.display.Sprite; import flash.display.Stage; import flash.display.StageAlign; import flash.display.StageScaleMode; import flash.events.*; class CustomDisplayObject extends Sprite { private var bgColor:uint = 0xFFCC00; private var size:uint = 80; public function CustomDisplayObject() { draw(); addEventListener(Event.ADDED, addedHandler); addEventListener(Event.ENTER_FRAME, enterFrameHandler); addEventListener(Event.REMOVED, removedHandler); addEventListener(MouseEvent.CLICK, clickHandler); addEventListener(Event.RENDER, renderHandler); } private function draw():void { graphics.beginFill(bgColor); graphics.drawRect(0, 0, size, size); graphics.endFill(); } private function clickHandler(event:MouseEvent):void { trace("clickHandler: " + event); parent.removeChild(this); } private function addedHandler(event:Event):void { trace("addedHandler: " + event); stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = StageAlign.TOP_LEFT; stage.addEventListener("resize", resizeHandler); } private function enterFrameHandler(event:Event):void { trace("enterFrameHandler: " + event); removeEventListener("enterFrame", enterFrameHandler); } private function removedHandler(event:Event):void { trace("removedHandler: " + event); stage.removeEventListener("resize", resizeHandler); } private function renderHandler(event:Event):void { trace("renderHandler: " + event); } private function resizeHandler(event:Event):void { trace("resizeHandler: " + event); } }
flash.display.DisplayObjectContainerrender [broadcast event] Wird ausgelöst, wenn die Anzeigeliste kurz davor steht, aktualisiert und neu gezeichnet zu werden.flash.events.Event.RENDERflash.events.Event [broadcast event] Wird ausgelöst, wenn die Anzeigeliste kurz davor steht, aktualisiert und neu gezeichnet zu werden. Dieses Ereignis bietet für Objekte, die auf dieses Ereignis warten, die letzte Möglichkeit zum Vornehmen von Änderungen, bevor die Anzeigeliste neu gezeichnet (gerendert) wird. Sie müssen die invalidate()-Methode des Stage-Objekts jedes Mal aufrufen, wenn ein render-Ereignis ausgelöst werden soll. Render-Ereignisse werden für ein Objekt nur ausgelöst, wenn ein gegenseitiges Vertrauensverhältnis zwischen diesem Objekt und dem Objekt besteht, das Stage.invalidate() aufgerufen hat. Bei diesem Ereignis handelt es sich um ein broadcast-Ereignis. Das bedeutet, dass es von allen Anzeigeobjekten ausgelöst wird, die einen Listener für dieses Ereignis registriert haben.

Hinweis: Dieses Ereignis wird nicht ausgelöst, wenn die Anzeige nicht dargestellt wird. Dies ist der Fall, wenn der Inhalt entweder minimiert ist oder verdeckt wird.

removedFromStage Wird ausgelöst, wenn ein Anzeigeobjekt aus der Anzeigeliste entfernt werden soll. Dies erfolgt entweder direkt oder über das Entfernen einer Unterstruktur, die das Anzeigeobjekt enthält.flash.events.Event.REMOVED_FROM_STAGEflash.events.Event Wird ausgelöst, wenn ein Anzeigeobjekt aus der Anzeigeliste entfernt werden soll. Dies erfolgt entweder direkt oder über das Entfernen einer Unterstruktur, die das Anzeigeobjekt enthält. Zwei Methoden aus der DisplayObjectContainer-Klasse erzeugen dieses Ereignis: removeChild() und removeChildAt().

Auch die folgenden Methoden eines DisplayObjectContainer-Objekts erzeugen dieses Ereignis, wenn ein Objekt entfernt werden muss, um Platz für das neue Objekt zu schaffen: addChild(), addChildAt() und setChildIndex().

removed Wird ausgelöst, wenn ein Objekt aus der Anzeigeliste entfernt werden soll.flash.events.Event.REMOVEDflash.events.Event Wird ausgelöst, wenn ein Objekt aus der Anzeigeliste entfernt werden soll. Zwei Methoden aus der DisplayObjectContainer-Klasse erzeugen dieses Ereignis: removeChild() und removeChildAt().

Auch die folgenden Methoden eines DisplayObjectContainer-Objekts erzeugen dieses Ereignis, wenn ein Objekt entfernt werden muss, um Platz für das neue Objekt zu schaffen: addChild(), addChildAt() und setChildIndex().

exitFrame [broadcast event] Wird ausgelöst, wenn der Abspielkopf das aktuelle Bild verlässt.flash.events.Event.EXIT_FRAMEflash.events.Event [broadcast event] Wird ausgelöst, wenn der Abspielkopf das aktuelle Bild verlässt. Alle Bildskripten wurden ausgeführt. Wenn sich der Abspielkopf gerade nicht bewegt oder wenn es nur ein einziges Bild gibt, wird dieses Ereignis kontinuierlich ausgelöst, und zwar zusammen mit der Bildrate. Bei diesem Ereignis handelt es sich um ein broadcast-Ereignis. Das bedeutet, dass es von allen Anzeigeobjekten ausgelöst wird, die einen Listener für dieses Ereignis registriert haben. frameConstructed [broadcast event] Wird ausgelöst, nachdem die Konstruktoren von Bildanzeigeobjekten ausgeführt wurden, bevor Bildskripten ausgeführt wurden.flash.events.Event.FRAME_CONSTRUCTEDflash.events.Event [broadcast event] Wird ausgelöst, nachdem die Konstruktoren von Bildanzeigeobjekten ausgeführt wurden, bevor Bildskripten ausgeführt wurden. Wenn sich der Abspielkopf gerade nicht bewegt oder wenn es nur ein einziges Bild gibt, wird dieses Ereignis kontinuierlich ausgelöst, und zwar zusammen mit der Bildrate. Bei diesem Ereignis handelt es sich um ein broadcast-Ereignis. Das bedeutet, dass es von allen Anzeigeobjekten ausgelöst wird, die einen Listener für dieses Ereignis registriert haben. enterFrame [broadcast event] Wird ausgelöst, wenn der Abspielkopf ein neues Bild erreicht.flash.events.Event.ENTER_FRAMEflash.events.Event [broadcast event] Wird ausgelöst, wenn der Abspielkopf ein neues Bild erreicht. Wenn sich der Abspielkopf gerade nicht bewegt oder wenn es nur ein einziges Bild gibt, wird dieses Ereignis kontinuierlich ausgelöst, und zwar zusammen mit der Bildrate. Bei diesem Ereignis handelt es sich um ein broadcast-Ereignis. Das bedeutet, dass es von allen Anzeigeobjekten ausgelöst wird, die einen Listener für dieses Ereignis registriert haben. addedToStage Wird ausgelöst, wenn ein Anzeigeobjekt der Anzeigeliste für die Bühne hinzugefügt wird. Dies erfolgt entweder direkt oder über das Hinzufügen einer Unterstruktur, die das Anzeigeobjekt enthält.flash.events.Event.ADDED_TO_STAGEflash.events.Event Wird ausgelöst, wenn ein Anzeigeobjekt der Anzeigeliste für die Bühne hinzugefügt wird. Dies erfolgt entweder direkt oder über das Hinzufügen einer Unterstruktur, die das Anzeigeobjekt enthält. Die folgenden Methoden lösen dieses Ereignis aus: DisplayObjectContainer.addChild(), DisplayObjectContainer.addChildAt(). flash.display.DisplayObjectContainer.addChild()flash.display.DisplayObjectContainer.addChildAt()added Wird ausgelöst, wenn ein Objekt der Anzeigeliste hinzugefügt wird.flash.events.Event.ADDEDflash.events.Event Wird ausgelöst, wenn ein Objekt der Anzeigeliste hinzugefügt wird. Die folgenden Methoden lösen dieses Ereignis aus: DisplayObjectContainer.addChild(), DisplayObjectContainer.addChildAt(). flash.display.DisplayObjectContainer.addChild()flash.display.DisplayObjectContainer.addChildAt()getBounds Gibt ein Rechteck zurück, das den Bereich des Anzeigeobjekts in Bezug auf das Koordinatensystem des targetCoordinateSpace-Objekts definiert.Das Rechteck, das den Bereich des Anzeigeobjekts in Bezug auf das Koordinatensystem des targetCoordinateSpace-Objekts definiert. flash.geom:RectangletargetCoordinateSpaceflash.display:DisplayObjectDas Anzeigeobjekt, das das zu verwendende Koordinatensystem definiert. Gibt ein Rechteck zurück, das den Bereich des Anzeigeobjekts in Bezug auf das Koordinatensystem des targetCoordinateSpace-Objekts definiert. Im folgenden Code wird gezeigt, wie das zurückgegebene Rechteck variieren kann, und zwar abhängig von dem Wert, den Sie im Parameter targetCoordinateSpace an die Methode übergeben: var container:Sprite = new Sprite(); container.x = 100; container.y = 100; this.addChild(container); var contents:Shape = new Shape(); contents.graphics.drawCircle(0,0,100); container.addChild(contents); trace(contents.getBounds(container)); // (x=-100, y=-100, w=200, h=200) trace(contents.getBounds(this)); // (x=0, y=0, w=200, h=200)

Hinweis: Mit den Methoden localToGlobal() und globalToLocal() können Sie die lokalen Koordinaten des Anzeigeobjekts in Anzeigekoordinaten bzw. Anzeigekoordinaten in lokale Koordinaten umwandeln.

Die getBounds()-Methode ähnelt der getRect()-Methode. Allerdings umfasst das Rechteck, das von der getBounds()-Methode zurückgegeben wird, im Gegensatz zum von der getRect()-Methode zurückgegebenen Rechteck auch Striche auf Formen. Ein Beispiel finden Sie in der Beschreibung der getRect()-Methode.

getRect()globalToLocal()localToGlobal()
getRect Gibt ein Rechteck zurück, das die Begrenzung des Anzeigeobjekts (ohne etwaige Striche oder Formen) definiert, und zwar aufgrund des vom Parameter „targetCoordinateSpace“ definierten Koordinatensystems.Das Rechteck, das den Bereich des Anzeigeobjekts in Bezug auf das Koordinatensystem des targetCoordinateSpace-Objekts definiert. flash.geom:RectangletargetCoordinateSpaceflash.display:DisplayObjectDas Anzeigeobjekt, das das zu verwendende Koordinatensystem definiert. Gibt ein Rechteck zurück, das die Begrenzung des Anzeigeobjekts (ohne etwaige Striche oder Formen) definiert, und zwar aufgrund des vom Parameter targetCoordinateSpace definierten Koordinatensystems. Die von der getRect()-Methode zurückgegebenen Werte sind kleiner oder gleich den von der getBounds()-Methode zurückgegebenen Werten.

Hinweis: Mit den Methoden localToGlobal() und globalToLocal() können Sie die lokalen Koordinaten des Anzeigeobjekts in Bühnenkoordinaten bzw. Bühnenkoordinaten in lokale Koordinaten umwandeln.

Das folgende Beispiel zeigt, wie die getBounds()-Methode ein größeres Rechteck als die getRect()-Methode zurückgeben kann, da die Striche einen zusätzlichen Bereich einnehmen. In diesem Fall enthält das triangle-Sprite zusätzliche Striche aufgrund der Werte der width- und jointStyle-Parameter der lineStyle()-Methode. Die trace()-Ausgabe (in den letzten beiden Zeilen) zeigt die Unterschiede zwischen den Rechtecken getRect() und getBounds() an: import flash.display.CapsStyle; import flash.display.JointStyle; import flash.display.LineScaleMode; import flash.display.Sprite; import flash.geom.Rectangle; var triangle:Sprite = new Sprite(); var color:uint = 0xFF0044; var width:Number = 20; var alpha:Number = 1.0; var pixelHinting:Boolean = true; var scaleMode:String = LineScaleMode.NORMAL; var caps:String = CapsStyle.SQUARE; var joints:String = JointStyle.MITER; triangle.graphics.lineStyle(width, color, alpha, pixelHinting, scaleMode, caps, joints); var triangleSide:Number = 100; triangle.graphics.moveTo(0, 0); triangle.graphics.lineTo(0, triangleSide); triangle.graphics.lineTo(triangleSide, triangleSide); triangle.graphics.lineTo(0, 0); addChild(triangle); trace(triangle.getBounds(this)); // (x=-10, y=-24.1, w=134.10000000000002, h=134.1) trace(triangle.getRect(this)); // (x=0, y=0, w=100, h=100)
getBounds()
globalToLocal3D Konvertiert einen zweidimensionale Punkt von den (globalen) Bühnenkoordinaten in die dreidimensionalen (lokalen) Koordinaten des Anzeigeobjekts.Ein Vector3D-Objekt, dessen Koordinaten sich auf das dreidimensionale Anzeigeobjekt beziehen. flash.geom:Vector3Dpointflash.geom:PointEin zweidimensionales Point-Objekt, das globale x- und y-Koordinaten darstellt. Konvertiert einen zweidimensionale Punkt von den (globalen) Bühnenkoordinaten in die dreidimensionalen (lokalen) Koordinaten des Anzeigeobjekts.

Um diese Methode zu verwenden, erstellen Sie zuerst eine Instanz der Point-Klasse. Die x- und y-Werte, die Sie dem Point-Objekt zuweisen, repräsentieren globale Koordinaten, da sie sich auf den Ursprung (0,0) des Hauptanzeigebereichs beziehen. Übergeben Sie das Point-Objekt dann als point-Parameter an die globalToLocal3D()-Methode. Die Methode gibt dreidimensionale Koordinaten als Vector3D-Objekt zurück, das die x-, y- und z-Werte enthält, die sich auf den Ursprung des dreidimensionalen Anzeigeobjekts beziehen.

globalToLocal Konvertiert das point-Objekt von den (globalen) Bühnenkoordinaten in die (lokalen) Koordinaten des Anzeigeobjekts.Ein point-Objekt, dessen Koordinaten sich auf das Anzeigeobjekt beziehen. flash.geom:Pointpointflash.geom:PointEin mit der Point-Klasse erstelltes Objekt. Das point-Objekt gibt die x- und y-Koordinaten als Eigenschaften an. Konvertiert das point-Objekt von den (globalen) Bühnenkoordinaten in die (lokalen) Koordinaten des Anzeigeobjekts. Konvertiert das point-Objekt von den (globalen) Bühnenkoordinaten in die (lokalen) Koordinaten des Anzeigeobjekts.

Um diese Methode zu verwenden, erstellen Sie zuerst eine Instanz der Point-Klasse. Die x- und y-Werte, die Sie zuweisen, repräsentieren globale Koordinaten, weil sie sich auf den Ursprung (0,0) des Hauptanzeigebereichs beziehen. Dann übergeben Sie die Point-Instanz als Parameter an die globalToLocal()-Methode. Die Methode gibt ein neues point-Objekt mit x- und y-Werten zurück, die sich auf den Ursprung des Anzeigeobjekts beziehen, anstatt auf den Ursprung der Bühne.

Der folgende Code erstellt ein Shape-Objekt und zeigt das Ergebnis des Aufrufens der hitTestPoint()-Methode an, indem verschiedene Punkte als Parameter verwendet werden. Die globalToLocal()-Methode konvertiert die Bühnenkoordinaten für den Punkt in den Koordinatenraum der Form: import flash.display.Shape; import flash.geom.Point; var circle:Shape = new Shape(); circle.graphics.beginFill(0x0000FF); circle.graphics.drawCircle(40, 40, 40); circle.x = 10; addChild(circle); var point1:Point = new Point(0, 0); trace(circle.hitTestPoint(point1.x, point1.y, true)); // false trace(circle.hitTestPoint(point1.x, point1.y, false)); // false trace(circle.globalToLocal(point1)); // [x=-10, y=0] var point2:Point = new Point(10, 1); trace(circle.hitTestPoint(point2.x, point2.y, true)); // false trace(circle.hitTestPoint(point2.x, point2.y, false)); // true trace(circle.globalToLocal(point2)); // [x=0, y=1] var point3:Point = new Point(30, 20); trace(circle.hitTestPoint(point3.x, point3.y, true)); // true trace(circle.hitTestPoint(point3.x, point3.y, false)); // true trace(circle.globalToLocal(point3)); // [x=20, y=20]
localToGlobal()flash.geom.Point-Klasse
hitTestObject Untersucht den Begrenzungsrahmen des Anzeigeobjekts, um festzustellen, ob er sich mit dem Begrenzungsrahmen des obj-Anzeigeobjekts überschneidet.Hat den Wert true, wenn sich die Begrenzungsrahmen der Anzeigeobjekte überschneiden, und den Wert false, wenn sie sich nicht überschneiden. Booleanobjflash.display:DisplayObjectDas zu vergleichende Anzeigeobjekt. Untersucht den Begrenzungsrahmen des Anzeigeobjekts, um festzustellen, ob er sich mit dem Begrenzungsrahmen des obj-Anzeigeobjekts überschneidet, das als Parameter übergeben wird. Untersucht den Begrenzungsrahmen des Anzeigeobjekts, um festzustellen, ob er sich mit dem Begrenzungsrahmen des obj-Anzeigeobjekts überschneidet. Der folgende Code erstellt drei Shape-Objekte und zeigt das Ergebnis des Aufrufens der hitTestObject()-Methode an. Beachten Sie: Obwohl sich „circle2“ und „circle3“ selbst nicht überschneiden, überschneiden sich die Begrenzungsrahmen der Objekte doch. Deshalb gibt der Test von „circle2“ und „circle3“ den Wert true zurück. import flash.display.Shape; var circle1:Shape = new Shape(); circle1.graphics.beginFill(0x0000FF); circle1.graphics.drawCircle(40, 40, 40); addChild(circle1); var circle2:Shape = new Shape(); circle2.graphics.beginFill(0x00FF00); circle2.graphics.drawCircle(40, 40, 40); circle2.x = 50; addChild(circle2); var circle3:Shape = new Shape(); circle3.graphics.beginFill(0xFF0000); circle3.graphics.drawCircle(40, 40, 40); circle3.x = 100; circle3.y = 67; addChild(circle3); trace(circle1.hitTestObject(circle2)); // true trace(circle1.hitTestObject(circle3)); // false trace(circle2.hitTestObject(circle3)); // true hitTestPoint Wertet das Anzeigeobjekt aus, um festzustellen, ob es den durch die Parameter „x“ und „y“ festgelegten Punkt überdeckt oder schneidet.true, wenn das Anzeigeobjekt den angegebenen Punkt überdeckt oder schneidet, andernfalls false. BooleanxNumberDie x-Koordinate, mit der die x-Koordinate dieses Objekts verglichen werden soll. yNumberDie y-Koordinate, mit der die y-Koordinate dieses Objekts verglichen werden soll. shapeFlagBooleanfalseBestimmt, ob mit den Pixeln des Objekts (true) oder der Begrenzungsbox (false) verglichen werden soll. Wertet das Anzeigeobjekt aus, um festzustellen, ob es einen durch „x“ und „y“ festgelegten Punkt überdeckt oder schneidet. Wertet das Anzeigeobjekt aus, um festzustellen, ob es den durch die Parameter x und y festgelegten Punkt überdeckt oder schneidet. Die Parameter x und y legen einen Punkt im Koordinatenraum der Bühne fest, nicht den Anzeigeobjekt-Container, der das Anzeigeobjekt enthält (es sei denn, bei dem Anzeigeobjekt-Container handelt es sich um die Bühne). Der folgende Code erstellt ein Shape-Objekt und zeigt das Ergebnis des Aufrufens der hitTestPoint()-Methode an, indem verschiedene Punkte als Parameter verwendet werden. Die globalToLocal()-Methode konvertiert die Bühnenkoordinaten für den Punkt in den Koordinatenraum der Form: import flash.display.Shape; import flash.geom.Point; var circle:Shape = new Shape(); circle.graphics.beginFill(0x0000FF); circle.graphics.drawCircle(40, 40, 40); circle.x = 10; addChild(circle); var point1:Point = new Point(0, 0); trace(circle.hitTestPoint(point1.x, point1.y, true)); // false trace(circle.hitTestPoint(point1.x, point1.y, false)); // false trace(circle.globalToLocal(point1)); // [x=-10, y=0] var point2:Point = new Point(10, 1); trace(circle.hitTestPoint(point2.x, point2.y, true)); // false trace(circle.hitTestPoint(point2.x, point2.y, false)); // true trace(circle.globalToLocal(point2)); // [x=0, y=1] var point3:Point = new Point(30, 20); trace(circle.hitTestPoint(point3.x, point3.y, true)); // true trace(circle.hitTestPoint(point3.x, point3.y, false)); // true trace(circle.globalToLocal(point3)); // [x=20, y=20] opaqueBackgroundlocal3DToGlobal Konvertiert einen dreidimensionalen Punkt der dreidimensionalen (lokalen) Koordinaten des Anzeigeobjekts in einen zweidimensionalen Punkt der (globalen) Bühnenkoordinaten.Ein zweidimensionaler Punkt, der einen dreidimensionalen Punkt im zweidimensionalen Raum darstellt. flash.geom:Pointpoint3dflash.geom:Vector3DEin Vector3D-Objekt, das entweder einen dreidimensionalen Punkt oder die Koordinaten eines dreidimensionalen Anzeigeobjekts enthält. Konvertiert einen dreidimensionalen Punkt der dreidimensionalen (lokalen) Koordinaten des Anzeigeobjekts in einen zweidimensionalen Punkt der (globalen) Bühnenkoordinaten.

Sie können beispielsweise für das Zeichnen mit den display.Graphics-Methoden nur zweidimensionale Koordinaten (x,y) verwenden. Zum Zeichnen eines dreidimensionalen Objekts müssen Sie die dreidimensionalen Koordinaten eines Anzeigeobjekts zweidimensionalen Koordinaten zuordnen. Erstellen Sie zunächst eine Instanz der Vector3D-Klasse, die die x-, y- und z-Koordinate des dreidimensionalen Anzeigeobjekts enthält. Übergeben Sie dann das Vector3D-Objekt als point3d-Parameter an die local3DToGlobal()-Methode. Die Methode gibt ein zweidimensionales Point-Objekt zurück, das mit der Grafik-API zum Zeichnen des dreidimensionalen Objekts verwendet werden kann.

In diesem Beispiel wird unter Verwendung von display.Graphics-Methoden ein einfacher dreidimensionaler Würfel in einem zweidimensionalen Raum gezeichnet. Die Position des this-Anzeigeobjekts ist versetzt, sodass sich der Registrierungspunkt des Würfels in seiner Mitte befindet. Ein Vektor der Vector3D-Klasse enthält die dreidimensionalen Koordinaten des Würfels. Zuerst wird der obere Teil des Würfels gezeichnet, dann der untere, und danach werden die vier Ecken oben und unten verbunden. Damit Sie die local3DToGlobal()-Methode verwenden können, müssen Sie den Würfel vor dem Zeichnen dem Anzeigeobjektcontainer hinzufügen. package { import flash.display.MovieClip; import flash.display.Sprite; import flash.display.Graphics; import flash.geom.*; public class Local3DToGlobalExample extends MovieClip { private var myCube:Sprite = new Sprite(); private var v8:Vector.<Vector3D> = new Vector.<Vector3D>(8); public function Local3DToGlobalExample():void { this.x = -(this.stage.stageWidth / 2); this.y = -(this.stage.stageWidth / 2); v8[0] = new Vector3D(-40,-40,-40); v8[1] = new Vector3D(40,-40,-40); v8[2] = new Vector3D(40,-40,40); v8[3] = new Vector3D(-40,-40,40); v8[4] = new Vector3D(-40,100,-40); v8[5] = new Vector3D(40,100,-40); v8[6] = new Vector3D(40,100,40); v8[7] = new Vector3D(-40,100,40); myCube.x = (this.stage.stageWidth / 2); myCube.y = (this.stage.stageWidth / 2); myCube.z = 1; addChild(myCube); Cube(); } private function Cube():void { var ps:Point = new Point(0,0); myCube.graphics.lineStyle(2,0xFF0000); ps = myCube.local3DToGlobal(v8[0]); myCube.graphics.moveTo(ps.x, ps.y); ps = myCube.local3DToGlobal(v8[1]); myCube.graphics.lineTo(ps.x, ps.y); ps = myCube.local3DToGlobal(v8[2]); myCube.graphics.lineTo(ps.x, ps.y); ps = myCube.local3DToGlobal(v8[3]); myCube.graphics.lineTo(ps.x, ps.y); ps = myCube.local3DToGlobal(v8[0]); myCube.graphics.lineTo(ps.x, ps.y); ps = myCube.local3DToGlobal(v8[4]); myCube.graphics.moveTo(ps.x, ps.y); ps = myCube.local3DToGlobal(v8[5]); myCube.graphics.lineTo(ps.x, ps.y); ps = myCube.local3DToGlobal(v8[6]); myCube.graphics.lineTo(ps.x, ps.y); ps = myCube.local3DToGlobal(v8[7]); myCube.graphics.lineTo(ps.x, ps.y); ps = myCube.local3DToGlobal(v8[4]); myCube.graphics.lineTo(ps.x, ps.y); ps = myCube.local3DToGlobal(v8[0]); myCube.graphics.moveTo(ps.x, ps.y); ps = myCube.local3DToGlobal(v8[4]); myCube.graphics.lineTo(ps.x, ps.y); ps = myCube.local3DToGlobal(v8[1]); myCube.graphics.moveTo(ps.x, ps.y); ps = myCube.local3DToGlobal(v8[5]); myCube.graphics.lineTo(ps.x, ps.y); ps = myCube.local3DToGlobal(v8[2]); myCube.graphics.moveTo(ps.x, ps.y); ps = myCube.local3DToGlobal(v8[6]); myCube.graphics.lineTo(ps.x, ps.y); ps = myCube.local3DToGlobal(v8[3]); myCube.graphics.moveTo(ps.x, ps.y); ps = myCube.local3DToGlobal(v8[7]); myCube.graphics.lineTo(ps.x, ps.y); } } }
localToGlobal Konvertiert das point-Objekt von den (lokalen) Koordinaten des Anzeigeobjekts in die (globalen) Bühnenkoordinaten.Ein point-Objekt, dessen Koordinaten sich auf die Bühne beziehen. flash.geom:Pointpointflash.geom:PointDer Name oder Bezeichner eines Punkts, der mit der Point-Klasse erstellt wurde und die x- und y-Koordinaten als Eigenschaften angibt. Konvertiert das point-Objekt von den (lokalen) Koordinaten des Anzeigeobjekts in die (globalen) Bühnenkoordinaten.

Mit dieser Methode können Sie beliebige x- und y-Koordinaten von Werten, die sich auf die obere linke Ecke eines bestimmten Anzeigeobjekts beziehen (lokale Koordinaten), in Werte umwandeln, die sich auf die obere linke Ecke der Bühne beziehen (globale Koordinaten).

Um diese Methode zu verwenden, erstellen Sie zuerst eine Instanz der Point-Klasse. Die x- und y-Werte, die Sie zuweisen, repräsentieren lokale Koordinaten, weil sie sich auf den Ursprung (0,0) des Anzeigeobjekts beziehen.

Dann übergeben Sie die Point-Instanz, die Sie erstellt haben, als Parameter an die localToGlobal()-Methode. Die Methode gibt ein neues point-Objekt mit x- und y-Werten zurück, die sich auf den Ursprung der Bühne beziehen, anstatt auf den Ursprung des Anzeigeobjekts.

Der folgende Code erstellt ein Sprite-Objekt. Die Eigenschaften mouseX und mouseY des Sprites befinden sich im Koordinatenraum des Anzeigeobjekts. Dieser Code verwendet die localToGlobal()-Methode, um diese Eigenschaften in die globalen Koordinaten (für die Bühne) zu konvertieren: import flash.display.Sprite; import flash.events.MouseEvent; import flash.geom.Point; var square:Sprite = new Sprite(); square.graphics.beginFill(0xFFCC00); square.graphics.drawRect(0, 0, 100, 100); square.x = 100; square.y = 200; addChild(square); square.addEventListener(MouseEvent.CLICK, traceCoordinates) function traceCoordinates(event:MouseEvent):void { var clickPoint:Point = new Point(square.mouseX, square.mouseY); trace("display object coordinates:", clickPoint); trace("stage coordinates:", square.localToGlobal(clickPoint)); }
globalToLocal()flash.geom.Point-Klasse
accessibilityProperties Die aktuellen Optionen für Eingabehilfen zur Barrierefreiheit dieses Anzeigeobjekts.flash.accessibility:AccessibilityProperties Die aktuellen Optionen für Eingabehilfen zur Barrierefreiheit dieses Anzeigeobjekts. Wenn Sie die accessibilityProperties-Eigenschaft oder eines der Felder innerhalb von accessibilityProperties ändern, müssen Sie die Accessibility.updateProperties()-Methode aufrufen, damit diese Änderungen angewendet werden.

Hinweis: Bei einem in der Flash-Authoring-Umgebung erstellten Objekt wird für accessibilityProperties ein etwaiger Wert aus dem Bedienfeld „Eigenschaften“ für dieses Objekt übernommen.

Aus dem folgenden Beispiel geht hervor, wie Sie ein einfaches AccessibilityProperties-Objekt einer TextField-Instanz zuordnen: import flash.text.TextField; import flash.accessibility.AccessibilityProperties; import flash.accessibility.Accessibility; import flash.system.Capabilities; var tf:TextField = new TextField(); tf.text = "hello"; var accessProps:AccessibilityProperties = new AccessibilityProperties(); accessProps.name = "Greeting"; tf.accessibilityProperties = accessProps; if (Capabilities.hasAccessibility) { Accessibility.updateProperties(); } trace(tf.accessibilityProperties.name); // Greeting
flash.accessibility.Accessibility.updateProperties()flash.accessibility.AccessibilityProperties
alpha Gibt den Alphatransparenzwert des angegebenen Objekts an.Number Gibt den Alphatransparenzwert des angegebenen Objekts an. Die zulässigen Werte liegen zwischen 0 (völlig transparent) und 1 (völlig undurchsichtig). Der Standardwert ist 1. Anzeigeobjekte mit einem alpha-Wert von 0 sind aktiv, auch wenn sie nicht sichtbar sind. Der folgende Code setzt die alpha-Eigenschaft eines Sprites auf 50 %, wenn die Maus über das Sprite bewegt wird: import flash.display.Sprite; import flash.events.MouseEvent; var circle:Sprite = new Sprite(); circle.graphics.beginFill(0xFF0000); circle.graphics.drawCircle(40, 40, 40); addChild(circle); circle.addEventListener(MouseEvent.MOUSE_OVER, dimObject); circle.addEventListener(MouseEvent.MOUSE_OUT, restoreObject); function dimObject(event:MouseEvent):void { event.target.alpha = 0.5; } function restoreObject(event:MouseEvent):void { event.target.alpha = 1.0; } blendMode Ein Wert aus der BlendMode-Klasse, mit dem angegeben wird, welche Füllmethode verwendet werden soll.String Ein Wert aus der BlendMode-Klasse, mit dem angegeben wird, welcher Mischmodus verwendet werden soll. Eine Bitmap kann intern auf zweierlei Weise gezeichnet werden. Wenn Sie einen Mischmodus oder eine externe Zuschneidemaske aktiviert haben, wird die Bitmap gezeichnet, indem dem Vektorrenderer ein Quadrat hinzugefügt wird. Wenn Sie versuchen, für die Eigenschaft einen unzulässigen Wert einzustellen, setzen Flash-Laufzeitumgebungen den Wert auf BlendMode.NORMAL .

Die blendMode-Eigenschaft wirkt sich auf jedes Pixel des Anzeigeobjekts aus. Dabei wird jedes Pixel aus den drei Grundfarben (Rot, Grün und Blau) jeweils mit einem Farbwert zwischen 0x00 und 0xFF zusammengestellt. Flash Player oder Adobe AIR vergleicht jede Grundfarbe eines Pixels im Movieclip mit der entsprechenden Farbe des Pixels im Hintergrund. Wenn blendMode beispielsweise auf BlendMode.LIGHTEN eingestellt ist, vergleicht Flash Player oder Adobe AIR den Rotwert des Anzeigeobjekts mit dem Rotwert des Hintergrunds und verwendet den helleren der beiden Werte für die rote Komponente der angezeigten Farbe.

In der folgenden Tabelle werden die Einstellungen von blendMode beschrieben. Die BlendMode-Klasse definiert String-Werte, die Sie verwenden können. Die Abbildungen in der Tabelle zeigen blendMode-Werte, die auf ein kreisförmiges Anzeigeobjekt (2) angewendet werden, das ein anderes Anzeigeobjekt (1) überlagert.

BlendMode-KonstanteAbbildungBeschreibungBlendMode.NORMALDas Anzeigeobjekt wird vor dem Hintergrund angezeigt. Die Pixelwerte des Anzeigeobjekts setzen die Werte des Hintergrunds außer Kraft. An den Stellen, an denen das Anzeigeobjekt transparent ist, wird der Hintergrund sichtbar.BlendMode.LAYERErzwingt die Erstellung einer Transparenzgruppe für das Anzeigeobjekt. Dies bedeutet, dass das Anzeigeobjekt vorher in einem temporären Puffer zusammengesetzt wird, bevor es weiterverarbeitet wird. Dies geschieht automatisch, wenn das Anzeigeobjekt im Voraus mithilfe der Bitmap-Zwischenspeicherung zwischengespeichert wird oder wenn es sich bei dem Anzeigeobjekt um einen Anzeigeobjekt-Container handelt, der mindestens ein untergeordnetes Objekt besitzt, dessen blendMode-Einstellung nicht BlendMode.NORMAL ist. Nicht unterstützt für GPU-Rendering. BlendMode.MULTIPLYMultipliziert die Werte der Grundfarben des Anzeigeobjekts mit denen der Hintergrundfarbe und normalisiert das Ergebnis durch Division durch 0xFF. Dies führt zu dunkleren Farben. Diese Einstellung wird im Allgemeinen für Schatten- und Tiefeneffekte verwendet.

Weisen beispielsweise die Grundfarbe (etwa Rot) eines Pixels im Anzeigeobjekt und eines Hintergrund-Pixels den Wert 0x88 auf, lautet das Ergebnis der Multiplikation 0x4840. Die Division durch 0xFF ergibt für diese Grundfarbe 0x48. Dies ist eine dunklere Farbe als die des Anzeigeobjekts bzw. des Hintergrunds.

BlendMode.SCREENMultipliziert die Komplementärfarbe des Anzeigeobjekts mit der Komplementärfarbe der Hintergrundfarbe, was zu helleren Farbtönen führt. Diese Einstellung wird in der Regel für Hervorhebungen bzw. zum Entfernen von schwarzen Bereichen aus dem Anzeigeobjekt verwendet.BlendMode.LIGHTENWählt die hellere Grundfarbe des Anzeigeobjekts und die Farbe des Hintergrunds aus (die Farben mit höheren Werten). Diese Einstellung wird normalerweise für Überlagerungen verwendet.

Weist das Anzeigeobjekt z. B. ein Pixel mit einem RGB-Wert von 0xFFCC33 und das Hintergrund-Pixel einen RGB-Wert von 0xDDF800 auf, lautet der resultierende RGB-Wert für das angezeigte Pixel 0xFFF833 (da 0xFF > 0xDD, 0xCC < 0xF8 und 0x33 > 0x00 = 33). Nicht unterstützt für GPU-Rendering.

BlendMode.DARKENWählt die dunklere Grundfarbe des Anzeigeobjekts und des Hintergrunds aus (die niedrigeren Werte). Diese Einstellung wird normalerweise für Überlagerungen verwendet.

Weist das Anzeigeobjekt z. B. ein Pixel mit einem RGB-Wert von 0xFFCC33 und das Hintergrund-Pixel einen RGB-Wert von 0xDDF800 auf, lautet der resultierende RGB-Wert für das angezeigte Pixel 0xDDCC00 (da 0xFF > 0xDD, 0xCC < 0xF8 und 0x33 > 0x00 = 33). Nicht unterstützt für GPU-Rendering.

BlendMode.DIFFERENCEVergleicht die Grundfarben des Anzeigeobjekts mit den Farben des Hintergrunds und subtrahiert für die beiden Grundfarben den dunkleren Wert von dem helleren Wert. Diese Einstellung wird normalerweise zur Farbverstärkung verwendet.

Wenn das Anzeigeobjekt z. B. ein Pixel mit dem RGB-Farbwert 0xFFCC33 aufweist und das Pixel im Hintergrund den RGB-Wert 0xDDf800 hat, dann erhält das angezeigte Pixel den Wert 0x222C33 (da 0xFF - 0xDD = 0x22, 0xF8 - 0xCC = 0x2C und 0x33 - 0x00 = 0x33 ist).

BlendMode.ADDAddiert den Wert der Grundfarben des Anzeigeobjekts zu den Farben des Hintergrunds (mit einem oberen Grenzwert von 0xFF). Diese Einstellung wird im Allgemeinen für Animationen von heller werdenden Auflösungen zwischen zwei Objekten verwendet.

Wenn das Anzeigeobjekt z. B. ein Pixel mit dem RGB-Farbwert 0xAAA633 aufweist und das Pixel im Hintergrund den RGB-Wert 0xDD2200 hat, dann erhält das angezeigte Pixel den Wert 0xFFC833 (da 0xAA + 0xDD > 0xFF, 0xA6 + 0x22 = 0xC8 und 0x33 + 0x00 = 0x33 ist).

BlendMode.SUBTRACTSubtrahiert die Werte der Grundfarben des Anzeigeobjekts von den Werten der Hintergrundfarbe (mit einem unteren Grenzwert von 0). Diese Einstellung wird im Allgemeinen für Animationen von dunkler werdenden Auflösungen zwischen zwei Objekten verwendet.

Weist das Anzeigeobjekt z. B. ein Pixel mit einem RGB-Wert von 0xAA2233 und das Hintergrund-Pixel einen RGB-Wert von 0xDDA600 auf, lautet der resultierende RGB-Wert für das angezeigte Pixel 0x338400 (da 0xDD - 0xAA = 0x33, 0xA6 - 0x22 = 0x84 und 0x00 - 0x33 < 0x00).

BlendMode.INVERTKehrt den Hintergrund um.BlendMode.ALPHAWendet den Alphawert jedes Pixels des Anzeigeobjekts auf den Hintergrund an. Dieser Vorgang erfordert, dass die blendMode-Einstellung des übergeordneten Anzeigeobjekts auf BlendMode.LAYER gesetzt wird. In dieser Abbildung gilt beispielsweise für das übergeordnete Anzeigeobjekt, einen weißen Hintergrund, die Einstellung blendMode = BlendMode.LAYER. Nicht unterstützt für GPU-Rendering.BlendMode.ERASELöscht den Hintergrund anhand der Alphawerte des Anzeigeobjekts. Dieser Vorgang erfordert, dass die blendMode-Einstellung des übergeordneten Anzeigeobjekts auf BlendMode.LAYER gesetzt wird. In dieser Abbildung gilt beispielsweise für das übergeordnete Anzeigeobjekt, einen weißen Hintergrund, die Einstellung blendMode = BlendMode.LAYER. Nicht unterstützt für GPU-Rendering.BlendMode.OVERLAYPasst die Farbe jedes Pixels entsprechend der Dunkelheit des Hintergrunds an. Wenn der Hintergrund heller ist als 50 % Grau, werden die Farben des Anzeigeobjekts und des Hintergrunds überlagert, um hellere Farben zu erhalten. Ist der Hintergrund dagegen dunkler als 50 % Grau, werden die Farben multipliziert, was zu dunkleren Farben führt. Diese Einstellung wird normalerweise für Schattierungen verwendet. Nicht unterstützt für GPU-Rendering.BlendMode.HARDLIGHTPasst die Farbe jedes Pixels entsprechend der Dunkelheit des Anzeigeobjekts an. Ist das Anzeigeobjekt heller als 50 % Grau, werden die Farben von Anzeigeobjekt und Hintergrund überlagert, was zu einer helleren Farbe führt. Ist das Anzeigeobjekt dagegen dunkler als 50 % Grau, werden die Farben multipliziert, was zu dunkleren Farben führt. Diese Einstellung wird normalerweise für Schattierungen verwendet. Nicht unterstützt für GPU-Rendering.BlendMode.SHADERn. zutr.Passt die Farbe mithilfe einer Standard-Shaderroutine an. Der verwendete Shader wird als die der blendShader-Eigenschaft zugewiesene Shader-Instanz festgelegt. Wird die blendShader-Eigenschaft eines Anzeigeobjekts auf eine Shader-Instanz gesetzt, so wird die blendMode-Eigenschaft des Anzeigeobjekts automatisch auf BlendMode.SHADER gesetzt. Wird die blendMode-Eigenschaft auf BlendMode.SHADER gesetzt, ohne vorher die blendShader-Eigenschaft zu setzen, so wird die blendMode-Eigenschaft auf BlendMode.NORMAL gesetzt. Nicht unterstützt für GPU-Rendering.
Der folgende Code erstellt zwei Sprite-Objekte, ein Quadrat und einen Kreis, und setzt den Mischmodus des Kreises (im Vordergrund) auf BlendMode.SUBTRACT, wenn der Mauszeiger auf den Kreis bewegt wird: import flash.display.Sprite; import flash.display.BlendMode; import flash.events.MouseEvent; var square:Sprite = new Sprite(); square.graphics.beginFill(0xFF88CC); square.graphics.drawRect(0, 0, 80, 80); addChild(square); var circle:Sprite = new Sprite(); circle.graphics.beginFill(0xAA0022); circle.graphics.drawCircle(40, 40, 40); addChild(circle); circle.addEventListener(MouseEvent.MOUSE_OVER, dimObject); circle.addEventListener(MouseEvent.MOUSE_OUT, restoreObject); function dimObject(event:MouseEvent):void { event.target.blendMode = BlendMode.SUBTRACT; } function restoreObject(event:MouseEvent):void { event.target.blendMode = BlendMode.NORMAL; }
flash.display.BlendModeblendShader
cacheAsBitmapMatrix Bei einem Nicht-Null-Wert definiert dieses Matrix-Objekt, wie ein Anzeigeobjekt dargestellt wird, wenn cacheAsBitmap auf „true“ gesetzt ist.flash.geom:MatrixDie Transformationsmatrix, die beim Rendern einer im Cache gespeicherten Version der Bitmap dieses Anzeigeobjekt verwendet wird. Bei einem Nicht-Null-Wert definiert dieses Matrix-Objekt, wie ein Anzeigeobjekt dargestellt wird, wenn cacheAsBitmap auf true gesetzt ist. Die Anwendung verwendet diese Matrix als Transformationsmatrix, die angewendet wird, wenn die Bitmapversion des Anzeigeobjekts dargestellt wird.

Unterstützung von AIR-Profilen: Diese Funktion wird auf mobilen Geräten unterstützt, nicht jedoch auf Desktopbetriebssystemen. Für Geräte mit AIR für TV gilt die eingeschränkte Unterstützung. Bei Geräten mit AIR für TV werden die Transformierungen Skalieren und Versetzen, nicht jedoch Drehen und Neigen unterstützt. Weitere Informationen zum AIR-Support über mehrere Profile finden Sie unter Unterstützung von AIR-Profilen.

Wenn cacheAsBitmapMatrix gesetzt ist, behält die Anwendung ein im Cache gespeichertes Bitmapbild über verschiedene 2D-Transformationen hinweg, darunter Versetzung, Drehung und Skalierung. Wenn die Anwendung Hardwarebeschleunigung verwendet, wird das Objekt als Textur im Grafikspeicher gespeichert. Dies ermöglicht der GPU, die unterstützten Transformationen auf das Objekt anzuwenden. Die GPU kann diese Transformationen schneller ausführen als die CPU.

Um die Hardwarebeschleunigung zu verwenden, stellen Sie im Dialogfeld „iPhone-Einstellungen“ von Flash Professional CS5 auf der Registerkarte „Allgemein“ für „Rendering“ die Option „GPU“ ein. Oder legen Sie die renderMode-Eigenschaft in der Anwendungsdeskriptordatei auf gpu fest. Beachten Sie, dass Geräte mit AIR für TV automatisch die Hardwarebeschleunigung verwenden, sofern verfügbar.

Der folgende Code sendet zum Beispiel eine nicht transformierte Bitmapdarstellung des Anzeigeobjekts an die GPU:

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

Normalerweise ist die Identitätsmatrix (new Matrix()) ausreichend. Sie können jedoch auch eine andere Matrix, zum Beispiel eine verkleinerte Matrix, verwenden, um eine andere Bitmap an die GPU hochzuladen. Der folgende Code wendet zum Beispiel eine cacheAsBitmapMatrix-Matrix an, die um den Faktor 0,5 für die x- und y-Achsen skaliert wurde. Das Bitmapobjekt, das die GPU verwendet, ist kleiner; die GPU passt die Größe jedoch an, um der transform.matrix-Eigenschaft des Anzeigeobjekts zu entsprechen:

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

Im Allgemeinen sollten Sie eine Matrix wählen, die das Anzeigeobjekt auf die Größe transformiert, in der es in der Anwendung erscheint. Wenn Ihre Anwendung zum Beispiel die Bitmapversion eines Sprites, das um die Hälfte verkleinert wurde, anzeigt, verwenden Sie eine Matrix, die um die Hälfte verkleinert wurde. Wenn die Anwendung das Sprite größer als mit den aktuellen Abmessungen anzeigt, verwenden Sie eine Matrix, die es um den entsprechenden Faktor vergrößert.

Hinweis: Die cacheAsBitmapMatrix-Eigenschaft eignet sich für 2D-Transformationen. Wenn Sie Transformationen in 3D anwenden möchten, können Sie dazu eine 3D-Eigenschaft für das Objekt festlegen und seine transform.matrix3D-Eigenschaft einstellen. Wenn die Anwendung unter Verwendung des GPU-Modus komprimiert wird, können die 3D-Transformationen von der GPU auf das Objekt angewendet werden. Die cacheAsBitmapMatrix-Eigenschaft wird für 3D-Objekte ignoriert.

Im folgenden Beispiel wird die cacheAsBitmapMatrix-Eigenschaft verwendet, um Transformationen auf eine Bitmapversion des Movieclips my_shape anzuwenden. import flash.geom.Matrix; import flash.display.*; import flash.utils.Timer; var my_shape:MovieClip = new MovieClip(); my_shape.graphics.beginFill(0xCCFF00); my_shape.graphics.drawRect(200, 0, 100, 100); addChild(my_shape); var my_timer:Timer = new Timer(250); my_timer.start(); my_timer.addEventListener(TimerEvent.TIMER, timerHandler); // make sure this Display Object remains cached for all 2D transforms my_shape.cacheAsBitmap = true; my_shape.cacheAsBitmapMatrix = new Matrix(); // rotation variables const initAngle:Number = 0; const pi:Number = 3.142; const incrAngle:Number = pi/10; // scaling variables const initScale:Number = 0.25; const incrScale: Number = 1.1; var initHeight : Number = my_shape.height; var initWidth : Number = my_shape.width; // translation variables var incrX : Number = root.width / 20; var incrY : Number = root.height / 10; // do some initial transforms var tempMat : Matrix = my_shape.transform.matrix; tempMat.rotate(initAngle); tempMat.scale(initScale, initScale); my_shape.transform.matrix = tempMat; function timerHandler(evt:TimerEvent):void { tempMat = my_shape.transform.matrix; tempMat.rotate(incrAngle); tempMat.translate(incrX, incrY); tempMat.scale(incrScale, incrScale); my_shape.transform.matrix = tempMat; // ensure we are still in a reasonable state or reset if(my_shape.height > stage.stageHeight/2) { my_shape.height = initHeight; } if(my_shape.width > stage.stageWidth/2) { my_shape.width = initWidth; } if(my_shape.x > stage.stageWidth) { my_shape.x = 0; } else if (my_shape.x < 0) { my_shape.x = stage.stageWidth; } if(my_shape.y > stage.stageHeight) { my_shape.y = 0; } else if (my_shape.y < 0) { my_shape.y = stage.stageHeight; } }
cacheAsBitmapflash.geom.Matrix3D
cacheAsBitmap Wird diese Eigenschaft auf „true“ gesetzt, speichern Flash-Laufzeitumgebungen eine interne Bitmap-Darstellung des Anzeigeobjekts im Cache.BooleanGibt an, ob dieses Anzeigeobjekt als Bitmap zwischengespeichert werden soll. Wird diese Eigenschaft auf true gesetzt, speichern Flash-Laufzeitumgebungen eine interne Bitmap-Darstellung des Anzeigeobjekts im Cache. Diese Zwischenspeicherung kann bei Anzeigeobjekten mit komplexen Vektorgrafiken ggf. die Leistung verbessern.

Alle Vektordaten eines Anzeigeobjekts, das eine zwischengespeicherte Bitmap besitzt, werden nicht in die Hauptanzeige, sondern in eine Bitmap gezeichnet. Wenn cacheAsBitmapMatrix null ist oder nicht unterstützt wird, wird die Bitmap als nicht gedehnte, nicht gedrehte Pixel, die an den nächsten Pixelgrenzen ausgerichtet sind, in die Hauptanzeige kopiert. Die Pixel werden dem übergeordneten Objekt 1 zu 1 zugeordnet. Ändern sich die Grenzen der Bitmap, wird diese nicht gedehnt, sondern neu erstellt.

Wenn cacheAsBitmapMatrix nicht null ist und unterstützt wird, wird das Objekt mit dieser Matrix in die Bitmap außerhalb des Bildschirms gezeichnet und die gestreckten und/oder gedrehten Ergebnisse dieser Darstellung werden verwendet, um das Objekt in der Hauptanzeige zu zeichnen.

Interne Bitmaps werden nur erstellt, wenn die cacheAsBitmap-Eigenschaft auf true gesetzt ist.

Nachdem Sie die cacheAsBitmap-Eigenschaft auf true gesetzt haben, ändert sich die Wiedergabe nicht. Allerdings führt das Anzeigeobjekt die Ausrichtung an Pixeln automatisch durch. Die Animationsgeschwindigkeit kann je nach Komplexität des Vektorinhalts deutlich schneller bzw. langsamer ablaufen.

Die cacheAsBitmap-Eigenschaft wird jeweils automatisch auf true gesetzt, wenn Sie einen Filter auf ein Anzeigeobjekt anwenden (vorausgesetzt, sein filter-Array ist nicht leer). Und wenn auf ein Anzeigeobjekt ein Filter angewendet worden ist, wird cacheAsBitmap für dieses Anzeigeobjekt als true gemeldet, selbst wenn Sie die Eigenschaft auf false setzen. Wenn Sie sämtliche Filter eines Anzeigeobjekts löschen, werden die cacheAsBitmap-Einstellungen auf ihren vorherigen Stand zurückgesetzt.

In einigen Fällen verwendet ein Anzeigeobjekt keine Bitmap, auch wenn die cacheAsBitmap-Eigenschaft auf true gesetzt wurde. Stattdessen erfolgt die Wiedergabe aufgrund von Vektordaten, und zwar in den folgenden Fällen:

  • Die Bitmap ist zu groß. In AIR 1.5 und Flash Player 10 ist die maximale Höhe oder Breite eines Bitmapbilds 8.191 Pixel, die gesamte Pixelzahl darf 16.777.215 nicht übersteigen. (Wenn ein Bitmapbild also 8.191 Pixel breit ist, darf es nur 2.048 Pixel hoch sein.) In Flash Player 9 und niedriger liegt die Grenze bei je 2.880 Pixel Höhe und Breite.
  • Der Bitmap kann kein Speicher zugewiesen werden (nicht genügend Arbeitsspeicher vorhanden).

Die cacheAsBitmap-Eigenschaft wird am besten mit Movieclips verwendet, die vorwiegend statischen Inhalt haben und nicht viel skaliert und gedreht werden. Bei solchen Movieclips kann cacheAsBitmap zu einer deutlichen Performance-Steigerung führen, wenn der Movieclip „übersetzt“ wird (wenn seine x- und y-Position geändert wird).

Im folgenden Beispiel wird einer Shape-Instanz ein Schlagschatten hinzugefügt. Anschließend wird der Wert der cacheAsBitmap-Eigenschaft verfolgt, die bei Verwendung eines Filters auf true gesetzt wird: import flash.display.Sprite; import flash.filters.DropShadowFilter var circle:Sprite = new Sprite(); circle.graphics.beginFill(0xAA0022); circle.graphics.drawCircle(40, 40, 40); addChild(circle); trace(circle.cacheAsBitmap); // false var filter:DropShadowFilter = new DropShadowFilter(); circle.filters = [filter]; trace(circle.cacheAsBitmap); // true
cacheAsBitmapMatrixopaqueBackground
filters Ein indiziertes Array, das alle dem Anzeigeobjekt derzeit zugeordneten filter-Objekte enthält.ArrayWenn filters einen ShaderFilter umfasst und der Shaderausgabetyp mit diesem Vorgang nicht kompatibel ist (der Shader muss eine pixel4-Ausgabe festlegen). ArgumentErrorArgumentErrorWenn filters einen ShaderFilter umfasst und der Shader keine Bildeingabe festlegt oder die erste Eingabe keine image4-Eingabe ist. ArgumentErrorArgumentErrorWenn filters einen ShaderFilter enthält und der Shader eine nicht vorhandene Bildeingabe festlegt. ArgumentErrorArgumentErrorWenn filters eine ShaderFilter-, ByteArray- oder Vector.<Number>-Instanz als Shader-Eingabe enthält und die Eigenschaften width und height für das ShaderInput-Objekt nicht festgelegt sind, oder wenn die angegebenen Werte nicht mit der Datenmenge in den Eingabedaten übereinstimmen. Weitere Informationen finden Sie im Abschnitt zur ShaderInput.input-Eigenschaft. ArgumentErrorArgumentError Ein indiziertes Array, das alle dem Anzeigeobjekt derzeit zugeordneten filter-Objekte enthält. Die Klassen im flash.filters-Paket definieren spezifische Filter, die Sie verwenden können.

Filter können entweder während der Entwurfsphase in Flash-Professional oder zur Laufzeit durch Verwendung von ActionScript-Code angewendet werden. Damit Sie einen Filter mithilfe von ActionScript anwenden können, müssen Sie zunächst eine temporäre Kopie des gesamten filters-Arrays erstellen, dann das temporäre Array ändern und schließlich den Wert des temporären Arrays wieder auf das filters-Array zurücksetzen. Es ist nicht möglich, ein neues filter-Objekt direkt dem filters-Array hinzuzufügen.

Um einen Filter mithilfe von ActionScript hinzuzufügen, müssen Sie die folgenden Schritte befolgen (wobei myDisplayObject das Ziel-Anzeigeobjekt ist):

  1. Erstellen Sie mithilfe der Konstruktormethode der gewählten Filterklasse ein neues filter-Objekt.
  2. Weisen Sie den Wert des myDisplayObject.filters-Arrays einem temporären Array zu, z. B. einem Array mit dem Namen myFilters.
  3. Fügen Sie das neue filter-Objekt dem temporären Array myFilters hinzu.
  4. Weisen Sie den Wert des temporären Arrays dem myDisplayObject.filters-Array zu.

Wenn das filters-Array nicht definiert ist, müssen Sie kein temporäres Array verwenden. Stattdessen können Sie direkt ein Array-Literal mit einem oder mehreren selbst definierten Filterobjekten zuweisen. Im ersten Beispiel wird im Abschnitt „Beispiele“ mithilfe von Code, der sowohl definierte als auch undefinierte filters-Arrays verarbeiten kann, ein Schlagschatten-Filter hinzugefügt.

Um ein vorhandenes filter-Objekt zu ändern, müssen Sie eine Technik anwenden, bei der eine Kopie des filters-Arrays geändert wird:

  1. Weisen Sie den Wert des filters-Arrays einem temporären Array zu, z. B. einem Array mit dem Namen myFilters.
  2. Ändern Sie die Eigenschaft mithilfe des temporären Arrays myFilters. Um beispielsweise die quality-Eigenschaft des ersten Filters im Array zu ändern, können Sie den folgenden Code anwenden: myFilters[0].quality = 1;
  3. Weisen Sie den Wert des temporären Arrays dem filters-Array zu.

Wenn ein Anzeigeobjekt während des Ladevorgangs mit einem Filter verknüpft ist, ist dieses so gekennzeichnet, dass es sich selbst als transparente Bitmap zwischenspeichert. Von diesem Punkt an speichert der Player das Anzeigeobjekt als Bitmap zwischen, solange das Anzeigeobjekt eine zulässige Filterliste besitzt. Diese Quell-Bitmap wird als Quellbild für die Filtereffekte verwendet. Jedes Anzeigeobjekt besitzt in der Regel zwei Bitmaps: eine mit dem ursprünglichen Quellanzeigeobjekt, und eine zweite für das nach dem Filtern entstehende Bild. Dieses Ergebnisbild wird für die Wiedergabe verwendet. Solange sich das Anzeigeobjekt nicht ändert, muss das Ergebnisbild nicht aktualisiert werden.

Das flash.filters-Paket umfasst Klassen für Filter. Um beispielsweise einen DropShadow-Filter zu erstellen, würden Sie folgenden Code schreiben:

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

Mithilfe des Operators is können Sie festlegen, welcher Filtertyp den einzelnen Indexpositionen im filter-Array zugewiesen werden soll. Der folgende Code zeigt z. B., wie Sie die Position des ersten Filters im filters-Array (DropShadowFilter) bestimmen:

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

Hinweis: Da Sie ein neues filter-Objekt dem DisplayObject.filters-Array nicht direkt hinzufügen können, hat der folgende Code keine Auswirkung auf das Ziel-Anzeigeobjekt myDisplayObject:

myDisplayObject.filters.push(myDropShadow);
flash.filters packageflash.display.ShaderInput.input
height Gibt die Höhe des Anzeigeobjekts in Pixeln an.Number Gibt die Höhe des Anzeigeobjekts in Pixeln an. Die Höhe wird auf Basis der Begrenzungen des Inhalts des Anzeigeobjekts berechnet. Wenn Sie die Eigenschaft height festsetzen, wird die Eigenschaft scaleY entsprechend angepasst, wie im folgenden Code gezeigt. var rect:Shape = new Shape(); rect.graphics.beginFill(0xFF0000); rect.graphics.drawRect(0, 0, 100, 100); trace(rect.scaleY) // 1; rect.height = 200; trace(rect.scaleY) // 2;

Abgesehen von TextField- und Video-Objekten, hat ein Anzeigeobjekt ohne Inhalt (z. B. ein leeres Sprite) eine Höhe von 0, selbst wenn Sie versuchen, height auf einen anderen Wert zu setzen.

Der folgende Code erstellt zwei TextField-Objekte und passt die height-Eigenschaft jeweils basierend auf der textHeight-Eigenschaft an. Das zweite Textfeld wird angeordnet, indem seine y-Eigenschaft festgelegt wird: import flash.text.TextField; var tf1:TextField = new TextField(); tf1.text = "Text Field 1"; tf1.border = true; tf1.wordWrap = true; tf1.width = 40; tf1.height = tf1.textHeight + 5; addChild(tf1); var tf2:TextField = new TextField(); tf2.text = "Text Field 2"; tf2.border = true; tf2.wordWrap = true; tf2.width = 40; tf2.height = tf2.textHeight + 5; tf2.y = tf1.y + tf1.height + 5; addChild(tf2);
loaderInfo Gibt ein LoaderInfo-Objekt mit Informationen zum Laden der Datei zurück, zu der dieses Anzeigeobjekt gehört.flash.display:LoaderInfo Gibt ein LoaderInfo-Objekt mit Informationen zum Laden der Datei zurück, zu der dieses Anzeigeobjekt gehört. Die loaderInfo-Eigenschaft ist nur für das root-Anzeigeobjekt einer SWF-Datei oder für eine geladene Bitmap definiert (nicht jedoch für eine Bitmap, die mit ActionScript gezeichnet wird). Um das loaderInfo-Objekt zu finden, das der SWF-Datei zugeordnet ist, die das Anzeigeobjekt myDisplayObject enthält, verwenden Sie myDisplayObject.root.loaderInfo.

Eine große SWF-Datei kann ihren Download überwachen, indem sie this.root.loaderInfo.addEventListener(Event.COMPLETE, func) aufruft.

Beim folgenden Code wird angenommen, dass this sich auf ein Anzeigeobjekt bezieht. Der Code gibt die URL der Stamm-SWF-Datei für das Anzeigeobjekt aus: trace (this.loaderInfo.url);
LoaderInfo-Klasse
mask Das aufrufende Anzeigeobjekt wird durch das angegebene mask-Objekt maskiert.flash.display:DisplayObjectLegt eine Maske für das Anzeigeobjekt fest. Das aufrufende Anzeigeobjekt wird durch das angegebene mask-Objekt maskiert. Um sicherzustellen, dass das Maskieren bei skalierter Bühne funktioniert, muss sich das mask-Anzeigeobjekt in einem aktiven Bereich der Anzeigeliste befinden. Das mask-Objekt selbst wird nicht gezeichnet. Setzen Sie mask auf null, um die Maske zu entfernen.

Ein mask-Objekt kann nur skaliert werden, wenn es sich in der Anzeigeliste befindet. Ein mask-Sprite-Objekt kann nur gezogen werden (durch Aufrufen seiner startDrag()-Methode), wenn es sich in der Anzeigeliste befindet. Um die startDrag()-Methode eines mask-Sprite-Objekts basierend auf einem mouseDown-Ereignis aufzurufen, das vom Sprite ausgelöst wurde, setzen Sie die buttonMode-Eigenschaft des Sprites auf true.

Wenn Anzeigeobjekte zwischengespeichert werden, indem die cacheAsBitmap-Eigenschaft auf true und die cacheAsBitmapMatrix-Eigenschaft auf ein Matrix-Objekt gesetzt wird, müssen sowohl die Maske als auch das Anzeigeobjekt, das maskiert wird, Teil derselben zwischengespeicherten Bitmap sein. Deshalb muss die Maske ein untergeordnetes Element des Anzeigeobjekts sein, wenn das Anzeigeobjekt zwischengespeichert wird. Wenn ein übergeordnetes Element des Anzeigeobjekts auf der Anzeigeliste zwischengespeichert wird, muss die Maske ein untergeordnetes Element dieses übergeordneten Elements oder eines seiner untergeordneten Elemente sein. Wenn mehrere übergeordnete Elemente des maskierten Objekts zwischengespeichert werden, muss die Maske ein untergeordnetes Element des zwischengespeicherten Containers sein, der dem maskierten Objekt in der Anzeigeliste am nächsten ist.

Hinweis: Ein einzelnes mask-Objekt kann nicht zum Maskieren mehrerer aufrufender Anzeigeobjekte verwendet werden. Wird das mask-Objekt einem zweiten Anzeigeobjekt zugewiesen, wird es als Maske des ersten Objekts entfernt, dessen mask-Eigenschaft sich dadurch in null ändert.

Der folgende Code erstellt ein TextField-Objekt und ein Sprite-Objekt, das als Maske für das TextField-Objekt eingerichtet wird. Wenn Benutzer auf das Textfeld klicken, ruft die drag()-Ereignis-Listener-Funktion die startDrag()-Methode des mask-Sprite-Objekts auf: import flash.text.TextField; import flash.display.Sprite; import flash.events.MouseEvent; var tf:TextField = new TextField(); tf.text = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, " + "sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. " tf.selectable = false; tf.wordWrap = true; tf.width = 150; addChild(tf); var square:Sprite = new Sprite(); square.graphics.beginFill(0xFF0000); square.graphics.drawRect(0, 0, 40, 40); addChild(square); tf.mask = square; tf.addEventListener(MouseEvent.MOUSE_DOWN, drag); tf.addEventListener(MouseEvent.MOUSE_UP, noDrag); function drag(event:MouseEvent):void { square.startDrag(); } function noDrag(event:MouseEvent):void { square.stopDrag(); }
mouseX Gibt die x-Koordinate der Position der Maus oder des Benutzereingabegeräts in Pixeln an.Number Gibt die x-Koordinate der Position der Maus oder des Benutzereingabegeräts in Pixeln an.

Hinweis: Bei einem gedrehten Anzeigeobjekt spiegelt die zurückgegebene x-Koordinate das nicht gedrehte Objekt wider.

Der folgende Code erstellt ein Sprite-Objekt und gibt die mouseX- und mouseY-Positionen an, wenn Benutzer auf das Sprite klicken: import flash.display.Sprite; import flash.events.MouseEvent; var square:Sprite = new Sprite(); square.graphics.beginFill(0xFF0000); square.graphics.drawRect(0, 0, 200, 200); addChild(square); square.addEventListener(MouseEvent.CLICK, traceCoordinates); function traceCoordinates(event:MouseEvent):void { trace(square.mouseX, square.mouseY); }
mouseY Gibt die y-Koordinate der Position der Maus oder des Benutzereingabegeräts in Pixeln an.Number Gibt die y-Koordinate der Position der Maus oder des Benutzereingabegeräts in Pixeln an.

Hinweis: Bei einem gedrehten Anzeigeobjekt spiegelt die zurückgegebene y-Koordinate das nicht gedrehte Objekt wider.

Der folgende Code erstellt ein Sprite-Objekt und gibt die mouseX- und mouseY-Positionen an, wenn Benutzer auf das Sprite klicken: import flash.display.Sprite; import flash.events.MouseEvent; var square:Sprite = new Sprite(); square.graphics.beginFill(0xFF0000); square.graphics.drawRect(0, 0, 200, 200); addChild(square); square.addEventListener(MouseEvent.CLICK, traceCoordinates); function traceCoordinates(event:MouseEvent):void { trace(square.mouseX, square.mouseY); }
name Gibt den Instanznamen des Anzeigeobjekts an.StringWenn Sie versuchen, diese Eigenschaft für ein Objekt einzustellen, das in der Zeitleiste der Flash-Authoring-Umgebung platziert wurde. IllegalOperationErrorflash.errors:IllegalOperationErrorDer Name des Anzeigeobjekts. Gibt den Instanznamen des Anzeigeobjekts an. Das Objekt kann in der Child-Liste seines übergeordneten Anzeigeobjekt-Containers identifiziert werden, indem die getChildByName()-Methode des Anzeigeobjekt-Containers aufgerufen wird. Der folgende Code erstellt zwei Sprite-Objekte und gibt die dazugehörige name-Eigenschaft aus, wenn Benutzer auf eines der Objekte klicken: import flash.display.Sprite; import flash.events.MouseEvent; var circle1:Sprite = new Sprite(); circle1.graphics.beginFill(0xFF0000); circle1.graphics.drawCircle(40, 40, 40); circle1.name = "circle1"; addChild(circle1); circle1.addEventListener(MouseEvent.CLICK, traceName); var circle2:Sprite = new Sprite(); circle2.graphics.beginFill(0x0000FF); circle2.graphics.drawCircle(140, 40, 40); circle2.name = "circle2"; addChild(circle2); circle2.addEventListener(MouseEvent.CLICK, traceName); function traceName(event:MouseEvent):void { trace(event.target.name); } opaqueBackground Legt fest, ob das Anzeigeobjekt bei einer bestimmten Hintergrundfarbe undurchsichtig ist.Object Legt fest, ob das Anzeigeobjekt bei einer bestimmten Hintergrundfarbe undurchsichtig ist. Eine transparente Bitmap enthält Alphakanaldaten und wird durchsichtig gezeichnet. Eine undurchsichtige Bitmap hat keinen Alphakanal (und wird schneller gerendert als eine transparente Bitmap). Wenn die Bitmap durchsichtig ist, geben Sie an, welche Hintergrundfarbe sie verwenden soll.

Wird ein numerischer Wert angegeben, ist die Oberfläche undurchsichtig (nicht transparent) und besitzt die durch diese Nummer bezeichnete RGB-Hintergrundfarbe. Bei einem Wert von null (dem Standardwert) erhält das Anzeigeobjekt einen transparenten Hintergrund.

Die opaqueBackground-Eigenschaft ist vorwiegend für den Einsatz mit der cacheAsBitmap-Eigenschaft gedacht, um die Wiedergabe zu optimieren. Bei Anzeigeobjekten, in denen die cacheAsBitmap-Eigenschaft auf „true“ gesetzt wurde, kann das Setzen von opaqueBackground die Wiedergabe-Performance verbessern.

Beim Aufrufen einer hitTestPoint()-Methode, bei der der Parameter shapeFlag auf true gesetzt wurde, wird der Bereich für den undurchsichtigen Hintergrund nicht angepasst.

Der Bereich für den undurchsichtigen Hintergrund reagiert nicht auf Mausereignisse.

Der folgende Code erstellt ein Shape-Objekt mit einem blauen Kreis und setzt seine opaqueBackground-Eigenschaft auf Rot (0xFF0000): import flash.display.Shape; var circle:Shape = new Shape(); circle.graphics.beginFill(0x0000FF); circle.graphics.drawCircle(40, 40, 40); circle.opaqueBackground = 0xFF0000; addChild(circle);
cacheAsBitmaphitTestPoint()
parent Gibt das DisplayObjectContainer-Objekt an, das dieses Anzeigeobjekt enthält.flash.display:DisplayObjectContainerDas übergeordnete Anzeigeobjekt ist Teil einer Sicherheits-Sandbox, auf die Sie keinen Zugriff haben. Sie können diese Situation vermeiden, indem Sie im übergeordneten Film die Security.allowDomain()-Methode aufrufen. SecurityErrorSecurityError Gibt das DisplayObjectContainer-Objekt an, das dieses Anzeigeobjekt enthält. Mit der parent-Eigenschaft können Sie einen relativen Pfad zu Anzeigeobjekten angeben, die in der Anzeigelistenhierarchie über dem aktuellen Anzeigeobjekt liegen.

Sie können parent verwenden, um sich wie im folgenden Beispiel in der Anzeigeliste um mehrere Stufen nach oben zu bewegen:

this.parent.parent.alpha = 20;
Der folgende Code erstellt drei Sprite-Objekte und zeigt, wie die parent-Eigenschaft die Hierarchie der Anzeigeliste widerspiegelt: import flash.display.Sprite; var sprite1:Sprite = new Sprite(); sprite1.name = "sprite1"; var sprite2:Sprite = new Sprite(); sprite2.name = "sprite2"; var sprite3:Sprite = new Sprite(); sprite3.name = "sprite3"; sprite1.addChild(sprite2); sprite2.addChild(sprite3); trace(sprite2.parent.name); // sprite1 trace(sprite3.parent.name); // sprite2 trace(sprite3.parent.parent.name); // sprite1
root Bei einem Anzeigeobjekt in einer geladenen SWF-Datei ist die root-Eigenschaft das oberste Anzeigeobjekt in dem Teil der Baumstruktur der Anzeigeliste, der diese SWF-Datei repräsentiert.flash.display:DisplayObjectGibt das Stamm-Anzeigeobjekt für dieses Objekt zurück. Bei einem Anzeigeobjekt in einer geladenen SWF-Datei ist die Eigenschaft root das oberste Anzeigeobjekt in dem Teil der Baumstruktur der Anzeigeliste, der diese SWF-Datei repräsentiert. Bei einem Bitmap-Objekt, das eine geladene Bilddatei repräsentiert, steht die root-Eigenschaft für das Bitmap-Objekt selbst. Bei der Instanz der Hauptklasse der ersten geladenen SWF-Datei steht die root-Eigenschaft für das Anzeigeobjekt selbst. Die root-Eigenschaft des Stage-Objekts steht für das Stage-Objekt selbst. Die root-Eigenschaft ist für jedes Anzeigeobjekt, das nicht in die Anzeigeliste aufgenommen wurde, auf null gesetzt. Eine Ausnahme ist, wenn es in einen Anzeigeobjekt-Container eingefügt wurde, der sich zwar nicht in der Anzeigeliste befindet, aber dem obersten Anzeigeobjekt einer geladenen SWF-Datei untergeordnet ist.

Angenommen, Sie erstellen ein neues Sprite-Objekt, indem Sie die Konstruktormethode Sprite() aufrufen. Seine root-Eigenschaft hat dann den Wert null, bis Sie das Objekt in die Anzeigeliste einfügen (oder in einen Objekt-Container, der sich zwar nicht in der Anzeigeliste befindet, aber dem obersten Anzeigeobjekt einer geladenen SWF-Datei untergeordnet ist).

Bei einer geladenen SWF-Datei ist die root-Eigenschaft des obersten Anzeigeobjekts in der SWF-Datei auf sich selbst gesetzt, auch wenn sich das Loader-Objekt zum Laden der Datei nicht in der Anzeigeliste befindet. Die root-Eigenschaft des Loader-Objekts ist nicht gesetzt, bis es als untergeordnetes Objekt eines Anzeigeobjekts hinzugefügt wird, dessen root-Eigenschaft gesetzt ist.

Der folgende Code zeigt den Unterschied zwischen der root-Eigenschaft für das Stage-Objekt, für ein Anzeigeobjekt (Loader-Objekt), das nicht geladen ist (sowohl bevor als auch nachdem es der Anzeigeliste hinzugefügt wurde), und für ein geladenes Objekt (ein geladenes Bitmap-Objekt): import flash.display.Loader; import flash.net.URLRequest; import flash.events.Event; trace(stage.root); // [object Stage] var ldr:Loader = new Loader(); trace (ldr.root); // null addChild(ldr); trace (ldr.root); // [object ...] var urlReq:URLRequest = new URLRequest("example.jpg"); ldr.load(urlReq); ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, loaded); function loaded(event:Event):void { trace(ldr.content.root); // [object Bitmap] }
rotationX Gibt die x-Achsendrehung der DisplayObject-Instanz in Grad an, und zwar bezogen auf die ursprüngliche Ausrichtung zum übergeordneten 3D-Container.Number Gibt die Drehung der x-Achse der DisplayObject-Instanz in Grad an, ausgehend von ihrer ursprünglichen Ausrichtung relativ zum übergeordneten 3D-Container. Werte zwischen 0 und 180 geben eine Rechtsdrehung, Werte zwischen 0 und -180 eine Linksdrehung an. Werte außerhalb dieses Bereichs werden zu 360 addiert bzw. von 360 subtrahiert, damit sich ein Wert innerhalb des Bereichs ergibt. In diesem Beispiel drehen sich zwei Ellipsen unter Verwendung ihrer rotationX- und rotationY-Eigenschaft. Der Registrierungspunkt der ersten Ellipse ist auf ihre Mitte gesetzt. Sie dreht sich um sich selbst. Die zweite Ellipse dreht sich um einen externen Punkt. package { import flash.display.MovieClip; import flash.display.Shape; import flash.geom.*; import flash.display.Graphics; import flash.events.TimerEvent; import flash.utils.Timer; public class RotationExample1 extends MovieClip { private var ellipse:Shape = new Shape(); private var speed:int = 10; private var ellipse1:Shape; private var ellipse2:Shape; public function RotationExample1():void { ellipse1 = drawEllipse(-50, -40, (this.stage.stageWidth / 2), (this.stage.stageHeight / 2)); ellipse2 = drawEllipse(30, 40, (this.stage.stageWidth / 2), (this.stage.stageHeight / 2)); this.addChild(ellipse1); this.addChild(ellipse2); var t:Timer = new Timer(50); t.addEventListener(TimerEvent.TIMER, timerHandler); t.start(); } private function drawEllipse(x1, y1, x2, y2):Shape { var e:Shape = new Shape(); e.graphics.beginFill(0xFF0000); e.graphics.lineStyle(2); e.graphics.drawEllipse(x1, y1, 100, 80); e.graphics.endFill(); e.x = x2; e.y = y2; e.z = 1; return e; } private function timerHandler(event:TimerEvent):void { ellipse1.rotationY += speed; ellipse1.rotationX -= speed; ellipse2.rotationY += speed; ellipse2.rotationX -= speed; } } } Im folgenden Beispiel wird gezeigt, wie Sie ein Sprite-Objekt mit Flash Professional, ActionScript 3.0 und Flash Player 10 dreidimensional um seine X-Achse drehen können, indem Sie die rotationX-Eigenschaft des Objekts einstellen. Beispiel bereitgestellt von ActionScriptExamples.com. //Requires: // - Slider control UI component in Flash library. // - Publish for Flash Player 10. // [SWF(width="400", height="300")] import fl.controls.Slider; import fl.controls.SliderDirection; import fl.events.SliderEvent; var slider:Slider = new Slider(); slider.direction = SliderDirection.HORIZONTAL; slider.minimum = 0; slider.maximum = 360; slider.value = 45; slider.tickInterval = 45; slider.snapInterval = 1; slider.liveDragging = true; slider.addEventListener(SliderEvent.CHANGE, slider_change); slider.move(10, 10); addChild(slider); var spr:Sprite = new Sprite(); spr.graphics.lineStyle(2, 0xFF0000); spr.graphics.drawRect(0, 0, 100, 80); spr.x = Math.round((stage.stageWidth - spr.width)/2); spr.y = Math.round((stage.stageHeight - spr.height)/2); spr.rotationX = 45; addChild(spr); function slider_change(evt:SliderEvent):void { spr.rotationX = evt.value; } rotationY Gibt die y-Achsendrehung der DisplayObject-Instanz in Grad an, und zwar bezogen auf die ursprüngliche Ausrichtung zum übergeordneten 3D-Container.Number Gibt die Drehung der y-Achse der DisplayObject-Instanz in Grad an, ausgehend von ihrer ursprünglichen Ausrichtung relativ zum übergeordneten 3D-Container. Werte zwischen 0 und 180 geben eine Rechtsdrehung, Werte zwischen 0 und -180 eine Linksdrehung an. Werte außerhalb dieses Bereichs werden zu 360 addiert bzw. von 360 subtrahiert, damit sich ein Wert innerhalb des Bereichs ergibt. In diesem Beispiel drehen sich zwei Ellipsen unter Verwendung ihrer rotationX- und rotationY-Eigenschaft. Der Registrierungspunkt der ersten Ellipse ist auf ihre Mitte gesetzt. Sie dreht sich um sich selbst. Die zweite Ellipse dreht sich um einen externen Punkt. package { import flash.display.MovieClip; import flash.display.Shape; import flash.geom.*; import flash.display.Graphics; import flash.events.TimerEvent; import flash.utils.Timer; public class RotationExample1 extends MovieClip { private var ellipse:Shape = new Shape(); private var speed:int = 10; private var ellipse1:Shape; private var ellipse2:Shape; public function RotationExample1():void { ellipse1 = drawEllipse(-50, -40, (this.stage.stageWidth / 2), (this.stage.stageHeight / 2)); ellipse2 = drawEllipse(30, 40, (this.stage.stageWidth / 2), (this.stage.stageHeight / 2)); this.addChild(ellipse1); this.addChild(ellipse2); var t:Timer = new Timer(50); t.addEventListener(TimerEvent.TIMER, timerHandler); t.start(); } private function drawEllipse(x1, y1, x2, y2):Shape { var e:Shape = new Shape(); e.graphics.beginFill(0xFF0000); e.graphics.lineStyle(2); e.graphics.drawEllipse(x1, y1, 100, 80); e.graphics.endFill(); e.x = x2; e.y = y2; e.z = 1; return e; } private function timerHandler(event:TimerEvent):void { ellipse1.rotationY += speed; ellipse1.rotationX -= speed; ellipse2.rotationY += speed; ellipse2.rotationX -= speed; } } } rotationZ Gibt die Drehung der z-Achse der DisplayObject-Instanz in Grad an, ausgehend von ihrer ursprünglichen Ausrichtung relativ zum übergeordneten 3D-Container.Number Gibt die Drehung der z-Achse der DisplayObject-Instanz in Grad an, ausgehend von ihrer ursprünglichen Ausrichtung relativ zum übergeordneten 3D-Container. Werte zwischen 0 und 180 geben eine Rechtsdrehung, Werte zwischen 0 und -180 eine Linksdrehung an. Werte außerhalb dieses Bereichs werden zu 360 addiert bzw. von 360 subtrahiert, damit sich ein Wert innerhalb des Bereichs ergibt. rotation Gibt die Drehung der DisplayObject-Instanz ausgehend von der ursprünglichen Ausrichtung in Grad an.Number Gibt die Drehung der DisplayObject-Instanz ausgehend von der ursprünglichen Ausrichtung in Grad an. Werte zwischen 0 und 180 geben eine Rechtsdrehung, Werte zwischen 0 und -180 eine Linksdrehung an. Werte außerhalb dieses Bereichs werden zu 360 addiert bzw. von 360 subtrahiert, damit sich ein Wert innerhalb des Bereichs ergibt. Die Anweisung my_video.rotation = 450 ist z. B. mit my_video.rotation = 90 identisch. Der folgende Code erstellt ein Sprite-Objekt und dreht das Objekt, wenn Benutzer darauf klicken: import flash.display.Sprite; import flash.events.MouseEvent; var square:Sprite = new Sprite(); square.graphics.beginFill(0xFFCC00); square.graphics.drawRect(-50, -50, 100, 100); square.x = 150; square.y = 150; addChild(square); square.addEventListener(MouseEvent.CLICK, rotate); function rotate(event:MouseEvent):void { square.rotation += 15; } scale9Grid Das aktuell verwendete Skalierungsraster.flash.geom:RectangleWenn Sie an die Methode ein unzulässiges Argument übergeben. ArgumentErrorArgumentError Das aktuell verwendete Skalierungsraster. Ist diese Eigenschaft auf null gesetzt, wird bei einer Skalierungstransformation das gesamte Anzeigeobjekt normal skaliert.

Wenn Sie dagegen die scale9Grid-Eigenschaft definieren, wird das Anzeigeobjekt basierend auf dem scale9Grid-Rechteck in ein Raster mit 9 Feldern eingeteilt, welches den inneren Bereich des Rasters definiert. Dieses Raster besitzt acht weitere Felder:

  • Das Feld links oben, außerhalb des Rechtecks.
  • Das Feld oberhalb des Rechtecks.
  • Das Feld rechts oben, außerhalb des Rechtecks.
  • Das Feld links vom Rechteck.
  • Das Feld rechts vom Rechteck.
  • Das Feld links unten, außerhalb des Rechtecks.
  • Das Feld unterhalb des Rechtecks.
  • Das Feld rechts unten, außerhalb des Rechtecks.

Die acht Felder außerhalb des Rechtecks können Sie sich als einen Bilderrahmen denken, auf den beim Skalieren spezielle Regeln angewendet werden.

Wenn die scale9Grid-Eigenschaft gesetzt ist und ein Anzeigeobjekt skaliert wird, werden auch alle Texte und Farbverläufe normal skaliert. Für andere Objekttypen gelten allerdings die folgenden Regeln:

  • Der Inhalt im inneren Feld wird normal skaliert.
  • Der Inhalt in den Eckfeldern wird nicht skaliert.
  • Der Inhalt im oberen und unteren Feld wird nur horizontal skaliert. Der Inhalt im linken und rechten Feld wird nur vertikal skaliert.
  • Alle Füllungen (einschließlich Bitmaps, Videos und Farbverläufe) werden dabei gedehnt, um in ihre jeweiligen Formen zu passen.

Wird das Anzeigeobjekt gedreht, zeigen alle nachfolgende Skalierungen normales Verhalten (und die scale9Grid-Eigenschaft wird ignoriert).

Betrachten Sie beispielsweise das folgende Anzeigeobjekt und das Rechteck, das als scale9Grid-Eigenschaft des Anzeigeobjekts angewendet wird:

Das Anzeigeobjekt.

Im roten Rechteck wird das scale9Grid-Raster angezeigt.

Wenn das Anzeigeobjekt skaliert oder gedehnt wird, werden die Objekte innerhalb des Rechtecks normal skaliert, aber die Objekte außerhalb des Rechtecks werden gemäß den Regeln für ein scale9Grid-Raster skaliert:

Auf 75 % skaliert:Auf 50 % skaliert:Auf 25 % skaliert:Horizontal auf 150 % gedehnt:

Normalerweise wird die scale9Grid-Eigenschaft angewendet, um ein Anzeigeobjekt als Komponente einzurichten, deren Randbereiche bei einer Skalierung der Komponente weiterhin in gleicher Breite angezeigt werden sollen.

Der folgende Code erstellt ein Shape-Objekt, für das in seiner graphics-Eigenschaft ein Rechteck gezeichnet ist. Das Rechteck verfügt über eine Linie mit einer Stärke von 20 Pixel, die als Rahmen dient und mit einem Farbverlauf gefüllt ist. Das timer-Ereignis ruft die scale()-Funktion auf, die das Shape-Objekt skaliert, indem sie die Eigenschaften scaleX und scaleY anpasst. Das scale9Grid-Raster, das auf das Shape-Objekt angewendet wird, verhindert die Skalierung der Rahmenlinie des Rechtecks. Es wird nur die Farbverlaufsfüllung skaliert: import flash.display.Shape; import flash.display.GradientType; import flash.display.SpreadMethod; import flash.display.InterpolationMethod; import flash.geom.Matrix; import flash.geom.Rectangle; import flash.utils.Timer; import flash.events.TimerEvent; var square:Shape = new Shape(); square.graphics.lineStyle(20, 0xFFCC00); var gradientMatrix:Matrix = new Matrix(); gradientMatrix.createGradientBox(15, 15, Math.PI, 10, 10); square.graphics.beginGradientFill(GradientType.RADIAL, [0xffff00, 0x0000ff], [100, 100], [0, 0xFF], gradientMatrix, SpreadMethod.REFLECT, InterpolationMethod.RGB, 0.9); square.graphics.drawRect(0, 0, 100, 100); var grid:Rectangle = new Rectangle(20, 20, 60, 60); square.scale9Grid = grid ; addChild(square); var tim:Timer = new Timer(100); tim.start(); tim.addEventListener(TimerEvent.TIMER, scale); var scaleFactor:Number = 1.01; function scale(event:TimerEvent):void { square.scaleX *= scaleFactor; square.scaleY *= scaleFactor; if (square.scaleX > 2.0) { scaleFactor = 0.99; } if (square.scaleX < 1.0) { scaleFactor = 1.01; } }
flash.geom.Rectangle
scaleX Gibt die horizontale Skalierung (Prozentwert) des Objekts ausgehend vom Registrierungspunkt an.Number Gibt die horizontale Skalierung (Prozentwert) des Objekts ausgehend vom Registrierungspunkt an. Der Standardregistrierungspunkt liegt bei (0,0). 1,0 entspricht 100 % Skalierung.

Die Skalierung des lokalen Koordinatensystems ändert die Werte der x- und y-Eigenschaften, die in ganzen Pixeln angegeben werden.

Der folgende Code erstellt ein Sprite-Objekt, für das in seiner graphics-Eigenschaft ein Rechteck gezeichnet ist. Wenn Benutzer auf das Sprite klicken, wird es auf 10 % skaliert: import flash.display.Sprite; import flash.events.MouseEvent; var square:Sprite = new Sprite(); square.graphics.beginFill(0xFFCC00); square.graphics.drawRect(0, 0, 100, 100); addChild(square); square.addEventListener(MouseEvent.CLICK, scale); function scale(event:MouseEvent):void { square.scaleX *= 1.10; square.scaleY *= 1.10; }
scaleY Gibt die vertikale Skalierung (Prozentwert) eines Objekts ausgehend vom Registrierungspunkt an.Number Gibt die vertikale Skalierung (Prozentwert) eines Objekts ausgehend vom Registrierungspunkt an. Der Standardregistrierungspunkt liegt bei (0,0). 1,0 entspricht 100 % Skalierung.

Die Skalierung des lokalen Koordinatensystems ändert die Werte der x- und y-Eigenschaften, die in ganzen Pixeln angegeben werden.

Der folgende Code erstellt ein Sprite-Objekt, für das in seiner graphics-Eigenschaft ein Rechteck gezeichnet ist. Wenn Benutzer auf das Sprite klicken, wird es auf 10 % skaliert: import flash.display.Sprite; import flash.events.MouseEvent; var square:Sprite = new Sprite(); square.graphics.beginFill(0xFFCC00); square.graphics.drawRect(0, 0, 100, 100); addChild(square); square.addEventListener(MouseEvent.CLICK, scale); function scale(event:MouseEvent):void { square.scaleX *= 1.10; square.scaleY *= 1.10; }
scaleZ Gibt die Tiefenskalierung (Prozentwert) eines Objekts ausgehend vom Registrierungspunkt an.Number Gibt die Tiefenskalierung (Prozentwert) eines Objekts ausgehend vom Registrierungspunkt an. Der Standardregistrierungspunkt liegt bei (0,0). 1,0 entspricht 100 % Skalierung.

Die Skalierung des lokalen Koordinatensystems ändert die Werte der x-, y- und z-Eigenschaften, die in ganzen Pixeln angegeben werden.

z
scrollRect Die Begrenzungen des Bildlaufrechtecks für das Anzeigeobjekt.flash.geom:Rectangle Die Begrenzungen des Bildlaufrechtecks für das Anzeigeobjekt. Das Anzeigeobjekt wird auf die vom Rechteck definierte Größe zugeschnitten. Innerhalb dieses Rechtecks wird ein Bildlauf durchgeführt, wenn Sie die Eigenschaften x und y des scrollRect-Objekts ändern.

Die Eigenschaften des scrollRect-Rechtecks verwenden den Koordinatenraum des Anzeigeobjekts und werden ebenso wie das Gesamtanzeigeobjekt skaliert. Die Eckbegrenzungen des zugeschnittenen Fensters des Anzeigeobjekts mit Bildlauffunktion liegen auf dem Ursprung des Anzeigeobjekts (0,0) sowie auf dem durch die Rechteckbreite und -höhe definierten Punkt. Diese Punkte sind nicht um den Ursprung zentriert, sondern verwenden den Ursprung, um die linke obere Ecke zu definieren. Ein Anzeigeobjekt mit Bildlauffunktion wird immer pixelweise verschoben.

Sie können den Objektausschnitt nach links und rechts verschieben, indem Sie die x-Eigenschaft des scrollRect-Rechteckobjekts setzen. Sie können den Objektausschnitt nach oben und unten verschieben, indem Sie die y-Eigenschaft des scrollRect-Rechteckobjekts setzen. Wenn das Anzeigeobjekt um 90° gedreht wird und Sie es nach links und rechts verschieben, wird es nach oben und unten verschoben.

Das folgende Beispiel zeigt, wie die scrollRect-Eigenschaft den Bildlaufbereich für das Anzeigeobjekt circle definiert. Wenn Sie auf das circle-Objekt klicken, passt die clicked()-Ereignisprozedurmethode die y-Eigenschaft der scrollRect-Eigenschaft des circle-Objekts an und bewirkt, dass für das Objekt ein Bildlauf nach unten ausgeführt wird: import flash.display.Sprite; import flash.geom.Rectangle; import flash.events.MouseEvent; var circle:Sprite = new Sprite(); circle.graphics.beginFill(0xFFCC00); circle.graphics.drawCircle(200, 200, 200); circle.scrollRect = new Rectangle(0, 0, 200, 200); addChild(circle); circle.addEventListener(MouseEvent.CLICK, clicked); function clicked(event:MouseEvent):void { var rect:Rectangle = event.target.scrollRect; rect.y -= 5; event.target.scrollRect = rect; }
flash.geom.Rectangle
stage Die Bühne des Anzeigeobjekts.flash.display:Stage Die Bühne des Anzeigeobjekts. Eine Flash-Laufzeitanwendung besitzt nur ein Stage-Objekt. Sie können z. B. mehrere Anzeigeobjekte erstellen und in die Anzeigeliste laden. Die stage-Eigenschaft der verschiedenen Anzeigeobjekte verweist dann auf dasselbe Stage-Objekt (auch wenn das Anzeigeobjekt zu einer geladenen SWF-Datei gehört).

Wird ein Anzeigeobjekt nicht in die Anzeigeliste aufgenommen, ist seine stage-Eigenschaft auf null gesetzt.

Im folgenden Code werden zwei TextField-Objekte erstellt, und es wird die width-Eigenschaft des Stage-Objekts verwendet, um die Textfelder zu positionieren: import flash.text.TextField; var tf1:TextField = new TextField(); tf1.text = "Text Field 1"; tf1.border = true; tf1.x = 10; addChild(tf1); tf1.width = tf1.stage.stageWidth / 2 - 10; var tf2:TextField = new TextField(); tf2.text = "Text Field 2"; tf2.border = true; tf2.x = tf1.x + tf1.width + 5; addChild(tf2); tf2.width = tf2.stage.stageWidth / 2 - 10; trace(stage.stageWidth);
transform Ein Objekt mit Eigenschaften, die zur Matrix, Farbtransformation und Pixelbegrenzung eines Anzeigeobjekts gehören.flash.geom:Transform Ein Objekt mit Eigenschaften, die zur Matrix, Farbtransformation und Pixelbegrenzung eines Anzeigeobjekts gehören. Die spezifischen Eigenschaften – „matrix“, „colorTransform“ und drei schreibgeschützte Eigenschaften (concatenatedMatrix, concatenatedColorTransform und pixelBounds) – werden im Eintrag für die Transform-Klasse erläutert.

Jede Eigenschaft des transform-Objekts ist selbst wiederum ein Objekt. Dies ist wichtig, da für matrix- und colorTransform-Objekte neue Werte nur gesetzt werden können, indem ein neues Objekt erstellt und in die transform.matrix- oder transform.colorTransform-Eigenschaft kopiert wird.

Um etwa den tx-Wert einer Anzeigeobjekt-Matrix zu erhöhen, müssen Sie eine Kopie des gesamten Matrixobjekts anfertigen und anschließend das neue Objekt in die matrix-Eigenschaft des transform-Objekts kopieren:


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

Sie können die tx-Eigenschaft nicht direkt setzen. Der folgende Code hat keine Auswirkung auf myDisplayObject:


    myDisplayObject.transform.matrix.tx += 10;
    

Eine andere Möglichkeit besteht darin, das gesamte transform-Objekt zu kopieren und es der transform-Eigenschaft eines anderen Anzeigeobjekts zuzuweisen. Der nachfolgende Code kopiert z. B. das gesamte transform-Objekt von myOldDisplayObj nach myNewDisplayObj:

myNewDisplayObj.transform = myOldDisplayObj.transform;

Das resultierende Anzeigeobjekt, myNewDisplayObj, besitzt jetzt für seine Matrix, Farbtransformation und Pixelbegrenzungen dieselben Werte wie das alte Anzeigeobjekt, myOldDisplayObj.

Beachten Sie, dass Geräte mit AIR für TV für Farbtransformierungen automatisch die Hardwarebeschleunigung verwenden, sofern verfügbar.

Der folgende Code richtet ein square-Sprite-Objekt ein. Wenn Benutzer auf das Sprite klicken, passt die transformer()-Methode die Eigenschaften colorTransform and matrix der transform-Eigenschaft des Sprites an: import flash.display.Sprite; import flash.geom.ColorTransform; import flash.geom.Matrix; import flash.geom.Transform; import flash.events.MouseEvent; var square:Sprite = new Sprite(); square.graphics.lineStyle(20, 0xFF2200); square.graphics.beginFill(0x0000DD); square.graphics.drawRect(0, 0, 100, 100); addChild(square); var resultColorTransform:ColorTransform = new ColorTransform(); resultColorTransform.alphaMultiplier = 0.5; resultColorTransform.redOffset = 155; resultColorTransform.greenMultiplier = 0.5; var skewMatrix:Matrix = new Matrix(1, 1, 0, 1); square.addEventListener(MouseEvent.CLICK, transformer); function transformer(event:MouseEvent):void { var transformation:Transform = square.transform; var tempMatrix:Matrix = square.transform.matrix; tempMatrix.concat(skewMatrix); square.transform.colorTransform = resultColorTransform; square.transform.matrix = tempMatrix; }
Transform-Klasse
visible Gibt an, ob das Anzeigeobjekt sichtbar ist oder nicht.Boolean Gibt an, ob das Anzeigeobjekt sichtbar ist oder nicht. Nicht sichtbare Anzeigeobjekte sind deaktiviert. Wenn beispielsweise für eine InteractiveObject-Instanz visible=false gesetzt ist, können Benutzer nicht auf diese Instanz klicken. Der folgende Code verwendet ein Timer-Objekt, um eine Funktion aufzurufen, die die visible-Eigenschaft eines Anzeigeobjekts regelmäßig ändert, was zu einem Blinkeffekt führt: import flash.text.TextField; import flash.utils.Timer; import flash.events.TimerEvent; var tf:TextField = new TextField(); tf.text = "Hello."; addChild(tf); var tim:Timer = new Timer(250); tim.start(); tim.addEventListener(TimerEvent.TIMER, blinker); function blinker(event:TimerEvent):void { tf.visible = !tf.visible; } width Gibt die Breite des Anzeigeobjekts in Pixeln an.Number Gibt die Breite des Anzeigeobjekts in Pixeln an. Die Breite wird auf Basis der Begrenzungen des Inhalts des Anzeigeobjekts berechnet. Wenn Sie die Eigenschaft width festsetzen, wird die Eigenschaft scaleX entsprechend angepasst, wie im folgenden Code gezeigt. var rect:Shape = new Shape(); rect.graphics.beginFill(0xFF0000); rect.graphics.drawRect(0, 0, 100, 100); trace(rect.scaleX) // 1; rect.width = 200; trace(rect.scaleX) // 2;

Abgesehen von TextField- und Video-Objekten, hat ein Anzeigeobjekt ohne Inhalt (z. B. ein leeres Sprite) eine Breite von 0, selbst wenn Sie versuchen, width auf einen anderen Wert zu setzen.

Der folgende Code richtet ein square-Sprite-Objekt ein. Wenn Benutzer auf das Sprite klicken, erhöht die widen()-Methode die width-Eigenschaft des Sprites: import flash.display.Sprite; import flash.events.MouseEvent; var square:Sprite = new Sprite(); square.graphics.beginFill(0xFF0000); square.graphics.drawRect(0, 0, 100, 100); addChild(square); square.addEventListener(MouseEvent.CLICK, widen); function widen(event:MouseEvent):void { square.width += 10; }
x Gibt die x-Koordinate der DisplayObject-Instanz relativ zu den lokalen Koordinaten des übergeordneten DisplayObjectContainer-Objekts an.Number Gibt die x-Koordinate der DisplayObject-Instanz relativ zu den lokalen Koordinaten des übergeordneten DisplayObjectContainer-Objekts an. Befindet sich das Objekt innerhalb eines transformierten DisplayObjectContainer-Objekts, liegt es im lokalen Koordinatensystem des umgebenden DisplayObjectContainer-Objekts. Wenn also ein DisplayObjectContainer-Objekt um 90° nach links gedreht ist, erben die untergeordneten Objekte des DisplayObjectContainer-Objekts ein Koordinatensystem, das um 90° nach links gedreht ist. Die Koordinaten des Objekts beziehen sich auf die Position des Registrierungspunkts. Der folgende Code erstellt ein circle-Sprite-Objekt. Ein Timer-Objekt wird verwendet, um die x-Eigenschaft des Sprites alle 50 Millisekunden zu ändern: import flash.display.Sprite; import flash.utils.Timer; import flash.events.TimerEvent; var circle:Sprite = new Sprite(); circle.graphics.beginFill(0xFF0000); circle.graphics.drawCircle(100, 100, 100); addChild(circle); var tim:Timer = new Timer(50); tim.start(); tim.addEventListener(TimerEvent.TIMER, bounce); var xInc:Number = 2; function bounce(event:TimerEvent):void { circle.x += xInc; if (circle.x > circle.width) { xInc = -2; } if (circle.x < 0) { xInc = 2; } } y Gibt die y-Koordinate der DisplayObject-Instanz relativ zu den lokalen Koordinaten des übergeordneten DisplayObjectContainer-Objekts an.Number Gibt die y-Koordinate der DisplayObject-Instanz relativ zu den lokalen Koordinaten des übergeordneten DisplayObjectContainer-Objekts an. Befindet sich das Objekt innerhalb eines transformierten DisplayObjectContainer-Objekts, liegt es im lokalen Koordinatensystem des umgebenden DisplayObjectContainer-Objekts. Wenn also ein DisplayObjectContainer-Objekt um 90° nach links gedreht ist, erben die untergeordneten Objekte des DisplayObjectContainer-Objekts ein Koordinatensystem, das um 90° nach links gedreht ist. Die Koordinaten des Objekts beziehen sich auf die Position des Registrierungspunkts. Der folgende Code erstellt zwei TextField-Objekte und passt die height-Eigenschaft jeweils basierend auf der textHeight-Eigenschaft an. Das zweite Textfeld wird angeordnet, indem seine y-Eigenschaft festgelegt wird: import flash.text.TextField; var tf1:TextField = new TextField(); tf1.text = "Text Field 1"; tf1.border = true; tf1.wordWrap = true; tf1.width = 40; tf1.height = tf1.textHeight + 5; addChild(tf1); var tf2:TextField = new TextField(); tf2.text = "Text Field 2"; tf2.border = true; tf2.wordWrap = true; tf2.width = 40; tf2.height = tf2.textHeight + 5; tf2.y = tf1.y + tf1.height + 5; addChild(tf2); z Gibt die z-Koordinatenposition an der z-Achse der DisplayObject-Instanz relativ zum übergeordneten 3D-Container an.Number Gibt die z-Koordinatenposition an der z-Achse der DisplayObject-Instanz relativ zum übergeordneten 3D-Container an. Die z-Eigenschaft wird für 3D-Koordinaten verwendet, nicht für Bildschirm- oder Pixelkoordinaten.

Wird die z-Eigenschaft eines Anzeigeobjekts auf einen anderen Wert als den Standardwert 0 gesetzt, so wird automatisch das entsprechende Matrix3D-Objekt erstellt. Dient der Anpassung der Position und Ausrichtung eines Anzeigeobjekts in den drei Dimensionen. Beim Arbeiten mit der z-Achse ändert sich das bestehende Verhalten der x- und y-Eigenschaften von Bildschirm- oder Pixelkoordinaten auf Positionen relativ zum übergeordneten 3D-Container.

Beispiel: Ein untergeordnetes Element von _root an der Position x = 100, y = 100, z = 200 wird nicht an der Pixelposition (100,100) gezeichnet. Das untergeordnete Element wird an jener Position gezeichnet, die von der 3D-Projektionskalkulation errechnet wird. Die Kalkulation lautet:

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

In diesem Beispiel werden zwei Ellipsen gezeichnet, die sich entlang der z-Achse hin und zurück (abwärts und aufwärts) in Richtung Fluchtpunkt bewegen. Eine Ellipse ist so eingestellt, dass sie sich schneller bewegt. package { import flash.display.MovieClip; import flash.display.Shape; import flash.display.Graphics; import flash.events.Event; import flash.geom.*; public class ZAxisExample1 extends MovieClip { private var ellipse1Back:int = 1; private var ellipse2Back:int = 1; private var depth:int = 1000; public function ZAxisExample1():void { var ellipse1 = drawEllipse((this.stage.stageWidth / 2) - 100, (this.stage.stageHeight / 2), 100, 80, 10); var ellipse2 = drawEllipse((this.stage.stageWidth / 2) + 100, (this.stage.stageHeight / 2), 100, 80, 300); this.addChild(ellipse1); this.addChild(ellipse2); ellipse1.addEventListener(Event.ENTER_FRAME, ellipse1FrameHandler); ellipse2.addEventListener(Event.ENTER_FRAME, ellipse2FrameHandler); } private function drawEllipse(x:Number, y:Number, w:Number, h:Number, z:Number):Shape { var s:Shape = new Shape(); s.z = z; s.graphics.beginFill(0xFF0000); s.graphics.lineStyle(2); s.graphics.drawEllipse(x, y, w, h); s.graphics.endFill(); return s; } private function ellipse1FrameHandler(e:Event):void { ellipse1Back = setDepth(e, ellipse1Back); e.currentTarget.z += ellipse1Back * 10; } private function ellipse2FrameHandler(e:Event):void { ellipse2Back = setDepth(e, ellipse2Back); e.currentTarget.z += ellipse2Back * 20; } private function setDepth(e:Event, d:int):int { if(e.currentTarget.z > depth) { e.currentTarget.z = depth; d = -1; }else if (e.currentTarget.z < 0) { e.currentTarget.z = 0; d = 1; } return d; } } }
flash.geom.PerspectiveProjectionflash.geom.Matrix3Dtransform
blendShader Legt einen Shader fest, der für das Mischen von Vordergrund und Hintergrund verwendet wird.flash.display:ShaderWenn der Shaderausgabetyp mit diesem Vorgang nicht kompatibel ist (der Shader muss eine pixel4-Ausgabe festlegen). ArgumentErrorArgumentErrorWenn der Shader weniger als zwei Bildeingaben festlegt oder die ersten beiden Eingaben keine image4-Eingaben sind. ArgumentErrorArgumentErrorWenn der Shader eine Bildeingabe festlegt, die nicht vorhanden ist. ArgumentErrorArgumentErrorWenn eine ByteArray- oder Vector.<Number>-Instanz als Eingabe verwendet wird und die width- und height-Eigenschaft für ShaderInput nicht festgelegt ist oder die festgelegten Werte nicht mit der Datenmenge im Eingabeobjekt übereinstimmen. Weitere Informationen finden Sie im Abschnitt zur ShaderInput.input-Eigenschaft. ArgumentErrorArgumentError Legt einen Shader fest, der für das Mischen von Vordergrund und Hintergrund verwendet wird. Ist die blendMode-Eigenschaft auf BlendMode.SHADER gesetzt, wird der festgelegte Shader für die Erstellung der Mischmodusausgabe des Anzeigeobjekts verwendet.

Wird die blendShader-Eigenschaft eines Anzeigeobjekts auf eine Shader-Instanz gesetzt, so wird die blendMode-Eigenschaft des Anzeigeobjekts automatisch auf BlendMode.SHADER gesetzt. Wenn die blendShader-Eigenschaft gesetzt wird (wodurch die blendMode-Eigenschaft auf BlendMode.SHADER gesetzt wird), so wird der Wert der blendMode-Eigenschaft geändert. Der Mischmodus kann einfach durch Setzen der blendMode-Eigenschaft auf BlendMode.SHADER zur Verwendung des Misch-Shaders neu gesetzt werden. Die blendShader-Eigenschaft muss nicht neu gesetzt werden, es sei denn, der für den Mischmodus verwendete Shader soll geändert werden.

Der Shader, der der blendShader-Eigenschaft zugewiesen ist, muss mindestens zwei image4-Eingaben festlegen. Die Eingaben müssen nicht im Code über die input-Eigenschaften des verknüpften ShaderInput-Objekts festgelegt werden. Das Anzeigeobjekt im Hintergrund wird automatisch als erste Eingabe (die Eingabe mit index gleich „0“) verwendet. Das Anzeigeobjekt im Vordergrund wird als zweite Eingabe (die Eingabe mit index gleich „1“) verwendet. Ein als Misch-Shader verwendeter Shader kann mehr als zwei Eingaben festlegen: In diesem Fall müssen die weiteren Eingaben durch das Setzen der input-Eigenschaft der ShaderInput-Instanz festgelegt werden.

Wird dieser Eigenschaft eine Shader-Instanz zugewiesen, so wird der Shader intern kopiert. Der Mischvorgang verwendet diese interne Kopie, anstatt eines Verweises auf den ursprünglichen Shader. Änderungen am Shader (beispielsweise an Parameterwerten, Eingabe oder Bytecode) werden nicht auf die für den Mischmodus verwendete Shaderkopie angewendet.

flash.display.BlendModeflash.display.Shaderflash.display.ShaderInput
Loader Die Loader-Klasse wird dazu verwendet, SWF- oder Bilddateien (im JPG-, PNG- oder GIF-Format) zu laden.flash.display:DisplayObjectContainer Die Loader-Klasse wird dazu verwendet, SWF- oder Bilddateien (im JPG-, PNG- oder GIF-Format) zu laden. Verwenden Sie die load()-Methode, um den Ladevorgang einzuleiten. Das geladene Anzeigeobjekt wird dem Loader-Objekt untergeordnet.

Verwenden Sie die URLLoader-Klasse, um Text oder Binärdaten zu laden.

Die Loader-Klasse setzt die folgenden übernommenen Methoden außer Kraft, da ein Loader-Objekt nur ein untergeordnetes Anzeigeobjekt besitzen kann, nämlich das Anzeigeobjekt, das geladen wird. Durch das Aufrufen der folgenden Methoden wird eine Ausnahme ausgelöst: addChild(), addChildAt(), removeChild(), removeChildAt() und setChildIndex(). Um ein geladenes Anzeigeobjekt zu entfernen, müssen Sie das Loader-Objekt aus seinem übergeordneten DisplayObjectContainer-Child-Array entfernen.

Hinweis: Die ActionScript 2.0-Klassen MovieClipLoader und LoadVars werden in ActionScript 3.0 nicht verwendet. Sie werden durch die Klassen Loader und URLLoader ersetzt.

Beachten Sie bei Verwendung der Loader-Klasse das Sicherheitsmodell von Flash Player und Adobe AIR:

  • Sie können Inhalte von jeder Quelle laden, zu der Sie Zugang haben.
  • Das Laden ist nicht erlaubt, wenn sich die aufrufende SWF-Datei in einer Netzwerk-Sandbox befindet und die zu ladende Datei lokal gespeichert ist.
  • Handelt es sich bei dem geladenen Inhalt um eine in ActionScript 3.0 geschriebene SWF-Datei, kann eine SWF-Datei in einer anderen Sicherheits-Sandbox in ihrem Code nicht darauf verweisen, es sei denn, dieses „Cross-Scripting-Arrangement“ wurde durch einen Aufruf der Methode System.allowDomain() oder System.allowInsecureDomain() in der geladenen Inhaltsdatei genehmigt.
  • Handelt es sich bei dem geladenen Inhalt um eine AVM1-SWF-Datei (die in ActionScript 1.0 oder 2.0 geschrieben wurde), kann eine AVM2-SWF-Datei (in ActionScript 3.0 geschrieben) in ihrem Code nicht darauf verweisen. Dennoch kann eine Kommunikation zwischen den beiden SWF-Dateien stattfinden, und zwar durch Verwendung der LocalConnection-Klasse.
  • Handelt es sich beim geladenen Inhalt um eine Grafik, so kann eine SWF-Datei außerhalb der Sicherheitssandbox nicht darauf zugreifen, es sein denn, in der Ursprungsdomäne der Grafik wurde die Domäne dieser SWF-Datei in eine URL-Richtliniendatei aufgenommen.
  • Movieclips in der lokalen Sandbox des Dateisystems können keine Skripten auf Movieclips in der lokalen Netzwerk-Sandbox anwenden (auch umgekehrt ist dies nicht möglich).
  • Eine Verbindung mit normalerweise reservierten Ports ist nicht möglich. Eine vollständige Liste der gesperrten Ports finden Sie unter „Beschränken von Netzwerk-APIs“ im ActionScript 3.0 Entwicklerhandbuch.

In AIR unterliegt Inhalt in der Sicherheits-Sandbox der Anwendung (Inhalt, der mit der AIR-Anwendung installiert wird) nicht diesen Sicherheitseinschränkungen.

Weitere Informationen zum Thema Sicherheit finden Sie im Flash Player Developer Center im Abschnitt Sicherheit.

Wenn Sie eine SWF-Datei aus einer nicht vertrauenswürdigen Quelle laden (etwa einer Domäne, die nicht mit der Stamm-SWF-Datei des Loader-Objekts übereinstimmt), empfiehlt es sich, eine Maske für das Loader-Objekt zu definieren. Dadurch wird verhindert, dass der geladene Inhalt (der dem Loader-Objekt untergeordnet ist) in Bereichen der Bühne gezeichnet wird, die außerhalb dieser Maske liegen. Ein Beispiel hierfür finden Sie im nachfolgenden Code:

import flash.display.~~; import flash.net.URLRequest; var rect:Shape = new Shape(); rect.graphics.beginFill(0xFFFFFF); rect.graphics.drawRect(0, 0, 100, 100); rect.graphics.endFill(); addChild(rect); var ldr:Loader = new Loader(); ldr.mask = rect; var url:String = "http://www.unknown.example.com/content.swf"; var urlReq:URLRequest = new URLRequest(url); ldr.load(urlReq); addChild(ldr);
Im folgenden Beispiel wird die LoaderExample-Klasse verwendet, um zu zeigen, wie verschiedene Ereignis-Listener verwendet werden. Dies wird in den folgenden Schritten erreicht:
  1. Es wird eine url-Eigenschaft erstellt, die den Speicherort und Namen der Grafikdatei angibt.
  2. Im Konstruktor LoaderExample wird ein neues Loader-Objekt mit dem Namen loader erstellt, das dann an die configureListeners()-Methode übergeben wird. Dies ist in Schritt 3 beschrieben.
  3. Der Konstruktor erstellt eine neue Instanz eines URLRequest-Objekts, request, mit Übergabe von url, damit der Dateiname und -speicherort bekannt sind.
  4. Das request-Objekt wird im loader-Objekt an die load()-Methode übergeben, die das Bild in die Anzeigeliste lädt.
  5. Im Loader wird ein clickHandler-Ereignis-Listener für das click-Ereignis registriert. Nach einem Klick mit der Maus wird das geladene Bild entfernt.
  6. Die configureListeners()-Methode fügt mithilfe der folgenden Methoden sieben Ereignis-Listener hinzu:
    • Die completeHandler()-Methode wird ausgeführt, nachdem das Laden des Bilds beendet ist.
    • Die httpStatusHandler()-Methode wird ausgeführt, wenn das Bild nicht lokal geladen wird und nur wenn die Netzwerkanforderung verfügbar ist und der Flash Player diese erkennen kann.
    • Die initHandler()-Methode wird vor der completeHandler()-Methode und nach der progressHandler()-Methode ausgeführt. Das init-Ereignis ist in der Regel nützlicher, wenn SWF-Dateien geladen werden.
    • Die ioErrorHandler()-Methode wird ausgeführt, wenn die Bilddatei nicht verfügbar oder nicht zugänglich ist.
    • Die openHandler()-Methode wird ausgeführt, nachdem die Bilddatei zum ersten Mal geöffnet wurde.
    • Die progressHandler()-Methode wird ausgeführt, wenn das Laden der Bilddatei beginnt, und wird erneut ausgeführt, wenn das Laden der Bilddatei abgeschlossen ist.
    • Die unLoadHandler()-Methode wird ausgeführt, wenn das Bild entfernt wird, indem die unload()-Methode verwendet wird, wenn Benutzer auf das Bild klicken.

Beachten Sie folgende Bedingungen:

  • Zur Ausführung dieses Beispiels müssen Sie eine Datei mit dem Namen „Image.gif“ in dem Ordner ablegen, in dem sich auch die kompilierte SWF-Datei befindet. Verwenden Sie ein Bild mit einem Bereich, der in die Abmessungen der SWF-Hauptdatei passt.
  • Obwohl in diesem Beispiel alle verfügbaren Ereignisse des LoaderInfo-Objekts verwendet werden, ist in den meisten Situationen nur ein Teil davon erforderlich. Beim einfachen Laden einer Bilddatei reicht z. B. das complete-Ereignis (und ggf. das ioError-Ereignis) aus, sofern ein lokales Bild geladen wird.
package { import flash.display.Loader; import flash.display.Sprite; import flash.events.*; import flash.net.URLRequest; public class LoaderExample extends Sprite { private var url:String = "Image.gif"; public function LoaderExample() { var loader:Loader = new Loader(); configureListeners(loader.contentLoaderInfo); loader.addEventListener(MouseEvent.CLICK, clickHandler); var request:URLRequest = new URLRequest(url); loader.load(request); addChild(loader); } private function configureListeners(dispatcher:IEventDispatcher):void { dispatcher.addEventListener(Event.COMPLETE, completeHandler); dispatcher.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler); dispatcher.addEventListener(Event.INIT, initHandler); dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); dispatcher.addEventListener(Event.OPEN, openHandler); dispatcher.addEventListener(ProgressEvent.PROGRESS, progressHandler); dispatcher.addEventListener(Event.UNLOAD, unLoadHandler); } private function completeHandler(event:Event):void { trace("completeHandler: " + event); } private function httpStatusHandler(event:HTTPStatusEvent):void { trace("httpStatusHandler: " + event); } private function initHandler(event:Event):void { trace("initHandler: " + event); } private function ioErrorHandler(event:IOErrorEvent):void { trace("ioErrorHandler: " + event); } private function openHandler(event:Event):void { trace("openHandler: " + event); } private function progressHandler(event:ProgressEvent):void { trace("progressHandler: bytesLoaded=" + event.bytesLoaded + " bytesTotal=" + event.bytesTotal); } private function unLoadHandler(event:Event):void { trace("unLoadHandler: " + event); } private function clickHandler(event:MouseEvent):void { trace("clickHandler: " + event); var loader:Loader = Loader(event.target); loader.unload(); } } }
flash.display.LoaderInfoflash.net.URLLoaderflash.display.DisplayObjectLoader Erstellt ein Loader-Objekt, das Sie zum Laden von Dateien wie SWF-, JPEG-, GIF- oder PNG-Dateien verwenden können. Erstellt ein Loader-Objekt, das Sie zum Laden von Dateien wie SWF-, JPEG-, GIF- oder PNG-Dateien verwenden können. Rufen Sie die load()-Methode auf, um den Bestandsartikel als Child-Objekt der Loader-Instanz zu laden. Anschließend können Sie das Loader-Objekt in die Anzeigeliste aufnehmen (z. B. indem Sie die addChild()-Methode einer DisplayObjectContainer-Instanz verwenden). Der Bestandsartikel erscheint auf der Bühne, noch während er geladen wird.

Sie können eine Loader-Instanz auch außerhalb der Liste verwenden, also ohne sie in einen Anzeigeobjekt-Container in der Anzeigeliste einzufügen. In diesem Modus kann die Loader-Instanz zum Laden einer SWF-Datei verwendet werden, die zusätzliche Module einer Anwendung enthält.

Um festzustellen, wann die SWF-Datei vollständig geladen ist, können Sie die Ereignisse des LoaderInfo-Objekts verwenden, das der contentLoaderInfo-Eigenschaft des Loader-Objekts zugeordnet ist. An diesem Punkt kann der Code in der Modul-SWF-Datei ausgeführt werden, um das Modul zu initialisieren und zu starten. Außerhalb der Liste kann eine Loader-Instanz auch verwendet werden, um eine SWF-Datei zu laden, die Komponenten oder Medienbestände enthält. Wiederum können Sie die Ereignisbenachrichtigungen des LoaderInfo-Objekts verwenden, um festzustellen, wann die Komponenten vollständig geladen sind. An diesem Punkt kann die Anwendung beginnen, mit den Komponenten und Medienbeständen in der Bibliothek der SWF-Datei zu arbeiten, indem die ActionScript 3.0-Klassen, die diese Komponenten und Medienbestände repräsentieren, instanziiert werden.

Um den Status eines Loader-Objekts zu ermitteln, überwachen Sie die folgenden Ereignisse, die das LoaderInfo-Objekt der contentLoaderInfo-Eigenschaft des Loader-Objekts zugeordnet hat:

  • Das open-Ereignis wird ausgelöst, wenn der Ladevorgang beginnt.
  • Die Ereignisse ioError bzw. securityError werden ausgelöst, wenn die Datei nicht geladen werden kann oder wenn während des Ladevorgangs ein Fehler aufgetreten ist.
  • Das progress-Ereignis wird fortlaufend ausgelöst, während die Datei geladen wird.
  • Das complete-Ereignis wird ausgelöst, nachdem eine Datei vollständig heruntergeladen wurde, jedoch noch bevor die Methoden und Eigenschaften des geladenen Movieclips verfügbar sind.
  • Das init-Ereignis wird ausgelöst, sobald die Eigenschaften und Methoden der geladenen SWF-Datei verfügbar sind, sodass Sie mit der Bearbeitung der geladenen SWF-Datei beginnen können. Dieses Ereignis wird vor der Prozedur complete ausgelöst. In gestreamten SWF-Dateien kann das init-Ereignis um einiges früher eintreten als das complete-Ereignis. Für die meisten Zwecke ist die init-Prozedur geeignet.
flash.display.Loader.load()flash.display.LoaderInfo
close Bricht eine für die Loader-Instanz in Ausführung befindliche Operation der load()-Methode ab. Bricht einen aktuell für die Loader-Instanz ausgeführten Vorgang der load()-Methode ab. flash.display.Loader.load()loadBytes Lädt in einem ByteArray-Objekt gespeicherte Binärdaten.Wenn der Wert der length-Eigenschaft des ByteArray-Objekts nicht größer als 0 ist. ArgumentErrorArgumentErrorWenn die Eigenschaft checkPolicyFile bzw. securityDomain des Parameters context nicht null ist. IllegalOperationErrorflash.errors:IllegalOperationErrorWenn die requestedContentParent-Eigenschaft des context-Parameters ein Loader ist. IllegalOperationErrorflash.errors:IllegalOperationErrorWenn der LoaderContext.parameters-Parameter nicht null ist und einige Werte aufweist, die keine Strings sind. IllegalOperationErrorflash.errors:IllegalOperationErrorWenn die bereitgestellte applicationDomain-Eigenschaft der context-Eigenschaft aus einer nicht zulässigen Domäne stammt. SecurityErrorSecurityErrorEine Verbindung mit normalerweise reservierten Ports ist nicht möglich. Eine vollständige Liste der gesperrten Ports finden Sie unter „Beschränken von Netzwerk-APIs“ im ActionScript 3.0 Entwicklerhandbuch. SecurityErrorSecurityErrorbytesflash.utils:ByteArrayEin ByteArray-Objekt. Als Format des ByteArray-Inhalts ist jedes von der Loader-Klasse unterstützte Dateiformat zulässig: SWF, GIF, JPEG oder PNG. contextflash.system:LoaderContextnullEin LoaderContext-Objekt. Nur die applicationDomain-Eigenschaft des LoaderContext-Objekts kann angewendet werden, nicht jedoch die Eigenschaften checkPolicyFile und securityDomain des LoaderContext-Objekts.

Wenn der context-Parameter nicht angegeben ist oder auf ein Null-Objekt verweist, werden die Inhalte in die aktuelle Sicherheitsdomäne geladen. Dieser Vorgang wird in der Sicherheitsdokumentation von Flash Player als „importiertes Laden“ bezeichnet. Wenn die ladende SWF-Datei der Remote-SWF-Datei vertraut und sie in ihren Code aufnimmt, können Inhalte direkt in die Sicherheitsdomäne der ladenden SWF-Datei importiert werden.

Weitere Informationen zum Thema Sicherheit finden Sie im Flash Player Developer Center im Abschnitt Sicherheit.

Lädt in einem ByteArray-Objekt gespeicherte Binärdaten.

Die loadBytes()-Methode ist eine asynchrone Methode. Sie müssen auf das "init"-Ereignis warten, bevor Sie auf die Eigenschaften eines geladenen Objekts zugreifen können.

Wenn Sie diese Methode verwenden, beachten Sie das Flash Player-Sicherheitsmodell, das in der Beschreibung der Loader-Klasse erklärt wird.

flash.utils.ByteArrayflash.system.LoaderContext.applicationDomainasyncErrorflash.events:AsyncErrorEventWird vom contentLoaderInfo-Objekt abgesetzt, wenn die LoaderContext.requestedContentParent-Eigenschaft festgelegt wurde und es nicht möglich ist, den geladenen Inhalt als untergeordnetes Element zum angegebenen DisplayObjectContainer hinzuzufügen. Dazu kann es kommen, wenn der geladene Inhalt ein flash.display.AVM1Movie ist oder wenn der addChild()-Aufruf an requestedContentParent einen Fehler ausgibt. Wird vom contentLoaderInfo-Objekt abgesetzt, wenn die LoaderContext.requestedContentParent-Eigenschaft festgelegt wurde und es nicht möglich ist, den geladenen Inhalt als untergeordnetes Element zum angegebenen DisplayObjectContainer hinzuzufügen.completeflash.events:EventWird vom contentLoaderInfo-Objekt abgesetzt, wenn die Operation abgeschlossen ist. Das Ereignis complete wird immer nach dem Ereignis init ausgelöst. Wird vom contentLoaderInfo-Objekt abgesetzt, wenn die Operation abgeschlossen ist.initflash.events:EventWird vom contentLoaderInfo-Objekt ausgelöst, wenn die Eigenschaften und Methoden der geladenen Daten zugänglich sind. Das Ereignis init wird immer vor dem Ereignis complete ausgelöst. Wird vom contentLoaderInfo-Objekt ausgelöst, wenn die Eigenschaften und Methoden der geladenen Daten zugänglich sind.ioErrorflash.events:IOErrorEventWird vom contentLoaderInfo-Objekt abgesetzt, wenn die Laufzeitumgebung die Daten in einem Byte-Array nicht analysieren kann. Wird vom contentLoaderInfo-Objekt abgesetzt, wenn die Laufzeitumgebung die Daten in einem Byte-Array nicht analysieren kann.openflash.events:EventWird vom contentLoaderInfo-Objekt ausgelöst, wenn die Operation beginnt. Wird vom contentLoaderInfo-Objekt ausgelöst, wenn die Operation beginnt.progressflash.events:ProgressEventWird vom contentLoaderInfo-Objekt abgesetzt, wenn Daten in den Arbeitsspeicher übertragen werden. Wird vom contentLoaderInfo-Objekt abgesetzt, wenn Daten in den Arbeitsspeicher übertragen werden.securityErrorflash.events:SecurityErrorEventWird vom contentLoaderInfo-Objekts abgesetzt, wenn die LoaderContext.requestedContentParent-Eigenschaft festgelegt wurde und die Sicherheitssandbox von LoaderContext.requestedContentParent keinen Zugriff auf die geladene SWF-Datei hat. Wird vom contentLoaderInfo-Objekts abgesetzt, wenn die LoaderContext.requestedContentParent-Eigenschaft festgelegt wurde und die Sicherheitssandbox von LoaderContext.requestedContentParent keinen Zugriff auf die geladene SWF-Datei hat.unloadflash.events:EventWird vom contentLoaderInfo-Objekt ausgelöst, wenn ein geladenes Objekt entfernt wird. Wird vom contentLoaderInfo-Objekt ausgelöst, wenn ein geladenes Objekt entfernt wird.
loadFilePromise Lädt eine IFilePromise-Instanz.Wenn die requestedContentParent-Eigenschaft des context-Parameters ein Loader ist. IllegalOperationErrorflash.errors:IllegalOperationErrorWenn der LoaderContext.parameters-Parameter nicht null ist und einige Werte aufweist, die keine Strings sind. IllegalOperationErrorflash.errors:IllegalOperationErrorWenn das als Parameter übergebenen IFilePromise-Objekt null ist. ArgumentErrorArgumentErrorpromiseflash.desktop:IFilePromiseEin IFilePromise-Objekt. Als Datenquelle des Objekts ist jedes von der Loader-Klasse unterstützte Dateiformat zulässig: SWF, GIF, JPEG oder PNG. contextflash.system:LoaderContextnullEin LoaderContext-Objekt. Nur die applicationDomain-Eigenschaft des LoaderContext-Objekts kann angewendet werden, nicht jedoch die Eigenschaften checkPolicyFile und securityDomain des LoaderContext-Objekts.

Wenn der context-Parameter nicht angegeben ist oder auf ein Null-Objekt verweist, werden die Inhalte in die aktuelle Sicherheitsdomäne geladen. Dieser Vorgang wird in der Sicherheitsdokumentation von Flash Player als „importiertes Laden“ bezeichnet. Wenn die ladende SWF-Datei der Remote-SWF-Datei vertraut und sie in ihren Code aufnimmt, können Inhalte direkt in die Sicherheitsdomäne der ladenden SWF-Datei importiert werden.

Weitere Informationen zum Thema Sicherheit finden Sie im Flash Player Developer Center im Abschnitt Sicherheit.

Lädt eine IFilePromise-Instanz.

Die loadFilePromise-Methode verwendet ein IFilePromise-Objekt und lädt die Binärdaten. Wenn es sich bei den Daten um einen progressiven Stream handelt, zum Beispiel ein Video, warten Sie auf die „init“- oder Fortschrittsereignisse, bevor Sie auf die Eigenschaften des geladenen Objekts zugreifen. Warten Sie andernfalls auf das complete-Ereignis, um sicherzustellen, dass die Daten vollständig geladen wurden.

Wenn Sie diese Methode verwenden, beachten Sie das Flash Player-Sicherheitsmodell, das in der Beschreibung der Loader-Klasse erklärt wird.

MediaPromiseCameraRoll.browseForImage()CameraUIasyncErrorflash.events:AsyncErrorEventWird vom contentLoaderInfo-Objekt abgesetzt, wenn die LoaderContext.requestedContentParent-Eigenschaft festgelegt wurde und es nicht möglich ist, den geladenen Inhalt als untergeordnetes Element zum angegebenen DisplayObjectContainer hinzuzufügen. Dazu kann es kommen, wenn der geladene Inhalt ein flash.display.AVM1Movie ist oder wenn der addChild()-Aufruf an requestedContentParent einen Fehler ausgibt. Wird vom contentLoaderInfo-Objekt abgesetzt, wenn die LoaderContext.requestedContentParent-Eigenschaft festgelegt wurde und es nicht möglich ist, den geladenen Inhalt als untergeordnetes Element zum angegebenen DisplayObjectContainer hinzuzufügen.completeflash.events:EventWird vom contentLoaderInfo-Objekt abgesetzt, wenn die Operation abgeschlossen ist. Das Ereignis complete wird immer nach dem Ereignis init ausgelöst. Wird vom contentLoaderInfo-Objekt abgesetzt, wenn die Operation abgeschlossen ist.initflash.events:EventWird vom contentLoaderInfo-Objekt ausgelöst, wenn die Eigenschaften und Methoden der geladenen Daten zugänglich sind. Das Ereignis init wird immer vor dem Ereignis complete ausgelöst. Wird vom contentLoaderInfo-Objekt ausgelöst, wenn die Eigenschaften und Methoden der geladenen Daten zugänglich sind.ioErrorflash.events:IOErrorEventWird vom contentLoaderInfo-Objekt abgesetzt, wenn die Laufzeitumgebung die Daten in der Datenquelle nicht analysieren kann oder wenn der Datenquellenstream nicht lesbar ist. Wird vom contentLoaderInfo-Objekt abgesetzt, wenn die Laufzeitumgebung die Daten in der Datenquelle nicht analysieren kann oder wenn der Datenquellenstream nicht lesbar ist.openflash.events:EventWird vom contentLoaderInfo-Objekt ausgelöst, wenn die Operation beginnt. Wird vom contentLoaderInfo-Objekt ausgelöst, wenn die Operation beginnt.progressflash.events:ProgressEventWird vom contentLoaderInfo-Objekt abgesetzt, wenn Daten in den Arbeitsspeicher übertragen werden. Wird vom contentLoaderInfo-Objekt abgesetzt, wenn Daten in den Arbeitsspeicher übertragen werden.securityErrorflash.events:SecurityErrorEventWird vom contentLoaderInfo-Objekts abgesetzt, wenn die LoaderContext.requestedContentParent-Eigenschaft festgelegt wurde und die Sicherheitssandbox von LoaderContext.requestedContentParent keinen Zugriff auf die geladene SWF-Datei hat. Wird vom contentLoaderInfo-Objekts abgesetzt, wenn die LoaderContext.requestedContentParent-Eigenschaft festgelegt wurde und die Sicherheitssandbox von LoaderContext.requestedContentParent keinen Zugriff auf die geladene SWF-Datei hat.unloadflash.events:EventWird vom contentLoaderInfo-Objekt ausgelöst, wenn ein geladenes Objekt entfernt wird. Wird vom contentLoaderInfo-Objekt ausgelöst, wenn ein geladenes Objekt entfernt wird.
load Lädt eine SWF-, JPEG-, progressive JPEG-, nicht animierte GIF- oder PNG-Datei in ein Objekt, das dem Loader-Objekt untergeordnet ist.Die digest-Eigenschaft des request-Objekts ist nicht null. Sie sollten die digest-Eigenschaft eines URLRequest-Objekts nur setzen, wenn Sie beim Laden einer SWZ-Datei (einer Adobe-Plattformkomponente) die URLLoader.load()-Methode aufrufen. IOErrorflash.errors:IOErrorDer Wert von LoaderContext.securityDomain muss entweder null oder SecurityDomain.currentDomain lauten. Dadurch wird die Tatsache widergespiegelt, dass Sie die geladenen Medien nur in deren „natürlicher“ Sicherheits-Sandbox oder in Ihrer eigenen Sandbox platzieren können (wobei die letztere eine Richtliniendatei erfordert). SecurityErrorSecurityErrorLokale SWF-Dateien dürfen „LoaderContext.securityDomain“ auf keinen anderen Wert als null setzen. Es ist nicht zulässig, nicht lokale Medien in eine lokale Sandbox zu importieren oder andere lokale Medien an einem anderen Ort als in ihrer natürlichen Sandbox zu platzieren. SecurityErrorSecurityError Eine Verbindung mit normalerweise reservierten Ports ist nicht möglich. Eine vollständige Liste der gesperrten Ports finden Sie unter „Beschränken von Netzwerk-APIs“ im ActionScript 3.0 Entwicklerhandbuch. SecurityErrorSecurityErrorWenn die Eigenschaft applicationDomain oder securityDomain des Parameters context aus einer nicht zulässigen Domäne stammt. SecurityErrorSecurityErrorWenn eine lokale SWF-Datei versucht, die securityDomain-Eigenschaft des Parameters context zu verwenden. SecurityErrorSecurityErrorWenn die requestedContentParent-Eigenschaft des context-Parameters ein Loader ist. IllegalOperationErrorflash.errors:IllegalOperationErrorWenn der LoaderContext.parameters-Parameter nicht null ist und einige Werte aufweist, die keine Strings sind. IllegalOperationErrorflash.errors:IllegalOperationErrorrequestflash.net:URLRequest Die absolute oder relative URL für die zu ladende SWF-, JPEG-, GIF- oder PNG-Datei. Ein relativer Pfad muss relativ zur Haupt-SWF-Datei angegeben werden. Absolute URLs müssen eine Protokollreferenz wie „http://“ oder „file:///“ enthalten. Dateinamen können keine Laufwerkangaben enthalten. contextflash.system:LoaderContextnullEin LoaderContext-Objekt mit Eigenschaften, die folgende Punkte definieren:
  • Ob beim Laden des Objekts nach einer Richtliniendatei gesucht werden soll oder nicht
  • Die ApplicationDomain für das geladene Objekt
  • Die SecurityDomain für das geladene Objekt
  • Die ImageDecodingPolicy für das geladene Bildobjekt

Wenn der context-Parameter nicht festgelegt ist oder auf ein Null-Objekt verweist, bleibt der Inhalt innerhalb seiner eigenen Sicherheitsdomäne.

Vollständige Angaben finden Sie in der Beschreibung der Eigenschaften in der Klasse LoaderContext.

Lädt eine SWF- oder Bilddatei in ein Anzeigeobjekt, das dieser Loader-Instanz untergeordnet ist.
Lädt eine SWF-, JPEG-, progressive JPEG-, nicht animierte GIF- oder PNG-Datei in ein Objekt, das dem Loader-Objekt untergeordnet ist. Wenn Sie eine animierte GIF-Datei laden, wird nur das erste Bild angezeigt. Da das Loader-Objekt nur ein einziges untergeordnetes Objekt besitzen darf, beendet eine nachfolgende load()-Anforderung eine ggf. noch aktive vorherige Anforderung und beginnt einen neuen Ladevorgang.

Hinweis: In AIR 1.5 und Flash Player 10 ist die maximale Höhe oder Breite eines geladenen Bilds 8.191 Pixel, die Pixelzahl darf insgesamt 16.777.215 nicht übersteigen. (Wenn ein geladenes Bild also 8.191 Pixel breit ist, darf es nur 2.048 Pixel hoch sein.) In Flash Player 9 und niedriger und AIR 1.1 und niedriger liegt die Grenze bei je 2.880 Pixel Höhe und Breite.

Eine in ein Loader-Objekt geladene SWF- oder Bilddatei übernimmt die Positions-, Drehungs- und Skalierungseigenschaften der dem Loader-Objekt übergeordneten Anzeigeobjekte.

Mit der unload()-Methode können Sie mit dieser Methode geladene Filme oder Bilder entfernen oder einen laufenden Ladevorgang abbrechen.

Sie können eine SWF-Datei daran hindern, diese Methode aufzurufen, indem Sie auf der HTML-Seite, die den SWF-Inhalt enthält, den Parameter allowNetworking der Tags object und embed festlegen.

Wenn Sie diese Methode verwenden, beachten Sie das Flash Player-Sicherheitsmodell, das in der Beschreibung der Loader-Klasse erklärt wird.

Wenn Sie in Flash Player 10 oder höher einen Multipart-Content-Type verwenden (z. B. „multipart/form-data“), der einen Upload enthält (gekennzeichnet durch einen „filename“-Parameter in einem „content-disposition“-Header innerhalb des POST-Body), so unterliegt die POST-Methode den Sicherheitsregeln für Uploads:

  • Der POST-Vorgang muss als Reaktion auf eine durch den Benutzer initiierte Aktion, z. B. Mausklick oder Tastendruck, erfolgen.
  • Ist die POST-Methode domänenübergreifend (das POST-Ziel befindet sich auf einem anderen Server als die SWF-Datei, die die POST-Anforderung sendet), so muss der Zielserver eine URL-Richtliniendatei bereitstellen, die den domänenübergreifenden Zugriff erlaubt.

Bei mehrteiligen Inhaltstypen muss zudem auch die Syntax gemäß Standard RFC2046 gültig sein. Scheint die Syntax ungültig zu sein, so unterliegt die POST-Methode den Sicherheitsregeln für Uploads.

Weitere Informationen zum Thema Sicherheit finden Sie im Flash Player Developer Center im Abschnitt Sicherheit.

contentLoaderInfoflash.net.URLRequestflash.display.DisplayObjectflash.display.Loader.unload()flash.display.LoaderInfoflash.system.LoaderContextasyncErrorflash.events:AsyncErrorEventWird vom contentLoaderInfo-Objekt abgesetzt, wenn die LoaderContext.requestedContentParent-Eigenschaft festgelegt wurde und es nicht möglich ist, den geladenen Inhalt als untergeordnetes Element zum angegebenen DisplayObjectContainer hinzuzufügen. Dazu kann es kommen, wenn der geladene Inhalt ein flash.display.AVM1Movie ist oder wenn der addChild()-Aufruf an requestedContentParent einen Fehler ausgibt. Wird vom contentLoaderInfo-Objekt abgesetzt, wenn die LoaderContext.requestedContentParent-Eigenschaft festgelegt wurde und es nicht möglich ist, den geladenen Inhalt als untergeordnetes Element zum angegebenen DisplayObjectContainer hinzuzufügen.completeflash.events:EventWird vom contentLoaderInfo-Objekt ausgelöst, wenn die Datei vollständig geladen ist. Das Ereignis complete wird immer nach dem Ereignis init ausgelöst. Wird vom contentLoaderInfo-Objekt ausgelöst, wenn die Datei vollständig geladen ist.httpStatusflash.events:HTTPStatusEventWird vom contentLoaderInfo-Objekt ausgelöst, wenn eine Netzwerkanfrage über HTTP gestellt wird und Flash Player den HTTP-Statuscode ermittelt hat. Wird vom contentLoaderInfo-Objekt ausgelöst, wenn eine Netzwerkanfrage über HTTP gestellt wird und Flash Player den HTTP-Statuscode ermittelt hat.initflash.events:EventWird vom contentLoaderInfo-Objekt ausgelöst, wenn die Eigenschaften und Methoden der geladenen SWF-Datei zugänglich sind. Das Ereignis init wird immer vor dem Ereignis complete ausgelöst. Wird vom contentLoaderInfo-Objekt ausgelöst, wenn die Eigenschaften und Methoden der geladenen SWF-Datei zugänglich sind.ioErrorflash.events:IOErrorEventWird vom contentLoaderInfo-Objekt beim Auftreten eines Eingabe- oder Ausgabefehlers, durch den der Ladevorgang fehlschlägt, ausgelöst. Wird vom contentLoaderInfo-Objekt beim Auftreten eines Eingabe- oder Ausgabefehlers, durch den der Ladevorgang fehlschlägt, ausgelöst.openflash.events:EventWird vom contentLoaderInfo-Objekt ausgelöst, wenn das Laden der Datei beginnt. Wird vom contentLoaderInfo-Objekt ausgelöst, wenn der Ladevorgang beginnt.progressflash.events:ProgressEventWird vom contentLoaderInfoObjekt während des Empfangs von Daten im Zuge des Ladevorgangs ausgelöst. Wird vom contentLoaderInfo-Objekt während des Empfangs von Daten im Zuge des Ladevorgangs ausgelöst.securityErrorflash.events:SecurityErrorEventWird vom contentLoaderInfo-Objekt ausgelöst, wenn eine SWF-Datei in der „local-with-filesystem“-Sandbox versucht, Inhalte in der „local-with-networking“-Sandbox zu laden, oder umgekehrt. Wird vom contentLoaderInfo-Objekt ausgelöst, wenn eine SWF-Datei in der „local-with-filesystem“-Sandbox versucht, Inhalte in der „local-with-networking“-Sandbox zu laden, oder umgekehrt.securityErrorflash.events:SecurityErrorEventWird vom contentLoaderInfo-Objekts abgesetzt, wenn die LoaderContext.requestedContentParent-Eigenschaft festgelegt wurde und die Sicherheitssandbox von LoaderContext.requestedContentParent keinen Zugriff auf die geladene SWF-Datei hat. Wird vom contentLoaderInfo-Objekts abgesetzt, wenn die LoaderContext.requestedContentParent-Eigenschaft festgelegt wurde und die Sicherheitssandbox von LoaderContext.requestedContentParent keinen Zugriff auf die geladene SWF-Datei hat.unloadflash.events:EventWird vom contentLoaderInfo-Objekt ausgelöst, wenn ein geladenes Objekt entfernt wird. Wird vom contentLoaderInfo-Objekt ausgelöst, wenn ein geladenes Objekt entfernt wird.
unloadAndStop Versucht, die Inhalte der untergeordneten SWF-Datei zu entladen und beendet die Ausführung der Befehle geladener SWF-Dateien.gcBooleantrueStellt einen Hinweis für den Garbagekollektor bereit, ob er für die untergeordneten SWF-Objekte ausgeführt werden soll (true) oder nicht (false). Wenn Sie viele Objekte asynchron entladen, kann das Setzen des gc-Parameters auf false die Leistung der Anwendung verbessern. Allerdings kann das Setzen von false dazu führen, dass Medien und Anzeigeobjekte der untergeordneten SWF-Datei nach dem Ausführen des unloadAndStop()-Befehls weiterhin im Speicher verbleiben Versucht, die Inhalte der untergeordneten SWF-Datei zu entladen und beendet die Ausführung von Befehlen geladener SWF-Dateien. Diese Methode versucht, SWF-Dateien zu entladen, die mithilfe von Loader.load() oder Loader.loadBytes() erstellt wurden, indem sie Verweise auf EventDispatcher-, NetConnection-, Timer-, Sound- oder Video-Objekte der untergeordneten SWF-Datei entfernt. Als Ergebnis tritt Folgendes für die untergeordnete SWF-Datei und die Anzeigeliste der untergeordneten SWF-Datei ein:
  • Sounds werden gestoppt.
  • Stage-Ereignis-Listener werden entfernt.
  • Ereignis-Listener für enterFrame, frameConstructed, exitFrame, activate und deactivate werden entfernt.
  • Timer werden gestoppt.
  • Kamera- und Mikrofoninstanzen werden getrennt.
  • Movieclips werden gestoppt.
flash.display.DisplayObjectflash.display.Loader.load()
unload Entfernt ein untergeordnetes Objekt dieses Loader-Objekts, das mit der load()-Methode geladen wurde. Entfernt ein untergeordnetes Objekt dieses Loader-Objekts, das mit der Methode load() geladen wurde. Die property (Eigenschaft) des zugeordneten LoaderInfo-Objekts wird auf null zurückgesetzt. Das untergeordnete Objekt wird nicht unbedingt gelöscht, da andere Objekte möglicherweise Verweise darauf enthalten. Allerdings ist es dem Loader-Objekt nicht mehr untergeordnet.

Es ist ratsam, vor dem Entladen einer untergeordneten SWF-Datei alle Streams in deren Objekten, z. B. LocalConnection-, NetConnection-, NetStream- oder Sound-Objekte, ausdrücklich zu schließen. Andernfalls kann es passieren, dass Audiodaten in der untergeordneten SWF-Datei unaufhörlich abgespielt werden, obwohl die SWF-Datei selbst bereits entladen worden ist. Um Streams in der untergeordneten SWF-Datei zu schließen, fügen Sie dem untergeordneten Objekt, das auf das unload-Ereignis wartet, einen Ereignis-Listener hinzu. Wenn das übergeordnete Objekt die Loader.unload()-Methode aufruft, wird für das untergeordnete Objekt das unload-Ereignis ausgelöst. Im folgenden Code wird gezeigt, wie Sie dies realisieren können:

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

myMovieClip.loaderInfo.addEventListener(Event.UNLOAD, closeAllStreams);
Loader.load()flash.media.Sound.close()flash.net.LocalConnection.close()flash.net.NetConnection.close()flash.net.NetStream.close()delete-Operator
contentLoaderInfo Gibt ein LoaderInfo-Objekt zurück, das dem zu ladenden Objekt entspricht.flash.display:LoaderInfo Gibt ein LoaderInfo-Objekt zurück, das dem zu ladenden Objekt entspricht. LoaderInfo-Objekte werden sowohl vom Loader-Objekt als auch von geladenen Inhaltsobjekten genutzt. Das LoaderInfo-Objekt stellt Informationen und Statistiken zum Ladefortschritt der geladenen Datei bereit.

Ereignisse, die sich auf das Laden beziehen, werden durch das LoaderInfo-Objekt ausgelöst, auf das über die contentLoaderInfo-Eigenschaft des Loader-Objekts verwiesen wird. Die contentLoaderInfo-Eigenschaft wird bereits auf ein gültiges LoaderInfo-Objekt gesetzt, bevor der Inhalt geladen wird, damit Sie dem Objekt vor dem Laden Ereignis-Listener hinzufügen können.

Um nicht erfasste Fehler zu erkennen, die in einer geladenen SWF-Datei auftreten, verwenden Sie die Loader.uncaughtErrorEvents-Eigenschaft, nicht die Loader.contentLoaderInfo.uncaughtErrorEvents-Eigenschaft.

Im folgenden Beispiel wird gezeigt, wie Sie in ActionScript 3.0 mithilfe der Loader-Klasse und des complete-Ereignisses in der contentLoaderInfo-Eigenschaft des Loader-Objekts ein Bild laden und positionieren können. Beispiel bereitgestellt von ActionScriptExamples.com. var url:String = "http://www.helpexamples.com/flash/images/image2.jpg"; var urlRequest:URLRequest = new URLRequest(url); var loader:Loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loader_complete); loader.load(urlRequest); addChild(loader); function loader_complete(evt:Event):void { var target_mc:Loader = evt.currentTarget.loader as Loader; target_mc.x = (stage.stageWidth - target_mc.width) / 2; target_mc.y = (stage.stageHeight - target_mc.height) / 2; }
flash.display.LoaderInfo
content Enthält das Stamm-Anzeigeobjekt der SWF- oder Bilddatei (JPG, PNG oder GIF), die mit der load()- oder loadBytes()-Methode geladen wurde.flash.display:DisplayObjectDie geladene SWF- oder Bilddatei ist Teil einer Sicherheits-Sandbox, auf die Sie keinen Zugriff haben. Sie können diese Situation für eine geladene SWF-Datei vermeiden, indem Sie die Datei die Security.allowDomain()-Methode aufrufen lassen oder die ladende Datei einen Parameter loaderContext laden lassen (für den die securityDomain-Eigenschaft auf SecurityDomain.currentDomain gesetzt ist), wenn Sie die Methode load() oder loadBytes() aufrufen. SecurityErrorSecurityError Enthält das Stamm-Anzeigeobjekt der SWF- oder Bilddatei (JPG, PNG oder GIF), die anhand der Methode load() oder loadBytes() geladen worden ist. flash.display.DisplayObjectflash.display.Loader.load()uncaughtErrorEvents Ein Objekt, das ein uncaughtError-Ereignis absetzt, wenn ein nicht verarbeiteter Fehler in der SWF-Datei auftritt, die von diesem Loader-Objekt geladen wird.flash.events:UncaughtErrorEvents Ein Objekt, das ein uncaughtError-Ereignis absetzt, wenn ein nicht verarbeiteter Fehler in der SWF-Datei auftritt, die von diesem Loader-Objekt geladen wird. Fehler werden nicht erfasst, wenn sie außerhalb von try..catch-Blöcken ausgegeben werden, oder wenn ein ErrorEvent-Objekt ausgelöst wird, aber keine registrierten Listener vorhanden sind.

Beachten Sie, dass die uncaughtErrorEvents-Eigenschaft eines Loader-Objekts Ereignisse absetzt, die durch das Objekt aufsteigen, keine Ereignisse, die direkt abgesetzt werden. Sie setzt nie ein uncaughtErrorEvent in der Zielphase ab. Sie setzt das Ereignis nur in den Erfassungs- und Bubblingphasen ab. Um einen nicht erfassten Fehler in der aktuellen SWF-Datei (die SWF-Datei, in der das Loader-Objekt definiert ist) zu erkennen, verwenden Sie stattdessen die LoaderInfo.uncaughtErrorEvents-Eigenschaft.

Wenn es sich bei dem vom Loader-Objekt geladenen Inhalt um eine AVM1 (ActionScript 2)-SWF-Datei handelt, führen nicht erfasste Fehler in der AVM1-SWF-Datei nicht zu einem uncaughtError-Ereignis.

Das folgende Beispiel veranschaulicht die Verwendung einer Ereignisprozedur für nicht erfasste Fehler, um nicht erfasste Fehler in einer geladenen SWF-Datei zu erkennen. Im Beispiel wird eine uncaughtError-Ereignisprozedur definiert, um nicht erfasste Fehler zu erkennen.

Im Konstruktor erstellt der Code ein Loader-Objekt und registriert einen Listener für das uncaughtError-Ereignis, das von der uncaughtErrorEvents-Eigenschaft des Loader-Objekts abgesetzt wird.

In der uncaughtErrorHandler()-Methode überprüft der Code den Datentyp der error-Eigenschaft und reagiert entsprechend.

package { import flash.display.Loader; import flash.display.Sprite; import flash.events.ErrorEvent; import flash.events.UncaughtErrorEvent; import flash.net.URLRequest; public class LoaderUncaughtErrorEventExample extends Sprite { private var ldr:Loader; public function LoaderUncaughtErrorEventExample() { ldr = new Loader(); ldr.load(new URLRequest("child.swf")); ldr.uncaughtErrorEvents.addEventListener(UncaughtErrorEvent.UNCAUGHT_ERROR, uncaughtErrorHandler); } private function uncaughtErrorHandler(event:UncaughtErrorEvent):void { if (event.error is Error) { var error:Error = event.error as Error; // do something with the error } else if (event.error is ErrorEvent) { var errorEvent:ErrorEvent = event.error as ErrorEvent; // do something with the error } else { // a non-Error, non-ErrorEvent type was thrown and uncaught } } } }
UncaughtErrorEventLoaderInfo.uncaughtErrorEvents
NativeMenuItem Die NativeMenuItem-Klasse repräsentiert ein einzelnes Element in einem Menü.flash.events:EventDispatcher Die NativeMenuItem-Klasse repräsentiert ein einzelnes Element in einem Menü.

Bei einem Menüelement kann es sich um einen Befehl, ein Untermenü oder um eine Trennlinie handeln:

  • Zum Erstellen eines Befehls rufen Sie den NativeMenuItem-Konstruktor auf und übergeben dabei einen String für die Bezeichnung sowie den Wert false für den isSeparator-Parameter.
  • Zum Erstellen eines Untermenüs erstellen Sie einen Befehl für das übergeordnete Menü und weisen das NativeMenu-Objekt des Untermenüs der submenu-Eigenschaft des Befehls zu. Sie können auch die addSubmenu()-Methode des übergeordneten NativeMenu-Objekts aufrufen, um das Element zu erstellen und gleichzeitig die submenu-Eigenschaft zu setzen.
  • Zum Erstellen einer Trennlinie rufen Sie den NativeMenuItem-Konstruktor auf und übergeben dabei einen leeren String für die Bezeichnung sowie den Wert true für den isSeparator-Parameter.

Durch Warten auf select-Ereignisse für einen Befehl oder ein übergeordnetes Menü kann festgestellt werden, wann ein Menübefehl ausgewählt wird. Untermenüs und Trennlinien lösen keine select-Ereignisse aus. Verwenden Sie einen Listener für preparing-Ereignisse, um festzustellen, ob in Kürze ein Menüeintrag angezeigt oder durch eine Tastenentsprechung aktiviert wird.

flash.display.NativeMenuflash.display.NativeMenu.addSubmenu()preparing Wird von diesem NativeMenuItem-Objekt abgesetzt, wenn die Tastenentsprechung gedrückt wird, und kurz bevor das entsprechende Menü eingeblendet wird.flash.events.Event.PREPARINGflash.events.Event Wird von diesem NativeMenuItem-Objekt abgesetzt, wenn die Tastenentsprechung gedrückt wird, und kurz bevor das entsprechende Menü eingeblendet wird.

Verwenden Sie einen Listener für dieses Ereignis, um das Element zu aktualisieren, bevor das enthaltende Menü angezeigt wird, oder wenn der Benutzer die Tastenentsprechung drückt. Das preparing-Ereignis wird abgesetzt, bevor die Tastenentsprechung vollständig evaluiert wurde. Sie können das Element im preparing-Ereignis-Listener aktivieren, deaktivieren oder entfernen, und diese Änderungen werden wirksam, wenn die Tastenentsprechung verarbeitet wird. Wenn Sie diesen Menüeintrag zum Beispiel entfernen oder deaktivieren, wird die Folge von Ereignissen abgebrochen und es wird kein select-Ereignis abgesetzt. Ein preparing-Ereignis wird auch von den anderen Elementen in einem Menü abgesetzt.

Das preparing-Ereignis ersetzt das displaying-Ereignis und stellt zusätzliche Funktionen bereit. Verwenden Sie einen Listener für das preparing-Ereignis oder für das displaying-Ereignis, aber nicht für beide.

displaying Wird von diesem NativeMenuItem-Objekt ausgelöst, unmittelbar bevor das Menü, das das Element enthält, angezeigt wird.flash.events.Event.DISPLAYINGflash.events.Event Wird von diesem NativeMenuItem-Objekt ausgelöst, unmittelbar bevor das Menü, das das Element enthält, angezeigt wird.

Das preparing-Ereignis ersetzt das displaying-Ereignis und stellt zusätzliche Funktionen bereit. Verwenden Sie einen Listener für das preparing-Ereignis oder für das displaying-Ereignis, aber nicht für beide.

select Wird immer ausgelöst, wenn der Benutzer ein Menüelement auswählt.flash.events.Event.SELECTflash.events.Event Wird immer ausgelöst, wenn der Benutzer ein Menüelement auswählt.

Ein select-Ereignis wird von diesem Element bis zum übergeordneten Menü und weiter durch die Struktur bis zum Stamm-Menüobjekt gesendet (Bubbling). Die target-Eigenschaft des Ereignisobjekts verweist auf dieses NativeMenuItem-Objekt. Die currentTarget-Eigenschaft verweist auf das auslösende Objekt (entweder dieses NativeMenuItem-Objekt oder ein übergeordnetes NativeMenu-Objekt).

Hinweis: Wenn sich das Menü in einem Fenster im Vollbildmodus befindet (stage.displayState == StageDisplayState.FULL_SCREEN), löst das NativeMenuItem-Objekt kein select-Ereignis aus, wenn der Benutzer einen Tastaturbefehl für ein Menüelement eingibt.

NativeMenuItem Erstellt ein neues NativeMenuItem-Objekt.labelStringDie anzuzeigende Bezeichnung für das Element oder ein leerer String für Trennlinien. isSeparatorBooleanfalsetrue, um eine Trennlinie zu erstellen, andernfalls false. Erstellt ein neues NativeMenuItem-Objekt.

Zum Erstellen eines Menübefehls stellen Sie den label-Parameter auf einen String ein, der die anzuzeigende Bezeichnung enthält, und setzen Sie isSeparator auf false.

Zum Erstellen eines Untermenübefehls erstellen Sie ein Befehlselement und weisen dann das NativeMenu-Objekt des Untermenüs der submenu-Eigenschaft des Elements zu. Fügen Sie das Element dem übergeordneten Menü hinzu.

Zum Erstellen einer Trennlinie stellen Sie den label-Parameter auf einen leeren String ein und setzen Sie isSeparator auf true.

Um Elemente in einem Menü hinzuzufügen oder zu entfernen, verwenden Sie die NativeMenu-Methoden addItem() und removeItem().

flash.display.NativeMenu.addSubmenu()
clone Erstellt eine Kopie des NativeMenuItem-Objekts.flash.display:NativeMenuItem Erstellt eine Kopie des NativeMenuItem-Objekts. toString Gibt einen String zurück, der alle Eigenschaften des NativeMenuItem-Objekts enthält.Eine Zeichenfolge, die alle Eigenschaften des Ereignisobjekts enthält. String Gibt einen String zurück, der alle Eigenschaften des NativeMenuItem-Objekts enthält. checked Steuert, ob für dieses Menüelement ein Häkchen angezeigt wird.Boolean Steuert, ob für dieses Menüelement ein Häkchen angezeigt wird. data Ein beliebiges Datenobjekt, das zu diesem Menüelement gehört.Object Ein beliebiges Datenobjekt, das zu diesem Menüelement gehört.

Sie können dieser Eigenschaft jedes Objekt zuweisen. Das zugewiesene Objekt wird nicht vom Menüsystm verwendet, sondern steht für Ereignisprozedurcode zur Verfügung (über die target-Eigenschaft des Ereignisobjekts). Standardmäßig hat diese Eigenschaft den Wert null.

enabled Steuert, ob dieses Menüelement aktiviert ist.Boolean Steuert, ob dieses Menüelement aktiviert ist. isSeparator Gibt an, ob es sich bei diesem Element um eine Menütrennlinie handelt.Boolean Gibt an, ob es sich bei diesem Element um eine Menütrennlinie handelt.

Zum Erstellen einer Trennlinie stellen Sie den isSeparator-Parameter im NativeMenuItem-Konstruktor auf true ein.

keyEquivalentModifiers Das Tastencode-Array für die Zusatztasten des Tastaturbefehls.Array Das Tastencode-Array für die Zusatztasten des Tastaturbefehls.

Verwenden Sie die in der Keyboard-Klasse definierten Konstanten, um die Zusatztastencodes anzugeben. Gültige Zusatztasten sind:

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

Wenn Sie keine Zusatztaste zuweisen, wird unter Windows oder Linux standardmäßig die Keyboard.CONTROL-Taste zugewiesen, unter Mac OS X die Keyboard.COMMAND-Taste. Wenn Sie diese Zusatztasten nicht verwenden möchten, setzen Sie diese Eigenschaft auf ein leeres Array.

Wenn Sie der keyEquivalent-Eigenschaft einen Großbuchstaben zuweisen, wird automatisch die Umschalttaste als Zusatztaste verwendet. Wenn Sie keyEquivalentModifier auf ein leeres Array setzen, wird die Umschalttaste als Zusatztaste nicht entfernt.

flash.ui.Keyboard
keyEquivalent Der Tastaturbefehl für dieses Menüelement.String Der Tastaturbefehl für dieses Menüelement.

Setzen Sie keyEquivalent mit einem Kleinbuchstaben, um einen Kurzbefehl, der keine Betätigung der Umschalttaste erfordert, zuzuweisen. Setzen Sie einen Großbuchstaben, um einen Kurzbefehl, der die Betätigung der Umschalttaste erfordert, zuzuweisen.

Standardmäßig erfordern Tastaturbefehle die Betätigung einer Zusatztaste (die Strg-Taste unter Windows und die Befehlstaste unter Mac OS X). Wenn Sie einen Tastaturbefehl ohne Zusatztaste festlegen möchten, setzen Sie die keyEquivalentModifiers-Eigenschaft auf ein leeres Array.

label Der Anzeigestring dieses Menüelements.String Der Anzeigestring dieses Menüelements. menu Das Menü, das dieses Element enthält.flash.display:NativeMenu Das Menü, das dieses Element enthält. mnemonicIndex Die Position des Zugriffszeichens in der Bezeichnung des Menüelements.int Die Position des Zugriffszeichens in der Bezeichnung des Menüelements.

Das Zeichen an der angegebenen Position ist das Zugriffszeichen des Menüelements. Der Index basiert auf Null, das heißt, dass das erste Zeichen den Indexwert 0 hat.

Auf Betriebssystemen, die keine Zugriffszeichen für Menüs verwenden, wird diese Eigenschaft ignoriert.

name Der Name dieses Menüelements.String Der Name dieses Menüelements.

Der Namenswert wird nicht angezeigt und kann als vom Gebietsschema unabhängiger Bezeichner verwendet werden. Die Zuweisung von Namen erfolgt nicht automatisch.

submenu Das Untermenü, das zu diesem Menüelement gehört.flash.display:NativeMenu Das Untermenü, das zu diesem Menüelement gehört.

Wenn dieser Eigenschaft ein NativeMenu-Objekt zugewiesen wird, ändern sich Darstellung und Verhalten des Menüelements. Ein Untermenüelement zeigt das Untermenüsymbol an und löst keine select-Ereignisse mehr aus.

Hinweis: Wird ein Menü sich selbst als Untermenü hinzugefügt (Zirkelverweis), kann die Anwendung hängen bleiben.

flash.display.NativeMenu.addSubmenu()
NativeMenu Die NativeMenu-Klasse enthält Methoden und Eigenschaften zum Definieren von nativen Menüs.flash.events:EventDispatcher Die NativeMenu-Klasse enthält Methoden und Eigenschaften zum Definieren von nativen Menüs.

Unterstützung von AIR-Profilen: Diese Funktion wird auf allen Desktopbetriebssystemen unterstützt, jedoch nicht auf mobilen Geräten oder Geräten mit AIR für TV. Mit der NativeMenu.isSupported-Eigenschaft können Sie testen, ob zur Laufzeit Unterstützung gegeben ist. Weitere Informationen zum AIR-Support über mehrere Profile finden Sie unter Unterstützung von AIR-Profilen.

Ein natives Menü ist ein Menü, das nicht von Ihrer Anwendung, sondern vom Betriebssystem gesteuert und gezeichnet wird. AIR unterstützt die folgenden Typen von nativen Menüs:

  • Anwendungsmenüs werden unter OS X unterstützt. Testen Sie mit der NativeApplication.supportsMenu-Eigenschaft, ob Anwendungsmenüs vom Host-Betriebssystem unterstützt werden. Ein Anwendungsmenü wird in der Menüleiste oben auf dem Mac-Desktop angezeigt. OS X stellt für jede Anwendung ein Standardmenü bereit, viele dieser Menübefehle sind jedoch nicht funktionsfähig. Sie können den Standardelementen Ereignis-Listener hinzufügen, einzelne Menüs und Menüelemente ersetzen oder sogar das gesamte Standardmenü ersetzen. Über die menu-Eigenschaft von NativeApplication haben Sie Zugriff auf das Anwendungsmenüobjekt.
  • Fenstermenüs werden unter Windows und Linux unterstützt. Testen Sie mit der NativeWindow.supportsMenu-Eigenschaft, ob Fenstermenüs vom Host-Betriebssystem unterstützt werden. Ein Fenstermenü wird unter der Titelleiste eines Fensters angezeigt. Der vom Menü belegte Platz ist nicht Teil der Fensterbühne. Anwendungen können nicht in diesen Bereich zeichnen. Weisen Sie ein Menü mithilfe der menu-Eigenschaft von NativeWindows einem Fenster zu.
  • Docksymbolmenüs werden unter OS X unterstützt. Testen Sie mit der NativeApplication.supportsDockIcon-Eigenschaft, ob Docksymbole vom Host-Betriebssystem unterstützt werden. Elemente eines Docksymbolmenüs werden über den vom Betriebssystem bereitgestellten Standardelementen angezeigt. Auf die Standardelemente kann nicht mit Anwendungscode zugegriffen werden. Weisen Sie der menu-Eigenschaft des DockIcon-Objekts der Anwendung ein Menü zu.
  • Infobereichsymbolmenüs werden unter Windows und den meisten Linux-Betriebssystemen unterstützt. Testen Sie mit der NativeWindow.supportsSystemTrayIcon-Eigenschaft, ob Infobereichsymbolmenüs vom Host-Betriebssystem unterstützt werden. Ein Infobereichsymbolmenü wird nach einem Rechtsklick auf das Symbol angezeigt, ähnlich wie ein Kontextmenü. Weisen Sie der menu-Eigenschaft des SystemTrayIcon-Objekts der Anwendung ein Menü zu.
  • Kontextmenüs werden von allen Betriebssystemen unterstützt. Kontextmenüs werden als Reaktion auf ein Benutzeroberflächenereignis angezeigt, zum Beispiel Klicken mit der rechten Maustaste oder bei gedrückter Befehlstaste auf ein InteractiveObject, das in der Anwendung angezeigt wird. Der UI-Mechanismus zum Anzeigen des Menüs variiert je nach Host-Betriebssystem und Hardware. Weisen Sie der contextMenu-Eigenschaft eines InteractiveObject ein Menü zu. In AIR können Kontextmenüs mit der NativeMenu-Klasse oder der ContextMenu-Klasse erstellt werden. In Flash Player kann nur die ContextMenu-Klasse verwendet werden. ContextMenus in AIR haben keine integrierten Elemente; es wird kein Standardkontextmenü angezeigt.
  • Popupmenüs werden von allen Betriebssystemen unterstützt. Popupmenüs haben die gleiche Funktion wie Kontextmenüs, sie werden jedoch mithilfe der Menü-display()-Methode angezeigt und nicht als Reaktion auf ein Benutzeroberflächenereignis. Ein Popupmenü ist an kein anderes Objekt angehängt. Erstellen Sie einfach das native Menü und rufen Sie die display()-Methode auf.

Ein Menüobjekt enthält Menüelemente. Ein Menüelement kann einen Befehl, ein Untermenü oder eine Trennlinie repräsentieren. Fügen Sie einem Menü mithilfe der addItem()- oder addItemAt()-Methode Menüelemente hinzu. Die Anzeigereihenfolge der Menüelemente entspricht der Reihenfolge der Elemente im items-Array des Menüs.

Um ein Untermenü zu erstellen, fügen Sie dem übergeordneten Menüobjekt ein Menüelement hinzu. Weisen Sie das Menüobjekt, das das Untermenü repräsentiert, der submenu-Eigenschaft des entsprechenden Menüelements im übergeordneten Menü zu.

Hinweis: Das Stammmenü von Fenster- und Anwendungsmenüs darf nur Untermenüelemente enthalten. Elemente, die keine Untermenüs repräsentieren, dürfen nicht angezeigt werden, da dies den Erwartungen der Benutzer für diese Menütypen widersprechen würde.

Menüs lösen select-Ereignisse aus, wenn ein Befehl im Menü oder in einem seiner Untermenüs ausgewählt wird. (Untermenü- und Trennlinienelemente können nicht ausgewählt werden.) Die target-Eigenschaft des Ereignisobjekts verweist auf das ausgewählte Element.

Menüs setzen preparing-Ereignisse ab, kurz bevor das Menü angezeigt wird und wenn eine Tastenentsprechung, die einem der Einträge im Menü zugewiesen wurde, gedrückt wird. Sie können dieses Ereignis verwenden, um den Inhalt des Menüs auf Grundlage des aktuellen Anwendungsstatus zu aktualisieren.

Hinweis: Wenn Sie im Flex-Framework arbeiten, ziehen Sie die Verwendung der FlexNativeMenu-Klasse in Betracht. Es ist normalerweise einfacher, Menüs deklarativ in MXML zu definieren, als ActionScript-Code zu schreiben, um die Menüstruktur Element für Element zu erstellen.

flash.display.InteractiveObject.contextMenuflash.display.NativeMenuItemflash.display.NativeWindow.menuflash.desktop.DockIconflash.desktop.SystemTrayIconflash.desktop.NativeApplication.menuflash.desktop.NativeApplication.iconmx.controls.FlexNativeMenupreparing Wird vom NativeMenu-Objekt abgesetzt, wenn eine Tastenentsprechung gedrückt wird , und unmittelbar vor dem Einblenden des Menüs.flash.events.Event.PREPARINGflash.events.Event Wird vom NativeMenu-Objekt abgesetzt, wenn eine Tastenentsprechung gedrückt wird , und unmittelbar vor dem Einblenden des Menüs.

Verwenden Sie einen Listener für dieses Ereignis, um das Menü zu aktualisieren, bevor es angezeigt wird, oder wenn der Benutzer eine Tastenentsprechung drückt. Das preparing-Ereignis wird abgesetzt, bevor die Tastenentsprechung vollständig evaluiert wurde. Sie können Elemente im preparing-Ereignis-Listener aktivieren, deaktivieren, hinzufügen oder entfernen, und diese Änderungen werden wirksam, wenn die Tastenentsprechung verarbeitet wird. Wenn Sie zum Beispiel das Menüelement, das der auslösenden Tastaturentsprechung zugeordnet ist, entfernen oder deaktivieren, wird die Folge von Ereignissen abgebrochen und es wird kein select-Ereignis abgesetzt. Ein preparing-Ereignis wird auch von den Elementen in einem Menü abgesetzt.

Das preparing-Ereignis ersetzt das displaying-Ereignis und stellt zusätzliche Funktionen bereit. Verwenden Sie einen Listener für das preparing-Ereignis oder für das displaying-Ereignis, aber nicht für beide.

displaying Wird unmittelbar vor der Anzeige des Menüs von diesem NativeMenu-Objekt abgesetzt.flash.events.Event.DISPLAYINGflash.events.Event Wird unmittelbar vor der Anzeige des Menüs von diesem NativeMenu-Objekt abgesetzt.

Durch Warten auf dieses Ereignis kann das Menü vor der Anzeige aktualisiert werden. Ein displaying-Ereignis wird auch von den Elementen in einem Menü abgesetzt.

Das preparing-Ereignis ersetzt das displaying-Ereignis und stellt zusätzliche Funktionen bereit. Verwenden Sie einen Listener für das preparing-Ereignis oder für das displaying-Ereignis, aber nicht für beide.

Hinweis: Unter Mac OS X haben Menüs und Menüelemente in Versionen vor AIR 2.6 ein displaying-Ereignis abgesetzt, wenn der Benutzer eine Tastenentsprechung gedrückt hat. (Dieses Ereignis wurde bei Interaktionen mit Tastenentsprechungen unter anderen Betriebssystemen nicht abgesetzt.) Seit AIR 2.6 werden keine displaying-Ereignisse mehr abgesetzt, wenn der Benutzer eine Tastenentsprechung drückt. Verwenden Sie stattdessen das preparing-Ereignis.

select Wird von diesem NativeMenu-Objekt ausgelöst, wenn eines seiner Menüelemente oder ein Element in einem seiner nachfolgenden Untermenüs ausgewählt wird.flash.events.Event.SELECTflash.events.Event Wird von diesem NativeMenu-Objekt ausgelöst, wenn eines seiner Menüelemente oder ein Element in einem seiner nachfolgenden Untermenüs ausgewählt wird.

Ein select-Ereignis wird von diesem Menüelement bis zum übergeordneten Menü und weiter durch die Struktur bis zum Stamm-Menüobjekt gesendet (Bubbling). Die target-Eigenschaft des Ereignisobjekts verweist auf das ausgewählte NativeMenuItem-Objekt; die currentTarget-Eigenschaft verweist auf dieses NativeMenu-Objekt.

NativeMenu Erstellt ein neues NativeMenu-Objekt. Erstellt ein neues NativeMenu-Objekt. addItemAt Fügt an der angegebenen Position ein Menüelement hinzu.Wenn ein item null ist. ArgumentErrorArgumentErrorWenn ein item Mitglied eines anderen Menüs ist. ArgumentErrorArgumentErrorWenn sich die Indexposition außerhalb der Grenzen des items-Arrays des Menüs befindet. RangeErrorRangeErrorflash.display:NativeMenuItemitemflash.display:NativeMenuItemDas einzufügende NativeMenuItem-Objekt. indexintDie Position in einem Menü (auf null basierend), an der das Menüelement eingefügt wird.

Hinweis: Das Hinzufügen eines Elements zu einem Menü kann dazu führren, dass die Anwendung hängen bleibt, wenn das Untermenü des Elements auf das Menü selbst gesetzt ist (Zirkelverweis).

Fügt an der angegebenen Position ein Menüelement hinzu. Die Position wird von oben nach unten indexiert. Stellen Sie die index-Parameter auf null ein, um das Element oben im Menü einzufügen. Alle Menüarten – Fenster, Anwendung, Taskleistensymbol, Docksymbol, Kontext und Popup – legen den Indexwert der Position im Menü von oben fest.
addItem Fügt am Ende des Menüs ein Menüelement hinzu.Wenn ein item null ist. ArgumentErrorArgumentErrorWenn ein item Mitglied eines anderen Menüs ist. ArgumentErrorArgumentErrorflash.display:NativeMenuItemitemflash.display:NativeMenuItemDas NativeMenuItem-Objekt, das im Menü unten hinzugefügt werden soll. Fügt am Ende des Menüs ein Menüelement hinzu.

Beim Erstellen eines Kontextmenüs können Sie entweder NativeMenuItem- oder ContextMenuItem-Objekte hinzufügen. Es wird jedoch empfohlen, dass Sie in einem Kontextmenü nur einen Objekttyp verwenden, damit alle Menüelemente über dieselben Eigenschaften verfügen.

Hinweis: Das Hinzufügen eines Elements zu einem Menü kann dazu führren, dass die Anwendung hängen bleibt, wenn das Untermenü des Elements auf das Menü selbst gesetzt ist (Zirkelverweis).

addSubmenuAt Fügt dem Menü ein Untermenü hinzu, indem ein neues Menüelement an der angegebenen Position eingefügt wird.Das für das Untermenü erstellte NativeMenuItem-Objekt. flash.display:NativeMenuItemsubmenuflash.display:NativeMenuDas NativeMenu-Objekt, das das hinzuzufügende Untermenü definiert. indexintDie Position im items-Array dieses Menüs, an der das Menüelement hinzugefügt werden soll. labelStringDie Bezeichnung, die für das hinzuzufügende Menüelement angezeigt werden soll. Fügt dem Menü ein Untermenü hinzu, indem ein neues Menüelement an der angegebenen Position eingefügt wird.

Das Aufrufen der addSubMenuAt()-Methode entspricht der Erstellung eines neuen Menüelements, das an der gewünschten Position im Menü eingefügt wird und dessen submenu-Eigenschaft ein NativeMenu-Objekt zugewiesen wird.

Hinweis: Wird ein Menü sich selbst als Untermenü hinzugefügt (Zirkelverweis), kann die Anwendung hängen bleiben.

addSubmenu Fügt dem Menü ein Untermenü hinzu, indem ein neues Menüelement eingefügt wird.Das für das Untermenü erstellte NativeMenuItem-Objekt. flash.display:NativeMenuItemsubmenuflash.display:NativeMenuDas NativeMenu-Objekt, das das hinzuzufügende Untermenü definiert. labelStringDie Bezeichnung, die für das hinzuzufügende Menüelement angezeigt werden soll. Fügt dem Menü ein Untermenü hinzu, indem ein neues Menüelement eingefügt wird.

Das Aufrufen der addSubMenuAt()-Methode entspricht der Erstellung eines neuen Menüelements, das dem Menü hinzugefügt wird und dessen submenu-Eigenschaft ein NativeMenu-Objekt zugewiesen wird.

Hinweis: Wird ein Menü sich selbst als Untermenü hinzugefügt (Zirkelverweis), kann die Anwendung hängen bleiben.

clone Erstellt eine Kopie des Menüs und aller Elemente.flash.display:NativeMenu Erstellt eine Kopie des Menüs und aller Elemente. containsItem Gibt an, ob dieses Menü das angegebene Menüelement enthält.Der Wert ist true, wenn sich item in diesem Menü befindet. Booleanitemflash.display:NativeMenuItemDas zu suchende NativeMenuItem-Objekt. Gibt an, ob dieses Menü das angegebene Menüelement enthält. display Blendet dieses Menü an der angegebenen Position ein.stageflash.display:StageDas Stage-Objekt, für das dieses Menü angezeigt werden soll. stageXNumberDie Anzahl horizontaler Pixel in Bezug auf den Ursprungspunkt der Bühne, auf der dieses Menü angezeigt werden soll. stageYNumberDie Anzahl vertikaler Pixel in Bezug auf den Ursprungspunkt der Bühne, auf der dieses Menü angezeigt werden soll. Blendet dieses Menü an der angegebenen Position ein. getItemAt Ruft das Menüelement am angegebenen Index ab.Wenn sich index außerhalb der Grenzen des items-Arrays des Menüs befindet. RangeErrorRangeErrorDas NativeMenuItem-Objekt an der angegebenen Position im Menü. flash.display:NativeMenuItemindexintDie Position (auf Basis von Null) des zurückzugebenden Elements. Ruft das Menüelement am angegebenen Index ab. getItemByName Ruft das Menüelement mit dem angegebenen Namen ab.Das NativeMenuItem-Objekt mit dem angegebenen Namen oder null, wenn kein solches Element im Menü existiert. flash.display:NativeMenuItemnameStringDer zu suchende String. Ruft das Menüelement mit dem angegebenen Namen ab.

Hinweis: Die name-Eigenschaft von Menüelementen wird standardmäßig nicht zugewiesen.

getItemIndex Ruft die Position des angegebenen Elements ab.Die (auf null basierende) Position des angegebenen Elements in diesem Menü oder -1, wenn das Element nicht in diesem Menü enthalten ist. intitemflash.display:NativeMenuItemDas zu suchende NativeMenuItem-Objekt. Ruft die Position des angegebenen Elements ab. removeAllItems Entfernt alle Elemente aus dem Menü. Entfernt alle Elemente aus dem Menü. removeItemAt Bewirkt, dass das Menüelement am angegebenen Index entfernt und zurückgegeben wird.Wenn index sich außerhalb der Grenzen des items-Arrays des Menüs befindet. RangeErrorRangeErrorDas entfernte NativeMenuItem-Objekt. flash.display:NativeMenuItemindexintDie (auf null basierende) Position des zu entfernenden Elements. Bewirkt, dass das Menüelement am angegebenen Index entfernt und zurückgegeben wird. removeItem Entfernt das angegebene Menüelement.Wenn item nicht in diesem Menü enthalten ist. RangeErrorRangeErrorflash.display:NativeMenuItemitemflash.display:NativeMenuItemDas NativeMenuItem-Objekt, das aus diesem Menü entfernt werden soll. Entfernt das angegebene Menüelement. setItemIndex Verschiebt ein Menüelement an die angegebene Position.Wenn sich index außerhalb der Grenzen des items-Arrays des Menüs befindet. RangeErrorRangeErroritemflash.display:NativeMenuItemDas zu verschiebende NativeMenuItem-Objekt. indexintDie (auf null basierende) Position im Menü, an die item verschoben werden soll. Verschiebt ein Menüelement an die angegebene Position. Ist dieses Element noch nicht im Menü enthalten, wird es diesem durch Aufrufen dieser Methode hinzugefügt. isSupported Gibt an, ob das Clientsystem eine Form des nativen Menüs unterstützt.Boolean Gibt an, ob das Clientsystem eine Form des nativen Menüs unterstützt. flash.display.NativeWindow.supportsMenuflash.desktop.NativeApplicationitems Das Array der NativeMenuItem-Objekte in diesem Menü.Array Das Array der NativeMenuItem-Objekte in diesem Menü.

Das Array wird in der Anzeigereihenfolge sortiert.

Hinweis: Diese Eigenschaft ist in AIR 1.0 schreibgeschützt. In AIR 1.1 wurde der Modus in Lesen/Schreiben geändert.

numItems Die Anzahl der NativeMenuItem-Objekte in diesem Menü.int Die Anzahl der NativeMenuItem-Objekte in diesem Menü. parent Das übergeordnete Menü.flash.display:NativeMenu Das übergeordnete Menü.

Der parent-Parameter des Stammmenü-Objekts (oberste Ebene) ist null.

StageOrientation Die StageOrientation-Klasse definiert Konstanten, die die möglichen Ausrichtungen der Bühne und des Geräts aufzählen.Die StageOrientation-Klasse stellt Werte für die orientation-Eigenschaft der Stage-Klasse und für andere Eigenschaften und Methoden, bei denen auf die Bühnenausrichtung verwiesen wird, bereit. Object Die StageOrientation-Klasse definiert Konstanten, die die möglichen Ausrichtungen der Bühne und des Geräts aufzählen. flash.display.Stage.orientationflash.display.Stage.setOrientation()flash.display.Stage.deviceOrientationflash.events.StageOrientationEvent.afterOrientationflash.events.StageOrientationEvent.beforeOrientationDEFAULT Gibt an, dass sich die Bühne zurzeit in der Standardausrichtung des Geräts befindet (rechte Seite oben).defaultString Gibt an, dass sich die Bühne zurzeit in der Standardausrichtung des Geräts befindet (rechte Seite oben). ROTATED_LEFT Gibt an, dass die Bühne zurzeit in Relation zur Standardausrichtung nach links gedreht ist.rotatedLeftString Gibt an, dass die Bühne zurzeit in Relation zur Standardausrichtung nach links gedreht ist.

Hinweis: Wenn die Ausrichtung des Geräts nach links gedreht wird, muss die Ausrichtung der Bühne nach rechts gedreht werden, damit sie aufrecht bleibt.

ROTATED_RIGHT Gibt an, dass die Bühne zurzeit in Relation zur Standardausrichtung nach rechts gedreht ist.rotatedRightString Gibt an, dass die Bühne zurzeit in Relation zur Standardausrichtung nach rechts gedreht ist.

Hinweis: Wenn die Ausrichtung des Geräts nach rechts gedreht wird, muss die Ausrichtung der Bühne nach links gedreht werden, damit sie aufrecht bleibt.

UNKNOWN Gibt an, dass das Gerät noch keine Ausrichtung bestimmt hat.unknownString Gibt an, dass das Gerät noch keine Ausrichtung bestimmt hat. Dieser Zustand kann eintreten, wenn das Gerät flach auf dem Tisch liegt, und auch, während die Anwendung initialisiert wird. UPSIDE_DOWN Gibt an, dass die Bühne zurzeit in Relation zur Standardausrichtung auf dem Kopf steht.upsideDownString Gibt an, dass die Bühne zurzeit in Relation zur Standardausrichtung auf dem Kopf steht.
DisplayObjectContainer Die DisplayObjectContainer-Klasse ist die Basisklasse für alle Objekte, die in der Anzeigeliste als Anzeigeobjekt-Container eingesetzt werden können.Die abstrakte Basisklasse für alle Anzeigeobjekte, denen andere Objekte untergeordnet werden können. flash.display:InteractiveObject Die DisplayObjectContainer-Klasse ist die Basisklasse für alle Objekte, die in der Anzeigeliste als Anzeigeobjekt-Container eingesetzt werden können. Die Anzeigeliste verwaltet alle Objekte, die in den Flash-Laufzeitumgebungen angezeigt werden. Um die Anzeigeobjekte innerhalb der Anzeigeliste anzuordnen, verwenden Sie die DisplayObjectContainer-Klasse. Jedes DisplayObjectContainer-Objekt besitzt seine eigene Child-Liste zum Organisieren der z-Reihenfolge der Objekte. Die z-Reihenfolge ist die Anordnung von vorne nach hinten und bestimmt, welches Objekt im Vordergrund angezeigt wird, welches dahinter usw.

DisplayObject ist eine abstrakte Basisklasse. Daher können Sie DisplayObject nicht direkt aufrufen. Durch das Aufrufen von new DisplayObject() wird eine ArgumentError-Ausnahme ausgelöst.

Die DisplayObjectContainer-Klasse ist eine abstrakte Basisklasse für alle Objekte, denen andere Objekte untergeordnet werden können. Sie kann nicht direkt instanziiert werden. Beim Aufrufen des Konstruktors new DisplayObjectContainer() wird eine ArgumentError-Ausnahme ausgelöst.

Weitere Informationen finden Sie im Kapitel „Programmierung von Anzeigeobjekten“ des ActionScript 3.0 Entwicklerhandbuchs.

Im folgenden Beispiel wird die Klasse DisplayObjectContainerExample verwendet, um nacheinander fünf orangefarbene Quadrate zu erstellen. Dies wird in den folgenden Schritten erreicht:
  1. Der Konstruktor ruft die configureAssets()-Methode auf.
  2. Die configureAssets()-Methode erstellt child- und lastChild-Sprite-Objekte.
  3. Eine for-Schleife erstellt die fünf orangefarbenen Quadrate und ordnet sie nacheinander an.
  4. Immer wenn ein CustomSprite-Objekt erstellt wird, ruft der dazugehörige Konstruktor die draw()-Methode des CustomSprite-Objekts auf. Die Methode erstellt ein Quadrat der Größe 50 x 50 Pixel, indem sie die Methoden beginFill(), drawRect() und endFill() der Graphics-Klasse aufruft. Die addChild()-Methode fügt die einzelnen Quadrate der Anzeigeliste hinzu.
package { import flash.display.DisplayObject; import flash.display.Sprite; public class DisplayObjectContainerExample extends Sprite { private var gutter:uint = 5; private var childCount:uint = 5; public function DisplayObjectContainerExample() { configureAssets(); } private function configureAssets():void { var child:Sprite = new CustomSprite(); var lastChild:Sprite = child; for (var i:uint = 1; i <= childCount; i++) { child = new CustomSprite(); child.x = lastChild.x + lastChild.width + gutter; addChild(child); lastChild = child; } } } } import flash.display.Sprite; class CustomSprite extends Sprite { private var size:uint = 50; private var bgColor:uint = 0xFFCC00; public function CustomSprite() { draw(size, size); } private function draw(w:uint, h:uint):void { graphics.beginFill(bgColor); graphics.drawRect(0, 0, w, h); graphics.endFill(); } }
flash.display.DisplayObjectDisplayObjectContainer Durch das Aufrufen des Konstruktors „new DisplayObjectContainer()“ wird eine ArgumentError-Ausnahme ausgelöst. Durch das Aufrufen des Konstruktors new DisplayObjectContainer() wird eine ArgumentError-Ausnahme ausgelöst. Sie können jedoch Konstruktoren für die folgenden Unterklassen von „DisplayObjectContainer“ aufrufen:
  • new Loader()
  • new Sprite()
  • new MovieClip()
addChildAt Fügt dieser DisplayObjectContainer-Instanz eine untergeordnete DisplayObject-Instanz hinzu. Wird ausgelöst, wenn die Indexposition in der untergeordneten Liste nicht existiert. RangeErrorRangeErrorWird ausgelöst, wenn das untergeordnete Objekt mit dem übergeordneten Objekt identisch ist. Wird auch ausgelöst, wenn es sich beim Aufrufer um ein untergeordnetes Objekt (oder ein noch weiter untergeordnetes Objekt usw.) des hinzugefügten untergeordneten Objekts handelt. ArgumentErrorArgumentErrorDie DisplayObject-Instanz, die Sie im Parameter child übergeben. flash.display:DisplayObjectchildflash.display:DisplayObjectDie DisplayObject-Instanz, die der DisplayObjectContainer-Instanz untergeordnet werden soll. indexintDie Indexposition, an der die untergeordnete Instanz hinzugefügt wird. Wenn Sie eine gerade besetzte Indexposition angeben, werden das untergeordnete Objekt an dieser Stelle sowie alle darüber liegenden Positionen innerhalb der Child-Liste um eine Position nach oben verschoben. Fügt dieser DisplayObjectContainer-Instanz ein untergeordnetes Objekt hinzu. Fügt dieser DisplayObjectContainer-Instanz eine untergeordnete DisplayObject-Instanz hinzu. Das untergeordnete Objekt wird an der angegebenen Indexposition eingefügt. Die Indexposition 0 bezeichnet das hintere (untere) Ende der Anzeigeliste für dieses DisplayObjectContainer-Objekt.

Das folgende Beispiel enthält z. B. drei Anzeigeobjekte mit der Bezeichnung a, b und c jeweils an den Indexpositionen 0, 1 und 2:

Wenn Sie ein Child-Objekt hinzufügen, das bereits einem anderen Anzeigeobjektcontainer untergeordnet worden ist, wird es aus dessen Child-Liste entfernt.

Im folgenden Beispiel wird ein container-Anzeigeobjekt-Container erstellt und der dazugehörigen Anzeigeliste ein circle1-Objekt eines Anzeigeobjekts hinzugefügt. Durch das Aufrufen von container.addChildAt(circle2, 0) wird anschließend das circle2-Objekt an Indexposition null (im Hintergrund) hinzugefügt und das circle1-Objekt an Indexposition 1 verschoben: import flash.display.Sprite; var container:Sprite = new Sprite(); var circle1:Sprite = new Sprite(); var circle2:Sprite = new Sprite(); container.addChild(circle1); container.addChildAt(circle2, 0); trace(container.getChildAt(0) == circle2); // true trace(container.getChildAt(1) == circle1); // true
addChild()addedflash.events:EventWird ausgelöst, wenn ein Objekt der Anzeigeliste hinzugefügt wird. Wird ausgelöst, wenn ein Objekt der Anzeigeliste hinzugefügt wird.
addChild Fügt dieser DisplayObjectContainer-Instanz eine untergeordnete DisplayObject-Instanz hinzu. Wird ausgelöst, wenn das untergeordnete Objekt mit dem übergeordneten Objekt identisch ist. Wird auch ausgelöst, wenn es sich beim Aufrufer um ein untergeordnetes Objekt (oder ein noch weiter untergeordnetes Objekt usw.) des hinzugefügten untergeordneten Objekts handelt. ArgumentErrorArgumentErrorDie DisplayObject-Instanz, die Sie im Parameter child übergeben. flash.display:DisplayObjectchildflash.display:DisplayObjectDie DisplayObject-Instanz, die der DisplayObjectContainer-Instanz untergeordnet werden soll. Fügt dieser DisplayObjectContainer-Instanz ein untergeordnetes Objekt hinzu. Fügt dieser DisplayObjectContainer-Instanz eine untergeordnete DisplayObject-Instanz hinzu. Die untergeordnete Instanz wird allen anderen untergeordneten Objekten dieser DisplayObjectContainer-Instanz an der ersten Position (also oben) hinzugefügt. (Um ein untergeordnetes Objekt an einer bestimmten Indexposition hinzuzufügen, verwenden Sie die addChildAt()-Methode.)

Wenn Sie ein Child-Objekt hinzufügen, das bereits einem anderen Anzeigeobjektcontainer untergeordnet worden ist, wird es aus dessen Child-Liste entfernt.

Hinweis: Der Befehl stage.addChild() kann mit einer veröffentlichten SWF-Datei Probleme verursachen, darunter Sicherheitsprobleme und Konflikte mit anderen geladenen SWF-Dateien. In einer Flash-Laufzeitinstanz gibt es immer nur eine Bühne, unabhängig davon, wie viele SWF-Dateien Sie in die Laufzeitumgebung laden. Im Allgemeinen sollten Objekte deshalb gar nicht direkt zur Bühne hinzugefügt werden. Das einzige Objekt, dass die Bühne enthalten sollte, ist das Stammobjekt. Erstellen Sie einen DisplayObjectContainer, um alle Elemente der Anzeigeliste aufzunehmen. Falls erforderlich, fügen Sie diese DisplayObjectContainer-Instanz dann der Bühne hinzu.

Im folgenden Beispiel werden zwei Sprite-Objekte mit den Namen container1 und container2 festgelegt. Bei einem Sprite-Objekt handelt es sich um eine Art von Anzeigeobjekt-Container. Das Beispiel ruft die addChild()-Methode auf, um die Anzeigehierarchie festzulegen: container1 ist ein untergeordnetes Objekt von container2. Zwei andere Anzeigeobjekte, circle1 und circle2, sind untergeordnete Objekte von container1. Die Aufrufe der trace()-Methode zeigen für die einzelnen Objekte jeweils die Anzahl der untergeordneten Objekte an. Dabei ist zu beachten, dass untergeordnete Objekte der Ebenen darunter für die numChildren-Anzahl nicht berücksichtigt werden: import flash.display.Sprite; var container1:Sprite = new Sprite(); var container2:Sprite = new Sprite(); var circle1:Sprite = new Sprite(); circle1.graphics.beginFill(0xFFCC00); circle1.graphics.drawCircle(40, 40, 40); var circle2:Sprite = new Sprite(); circle2.graphics.beginFill(0x00CCFF); circle2.graphics.drawCircle(80, 40, 40); container2.addChild(container1); container1.addChild(circle1); container1.addChild(circle2); trace(container1.numChildren); // 2 trace(container2.numChildren); // 1 trace(circle1.numChildren); // 0 trace(circle2.numChildren); // 0
addChildAt()addedflash.events:EventWird ausgelöst, wenn ein Objekt der Anzeigeliste hinzugefügt wird. Wird ausgelöst, wenn ein Objekt der Anzeigeliste hinzugefügt wird.
areInaccessibleObjectsUnderPoint Gibt an, ob aufgrund der Sicherheitseinschränkungen irgendwelche Anzeigeobjekte aus der Liste ausgeschlossen werden, die beim Aufrufen der DisplayObjectContainer.getObjectsUnderPoint()-Methode mit dem angegebenen point-Punkt zurückgegeben wird.true, wenn der Punkt untergeordnete Anzeigeobjekte mit Sicherheitseinschränkungen enthält. Booleanpointflash.geom:PointDer Punkt, unter dem nachgeschaut werden soll. Gibt an, ob aufgrund der Sicherheitseinschränkungen irgendwelche Anzeigeobjekte aus der Liste ausgeschlossen werden, die beim Aufrufen der DisplayObjectContainer.getObjectsUnderPoint()-Methode mit dem angegebenen point-Punkt zurückgegeben wird. Standardmäßig können Inhalte aus der Domäne nicht auf Objekte aus einer anderen Domäne zugreifen, wenn ihnen dies nicht durch den Aufruf der Security.allowDomain()-Methode ausdrücklich erlaubt worden ist. Weitere Informationen zum Thema Sicherheit finden Sie im Flash Player Developer Center im Abschnitt Sicherheit.

Der Parameter point befindet sich im Koordinatenraum der Bühne, der vom Koordinatenraum des Anzeigeobjekt-Containers abweichen kann (wenn der Anzeigeobjekt-Container nicht gerade die Bühne selbst ist). Mithilfe der Methoden globalToLocal() und localToGlobal() können Sie Punkte zwischen diesen Koordinatenräumen konvertieren.

Der folgende Code erstellt einen Anzeigeobjekt-Container mit dem Namen container. Im nächste Codeblock wird ein Loader-Objekt verwendet, um eine JPEG-Datei mit dem Namen „test.jpg“ von einem Remote-Server zu laden. Beachten Sie, dass die checkPolicyFile-Eigenschaft des LoaderContext-Objekts, die in der load()-Methode als Parameter verwendet wird, auf false gesetzt ist. Nachdem die Datei geladen wurde, ruft der Code die loaded()-Methode auf, die wiederum container.areInaccessibleObjectsUnderPoint() aufruft, sodass der Wert true zurückgegeben wird, da angenommen wird, dass der Inhalt aus einer unzugänglichen Domäne stammt: import flash.display.Sprite; import flash.display.Loader; import flash.system.LoaderContext; import flash.net.URLRequest; import flash.events.Event; import flash.geom.Point; var container:Sprite = new Sprite(); var urlReq:URLRequest = new URLRequest("http://localhost/RemoteFile.swf"); var ldr:Loader = new Loader(); var context:LoaderContext = new LoaderContext(); context.checkPolicyFile = false; ldr.load(urlReq, context); ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, loaded); ldr.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, urlNotFound); function loaded(event:Event):void { var pt:Point = new Point(1, 1); trace(container.areInaccessibleObjectsUnderPoint(pt)); // true } function urlNotFound(event:Event):void { trace("The URL was not found."); } Bei diesem Beispiel wird außerdem angenommen, dass die von diesem Code erzeugte SWF-Datei aus einer anderen Domäne als die der JPEG-Datei geladen wird und dass die geladene JPEG-Datei den Punkt (1, 1) einnimmt.
flash.system.Security.allowDomain()getObjectsUnderPoint()DisplayObject.globalToLocal()DisplayObject.localToGlobal()
contains Ermittelt, ob das angegebene Anzeigeobjekt der DisplayObjectContainer-Instanz oder der Instanz selbst untergeordnet ist.Ist auf true eingestellt, wenn das child-Objekt ein untergeordnetes Objekt der DisplayObjectContainer-Instanz oder des Containers selbst ist. Andernfalls ist false eingestellt. Booleanchildflash.display:DisplayObjectDas zu prüfende untergeordnete Objekt. Ermittelt, ob das angegebene Anzeigeobjekt der DisplayObjectContainer-Instanz oder der Instanz selbst untergeordnet ist. Die Suche umfasst die gesamte Anzeigeliste einschließlich dieser DisplayObjectContainer-Instanz. Für Objekte, die über mehrere Ebenen hinweg untergeordnet sind, wird der Wert true zurückgegeben. Im folgenden Beispiel werden einige Sprite-Objekte eingerichtet und in einigen Fällen der Child-Liste von anderen Objekten hinzugefügt. (Bei einem Sprite-Objekt handelt es sich um eine Art von Anzeigeobjekt-Container.) Die Beziehung zwischen verschiedenen Objekten wird angezeigt, indem die contains()-Methode aufgerufen wird: import flash.display.Sprite; var sprite1:Sprite = new Sprite(); var sprite2:Sprite = new Sprite(); var sprite3:Sprite = new Sprite(); var sprite4:Sprite = new Sprite(); sprite1.addChild(sprite2); sprite2.addChild(sprite3); trace(sprite1.contains(sprite1)); // true trace(sprite1.contains(sprite2)); // true trace(sprite1.contains(sprite3)); // true trace(sprite1.contains(sprite4)); // false getChildAt Gibt die untergeordnete Anzeigeobjektinstanz zurück, die sich an der angegebenen Indexposition befindet.Wird ausgelöst, wenn der Index in der Child-Liste nicht existiert. RangeErrorRangeErrorDas untergeordnete Anzeigeobjekt ist Teil einer Sicherheits-Sandbox, auf die Sie keinen Zugriff haben. Sie können diese Situation vermeiden, indem Sie im untergeordneten Film die Security.allowDomain()-Methode aufrufen. SecurityErrorSecurityErrorDas untergeordnete Anzeigeobjekt an der angegebenen Indexposition. flash.display:DisplayObjectindexintDie Indexposition des untergeordneten Objekts. Gibt die untergeordnete Anzeigeobjektinstanz zurück, die sich an der angegebenen Indexposition befindet. Im folgenden Beispiel wird ein Anzeigeobjekt-Container mit dem Namen container erstellt, und der Child-Liste des container-Objekts werden dann drei Anzeigeobjekte hinzugefügt. Die Aufrufe der getChildAt()-Methode zeigen für die einzelnen untergeordneten Objekte jeweils die Position an: import flash.display.Sprite; var container:Sprite = new Sprite(); var sprite1:Sprite = new Sprite(); var sprite2:Sprite = new Sprite(); var sprite3:Sprite = new Sprite(); container.addChild(sprite1); container.addChild(sprite2); container.addChildAt(sprite3, 0); trace(container.getChildAt(0) == sprite3); // true trace(container.getChildAt(1) == sprite1); // true trace(container.getChildAt(2) == sprite2); // true getChildByName()getChildByName Gibt das untergeordnete Anzeigeobjekt für den angegebenen Namen zurück.Das untergeordnete Anzeigeobjekt ist Teil einer Sicherheits-Sandbox, auf die Sie keinen Zugriff haben. Sie können diese Situation vermeiden, indem Sie den untergeordneten Film die Security.allowDomain()-Methode aufrufen lassen. SecurityErrorSecurityErrorDas untergeordnete Anzeigeobjekt für den angegebenen Namen. flash.display:DisplayObjectnameStringDer Name des untergeordneten Objekts, das zurückgegeben werden soll. Gibt das untergeordnete Anzeigeobjekt für den angegebenen Namen zurück. Wenn mehrere untergeordnete Anzeigeobjekte den angegebenen Namen aufweisen, gibt die Methode das erste Objekt in der Child-Liste zurück.

Die getChildAt()-Methode ist schneller als die getChildByName()-Methode. Die getChildAt()-Methode greift über ein zwischengespeichertes Array auf ein untergeordnetes Objekt zu, während die getChildByName()-Methode eine verknüpfte Liste durchlaufen muss, um auf ein untergeordnetes Objekt zuzugreifen.

Im folgenden Beispiel wird ein Anzeigeobjekt-Container mit dem Namen container erstellt, dem dann zwei untergeordnete Anzeigeobjekte hinzugefügt werden. Der Code ruft anschließend die Methoden getChildByName() und getChildIndex() auf, um die Indexposition für das untergeordnete Objekt des container-Objekts zurückzugeben, für das name "sprite1" gilt. import flash.display.Sprite; import flash.display.DisplayObject; var container:Sprite = new Sprite(); var sprite1:Sprite = new Sprite(); sprite1.name = "sprite1"; var sprite2:Sprite = new Sprite(); sprite2.name = "sprite2"; container.addChild(sprite1); container.addChild(sprite2); var target:DisplayObject = container.getChildByName("sprite1"); trace(container.getChildIndex(target)); // 0
getChildAt()flash.display.DisplayObject.name
getChildIndex Gibt die Indexposition einer untergeordneten DisplayObject-Instanz zurück.Wird ausgelöst, wenn der child-Parameter kein untergeordnetes Objekt dieses Objekts ist. ArgumentErrorArgumentErrorDie Indexposition des untergeordneten Anzeigeobjekts, das identifiziert werden soll. intchildflash.display:DisplayObjectDie DisplayObject-Instanz, die identifiziert werden soll. Gibt die Indexzahl einer child-DisplayObject-Instanz zurück. Gibt die Indexposition einer child-DisplayObject-Instanz zurück. Im folgenden Beispiel wird ein Anzeigeobjekt-Container mit dem Namen container erstellt, dem dann zwei untergeordnete Anzeigeobjekte hinzugefügt werden. Der Code ruft anschließend die Methoden getChildByName() und getChildIndex() auf, um die Indexposition für das untergeordnete Objekt des container-Objekts zurückzugeben, für das name "sprite1" gilt. import flash.display.Sprite; import flash.display.DisplayObject; var container:Sprite = new Sprite(); var sprite1:Sprite = new Sprite(); sprite1.name = "sprite1"; var sprite2:Sprite = new Sprite(); sprite2.name = "sprite2"; container.addChild(sprite1); container.addChild(sprite2); var target:DisplayObject = container.getChildByName("sprite1"); trace(container.getChildIndex(target)); // 0 getObjectsUnderPoint Gibt ein Array an Objekten zurück, die unter dem angegebenen Punkt liegen und dieser DisplayObjectContainer-Instanz untergeordnet sind (auch über mehrere Unterordnungsstufen hinweg).Ein Array an Objekten, die unter dem angegebenen Punkt liegen und dieser DisplayObjectContainer-Instanz untergeordnet sind (auch über mehrere Unterordnungsstufen hinweg). Arraypointflash.geom:PointDer Punkt, unter dem nachgeschaut werden soll. Gibt ein Array an Objekten zurück, die unter dem angegebenen Punkt liegen und dieser DisplayObjectContainer-Instanz untergeordnet sind (auch über mehrere Unterordnungsstufen hinweg). Untergeordnete Objekte, die aus Sicherheitsgründen nicht zugänglich sind, sind in dem zurückgegebenen Array ausgelassen. Um festzustellen, ob sich diese Sicherheitseinschränkung auf das zurückgegebene Array auswirkt, rufen Sie die areInaccessibleObjectsUnderPoint()-Methode auf.

Der Parameter point befindet sich im Koordinatenraum der Bühne, der vom Koordinatenraum des Anzeigeobjekt-Containers abweichen kann (wenn der Anzeigeobjekt-Container nicht gerade die Bühne selbst ist). Mithilfe der Methoden globalToLocal() und localToGlobal() können Sie Punkte zwischen diesen Koordinatenräumen konvertieren.

Im folgenden Beispiel wird ein Anzeigeobjekt-Container mit dem Namen container erstellt, dem dann zwei überlappende untergeordnete Anzeigeobjekte hinzugefügt werden. Der Code ruft getObjectsUnderPoint() zweimal auf (zuerst unter Verwendung eines Punkts, der nur ein Objekt berührt, und dann mit einem Punkt, an dem die Objekte überlappen) und der length-Wert des zurückgegebenen Arrays zeigt die Anzahl an Objekten für die einzelnen Punkte des Containers an: import flash.display.Sprite; import flash.geom.Point; var container:Sprite = new Sprite(); var square1:Sprite = new Sprite(); square1.graphics.beginFill(0xFFCC00); square1.graphics.drawRect(0, 0, 40, 40); var square2:Sprite = new Sprite(); square2.graphics.beginFill(0x00CCFF); square2.graphics.drawRect(20, 0, 30, 40); container.addChild(square1); container.addChild(square2); var pt:Point = new Point(10, 20); var objects:Array = container.getObjectsUnderPoint(pt); trace(objects.length); // 1 pt = new Point(35, 20); objects = container.getObjectsUnderPoint(pt); trace(objects.length); // 2
areInaccessibleObjectsUnderPoint()DisplayObject.globalToLocal()DisplayObject.localToGlobal()
removeChildAt Entfernt ein untergeordnetes Anzeigeobjekt aus der angegebenen Indexposition in der Child-Liste des Anzeigeobjekt-Containers.Das untergeordnete Anzeigeobjekt ist Teil einer Sicherheits-Sandbox, auf die das aufrufende Objekt keinen Zugriff hat. Sie können diese Situation vermeiden, indem Sie den untergeordneten Film die Security.allowDomain()-Methode aufrufen lassen. SecurityErrorSecurityErrorWird ausgelöst, wenn der Index in der Child-Liste nicht existiert. RangeErrorRangeErrorDie entfernte DisplayObject-Instanz. flash.display:DisplayObjectindexintDie Child-Indexposition des zu entfernenden Anzeigeobjekts. Entfernt an der angegebenen index-Position ein untergeordnetes Anzeigeobjekt aus der DisplayObjectContainer-Instanz. Entfernt ein untergeordnetes Anzeigeobjekt aus der angegebenen index-Position in der Child-Liste des Anzeigeobjekt-Containers. Die parent-Eigenschaft des entfernten untergeordneten Objekts wird auf null gesetzt, und das Objekt wird vom Garbage Collector entfernt, wenn keine anderen Verweise auf das untergeordnete Objekt existieren. Die Indexpositionen von Anzeigeobjekten über dem untergeordneten Objekt im Anzeigeobjekt-Container werden um jeweils 1 herabgesetzt.

Der Garbage Collector weist nicht verwendete Speicherkapazität neu zu. Wenn auf Variablen oder Objekte nicht mehr aktiv verwiesen wird und diese auch nirgends mehr gespeichert sind, werden sie vom Garbagekollektor entfernt, und der belegte Arbeitsspeicher wird bereinigt.

Im folgenden Beispiel wird ein Anzeigeobjekt-Container mit dem Namen container erstellt, dem dann zwei untergeordnete Anzeigeobjekte hinzugefügt werden. Der Code zeigt, dass beim Aufrufen der removeChildAt()-Methode zum Entfernen des untergeordneten Objekts an der untersten Indexposition (0) alle anderen untergeordneten Objekte der Liste um eine Position nach unten verschoben werden: import flash.display.Sprite; var container:Sprite = new Sprite(); var sprite1:Sprite = new Sprite(); sprite1.name = "sprite1"; var sprite2:Sprite = new Sprite(); sprite2.name = "sprite2"; container.addChild(sprite1); container.addChild(sprite2); trace(container.numChildren) // 2 container.removeChildAt(0); trace(container.numChildren) // 1 trace(container.getChildAt(0).name); // sprite2
removeChild Entfernt die angegebene untergeordnete DisplayObject-Instanz aus der Child-Liste der DisplayObjectContainer-Instanz.Wird ausgelöst, wenn der child-Parameter kein untergeordnetes Objekt dieses Objekts ist. ArgumentErrorArgumentErrorDie DisplayObject-Instanz, die Sie im Parameter child übergeben. flash.display:DisplayObjectchildflash.display:DisplayObjectDie zu entfernende DisplayObject-Instanz. Entfernt ein child-Anzeigeobjekt aus der DisplayObjectContainer-Instanz. Entfernt die angegebene child-DisplayObject-Instanz aus der Child-Liste der DisplayObjectContainer-Instanz. Die parent-Eigenschaft des entfernten untergeordneten Objekts wird auf null gesetzt, und das Objekt wird vom Garbage Collector entfernt, wenn keine anderen Verweise auf das untergeordnete Objekt existieren. Die Indexpositionen von Anzeigeobjekten über dem untergeordneten Objekt im Anzeigeobjekt-Container werden um jeweils 1 herabgesetzt.

Der Garbage Collector weist nicht verwendete Speicherkapazität neu zu. Wenn auf Variablen oder Objekte nicht mehr aktiv verwiesen wird und diese auch nirgends mehr gespeichert sind, werden sie vom Garbagekollektor entfernt, und der belegte Arbeitsspeicher wird bereinigt.

Im folgenden Beispiel wird ein Anzeigeobjekt-Container mit dem Namen container erstellt, dem dann zwei untergeordnete Anzeigeobjekte hinzugefügt werden. Dem container-Objekt wird ein Ereignis-Listener hinzugefügt, damit beim Klicken auf das untergeordnete Objekt des Containers durch Benutzer die removeChild()-Methode verwendet wird, um das untergeordnete Objekt zu entfernen, auf das über die Child-Liste des Containers geklickt wurde: import flash.display.DisplayObject; import flash.display.Sprite; import flash.events.MouseEvent; var container:Sprite = new Sprite(); addChild(container); var circle1:Sprite = new Sprite(); circle1.graphics.beginFill(0xFFCC00); circle1.graphics.drawCircle(40, 40, 40); var circle2:Sprite = new Sprite(); circle2.graphics.beginFill(0x00CCFF); circle2.graphics.drawCircle(120, 40, 40); container.addChild(circle1); container.addChild(circle2); container.addEventListener(MouseEvent.CLICK, clicked); function clicked(event:MouseEvent):void { container.removeChild(DisplayObject(event.target)); }
setChildIndex Ändert die Position eines vorhandenen untergeordneten Objekts im Anzeigeobjekt-Container.Wird ausgelöst, wenn der Index in der Child-Liste nicht existiert. RangeErrorRangeErrorWird ausgelöst, wenn der child-Parameter kein untergeordnetes Objekt dieses Objekts ist. ArgumentErrorArgumentErrorchildflash.display:DisplayObjectDie child-DisplayObject-Instanz, deren Indexnummer Sie ändern möchten. indexintDie resultierende Indexnummer für das child-Anzeigeobjekt. Ändert die Indexzahl eines vorhandenen untergeordneten Objekts. Ändert die Position eines vorhandenen untergeordneten Objekts im Anzeigeobjekt-Container. Dies wirkt sich auf die Anordnung der untergeordneten Objekte aus. Das folgende Beispiel enthält z. B. drei Anzeigeobjekte mit der Bezeichnung a, b und c jeweils an den Indexpositionen 0, 1 und 2:

Wenn Sie die setChildIndex()-Methode verwenden und eine bereits belegte Indexposition angeben, werden nur die Positionen zwischen der alten und der neuen Position des Anzeigeobjekts geändert. Alle anderen Positionen bleiben unverändert. Wenn ein untergeordnetes Objekt an eine NIEDRIGERE Indexposition als bisher verschoben wird, werden alle dazwischen liegenden untergeordneten Objekte für den Indexverweis um 1 ERHÖHT. Wenn ein untergeordnetes Objekt an eine HÖHERE Indexposition als bisher verschoben wird, werden alle dazwischen liegenden untergeordneten Objekte für den Indexverweis um 1 VERRINGERT. Wenn der Anzeigeobjekt-Container im vorigen Beispiel z. B. den Namen container hat, können Sie die Position der Anzeigeobjekte mit den Bezeichnungen a und b austauschen, indem Sie den folgenden Code aufrufen:

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

Dieser Code führt zur folgenden Objektanordnung:

Im folgenden Beispiel wird ein Anzeigeobjekt-Container mit dem Namen container erstellt, dem dann drei leicht überlappende untergeordnete Anzeigeobjekte hinzugefügt werden. Wenn Benutzer auf eines dieser Objekte klicken, ruft die clicked()-Methode die setChildIndex()-Methode auf, um das entsprechende Objekt in der Child-Liste des container-Objekts an die oberste Position zu verschieben: import flash.display.Sprite; import flash.events.MouseEvent; var container:Sprite = new Sprite(); addChild(container); var circle1:Sprite = new Sprite(); circle1.graphics.beginFill(0xFF0000); circle1.graphics.drawCircle(40, 40, 40); circle1.addEventListener(MouseEvent.CLICK, clicked); var circle2:Sprite = new Sprite(); circle2.graphics.beginFill(0x00FF00); circle2.graphics.drawCircle(100, 40, 40); circle2.addEventListener(MouseEvent.CLICK, clicked); var circle3:Sprite = new Sprite(); circle3.graphics.beginFill(0x0000FF); circle3.graphics.drawCircle(70, 80, 40); circle3.addEventListener(MouseEvent.CLICK, clicked); container.addChild(circle1); container.addChild(circle2); container.addChild(circle3); addChild(container); function clicked(event:MouseEvent):void { var circle:Sprite = Sprite(event.target); var topPosition:uint = container.numChildren - 1; container.setChildIndex(circle, topPosition); }
addChildAt()getChildIndex()
swapChildrenAt Kehrt die z-Reihenfolge (von vorne nach hinten) der untergeordneten Objekte an den beiden angegebenen Indexpositionen in der Child-Liste um.Wenn beide Indizes in der Child-Liste nicht existieren. RangeErrorRangeErrorindex1intDie Indexposition des ersten untergeordneten Objekts. index2intDie Indexposition des zweiten untergeordneten Objekts. Kehrt die z-Reihenfolge (von vorne nach hinten) der untergeordneten Objekte an den beiden angegebenen Indexpositionen in der Child-Liste um. Alle anderen untergeordneten Objekte im Anzeigeobjekt-Container bleiben auf derselben Indexposition. Im folgenden Beispiel wird ein Anzeigeobjekt-Container mit dem Namen container erstellt. Im nächsten Schritt werden dem Container dann drei untergeordnete Anzeigeobjekte hinzugefügt, und es wird gezeigt, wie das Aufrufen der swapChildrenAt()-Methode eine neue Anordnung der Child-Liste des Anzeigeobjekt-Containers durchführt. import flash.display.Sprite; var container:Sprite = new Sprite(); var sprite1:Sprite = new Sprite(); sprite1.name = "sprite1"; var sprite2:Sprite = new Sprite(); sprite2.name = "sprite2"; var sprite3:Sprite = new Sprite(); sprite3.name = "sprite3"; container.addChild(sprite1); container.addChild(sprite2); container.addChild(sprite3); trace(container.getChildAt(0).name); // sprite1 trace(container.getChildAt(1).name); // sprite2 trace(container.getChildAt(2).name); // sprite3 container.swapChildrenAt(0, 2); trace(container.getChildAt(0).name); // sprite3 trace(container.getChildAt(1).name); // sprite2 trace(container.getChildAt(2).name); // sprite1 swapChildren Kehrt die z-Reihenfolge (von vorne nach hinten) der beiden angegebenen untergeordneten Objekte um.Wird ausgelöst, wenn keiner der beiden child-Parameter diesem Objekt untergeordnet ist. ArgumentErrorArgumentErrorchild1flash.display:DisplayObjectDas erste untergeordnete Objekt. child2flash.display:DisplayObjectDas zweite untergeordnete Objekt. Kehrt die z-Reihenfolge (von vorne nach hinten) der beiden angegebenen untergeordneten Objekte um. Alle anderen untergeordneten Objekte im Anzeigeobjekt-Container bleiben auf derselben Indexposition. Im folgenden Beispiel wird ein Anzeigeobjekt-Container mit dem Namen container erstellt. Im nächsten Schritt werden dem Container dann zwei untergeordnete Anzeigeobjekte hinzugefügt, und es wird gezeigt, wie sich das Aufrufen der swapChildren()-Methode auswirkt: import flash.display.Sprite; var container:Sprite = new Sprite(); var sprite1:Sprite = new Sprite(); sprite1.name = "sprite1"; var sprite2:Sprite = new Sprite(); sprite2.name = "sprite2"; container.addChild(sprite1); container.addChild(sprite2); trace(container.getChildAt(0).name); // sprite1 trace(container.getChildAt(1).name); // sprite2 container.swapChildren(sprite1, sprite2); trace(container.getChildAt(0).name); // sprite2 trace(container.getChildAt(1).name); // sprite1 mouseChildren Bestimmt, ob die untergeordneten Elemente des Objekts maus- oder benutzereingabegerätfähig sind oder nicht.Boolean Bestimmt, ob die untergeordneten Elemente des Objekts maus- oder benutzereingabegerätfähig sind oder nicht. Wenn ein Objekt aktiviert ist, kann ein Benutzer damit interagieren, indem er eine Maus oder ein anderes Benutzereingabegerät verwendet. Der Standardwert lautet true.

Diese Eigenschaft ist praktisch, wenn Sie eine Schaltfläche mit einer Instanz der Sprite-Klasse (anstelle der SimpleButton-Klasse) erstellen. Wenn Sie zum Erstellen einer Schaltfläche eine Sprite-Instanz verwenden, können Sie die Schaltfläche ausrüsten und mithilfe der addChild()-Methode zusätzliche Sprite-Instanzen hinzufügen. Dieser Vorgang kann zu unerwarteten Verhaltensweisen bei Mausereignissen führen, da die untergeordneten Sprite-Instanzen zum Zielobjekt eines Mausereignisses werden können, wenn eigentlich die übergeordnete Instanz des Zielobjekts erwartet wird. Um sicherzustellen, dass die übergeordnete Instanz als Zielobjekt für Mausereignisse dient, können Sie die mouseChildren-Eigenschaft der übergeordneten Instanz auf false setzen.

Durch das Festlegen dieser Eigenschaft wird kein Ereignis ausgelöst. Um interaktive Funktionalität zu erzielen, müssen Sie die addEventListener()-Methode verwenden.

Im folgenden Beispiel wird ein Sprite-Objekt (eine Art von Anzeigeobjekt-Container) mit dem Namen container eingerichtet. Daran wird gezeigt, dass, wenn Sie dessen mouseChildren-Eigenschaft auf false setzen, das Ziel eines mouseClick-Ereignisses das container-Objekt ist, anstatt eines der untergeordneten Objekte: import flash.display.Sprite; import flash.events.MouseEvent; var container:Sprite = new Sprite(); container.name = "container"; addChild(container); var circle:Sprite = new Sprite(); circle.name = "circle"; circle.graphics.beginFill(0xFFCC00); circle.graphics.drawCircle(40, 40, 40); container.addChild(circle); container.mouseChildren = false; container.addEventListener(MouseEvent.CLICK, clicked); function clicked(event:MouseEvent):void { trace(event.target.name); // container }
flash.display.Sprite.buttonModeflash.events.EventDispatcher.addEventListener()
numChildren Liefert die Anzahl der Objekte, die diesem Objekt untergeordnet sind.int Liefert die Anzahl der Objekte, die diesem Objekt untergeordnet sind. Im folgenden Beispiel werden zwei Sprite-Objekte mit den Namen container1 und container2 festgelegt. Bei einem Sprite-Objekt handelt es sich um eine Art von Anzeigeobjekt-Container. Das Beispiel ruft die addChild()-Methode auf, um die Anzeigehierarchie festzulegen: container1 ist ein untergeordnetes Objekt von container2. Zwei andere Anzeigeobjekte, circle1 und circle2, sind untergeordnete Objekte von container1. Die Aufrufe der trace()-Methode zeigen für die einzelnen Objekte jeweils die Anzahl der untergeordneten Objekte an. Dabei ist zu beachten, dass untergeordnete Objekte der Ebenen darunter für die numChildren-Anzahl nicht berücksichtigt werden: import flash.display.Sprite; var container1:Sprite = new Sprite(); var container2:Sprite = new Sprite(); var circle1:Sprite = new Sprite(); circle1.graphics.beginFill(0xFFCC00); circle1.graphics.drawCircle(40, 40, 40); var circle2:Sprite = new Sprite(); circle2.graphics.beginFill(0x00CCFF); circle2.graphics.drawCircle(80, 40, 40); container2.addChild(container1); container1.addChild(circle1); container1.addChild(circle2); trace(container1.numChildren); // 2 trace(container2.numChildren); // 1 trace(circle1.numChildren); // 0 trace(circle2.numChildren); // 0 tabChildren Bestimmt, ob die dem Objekt untergeordneten Objekte per Tabulatortaste aktivierbar sind.BooleanBeim Aufrufen dieser Eigenschaft für das Stage-Objekt wird eine Ausnahme ausgelöst. Das Stage-Objekt hat diese Eigenschaft nicht implementiert. IllegalOperationErrorflash.errors:IllegalOperationError Bestimmt, ob die dem Objekt untergeordneten Objekte per Tabulatortaste aktivierbar sind. Aktiviert oder deaktiviert die Möglichkeit zur Auswahl von untergeordneten Objekten mithilfe der Tabulatortaste. Der Standardwert lautet true.

Hinweis: Verwenden Sie die tabChildren-Eigenschaft nicht in Flex. Verwenden Sie stattdessen die mx.core.UIComponent.hasFocusableChildren-Eigenschaft.

Im folgenden Beispiel wird ein container1-Anzeigeobjekt-Container erstellt, und der dazugehörigen Anzeigeliste werden zwei Anzeigeobjekte hinzugefügt, circle1 and circle2. Im Beispiel wird „tabChildren“ für die untergeordneten Objekte auf false gesetzt, damit mithilfe von tabIndex eine eigene Tabulatorreihenfolge verwaltet werden kann: import flash.display.Sprite; var container:Sprite = new Sprite(); container.tabChildren = false; var circle1:Sprite = new Sprite(); circle1.graphics.beginFill(0xFFCC00); circle1.graphics.drawCircle(40, 40, 40); circle1.tabIndex = 1; var circle2:Sprite = new Sprite(); circle2.graphics.beginFill(0x00CCFF); circle2.graphics.drawCircle(120, 40, 40); circle2.tabIndex = 0; container.addChild(circle1); container.addChild(circle2); Kompilieren Sie die Datei, und führen Sie sie aus, um die Ergebnisse dieses Beispiels anzuzeigen. Wenn Sie einen der Kreise auswählen, können Sie die Tabulatortaste drücken, um den Fokus für die Anzeigeobjekte zu wechseln (wird durch ein gelbes Hervorhebungsrechteck angezeigt).
textSnapshot Liefert ein TextSnapshot-Objekt für diese DisplayObjectContainer-Instanz.flash.text:TextSnapshot Liefert ein TextSnapshot-Objekt für diese DisplayObjectContainer-Instanz. Das folgende Beispiel funktioniert nur in der Authoring-Umgebung von Flash. Flex enthält keine Möglichkeit zum Hinzufügen von statischem Text zu einer Datei. Fügen Sie dem ersten Bild eines Films ein oder mehrere Felder mit statischem Text hinzu, um die Flash-Datei für dieses Beispiel vorzubereiten. Fügen Sie dann das folgende Skript in das erste Bild ein, und führen Sie die Datei aus. Es wird der statische Text ausgegeben, den Sie hinzugefügt haben: trace(this.textSnapshot.getText(0, this.textSnapshot.charCount)); flash.text.TextSnapshot
GraphicsGradientFill Legt eine Farbverlaufsfüllung fest.flash.display:IGraphicsFillflash.display:IGraphicsDataObject Legt eine Farbverlaufsfüllung fest.

Verwenden Sie ein GraphicsGradientFill-Objekt mit der Graphics.drawGraphicsData()-Methode. Das Zeichnen eines GraphicsGradientFill-Objekts entspricht dem Aufrufen der Graphics.beginGradientFill()-Methode.

flash.display.Graphics.beginGradientFill()flash.display.Graphics.drawGraphicsData()GraphicsGradientFill Erstellt ein neues GraphicsGradientFill-Objekt.typeStringlinearEin Wert aus der GradientType-Klasse, mit dem angegeben wird, welcher Farbverlaufstyp verwendet werden soll: GradientType.LINEAR oder GradientType.RADIAL. colorsArraynullEin Array mit hexadezimalen RGB-Farbwerten, die im Farbverlauf verwendet werden (beispielsweise 0xFF0000 für Rot, 0x0000FF für Blau usw.). Sie können bis zu 15 Farben angeben. Definieren Sie für jede Farbe einen entsprechenden Wert in den Parametern „alphas“ und „ratios“. alphasArraynullEin Array mit Alphawerten für die entsprechenden Farben im Array „colors“. Gültig sind Werte von 0 bis 1. Ist der Wert kleiner als 0, wird 0 verwendet. Ist der Wert größer als 1, wird 1 verwendet. ratiosArraynullEin Array mit Farbverteilungsverhältnissen. Zulässig sind Werte zwischen 0 und 255. Dieser Wert gibt den Breitenanteil an, in dem die Farbe mit 100 % gesampelt wird. Der Wert 0 stellt die linke Position im Farbverlaufsfeld dar, 255 die rechte. matrixnullEine Transformationsmatrix, wie sie von der flash.geom.Matrix-Klasse definiert wird. Die flash.geom.Matrix-Klasse umfasst eine createGradientBox()-Methode, mit der Sie die Matrix zur Verwendung mit der beginGradientFill()-Methode auf einfache Weise festlegen können. spreadMethodpadEin Wert aus der SpreadMethod-Klasse, der festlegt, welche Auftragstärke zu verwenden ist: SpreadMethod.PAD, SpreadMethod.REFLECT oder SpreadMethod.REPEAT. interpolationMethodStringrgbEin Wert der InterpolationMethod-Klasse, der festlegt, welcher Wert verwendet werden soll: InterpolationMethod.LINEAR_RGB oder InterpolationMethod.RGB. focalPointRatioNumber0.0Eine Zahl, die die Position des Farbverlaufsbrennpunkts steuert. Mit dem Wert 0 wird der Brennpunkt auf die Mitte gesetzt. Der Wert 1 bedeutet, dass der Brennpunkt an einem Rand des Farbverlaufskreises liegt. Der Wert -1 bedeutet, dass der Brennpunkt am anderen Rand des Farbverlaufskreises liegt. Werte, die kleiner als -1 oder größer als 1 sind, werden auf -1 bzw. 1 gerundet. Erstellt ein neues GraphicsGradientFill-Objekt. flash.display.Graphics.beginGradientFill()flash.display.GradientTypeflash.geom.Matrixflash.display.SpreadMethodflash.display.InterpolationMethodalphas Ein Array mit Alphawerten für die entsprechenden Farben im colors-Array.Array Ein Array mit Alphawerten für die entsprechenden Farben im colors-Array. Gültig sind Werte zwischen 0 und 1. Ist der Wert kleiner als 0, wird 0 verwendet. Ist der Wert größer als 1, wird 1 verwendet. colors Ein Array mit den im Farbverlauf zu verwendenden RGB-Hexadezimalfarbwerten.Array Ein Array mit den im Farbverlauf zu verwendenden RGB-Hexadezimalfarbwerten. Rot beispielsweise hat den Wert 0xFF0000, Blau den Wert 0x0000FF usw. Sie können bis zu 15 Farben angeben. Definieren Sie für jede Farbe einen entsprechenden Wert in den Eigenschaften „alphas“ und „ratios“. focalPointRatio Eine Zahl, die die Position des Farbverlaufsbrennpunkts steuert. Number Eine Zahl, die die Position des Farbverlaufsbrennpunkts steuert. Mit dem Wert 0 wird der Brennpunkt auf die Mitte gesetzt. Der Wert 1 bedeutet, dass der Brennpunkt an einem Rand des Farbverlaufskreises liegt. Der Wert -1 setzt den Brennpunkt an den anderen Rand es Farbverlaufskreises. Werte, die kleiner als -1 oder größer als 1 sind, werden auf -1 bzw. 1 gerundet. Im folgenden Beispiel ist focalPointRatio z. B. auf 0,75 gesetzt:

matrix Eine Transformationsmatrix, wie sie in der Matrix-Klasse definiert ist.flash.geom:Matrix Eine Transformationsmatrix, wie sie in der Matrix-Klasse definiert ist. Die flash.geom.Matrix-Klasse umfasst eine createGradientBox()-Methode, mit der Sie die Matrix zur Verwendung mit der beginGradientFill()-Methode festlegen können. flash.geom.Matrix.createGradientBox()ratios Ein Array von Farbverteilungsverhältnissen. Array Ein Array von Farbverteilungsverhältnissen. Gültig sind Werte zwischen 0 und 255. Dieser Wert gibt den Breitenanteil an, in dem die Farbe mit 100 % gesampelt wird. Der Wert 0 repräsentiert die linke Position im Farbverlaufsfeld, der Wert 255 repräsentiert die rechte.

Hinweis: Dieser Wert repräsentiert Positionen im Farbverlaufsfeld, nicht im Koordinatenraum des endgültigen Farbverlaufs, der breiter oder schmaler als das Farbverlaufsfeld sein kann. Geben Sie für jeden Wert in der colors-Eigenschaft einen entsprechenden Wert an.

Die folgende Abbildung zeigt für einen linearen Verlauf mit den zwei Farben blau und grün die Farbplatzierung im Verlauf basierend auf den verschiedenen Werten im ratios-Array:

ratiosGradient[0, 127][0, 255][127, 255]

Die Werte im Array müssen sich sequenziell erhöhen. Beispiel: [0, 63, 127, 190, 255].

interpolationMethod Ein Wert aus der InterpolationMethod-Klasse, der festlegt, welcher Wert zu verwenden ist. String Ein Wert aus der InterpolationMethod-Klasse, der festlegt, welcher Wert zu verwenden ist. Gültige Werte sind: InterpolationMethod.LINEAR_RGB und InterpolationMethod.RGB

Das folgende Beispiel zeigt einen einfachen linearen Farbverlauf zwischen zwei Farben (wobei der spreadMethod-Parameter auf SpreadMethod.REFLECT gesetzt ist). Die verschiedenen Interpolationsmethoden haben die folgenden Auswirkungen auf die Darstellung des Farbverlaufs:

InterpolationMethod.LINEAR_RGBInterpolationMethod.RGB
flash.display.InterpolationMethod
spreadMethod Ein Wert aus der SpreadMethod-Klasse, der festlegt, welche Auftragstärke zu verwenden ist.String Ein Wert aus der SpreadMethod-Klasse, der festlegt, welche Auftragstärke zu verwenden ist. Gültige Werte sind: SpreadMethod.PAD, SpreadMethod.REFLECT und SpreadMethod.REPEAT.

Das folgende Beispiel zeigt einen einfachen linearen Farbverlauf zwischen zwei Farben:

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

Dieses Beispiel verwendet SpreadMethod.PAD als Methode für die Auftragstärke, und der Farbverlauf sieht folgendermaßen aus:

Mit der Auftragstärke SpreadMethod.REFLECT sieht die Farbverlaufsfüllung folgendermaßen aus:

Mit der Auftragstärke SpreadMethod.REPEAT sieht die Farbverlaufsfüllung folgendermaßen aus:

flash.display.SpreadMethod
type Ein Wert aus der GradientType-Klasse, der angibt, welcher Farbverlaufstyp verwendet wird.String Ein Wert aus der GradientType-Klasse, der angibt, welcher Farbverlaufstyp verwendet wird. Zulässige Werte sind GradientType.LINEAR und GradientType.RADIAL. flash.display.GradientType
Sprite Die Sprite-Klasse ist ein Grundbaustein der Anzeigeliste: ein Knoten der Anzeigeliste, der Grafiken anzeigen und auch untergeordnete Objekte enthalten kann.Das grundlegende Anzeigeobjekt für mit ActionScript erstellte Objekte. flash.display:DisplayObjectContainer Die Sprite-Klasse ist ein Grundbaustein der Anzeigeliste: ein Knoten der Anzeigeliste, der Grafiken anzeigen und auch untergeordnete Objekte enthalten kann.

Ein Sprite-Objekt ähnelt einem Movieclip, besitzt aber keine Zeitleiste. Sprite ist die angemessene Basisklasse für Objekte, die keine Zeitleiste benötigen. So wäre Sprite etwa die logische Basisklasse für Komponenten der Benutzeroberfläche (UI, User Interface), die in der Regel keine Zeitleiste verwenden.

Die Sprite-Klasse ist neu in ActionScript 3.0. Sie bietet eine Alternative zur Funktionalität der MovieClip-Klasse, die die gesamte Funktionalität früherer ActionScript-Versionen beibehält, um die Abwärtskompatibilität zu gewährleisten.

Im folgenden Beispiel wird die SpriteExample-Klasse verwendet, um auf der Bühne ein orangefarbenes Quadrat zu zeichnen. Es werden dann jeweils Ereignisse ausgelöst, wenn Benutzer auf das Quadrat klicken oder es verschieben. Dies wird in den folgenden Schritten erreicht:
  1. Im Beispiel wird die size-Eigenschaft (100 x 100 Pixel) und die Hintergrundfarbe (Orange) zur späteren Verwendung beim Zeichnen des Quadrats deklariert.
  2. Der Konstruktor erstellt anschließend ein neues child-Sprite-Objekt und verwendet es, um zwei Ereignis-Listener und die dazugehörigen Methoden hinzuzufügen: mouseDownHandler() und mouseUpHandler().
  3. Das child-Sprite-Objekt wird dann an die draw()-Methode übergeben, die das orangefarbene Quadrat zeichnet.
  4. Das child-Objekt wird in die Anzeigeliste eingefügt, indem die addChild()-Methode aufgerufen wird.
  5. Die Ereignis-Listener funktionieren wie folgt:
    • mouseDownHandler(): Wenn Benutzer auf das Sprite-Objekt klicken, fügt diese Methode einen mouseMove-Ereignis-Listener hinzu (die mouseMoveHandler()-Methode), der die Mausbewegungen verarbeitet. Als Nächstes wird die startDrag()-Methode aufgerufen, die das Ziehen des Sprite-Objekts ermöglicht.
    • mouseUpHandler(): Wenn die Maustaste losgelassen wird, wird der mouseMove-Ereignis-Listener entfernt, und die stopDrag()-Methode wird aufgerufen, die das orangefarbene Quadrat an seiner Position fixiert.
    • mouseMoveHandler: Solange die linke Maustaste gedrückt gehalten wird, weist diese Methode den Player an, das orangefarbene Quadrat neu zu zeichnen.

Hinweis: Jede Ereignis-Listener-Methode deklariert eine lokale sprite-Variable, der die target-Eigenschaft des Ereignisses zugewiesen wird.

package { import flash.display.Sprite; import flash.events.*; public class SpriteExample extends Sprite { private var size:uint = 100; private var bgColor:uint = 0xFFCC00; public function SpriteExample() { var child:Sprite = new Sprite(); child.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler); child.addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler); draw(child); addChild(child); } private function mouseDownHandler(event:MouseEvent):void { trace("mouseDownHandler"); var sprite:Sprite = Sprite(event.target); sprite.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler); sprite.startDrag(); } private function mouseUpHandler(event:MouseEvent):void { trace("mouseUpHandler"); var sprite:Sprite = Sprite(event.target); sprite.removeEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler); sprite.stopDrag(); } private function mouseMoveHandler(event:MouseEvent):void { trace("mouseMoveHandler"); event.updateAfterEvent(); } private function draw(sprite:Sprite):void { sprite.graphics.beginFill(bgColor); sprite.graphics.drawRect(0, 0, size, size); sprite.graphics.endFill(); } } }
Sprite Erstellt eine neue Sprite-Instanz. Erstellt eine neue Sprite-Instanz. Nachdem Sie die Sprite-Instanz erstellt haben, rufen Sie die Methode DisplayObjectContainer.addChild() oder DisplayObjectContainer.addChildAt() auf, um die Sprite-Instanz einem übergeordneten „DisplayObjectContainer“ hinzuzufügen. startDrag Ermöglicht es Benutzern, das angegebene Sprite mit einer Ziehoperation zu verschieben.lockCenterBooleanfalseLegt fest, ob das ziehbare Sprite am Mittelpunkt der Zeigerposition (true) oder an der Stelle einrastet, an der der Benutzer zum ersten Mal auf das Sprite geklickt hat (false). boundsflash.geom:RectanglenullWert, der zu den Koordinaten des dem Sprite übergeordneten Objekts relativ ist und ein begrenzendes Rechteck für das Sprite angibt. Ermöglicht es Benutzern, das angegebene Sprite mit einer Ziehoperation zu verschieben. Das Sprite bleibt so lange ziehbar, bis die Freigabe durch einen Aufruf der Sprite.stopDrag()-Methode aufgehoben wird oder bis ein anderes Sprite als ziehbares Objekt definiert wird. Es kann jeweils nur ein Sprite ziehbar sein.

Dreidimensionale Anzeigeobjekte folgen dem Zeiger und Sprite.startDrag() bewegt das Objekt innerhalb des dreidimensionalen Raums, der durch das Anzeigeobjekt festgelegt ist. Oder, wenn es sich bei dem Anzeigeobjekt um ein zweidimensionales Objekt handelt, das einem dreidimensionalen Objekt untergeordnet ist, bewegt sich das zweidimensionale Objekt innerhalb des dreidimensionalen Raums, der durch das übergeordnete dreidimensionale Objekt festgelegt ist.

Im folgenden Beispiel werden ein circle-Sprite und zwei target-Sprites erstellt. Die startDrag()-Methode wird für das circle-Sprite aufgerufen, wenn Benutzer den Cursor auf das Sprite bewegen und die Maustaste drücken, und die stopDrag()-Methode wird aufgerufen, wenn Benutzer die Maustaste loslassen. Ermöglicht es Benutzern, das Sprite mit einer Ziehoperation zu verschieben. Wenn der Benutzer die Maustaste loslässt, wird die mouseRelease()-Methode aufgerufen, die wiederum den name-Wert des dropTarget-Objekts verfolgt (das Objekt, auf das der Benutzer das circle-Sprite gezogen hat): import flash.display.Sprite; import flash.events.MouseEvent; var circle:Sprite = new Sprite(); circle.graphics.beginFill(0xFFCC00); circle.graphics.drawCircle(0, 0, 40); var target1:Sprite = new Sprite(); target1.graphics.beginFill(0xCCFF00); target1.graphics.drawRect(0, 0, 100, 100); target1.name = "target1"; var target2:Sprite = new Sprite(); target2.graphics.beginFill(0xCCFF00); target2.graphics.drawRect(0, 200, 100, 100); target2.name = "target2"; addChild(target1); addChild(target2); addChild(circle); circle.addEventListener(MouseEvent.MOUSE_DOWN, mouseDown) function mouseDown(event:MouseEvent):void { circle.startDrag(); } circle.addEventListener(MouseEvent.MOUSE_UP, mouseReleased); function mouseReleased(event:MouseEvent):void { circle.stopDrag(); trace(circle.dropTarget.name); }
dropTargetstopDrag()
startTouchDrag Ermöglicht dem Benutzer das Ziehen des angegebenen Sprites auf einem berührungsempfindlichen Gerät.touchPointIDintEine Ganzzahl, die dem Berührungspunkt zugewiesen wird. lockCenterBooleanfalseLegt fest, ob das ziehbare Sprite am Mittelpunkt der Zeigerposition (true) oder an der Stelle einrastet, an der der Benutzer zum ersten Mal auf das Sprite geklickt hat (false). boundsflash.geom:RectanglenullWert, der zu den Koordinaten des dem Sprite übergeordneten Objekts relativ ist und ein begrenzendes Rechteck für das Sprite angibt. Ermöglicht dem Benutzer das Ziehen des angegebenen Sprites auf einem berührungsempfindlichen Gerät. Das Sprite bleibt so lange ziehbar, bis die Freigabe durch einen Aufruf der Sprite.stopTouchDrag()-Methode aufgehoben wird oder bis ein anderes Sprite als ziehbares Objekt definiert wird. Es kann jeweils nur ein Sprite ziehbar sein.

Dreidimensionale Anzeigeobjekte folgen dem Zeiger und Sprite.startTouchDrag() bewegt das Objekt innerhalb des dreidimensionalen Raums, der durch das Anzeigeobjekt festgelegt ist. Oder, wenn es sich bei dem Anzeigeobjekt um ein zweidimensionales Objekt handelt, das einem dreidimensionalen Objekt untergeordnet ist, bewegt sich das zweidimensionale Objekt innerhalb des dreidimensionalen Raums, der durch das übergeordnete dreidimensionale Objekt festgelegt ist.

Das folgende Beispiel zeigt Funktionen, die startTouchDrag und stopTouchDrag verwenden, um die touchBegin- und touchEnd-Ereignisse zu verarbeiten. Der Wert für touchPointID ist der Wert, der dem Ereignisobjekt zugewiesen ist. Der bounds-Parameter ist das Rechteck, das die Grenzen des übergeordneten Anzeigeobjekts definiert (bg ist ein Anzeigeobjekt, das MySprite enthält). MySprite.addEventListener(TouchEvent.TOUCH_BEGIN, onTouchBegin); MySprite.addEventListener(TouchEvent.TOUCH_END, onTouchEnd); function onTouchBegin(e:TouchEvent) { e.target.startTouchDrag(e.touchPointID, false, bg.getRect(this)); trace("touch begin"); } function onTouchEnd(e:TouchEvent) { e.target.stopTouchDrag(e.touchPointID); trace("touch end"); }
dropTargetstopTouchDrag()flash.ui.Multitouchflash.events.TouchEvent
stopDrag Beendet die startDrag()-Methode. Beendet die startDrag()-Methode. Ein Sprite, das mit der startDrag()-Methode ziehbar gemacht wurde, bleibt so lange ziehbar, bis die stopDrag()-Methode hinzugefügt oder ein anderes Sprite ziehbar gemacht wird. Es kann jeweils nur ein Sprite ziehbar sein. Im folgenden Beispiel werden ein circle-Sprite und zwei target-Sprites erstellt. Die startDrag()-Methode wird für das circle-Sprite aufgerufen, wenn Benutzer den Cursor auf das Sprite bewegen und die Maustaste drücken, und die stopDrag()-Methode wird aufgerufen, wenn Benutzer die Maustaste loslassen. Ermöglicht es Benutzern, das Sprite mit einer Ziehoperation zu verschieben. Wenn der Benutzer die Maustaste loslässt, wird die mouseRelease()-Methode aufgerufen, die wiederum den name-Wert des dropTarget-Objekts verfolgt (das Objekt, auf das der Benutzer das circle-Sprite gezogen hat): import flash.display.Sprite; import flash.events.MouseEvent; var circle:Sprite = new Sprite(); circle.graphics.beginFill(0xFFCC00); circle.graphics.drawCircle(0, 0, 40); var target1:Sprite = new Sprite(); target1.graphics.beginFill(0xCCFF00); target1.graphics.drawRect(0, 0, 100, 100); target1.name = "target1"; var target2:Sprite = new Sprite(); target2.graphics.beginFill(0xCCFF00); target2.graphics.drawRect(0, 200, 100, 100); target2.name = "target2"; addChild(target1); addChild(target2); addChild(circle); circle.addEventListener(MouseEvent.MOUSE_DOWN, mouseDown) function mouseDown(event:MouseEvent):void { circle.startDrag(); } circle.addEventListener(MouseEvent.MOUSE_UP, mouseReleased); function mouseReleased(event:MouseEvent):void { circle.stopDrag(); trace(circle.dropTarget.name); } dropTargetstartDrag()stopTouchDrag Beendet die startTouchDrag()-Methode zur Verwendung mit berührungsempfindlichen Geräten.touchPointIDintDie Ganzzahl, die dem Berührungspunkt in der startTouchDrag-Methode zugewiesen ist. Beendet die startTouchDrag()-Methode zur Verwendung mit berührungsempfindlichen Geräten. Ein Sprite, das mit der startTouchDrag()-Methode ziehbar gemacht wurde, bleibt so lange ziehbar, bis die stopTouchDrag()-Methode hinzugefügt oder ein anderes Sprite ziehbar gemacht wird. Es kann jeweils nur ein Sprite ziehbar sein. Das folgende Beispiel zeigt Funktionen, die startTouchDrag und stopTouchDrag verwenden, um die touchBegin- und touchEnd-Ereignisse zu verarbeiten. Der Wert für touchPointID ist der Wert, der dem Ereignisobjekt zugewiesen ist. Der bounds-Parameter ist das Rechteck, das die Grenzen des übergeordneten Anzeigeobjekts definiert (bg ist ein Anzeigeobjekt, das MySprite enthält). MySprite.addEventListener(TouchEvent.TOUCH_BEGIN, onTouchBegin); MySprite.addEventListener(TouchEvent.TOUCH_END, onTouchEnd); function onTouchBegin(e:TouchEvent) { e.target.startTouchDrag(e.touchPointID, false, bg.getRect(this)); trace("touch begin"); } function onTouchEnd(e:TouchEvent) { e.target.stopTouchDrag(e.touchPointID); trace("touch end"); } dropTargetstartTouchDrag()flash.ui.Multitouchflash.events.TouchEventbuttonMode Legt den Schaltflächenmodus für dieses Sprite fest.BooleanLegt den Schaltflächenmodus für dieses Sprite fest. Legt den Schaltflächenmodus für dieses Sprite fest. Wenn true eingestellt ist, verhält sich dieses Sprite wie eine Schaltfläche. Dies bedeutet, dass die Anzeige des Handcursors ausgelöst wird, wenn der Zeiger über das Sprite bewegt wird, und ein click-Ereignis empfangen werden kann, wenn die Eingabe- oder Leertaste gedrückt wird, während das Sprite den Fokus besitzt. Sie können die Anzeige des Handcursors unterdrücken, indem Sie die useHandCursor-Eigenschaft auf false setzen. In diesem Fall wird der Pfeilcursor angezeigt.

Obwohl es besser ist, für die Erstellung von Schaltflächen die SimpleButton-Klasse zu verwenden, können Sie die buttonMode-Eigenschaft nutzen, um einem Sprite eine schaltflächenähnliche Funktionalität zu verleihen. Um ein Sprite in die Tabulatorreihenfolge einzubinden, setzen Sie die tabEnabled-Eigenschaft (wurde von der InteractiveObject-Klasse geerbt und ist standardmäßig auf false gesetzt) auf true. Zudem sollten Sie sich überlegen, ob die dem Sprite untergeordneten Objekte per Benutzereingabe aktivierbar sein sollen. Bei den meisten Schaltflächen ist für die untergeordneten Objekte keine Benutzereingabeinteraktivität aktiviert, da dies beim Ereignisablauf zu Verwirrung führen kann. Um die Benutzereingabeinteraktivität für alle untergeordneten Objekte zu aktivieren, müssen Sie die mouseChildren-Eigenschaft auf false setzen (wird von der DisplayObjectContainer-Klasse übernommen).

Wenn Sie die buttonMode-Eigenschaft mit der MovieClip-Klasse verwenden (die eine Unterklasse der Sprite-Klasse ist), kann es sein, dass Ihre Schaltfläche zusätzliche Funktionen besitzt. Wenn Sie die Bilder mit den Bezeichnungen „_up“ (auf), „_over“ (darüber) und „_down“ (gedrückt) einschließen, bietet Flash Player automatische Stausänderungen (eine Funktionalität, die in früheren ActionScript-Versionen für Movieclips bereitgestellt wurde, die als Schaltflächen verwendet werden). Diese automatischen Statusänderungen sind für Sprites nicht verfügbar, da diese keine Zeitleiste und somit auch keine Bildbezeichnungen besitzen.

Im folgenden Beispiel werden zwei Sprites erstellt, und die buttonMode-Eigenschaft wird einmal auf true und einmal auf false gesetzt. Wenn Sie die Anwendung kompilieren und ausführen, reagieren beide Sprites auf Mausereignisse, aber nur das Sprite, für das buttonMode auf true gesetzt ist, verwendet den Handcursor und ist in der Tabulatorreihenfolge enthalten: import flash.display.Sprite; import flash.events.MouseEvent; var circle1:Sprite = new Sprite(); circle1.graphics.beginFill(0xFFCC00); circle1.graphics.drawCircle(40, 40, 40); circle1.buttonMode = true; circle1.addEventListener(MouseEvent.CLICK, clicked); var circle2:Sprite = new Sprite(); circle2.graphics.beginFill(0xFFCC00); circle2.graphics.drawCircle(120, 40, 40); circle2.buttonMode = false; circle2.addEventListener(MouseEvent.CLICK, clicked); function clicked(event:MouseEvent):void { trace ("Click!"); } addChild(circle1); addChild(circle2);
SimpleButtonSprite.useHandCursorInteractiveObject.tabEnabledDisplayObjectContainer.mouseChildren
dropTarget Gibt das Anzeigeobjekt an, über das der Sprite gezogen wird oder auf dem der Sprite abgelegt wurde.flash.display:DisplayObjectLegt das Anzeigeobjekt (DisplayObject) fest, über das das Sprite gezogen bzw. auf dem es abgelegt wird. Gibt das Anzeigeobjekt an, über das der Sprite gezogen wird oder auf dem der Sprite abgelegt wurde. Im folgenden Beispiel werden ein circle-Sprite und zwei target-Sprites erstellt. Die startDrag()-Methode wird für das circle-Sprite aufgerufen, wenn Benutzer den Cursor auf das Sprite bewegen und die Maustaste drücken, und die stopDrag()-Methode wird aufgerufen, wenn Benutzer die Maustaste loslassen. Ermöglicht es Benutzern, das Sprite mit einer Ziehoperation zu verschieben. Wenn der Benutzer die Maustaste loslässt, wird die mouseRelease()-Methode aufgerufen, die wiederum den name-Wert des dropTarget-Objekts verfolgt (das Objekt, auf das der Benutzer das circle-Sprite gezogen hat): import flash.display.Sprite; import flash.events.MouseEvent; var circle:Sprite = new Sprite(); circle.graphics.beginFill(0xFFCC00); circle.graphics.drawCircle(0, 0, 40); var target1:Sprite = new Sprite(); target1.graphics.beginFill(0xCCFF00); target1.graphics.drawRect(0, 0, 100, 100); target1.name = "target1"; var target2:Sprite = new Sprite(); target2.graphics.beginFill(0xCCFF00); target2.graphics.drawRect(0, 200, 100, 100); target2.name = "target2"; addChild(target1); addChild(target2); addChild(circle); circle.addEventListener(MouseEvent.MOUSE_DOWN, mouseDown) function mouseDown(event:MouseEvent):void { circle.startDrag(); } circle.addEventListener(MouseEvent.MOUSE_UP, mouseReleased); function mouseReleased(event:MouseEvent):void { circle.stopDrag(); trace(circle.dropTarget.name); } startDrag()stopDrag()graphics Legt das Graphics-Objekt fest, das zu diesem Sprite gehört und für das Vektorzeichnungsbefehle zulässig sind.flash.display:GraphicsLegt ein Graphics-Objekt fest. Legt das Graphics-Objekt fest, das zu diesem Sprite gehört und für das Vektorzeichnungsbefehle zulässig sind. Im folgenden Beispiel wird ein circle-Sprite erstellt und seine graphics-Eigenschaft verwendet, um einen Kreis mit einer gelben Füllung (0xFFCC00) zu zeichnen: import flash.display.Sprite; var circle:Sprite = new Sprite(); circle.graphics.beginFill(0xFFCC00); circle.graphics.drawCircle(40, 40, 40); addChild(circle); hitArea Gibt als Kollisionsbereich für ein Sprite ein anderes Sprite an.flash.display:Sprite Gibt als Kollisionsbereich für ein Sprite ein anderes Sprite an. Wenn die hitArea-Eigenschaft nicht vorhanden ist oder den Wert null oder undefined aufweist, wird das Sprite selbst als Kollisionsbereich verwendet. Der Wert der hitArea-Eigenschaft kann ein Verweis auf ein Sprite-Objekt sein.

Die hitArea-Eigenschaft kann jederzeit geändert werden. Das geänderte Sprite übernimmt sofort das neue Verhalten des Kollisionsbereichs. Das als Kollisionsbereich bestimmte Sprite braucht nicht sichtbar zu sein. Auch wenn es unsichtbar ist, wird seine grafische Form dennoch als Kollisionsbereich erkannt.

Hinweis: Sie müssen die mouseEnabled-Eigenschaft des als Kollisionsbereich vorgesehenen Sprites auf false setzen. Sonst kann es vorkommen, dass Ihre Sprite-Schaltfläche nicht funktioniert, da nicht Ihre Sprite-Schaltfläche, sondern das als Kollisionsbereich bestimmte Sprite die Benutzereingabeereignisse empfängt.

Im folgenden Beispiel werden ein circle-Sprite und ein square-Sprite erstellt. Das square-Sprite dient als hitArea für das circle-Sprite. Wenn Benutzer auf das square-Sprite klicken, löst das circle-Sprite ein click-Ereignis aus: import flash.display.Sprite; import flash.events.MouseEvent; var circle:Sprite = new Sprite(); circle.graphics.beginFill(0xFFCC00); circle.graphics.drawCircle(0, 0, 40); var square:Sprite = new Sprite(); square.graphics.beginFill(0xCCFF00); square.graphics.drawRect(200, 0, 100, 100); circle.hitArea = square; square.mouseEnabled = false; circle.addEventListener(MouseEvent.CLICK, clicked); function clicked(event:MouseEvent):void{ trace(event.target == circle); // true trace(event.target == square); // false } addChild(circle); addChild(square);
soundTransform Steuert den Sound innerhalb dieses Sprites.flash.media:SoundTransform Steuert den Sound innerhalb dieses Sprites.

Hinweis: Diese Eigenschaft betrifft nicht HTML-Inhalt in einem HTMLControl-Objekt (in Adobe AIR).

Im folgenden Beispiel wird ein Sprite mit dem Namen container erstellt und seiner Liste der untergeordneten Objekte ein Loader-Objekt hinzugefügt. Das Loader-Objekt lädt eine SWF-Datei. Wenn Benutzer im Textfeld tf durch Klicken auf den Link true auswählen, legt die mute()-Methode die volume-Eigenschaft der soundTransform-Eigenschaft des container-Sprites fest: import flash.display.Sprite; import flash.display.Loader; import flash.events.IOErrorEvent; import flash.events.MouseEvent; import flash.net.URLRequest; import flash.text.TextField; import flash.media.SoundTransform; var container:Sprite = new Sprite(); addChild(container); var ldr:Loader = new Loader; var urlReq:URLRequest = new URLRequest("SoundPlayer.swf"); ldr.load(urlReq); container.addChild(ldr); ldr.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, urlNotFound); var tf:TextField = new TextField(); tf.htmlText = "<a href = 'event:Mute'>Mute / Unmute</a>"; addChild(tf); var mySoundTransform:SoundTransform = new SoundTransform(); mySoundTransform.volume = 1; tf.addEventListener(MouseEvent.CLICK, mute); function mute(event:MouseEvent):void { if (mySoundTransform.volume == 0) { mySoundTransform.volume = 1; } else { mySoundTransform.volume = 0; } container.soundTransform = mySoundTransform; } function urlNotFound(event:IOErrorEvent):void { trace("The URL was not found."); }
flash.media.SoundTransform
useHandCursor Ein boolescher Wert, der angibt, ob der Handcursor angezeigt werden soll, wenn der Zeiger über ein Sprite geführt wird, in dem die buttonMode-Eigenschaft auf „true“ gesetzt ist.BooleanEin boolescher Wert, der angibt, ob der Handcursor angezeigt werden soll, wenn der Zeiger über ein Sprite geführt wird, in dem die buttonMode-Eigenschaft auf „true“ gesetzt ist. Ein boolescher Wert, der angibt, ob der Handcursor angezeigt werden soll, wenn der Zeiger über ein Sprite geführt wird, in dem die buttonMode-Eigenschaft auf true gesetzt ist. Der Standardwert für die useHandCursor-Eigenschaft lautet true. Wenn useHandCursor auf true gesetzt ist, erscheint der für Schaltflächen verwendete Handcursor, wenn Benutzer den Zeiger auf ein Schaltflächen-Sprite bewegen. Wenn useHandCursor auf false gesetzt ist, wird stattdessen der Pfeilcursor verwendet.

Die useHandCursor-Eigenschaft kann jederzeit geändert werden. Das geändert Sprite übernimmt sofort das neue Cursorverhalten.

Hinweis: Wenn das Sprite in Flex oder Flash Builder untergeordnete Sprites enthält, empfiehlt es sich möglicherweise, die mouseChildren-Eigenschaft auf false zu setzen. Wenn beispielsweise ein Handcursor über einer Flex-Steuerung <mx:Label> eingeblendet werden soll, stellen Sie die Eigenschaften useHandCursor und buttonMode auf true und die Eigenschaft mouseChildren auf false ein.

Im folgenden Beispiel werden zwei Sprites erstellt, für die die buttonMode-Eigenschaft jeweils auf true gesetzt wird. Die useHandCursor-Eigenschaft wird jedoch einmal auf true und einmal auf false gesetzt. Wenn Sie die Anwendung kompilieren und ausführen, reagieren beide Sprites als Schaltflächen (und sind in der Tabulatorreihenfolge enthalten), aber nur das Sprite, für das useHandCursor auf true gesetzt ist, verwendet den Handcursor: import flash.display.Sprite; import flash.events.MouseEvent; var circle1:Sprite = new Sprite(); circle1.graphics.beginFill(0xFFCC00); circle1.graphics.drawCircle(40, 40, 40); circle1.buttonMode = true; circle1.useHandCursor = true; circle1.addEventListener(MouseEvent.CLICK, clicked); var circle2:Sprite = new Sprite(); circle2.graphics.beginFill(0xFFCC00); circle2.graphics.drawCircle(120, 40, 40); circle2.buttonMode = true; circle2.useHandCursor = false; circle2.addEventListener(MouseEvent.CLICK, clicked); function clicked(event:MouseEvent):void { trace ("Click!"); } addChild(circle1); addChild(circle2);
buttonModeDisplayObjectContainer.mouseChildren
GraphicsBitmapFill Legt eine Bitmapfüllung fest.flash.display:IGraphicsFillflash.display:IGraphicsDataObject Legt eine Bitmapfüllung fest. Die Bitmap kann zum Füllen des Bereichs geglättet, wiederholt oder als Kachelmuster dargestellt oder mithilfe einer Transformationsmatrix manipuliert werden.

Verwenden Sie ein GraphicsBitmapFill-Objekt mit der Graphics.drawGraphicsData()-Methode. Das Zeichnen eines GraphicsBitmapFill-Objekts entspricht dem Aufrufen der Graphics.beginBitmapFill()-Methode.

flash.display.Graphics.drawGraphicsData()flash.display.Graphics.beginBitmapFill()GraphicsBitmapFill Erstellt ein neues GraphicsBitmapFill-Objekt.bitmapDataflash.display:BitmapDatanullEine transparente oder undurchsichtige Bitmap, die die anzuzeigenden Bits enthält. matrixflash.geom:MatrixnullEin Matrix-Objekt (der flash.geom.Matrix-Klasse), mit dem Sie Transformationen der Bitmap definieren können. repeatBooleantrueWenn true eingestellt ist, wird die Bitmap in einem Kachelmuster wiederholt. Bei false wird die Bitmap nicht wiederholt, und die Kanten der Bitmap werden für alle Füllbereiche verwendet, die über die Bitmap hinausgehen. smoothBooleanfalseWenn false eingestellt ist, werden vergrößerte Bitmapbilder mithilfe des „Nächster-Nachbar-Algorithmus“ wiedergegeben. Meist sind dann die einzelnen Pixelpunkte zu sehen. Wenn true eingestellt ist, werden vergrößerte Bitmapbilder anhand eines bilinearen Algorithmus wiedergegeben. Die Wiedergabe mit dem „Nächster-Nachbar-Algorithmus“ ist in der Regel schneller. Erstellt ein neues GraphicsBitmapFill-Objekt. flash.display.Graphics.beginBitmapFill()bitmapData Ein transparentes oder undurchsichtiges Bitmapbild.flash.display:BitmapData Ein transparentes oder undurchsichtiges Bitmapbild. flash.display.BitmapDatamatrix Ein Matrixobjekt (der flash.geom.Matrix-Klasse), das Transformationen der Bitmap definiert.flash.geom:Matrix Ein Matrixobjekt (der flash.geom.Matrix-Klasse), das Transformationen der Bitmap definiert. Die folgende Matrix z. B. dreht eine Bitmap um 45 Grad (pi/4 rad). matrix = new flash.geom.Matrix(); matrix.rotate(Math.PI / 4); flash.geom.Matrixrepeat Legt fest, ob ein Bitmapbild in einem Kachelmuster wiederholt wird.Boolean Legt fest, ob ein Bitmapbild in einem Kachelmuster wiederholt wird.

Wenn true eingestellt ist, wird die Bitmap in einem Kachelmuster wiederholt. Bei false wird die Bitmap nicht wiederholt, und die Pixel entlang der äußersten Kanten der Bitmap werden für alle Füllbereiche verwendet, die über die Grenzen der Bitmap hinausgehen.

Nehmen Sie die folgende Bitmap (ein Schachbrettmuster im Format 20 x 20 Pixel) als Beispiel:

Ist repeat auf true gesetzt (wie im folgenden Beispiel), wiederholt die Bitmap-Füllung die Bitmap:

Ist repeat auf false gesetzt, verwendet die Bitmapfüllung die Randpixel für den Füllbereich außerhalb der Bitmap:

smooth Legt fest, ob ein Glättungsalgorithmus auf das Bitmapbild angewendet wird.Boolean Legt fest, ob ein Glättungsalgorithmus auf das Bitmapbild angewendet wird.

Wenn false eingestellt ist, werden aufwärts skalierte Bilder mithilfe des „Nächster-Nachbar-Algorithmus“ wiedergegeben. Meist sind dann die einzelnen Pixelpunkte zu sehen. Wenn true eingestellt ist, werden aufwärts skalierte Bilder anhand eines bilinearen Algorithmus wiedergegeben. Eine Wiedergabe mithilfe des „Nächster-Nachbar-Algorithmus“ ist in der Regel schneller.

GraphicsStroke Definiert einen Linienstil oder Strich.flash.display:IGraphicsStrokeflash.display:IGraphicsDataObject Definiert einen Linienstil oder Strich.

Verwenden Sie ein GraphicsStroke-Objekt mit der Graphics.drawGraphicsData()-Methode. Das Zeichnen eines GraphicsStroke-Objekts entspricht dem Aufrufen einer der Methoden der Graphics-Klasse, die den Linienstil festlegt, wie z. B. die Graphics.lineStyle()-Methode, die Graphics.lineBitmapStyle()Methode oder die Graphics.lineGradientStyle()-Methode.

flash.display.Graphics.lineStyle()flash.display.Graphics.lineBitmapStyle()flash.display.Graphics.lineGradientStyle()flash.display.Graphics.drawGraphicsData()GraphicsStroke Erstellt ein neues GraphicsStroke-Objekt.thicknessNumberunknownEine Ganzzahl, die die Stärke der Linie in Punkt angibt. Gültig sind Werte von 0 bis 255. Wenn keine Zahl angegeben ist oder wenn der Parameter den Wert „undefined“ aufweist, wird keine Linie gezeichnet. Wenn ein kleinerer Wert als 0 übergeben wird, ist der Standardwert 0. Der Wert 0 steht für die geringste Linienstärke. Der Höchstwert beträgt 255. Wenn ein größerer Wert als 255 übergeben wird, ist der Standardwert 255. pixelHintingBooleanfalseEin boolescher Wert, der angibt, ob Striche als ganze Pixel angezeigt werden. Dies wirkt sich sowohl auf die Positionen der Anker einer Kurve als auch auf die Linienstärke des Strichs selbst aus. Wenn pixelHinting auf true gesetzt ist, stellt Flash Player die Linienstärken auf volle Pixel ein. Ist pixelHinting auf false gesetzt, können Kurven und gerade Linien unterbrochen sein. In den folgenden Abbildungen wird veranschaulicht, wie Flash Player zwei Rechtecke mit abgerundeten Ecken darstellt, die identisch sind, abgesehen davon, dass der pixelHinting-Parameter in der lineStyle()-Methode anders eingestellt ist (die Abbildungen sind um 200 % vergrößert, um den Unterschied deutlich zu zeigen):

Wird kein Wert angegeben, wird die Funktion nicht verwendet.

scaleModeStringnormalEin Wert aus der LineScaleMode-Klasse, mit dem angegeben wird, welcher Skalierungsmodus verwendet werden soll:
  • LineScaleMode.NORMAL: Die Linienstärke wird immer skaliert, wenn das Objekt skaliert wird (der Standard).
  • LineScaleMode.NONE: Die Linienstärke wird nie skaliert.
  • LineScaleMode.VERTICAL: Die Linienstärke wird nicht skaliert, wenn das Objekt nur vertikal skaliert wurde. Betrachten Sie beispielsweise die folgenden Kreise, die mit einer 1 Pixel starken Linie gezeichnet wurden und bei denen der Parameter scaleMode jeweils auf LineScaleMode.VERTICAL gesetzt wurde. Der Kreis links wurde nur vertikal skaliert, und der Kreis rechts wurde sowohl vertikal als auch horizontal skaliert.

  • LineScaleMode.HORIZONTAL: Die Linienstärke wird nicht skaliert, wenn das Objekt nur vertikal skaliert wurde. Betrachten Sie beispielsweise die folgenden Kreise, die mit einer 1 Pixel starken Linie gezeichnet wurden und bei denen der Parameter scaleMode jeweils auf LineScaleMode.HORIZONTAL gesetzt wurde. Der Kreis links wurde nur horizontal skaliert, und der Kreis rechts wurde sowohl horizontal als auch vertikal skaliert.

capsStringnoneEin Wert der CapsStyle-Klasse, der den Stil der Linienenden definiert. Folgende Werte sind zulässig: CapsStyle.NONE, CapsStyle.ROUND und CapsStyle.SQUARE. Wird kein Wert angegeben, verwendet Flash runde Enden.

Die folgende Abbildung zeigt beispielsweise die verschiedenen Einstellungen für capsStyle. Die Abbildung zeigt für jede Einstellung eine blaue Linie mit der Stärke 30 (für die capsStyle gilt) sowie eine überlagerte schwarze Linie mit der Stärke 1 (für die kein capsStyle gilt):

jointsStringroundEin Wert der JointStyle-Klasse, der den Verbindungsstil für Winkel festlegt. Folgende Werte sind zulässig: JointStyle.BEVEL, JointStyle.MITER und JointStyle.ROUND. Wird kein Wert angegeben, verwendet Flash runde Verbindungen.

Die folgende Abbildung zeigt beispielsweise die verschiedenen Einstellungen für joints. Die Abbildung zeigt für jede Einstellung eine blaue Winkellinie mit der Stärke 30 (für die jointStyle gilt) sowie eine überlagerte schwarze Winkellinie mit der Stärke 1 (für die kein jointStyle gilt):

Hinweis: Ist joints auf JointStyle.MITER gesetzt, können Sie den Parameter miterLimit verwenden, um die Länge des Winkels einzuschränken.

miterLimitNumber3.0Eine Zahl, die die Grenze festlegt, an der ein Winkel abgeschnitten wird. Gültige Werte liegen zwischen 1 und 255 (Werte außerhalb dieses Bereichs werden auf 1 bzw. 255 gerundet). Dieser Wert wird nur dann verwendet, wenn jointStyle auf "miter" gesetzt wird. Der Wert miterLimit steht für die Länge, die ein Winkel über jenen Punkt hinausgehen kann, an dem zwei Linien eine Verbindung bilden. Der Wert drückt einen Faktor der Linieneigenschaft thickness aus. Bei einem miterLimit-Faktor von 2,5 und einer thickness von 10 Pixeln, wird der Winkel bei 25 Pixeln abgeschnitten.

Betrachten Sie beispielsweise die folgenden Winkellinien mit einer thickness von 20 und mit einem miterLimit von 1, 2 und 4. Darüber befinden sich schwarze Referenzlinien, die die Schnittpunkte der Verbindungen anzeigen:

Beachten Sie, dass bei einem gegebenen miterLimit-Wert ein bestimmter Maximalwinkel existiert, bei dem der Winkel abgeschnitten wird. In der folgenden Tabelle finden Sie einige Beispiele:

miterLimit-Wert:Winkel, die kleiner sind als dieser Wert, werden abgeschnitten:1.41490 Grad260 Grad430 Grad815 Grad
fillflash.display:IGraphicsFillnullEine iGraphicsFill-Instanz, die Daten zum Füllen eines Strichs enthält. Eine IGraphicsFill-Instanz kann eine Reihe von Füllbefehlen darstellen.
Erstellt ein neues GraphicsStroke-Objekt.
flash.display.LineScaleModeflash.display.CapsStyleflash.display.JointStyleflash.display.IGraphicsFill
fill Gibt die Instanz an, die Daten zum Füllen eines Strichs enthält.flash.display:IGraphicsFill Gibt die Instanz an, die Daten zum Füllen eines Strichs enthält. Eine IGraphicsFill-Instanz kann eine Reihe von Füllbefehlen darstellen. flash.display.IGraphicsFillmiterLimit Gibt die Grenze an, an der ein Winkel abgeschnitten wird. Number Legt den Grenzwert fest, an dem ein Winkel abgeschnitten wird. Gültige Werte liegen zwischen 1 und 255 (Werte außerhalb dieses Bereichs werden auf 1 bzw. 255 gerundet). Dieser Wert wird nur dann verwendet, wenn jointStyle auf "miter" gesetzt wird. Der Wert miterLimit steht für die Länge, die ein Winkel über jenen Punkt hinausgehen kann, an dem zwei Linien eine Verbindung bilden. Der Wert drückt einen Faktor der Linieneigenschaft thickness aus. Bei einem miterLimit-Faktor von 2,5 und einer thickness von 10 Pixeln, wird der Winkel bei 25 Pixeln abgeschnitten.

Betrachten Sie beispielsweise die folgenden Winkellinien mit einer thickness von 20 und mit einem miterLimit von 1, 2 und 4. Darüber befinden sich schwarze Referenzlinien, die die Schnittpunkte der Verbindungen anzeigen:

Beachten Sie, dass bei einem gegebenen miterLimit-Wert ein bestimmter Maximalwinkel existiert, bei dem der Winkel abgeschnitten wird. In der folgenden Tabelle finden Sie einige Beispiele:

miterLimit-Wert:Winkel, die kleiner sind als dieser Wert, werden abgeschnitten:1.41490 Grad260 Grad430 Grad815 Grad
pixelHinting Gibt an, ob Striche als ganze Pixel angezeigt werden. Boolean Legt fest, ob Striche als ganze Pixel angezeigt werden. Dies wirkt sich sowohl auf die Positionen der Anker einer Kurve als auch auf die Linienstärke des Strichs selbst aus. Wenn pixelHinting auf true gesetzt ist, stellt Flash Player die Linienstärken auf volle Pixel ein. Ist pixelHinting auf false gesetzt, können Kurven und gerade Linien unterbrochen sein. In den folgenden Abbildungen wird veranschaulicht, wie Flash Player zwei Rechtecke mit abgerundeten Ecken darstellt, die identisch sind, abgesehen davon, dass der pixelHinting-Parameter in der lineStyle()-Methode anders eingestellt ist (die Abbildungen sind um 200 % vergrößert, um den Unterschied deutlich zu zeigen):

thickness Gibt die Stärke der Linie in Punkt an. Gültig sind Werte von 0 bis 255.Number Gibt die Stärke der Linie in Punkt an. Gültig sind Werte von 0 bis 255. Wenn keine Zahl angegeben ist oder wenn der Parameter den Wert „undefined“ aufweist, wird keine Linie gezeichnet. Wenn ein kleinerer Wert als 0 übergeben wird, ist der Standardwert 0. Der Wert 0 steht für die geringste Linienstärke. Der Höchstwert beträgt 255. Wenn ein größerer Wert als 255 übergeben wird, ist der Standardwert 255. caps Gibt den Typ der Linienenden an.String Gibt den Typ der Linienenden an. Folgende Werte sind zulässig: CapsStyle.NONE, CapsStyle.ROUND und CapsStyle.SQUARE. Wird kein Wert angegeben, verwendet Flash runde Enden.

Die folgende Abbildung zeigt beispielsweise die verschiedenen Einstellungen für capsStyle. Die Abbildung zeigt für jede Einstellung eine blaue Linie mit der Stärke 30 (für die capsStyle gilt) sowie eine überlagerte schwarze Linie mit der Stärke 1 (für die kein capsStyle gilt):

flash.display.CapsStyle
joints Gibt den Verbindungstyp für Winkel an. String Gibt den Verbindungstyp für Winkel an. Folgende Werte sind zulässig: JointStyle.BEVEL, JointStyle.MITER und JointStyle.ROUND. Wird kein Wert angegeben, verwendet Flash runde Verbindungen.

Die folgende Abbildung zeigt beispielsweise die verschiedenen Einstellungen für joints. Die Abbildung zeigt für jede Einstellung eine blaue Winkellinie mit der Stärke 30 (für die jointStyle gilt) sowie eine überlagerte schwarze Winkellinie mit der Stärke 1 (für die kein jointStyle gilt):

Hinweis: Ist joints auf JointStyle.MITER gesetzt, können Sie den Parameter miterLimit verwenden, um die Länge des Winkels einzuschränken.

flash.display.JointStyle
scaleMode Legt die Skalierung der Strichbreite fest.String Legt die Skalierung der Strichbreite fest. Gültige Werte sind:
  • LineScaleMode.NORMAL: Die Linienstärke wird immer skaliert, wenn das Objekt skaliert wird (der Standard).
  • LineScaleMode.NONE: Die Linienstärke wird nie skaliert.
  • LineScaleMode.VERTICAL: Die Linienstärke wird nicht skaliert, wenn das Objekt nur vertikal skaliert wurde. Betrachten Sie beispielsweise die folgenden Kreise, die mit einer 1 Pixel starken Linie gezeichnet wurden und bei denen der Parameter scaleMode jeweils auf LineScaleMode.VERTICAL gesetzt wurde. Der Kreis links wurde nur vertikal skaliert, und der Kreis rechts wurde sowohl vertikal als auch horizontal skaliert.

  • LineScaleMode.HORIZONTAL: Die Linienstärke wird nicht skaliert, wenn das Objekt nur vertikal skaliert wurde. Betrachten Sie beispielsweise die folgenden Kreise, die mit einer 1 Pixel starken Linie gezeichnet wurden und bei denen der Parameter scaleMode jeweils auf LineScaleMode.HORIZONTAL gesetzt wurde. Der Kreis links wurde nur horizontal skaliert, und der Kreis rechts wurde sowohl horizontal als auch vertikal skaliert.

flash.display.LineScaleMode
GraphicsEndFill Zeigt das Ende einer Grafikfüllung an.flash.display:IGraphicsFillflash.display:IGraphicsDataObject Zeigt das Ende einer Grafikfüllung an. Verwenden Sie ein GraphicsEndFill-Objekt mit der Graphics.drawGraphicsData()-Methode.

Das Zeichnen eines GraphicsEndFill-Objekts entspricht dem Aufrufen der Graphics.endFill()-Methode.

flash.display.Graphics.drawGraphicsData()flash.display.Graphics.endFill()GraphicsEndFill Erstellt ein Objekt zur Verwendung mit der Graphics.drawGraphicsData()-Methode zum expliziten Beenden der Füllung, Erstellt ein Objekt zur Verwendung mit der Graphics.drawGraphicsData()-Methode zum expliziten Beenden der Füllung, flash.display.Graphics.drawGraphicsData()flash.display.Graphics.endFill()
ShaderPrecision Diese Klasse definiert die Konstanten, die die möglichen Werte der precisionHint-Eigenschaft des Shaders darstellen.Object Diese Klasse definiert die Konstanten, die die möglichen Werte der precisionHint-Eigenschaft des Shaders darstellen. Jede Konstante stellt einen der Präzisionsmodi für die Ausführung der Shadervorgänge dar.

Die Auswahl des Präzisionsmodus wirkt sich auf die folgenden Shadervorgänge aus. Diese Vorgänge sind auf einem Intel-Prozessor schneller, wenn die SSE-Anweisung wie folgt eingestellt ist:

  • sin(x)
  • cos(x)
  • tan(x)
  • asin(x)
  • acos(x)
  • atan(x)
  • atan(x, y)
  • exp(x)
  • exp2(x)
  • log(x)
  • log2(x)
  • pow(x, y)
  • reciprocal(x)
  • sqrt(x)
flash.display.Shader.precisionHintFAST Stellt den schnellen Präzisionsmodus dar.fastString Stellt den schnellen Präzisionsmodus dar.

Der schnelle Präzisionsmodus gewährleistet maximale Leistung, funktioniert aber nicht konsistent über alle Plattformen und individuellen CPU-Konfigurationen hinweg. Diese Präzisionsebene reicht aus, um Grafikeffekte ohne sichtbare Artefakte zu erstellen.

Der schnelle Präzisionsmodus ist normalerweise schneller als die Verwendung von Suchtabellen.

flash.display.Shader.precisionHint
FULL Stellt den vollen Präzisionsmodus dar.fullString Stellt den vollen Präzisionsmodus dar.

Im vollen Präzisionsmodus berechnet der Shader alle mathematischen Operationen auf Basis des 32-Bit-Gleitkommastandards des IEEE. Dieser Modus gewährleistet konsistentes Verhalten auf allen Plattformen. In diesem Modus können einige mathematische Operationen, wie beispielsweise trigonometrische und Exponentialfunktionen, langsam sein.

flash.display.Shader.precisionHint
BlendMode Eine Klasse, die Konstantenwerte für visuelle Mischmoduseffekte bereitstellt.Object Eine Klasse, die Konstantenwerte für visuelle Mischmoduseffekte bereitstellt. Diese Konstanten werden in den folgenden Elementen verwendet:
  • In der blendMode-Eigenschaft der flash.display.DisplayObject-Klasse.
  • Im Parameter blendMode der draw()-Methode der flash.display.BitmapData-Klasse.
flash.display.DisplayObject.blendModeflash.display.BitmapData.draw()ADD Addiert den Wert der Grundfarben des Anzeigeobjekts zu den Farben des Hintergrunds (mit einem oberen Grenzwert von 0xFF).addString Addiert den Wert der Grundfarben des Anzeigeobjekts zu den Farben des Hintergrunds (mit einem oberen Grenzwert von 0xFF). Diese Einstellung wird im Allgemeinen für Animationen von heller werdenden Auflösungen zwischen zwei Objekten verwendet.

Wenn das Anzeigeobjekt z. B. ein Pixel mit dem RGB-Farbwert 0xAAA633 aufweist und das Pixel im Hintergrund den RGB-Wert 0xDD2200 hat, dann erhält das angezeigte Pixel den Wert 0xFFC833 (da 0xAA + 0xDD > 0xFF, 0xA6 + 0x22 = 0xC8 und 0x33 + 0x00 = 0x33 ist).

ALPHA Wendet den Alphawert jedes Pixels des Anzeigeobjekts auf den Hintergrund an.alphaString Wendet den Alphawert jedes Pixels des Anzeigeobjekts auf den Hintergrund an. Dieser Vorgang erfordert, dass die blendMode-Eigenschaft des übergeordneten Anzeigeobjekts auf flash.display.BlendMode.LAYER gesetzt wird.

Nicht unterstützt für GPU-Rendering.

DARKEN Wählt die dunklere Grundfarbe des Anzeigeobjekts und des Hintergrunds aus (die niedrigeren Werte).darkenString Wählt die dunklere Grundfarbe des Anzeigeobjekts und des Hintergrunds aus (die niedrigeren Werte). Diese Einstellung wird normalerweise für Überlagerungen verwendet.

Weist das Anzeigeobjekt z. B. ein Pixel mit einem RGB-Wert von 0xFFCC33 und das Hintergrund-Pixel einen RGB-Wert von 0xDDF800 auf, lautet der resultierende RGB-Wert für das angezeigte Pixel 0xDDCC00 (da 0xFF > 0xDD, 0xCC < 0xF8 und 0x33 > 0x00 = 33).

Nicht unterstützt für GPU-Rendering.

DIFFERENCE Vergleicht die Grundfarben des Anzeigeobjekts mit den Farben des Hintergrunds und subtrahiert für die beiden Grundfarben den dunkleren Wert von dem helleren Wert.differenceString Vergleicht die Grundfarben des Anzeigeobjekts mit den Farben des Hintergrunds und subtrahiert für die beiden Grundfarben den dunkleren Wert von dem helleren Wert. Diese Einstellung wird normalerweise zur Farbverstärkung verwendet.

Wenn das Anzeigeobjekt z. B. ein Pixel mit dem RGB-Farbwert 0xFFCC33 aufweist und das Pixel im Hintergrund den RGB-Wert 0xDDf800 hat, dann erhält das angezeigte Pixel den Wert 0x222C33 (da 0xFF - 0xDD = 0x22, 0xF8 - 0xCC = 0x2C und 0x33 - 0x00 = 0x33 ist).

ERASE Löscht den Hintergrund anhand der Alphawerte des Anzeigeobjekts.eraseString Löscht den Hintergrund anhand der Alphawerte des Anzeigeobjekts. Dieser Vorgang erfordert, dass die blendMode-Eigenschaft des übergeordneten Anzeigeobjekts auf flash.display.BlendMode.LAYER gesetzt wird.

Nicht unterstützt für GPU-Rendering.

HARDLIGHT Passt die Farbe jedes Pixels entsprechend der Dunkelheit des Anzeigeobjekts an.hardlightString Passt die Farbe jedes Pixels entsprechend der Dunkelheit des Anzeigeobjekts an. Ist das Anzeigeobjekt heller als 50 % Grau, werden die Farben von Anzeigeobjekt und Hintergrund überlagert, was zu einer helleren Farbe führt. Ist das Anzeigeobjekt dagegen dunkler als 50 % Grau, werden die Farben multipliziert, was zu dunkleren Farben führt. Diese Einstellung wird normalerweise für Schattierungen verwendet.

Nicht unterstützt für GPU-Rendering.

INVERT Kehrt den Hintergrund um.invertString Kehrt den Hintergrund um. LAYER Erzwingt die Erstellung einer Transparenzgruppe für das Anzeigeobjekt.layerString Erzwingt die Erstellung einer Transparenzgruppe für das Anzeigeobjekt. Dies bedeutet, dass das Anzeigeobjekt in einem temporären Puffer zusammengesetzt wird, bevor es weiterverarbeitet wird. Diese Zusammensetzung geschieht automatisch, wenn das Anzeigeobjekt im Voraus mithilfe der Bitmap-Zwischenspeicherung zwischengespeichert wird oder wenn es sich bei dem Anzeigeobjekt um einen Anzeigeobjekt-Container handelt, der mindestens ein untergeordnetes Objekt besitzt, dessen blendMode-Einstellung nicht "normal" lautet.

Nicht unterstützt für GPU-Rendering.

LIGHTEN Wählt die hellere Grundfarbe des Anzeigeobjekts und des Hintergrunds aus (die Farbe mit den höheren Werten).lightenString Wählt die hellere Grundfarbe des Anzeigeobjekts und des Hintergrunds aus (die Farbe mit den höheren Werten). Diese Einstellung wird normalerweise für Überlagerungen verwendet.

Weist das Anzeigeobjekt z. B. ein Pixel mit einem RGB-Wert von 0xFFCC33 und das Hintergrund-Pixel einen RGB-Wert von 0xDDF800 auf, lautet der resultierende RGB-Wert für das angezeigte Pixel 0xFFF833 (da 0xFF > 0xDD, 0xCC < 0xF8 und 0x33 > 0x00 = 33).

Nicht unterstützt für GPU-Rendering.

MULTIPLY Multipliziert die Werte der Grundfarben des Anzeigeobjekts mit den Grundfarben des Hintergrunds und normalisiert das Ergebnis durch Division durch 0xFF. Dies führt zu dunkleren Farben.multiplyString Multipliziert die Werte der Grundfarben des Anzeigeobjekts mit den Grundfarben des Hintergrunds und normalisiert das Ergebnis durch Division durch 0xFF. Dies führt zu dunkleren Farben. Diese Einstellung wird im Allgemeinen für Schatten- und Tiefeneffekte verwendet.

Weisen beispielsweise die Grundfarbe (etwa Rot) eines Pixels im Anzeigeobjekt und eines Hintergrund-Pixels den Wert 0x88 auf, lautet das Ergebnis der Multiplikation 0x4840. Die Division durch 0xFF ergibt für diese Grundfarbe 0x48. Dies ist eine dunklere Farbe als die des Anzeigeobjekts bzw. des Hintergrunds.

NORMAL Das Anzeigeobjekt wird vor dem Hintergrund angezeigt.normalString Das Anzeigeobjekt wird vor dem Hintergrund angezeigt. Die Pixelwerte des Anzeigeobjekts setzen die Pixelwerte des Hintergrunds außer Kraft. An den Stellen, an denen das Anzeigeobjekt transparent ist, wird der Hintergrund sichtbar. OVERLAY Passt die Farbe jedes Pixels entsprechend der Dunkelheit des Hintergrunds an.overlayString Passt die Farbe jedes Pixels entsprechend der Dunkelheit des Hintergrunds an. Wenn der Hintergrund heller ist als 50 % Grau, werden die Farben des Anzeigeobjekts und des Hintergrunds überlagert, um hellere Farben zu erhalten. Ist der Hintergrund dagegen dunkler als 50 % Grau, werden die Farben multipliziert, was zu dunkleren Farben führt. Diese Einstellung wird normalerweise für Schattierungen verwendet.

Nicht unterstützt für GPU-Rendering.

SCREEN Multipliziert die Komplementärfarbe des Anzeigeobjekts mit der Komplementärfarbe der Hintergrundfarbe, was zu helleren Farbtönen führt.screenString Multipliziert die Komplementärfarbe des Anzeigeobjekts mit der Komplementärfarbe der Hintergrundfarbe, was zu helleren Farbtönen führt. Diese Einstellung wird in der Regel für Hervorhebungen bzw. zum Entfernen von schwarzen Bereichen aus dem Anzeigeobjekt verwendet. SHADER Verwendet einen Shader, um die Angleichung zwischen Objekten zu definieren.shaderString Verwendet einen Shader, um die Angleichung zwischen Objekten zu definieren.

Wird die blendShader-Eigenschaft auf eine Shader-Instanz gesetzt, so wird die blendMode-Eigenschaft automatisch auf BlendMode.SHADER gesetzt. Wird die blendMode-Eigenschaft auf BlendMode.SHADER gesetzt, ohne vorher die blendShader-Eigenschaft zu setzen, so wird die blendMode-Eigenschaft auf BlendMode.NORMAL gesetzt. Wenn die blendShader-Eigenschaft gesetzt wird (wodurch die blendMode-Eigenschaft auf BlendMode.SHADER gesetzt wird), so wird der Wert der blendMode-Eigenschaft geändert. Der Mischmodus kann einfach durch Setzen der blendMode-Eigenschaft auf BlendMode.SHADER zur Verwendung des Misch-Shaders neu gesetzt werden. Die blendShader-Eigenschaft muss nicht neu gesetzt werden, es sei denn, der für den Mischmodus verwendete Shader soll geändert werden.

Nicht unterstützt für GPU-Rendering.

flash.display.DisplayObject.blendModeflash.display.DisplayObject.blendShaderflash.display.Shader
SUBTRACT Subtrahiert die Werte der Grundfarben des Anzeigeobjekts von den Werten der Hintergrundfarbe (mit einem unteren Grenzwert von 0).subtractString Subtrahiert die Werte der Grundfarben des Anzeigeobjekts von den Werten der Hintergrundfarbe (mit einem unteren Grenzwert von 0). Diese Einstellung wird im Allgemeinen für Animationen von dunkler werdenden Auflösungen zwischen zwei Objekten verwendet.

Weist das Anzeigeobjekt z. B. ein Pixel mit einem RGB-Wert von 0xAA2233 und das Hintergrund-Pixel einen RGB-Wert von 0xDDA600 auf, lautet der resultierende RGB-Wert für das angezeigte Pixel 0x338400 (da 0xDD - 0xAA = 0x33, 0xA6 - 0x22 = 0x84 und 0x00 - 0x33 < 0x00).

Graphics Die Graphics-Klasse enthält einen Satz an Methoden, mit denen Sie eine Vektorform erstellen können.Object Die Graphics-Klasse enthält einen Satz an Methoden, mit denen Sie eine Vektorform erstellen können. Anzeigeobjekte, die das Zeichnen unterstützen, enthalten Sprite- und Shape-Objekte. Jede dieser Klassen enthält eine graphics-Eigenschaft, die ein Graphics-Objekt darstellt. Die folgenden Funktionen sind Hilfsfunktionen, die eine einfache Verwendung ermöglichen sollen: drawRect(), drawRoundRect(), drawCircle() und drawEllipse().

Sie können ein Graphics-Objekt nicht direkt aus ActionScript-Code erstellen. Wenn Sie new Graphics() aufrufen, wird eine Ausnahme ausgelöst.

Die Graphics-Klasse ist endgültig, d. h., aus ihr können keine Unterklassen abgeleitet werden.

Im folgenden Beispiel wird die GraphicsExample-Klasse verwendet, um einen Kreis, ein abgerundetes Rechteck und ein Quadrat zu zeichnen. Dies wird in den folgenden Schritten erreicht:
  1. Deklarieren Sie eine size-Eigenschaft zur späteren Verwendung beim Bestimmen der Größe der einzelnen Formen.
  2. Deklarieren Sie Eigenschaften, die die Hintergrundfarbe auf Orange, die Rahmenfarbe auf Dunkelgrau, die Rahmenbreite auf 0 Pixel und den Eckradius auf 9 Pixel setzen, und setzen Sie den Abstand zwischen Bühnenrand und anderen Objekten auf 5 Pixel.
  3. Verwenden Sie die in den vorherigen Schritten deklarierten Eigenschaften zusammen mit den vorhandenen Methoden der Graphics-Klasse, um an den Koordinaten x = 0, y = 0 einen Kreis, ein abgerundetes Rechteck und ein Quadrat zu zeichnen.
  4. Zeichnen Sie die einzelnen Formen am oberen Rand der Bühne neu, indem Sie an der Position x = 5, y = 5 beginnen und zwischen den Formen einen Abstand von jeweils 5 Pixel einhalten.
package { import flash.display.DisplayObject; import flash.display.Graphics; import flash.display.Shape; import flash.display.Sprite; public class GraphicsExample extends Sprite { private var size:uint = 80; private var bgColor:uint = 0xFFCC00; private var borderColor:uint = 0x666666; private var borderSize:uint = 0; private var cornerRadius:uint = 9; private var gutter:uint = 5; public function GraphicsExample() { doDrawCircle(); doDrawRoundRect(); doDrawRect(); refreshLayout(); } private function refreshLayout():void { var ln:uint = numChildren; var child:DisplayObject; var lastChild:DisplayObject = getChildAt(0); lastChild.x = gutter; lastChild.y = gutter; for (var i:uint = 1; i < ln; i++) { child = getChildAt(i); child.x = gutter + lastChild.x + lastChild.width; child.y = gutter; lastChild = child; } } private function doDrawCircle():void { var child:Shape = new Shape(); var halfSize:uint = Math.round(size / 2); child.graphics.beginFill(bgColor); child.graphics.lineStyle(borderSize, borderColor); child.graphics.drawCircle(halfSize, halfSize, halfSize); child.graphics.endFill(); addChild(child); } private function doDrawRoundRect():void { var child:Shape = new Shape(); child.graphics.beginFill(bgColor); child.graphics.lineStyle(borderSize, borderColor); child.graphics.drawRoundRect(0, 0, size, size, cornerRadius); child.graphics.endFill(); addChild(child); } private function doDrawRect():void { var child:Shape = new Shape(); child.graphics.beginFill(bgColor); child.graphics.lineStyle(borderSize, borderColor); child.graphics.drawRect(0, 0, size, size); child.graphics.endFill(); addChild(child); } } }
beginBitmapFill Füllt einen Zeichenbereich mit einer Bitmap.bitmapflash.display:BitmapDataEine transparente oder undurchsichtige Bitmap, die die anzuzeigenden Bits enthält. matrixflash.geom:MatrixnullEin Matrix-Objekt (der flash.geom.Matrix-Klasse), mit dem Sie Transformationen an der Bitmap definieren können. Die folgende Matrix können Sie beispielsweise verwenden, um eine Bitmap um 45 Grad (pi/4 rad) zu drehen: matrix = new flash.geom.Matrix(); matrix.rotate(Math.PI / 4); repeatBooleantrueWenn true eingestellt ist, wird die Bitmap in einem Kachelmuster wiederholt. Bei false wird die Bitmap nicht wiederholt, und die Kanten der Bitmap werden für alle Füllbereiche verwendet, die über die Bitmap hinausgehen.

Nehmen Sie die folgende Bitmap (ein Schachbrettmuster im Format 20 x 20 Pixel) als Beispiel:

Ist repeat auf true gesetzt (wie im folgenden Beispiel), wiederholt die Bitmap-Füllung die Bitmap:

Ist repeat auf false gesetzt, verwendet die Bitmapfüllung die Randpixel für den Füllbereich außerhalb der Bitmap:

smoothBooleanfalseWenn false eingestellt ist, werden aufwärts skalierte Bilder mithilfe des „Nächster-Nachbar-Algorithmus“ wiedergegeben. Meist sind dann die einzelnen Pixelpunkte zu sehen. Wenn true eingestellt ist, werden aufwärts skalierte Bilder anhand eines bilinearen Algorithmus wiedergegeben. Eine Wiedergabe anhand des „Nächster-Nachbar-Algorithmus“ ist schneller. Beginnt eine Form mit Bitmap-Füllung.
Füllt einen Zeichenbereich mit einer Bitmap. Um den Bereich zu füllen, kann das Bild wiederholt oder mehrfach neben- und untereinander angeordnet werden. Die Füllung bleibt wirksam, bis Sie eine der Methoden beginFill(), beginBitmapFill(), beginGradientFill() oder beginShaderFill() aufrufen. Durch das Aufrufen der clear()-Methode wird die Füllung gelöscht.

Die Anwendung stellt die Füllung immer dann dar, wenn drei oder mehr Punkte gezeichnet werden oder die endFill()-Methode aufgerufen wird.

Im folgenden Beispiel wird ein Bild (image1.jpg) gedreht und wiederholt, um ein Rechteck auszufüllen.
  1. Die Bilddatei (image1.jpg) wird mithilfe der Loader- und URLRequest-Objekte geladen. Hier befindet sich die Datei im selben Ordner wie die SWF-Datei. Bei der Kompilierung der SWF-Datei muss „Sicherheit bei lokaler Wiedergabe“ auf „Nur auf lokale Dateien zugreifen“ eingestellt sein.
  2. Nachdem das Bild geladen wurde (Event ist abgeschlossen), wird die Methode drawImage() aufgerufen. Die Methode ioErrorHandler() schreibt einen Nachverfolgungskommentar, wenn das Bild nicht richtig geladen wird.
  3. In der Methode drawImage() wird ein BitmapData-Objekt instanziiert, und seine Breite und Höhe werden an das Bild (image1.jpg) angepasst. Das Quellbild wird dann in das BitmapData-Objekt gezeichnet. Als Nächstes wird ein Rechteck in das Sprite-Objekt mySprite gezeichnet und mit dem BitmapData-Objekt gefüllt. Mithilfe eines Matrix-Objekts dreht die Methode beginBitmapFill() das Bild um 45 Grad und füllt das Rechteck dann mit dem Bild.
package { import flash.display.Sprite; import flash.display.BitmapData; import flash.display.Loader; import flash.net.URLRequest; import flash.events.Event; import flash.events.IOErrorEvent; import flash.geom.Matrix; public class Graphics_beginBitmapFillExample extends Sprite { private var url:String = "image1.jpg"; private var loader:Loader = new Loader(); public function Graphics_beginBitmapFillExample() { var request:URLRequest = new URLRequest(url); loader.load(request); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, drawImage); loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); } private function drawImage(event:Event):void { var mySprite:Sprite = new Sprite(); var myBitmap:BitmapData = new BitmapData(loader.width, loader.height, false); myBitmap.draw(loader, new Matrix()); var matrix:Matrix = new Matrix(); matrix.rotate(Math.PI/4); mySprite.graphics.beginBitmapFill(myBitmap, matrix, true); mySprite.graphics.drawRect(100, 50, 200, 90); mySprite.graphics.endFill(); addChild(mySprite); } private function ioErrorHandler(event:IOErrorEvent):void { trace("Unable to load image: " + url); } } }
endFill()beginFill()beginGradientFill()
beginFill Gibt eine einfache, einfarbige Füllung an, die bei nachfolgenden Aufrufen anderer Graphics-Methoden (wie „lineTo()“ oder „drawCircle()“) zum Zeichnen verwendet wird.coloruintDie Farbe der Füllung (0xRRGGBB). alphaNumber1.0Der Alphawert der Füllung (0,0 bis 1,0). Legt eine einfarbige Füllung fest. Gibt eine einfache, einfarbige Füllung an, die bei nachfolgenden Aufrufen anderer Graphics-Methoden (wie lineTo() oder drawCircle()) zum Zeichnen verwendet wird. Die Füllung bleibt wirksam, bis Sie eine der Methoden beginFill(), beginBitmapFill(), beginGradientFill() oder beginShaderFill() aufrufen. Durch das Aufrufen der clear()-Methode wird die Füllung gelöscht.

Die Anwendung stellt die Füllung immer dann dar, wenn drei oder mehr Punkte gezeichnet werden oder die endFill()-Methode aufgerufen wird.

Am Ende des Abschnitts über diese Klasse finden Sie in Beispiel , in dem die Verwendung dieser Methode veranschaulicht wird.
endFill()beginBitmapFill()beginGradientFill()
beginGradientFill Gibt eine Farbverlaufsfüllung an, die bei nachfolgenden Aufrufen anderer Graphics-Methoden wie lineTo() oder drawCircle() zum Zeichnen verwendet wird.Wenn der Parameter type nicht gültig ist. ArgumentErrorArgumentErrortypeStringEin Wert aus der GradientType-Klasse, mit dem angegeben wird, welcher Farbverlaufstyp verwendet werden soll: GradientType.LINEAR oder GradientType.RADIAL. colorsArrayEin Array mit hexadezimalen RGB-Farbwerten, die im Farbverlauf verwendet werden (beispielsweise 0xFF0000 für Rot, 0x0000FF für Blau usw.). Sie können bis zu 15 Farben angeben. Definieren Sie für jede Farbe einen entsprechenden Wert in den Parametern „alphas“ und „ratios“. alphasArrayEin Array mit Alphawerten für die entsprechenden Farben im Array „colors“. Gültig sind Werte von 0 bis 1. Ist der Wert kleiner als 0, ist der Standardwert 0. Ist der Wert größer als 1, ist der Standardwert 1. ratiosArrayEin Array mit Farbverteilungsverhältnissen. Zulässig sind Werte zwischen 0 und 255. Dieser Wert gibt den Breitenanteil an, in dem die Farbe mit 100 % gesampelt wird. Der Wert 0 stellt die linke Position im Farbverlaufsfeld dar, 255 die rechte.

Hinweis: Dieser Wert repräsentiert Positionen im Farbverlaufsfeld, nicht im Koordinatenraum des endgültigen Farbverlaufs, der breiter oder schmaler als das Farbverlaufsfeld sein kann. Geben Sie für jeden Wert im Parameter colors einen Wert an.

Die folgende Abbildung zeigt für einen linearen Verlauf mit den beiden Farben Blau und Grün die Farbplatzierung im Verlauf basierend auf den verschiedenen Werten im ratios-Array an:

ratiosGradient[0, 127][0, 255][127, 255]

Die Werte im Array müssen sich sequenziell erhöhen. Beispiel: [0, 63, 127, 190, 255].

matrixflash.geom:MatrixnullEine Transformationsmatrix, wie sie von der flash.geom.Matrix-Klasse definiert wird. Die flash.geom.Matrix-Klasse umfasst eine createGradientBox()-Methode, mit der Sie die Matrix zur Verwendung mit der beginGradientFill()-Methode auf einfache Weise festlegen können. spreadMethodStringpadEin Wert aus der SpreadMethod-Klasse, der festlegt, welche Auftragstärke zu verwenden ist: SpreadMethod.PAD, SpreadMethod.REFLECT oder SpreadMethod.REPEAT.

Angenommen, Sie haben einen einfachen linearen Farbverlauf zwischen zwei Farben:

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

Dieses Beispiel verwendet SpreadMethod.PAD als Methode für die Auftragstärke, und der Farbverlauf sieht folgendermaßen aus:

Mit der Auftragstärke SpreadMethod.REFLECT sieht die Farbverlaufsfüllung folgendermaßen aus:

Mit der Auftragstärke SpreadMethod.REPEAT sieht die Farbverlaufsfüllung folgendermaßen aus:

interpolationMethodStringrgbEin Wert der InterpolationMethod-Klasse, der festlegt, welcher Wert verwendet werden soll: InterpolationMethod.LINEAR_RGB oder InterpolationMethod.RGB.

Angenommen, Sie haben einen einfachen linearen Farbverlauf zwischen zwei Farben (wobei der Parameter spreadMethod auf SpreadMethod.REFLECT gesetzt ist). Die verschiedenen Interpolationsmethoden haben folgende Auswirkung auf die Darstellung des Farbverlaufs:

InterpolationMethod.LINEAR_RGBInterpolationMethod.RGB
focalPointRatioNumber0Eine Zahl, die die Position des Farbverlaufsbrennpunkts steuert. Der Wert 0 bedeutet, dass der Brennpunkt in der Mitte liegt. Der Wert 1 bedeutet, dass der Brennpunkt an einem Rand des Farbverlaufskreises liegt. Der Wert -1 bedeutet, dass der Brennpunkt am anderen Rand des Farbverlaufskreises liegt. Werte, die kleiner als -1 oder größer als 1 sind, werden auf -1 bzw. 1 gerundet. Im folgenden Beispiel ist focalPointRatio z. B. auf 0,75 gesetzt:

Legt eine Farbverlaufsfüllung fest.
Gibt eine Farbverlaufsfüllung an, die bei nachfolgenden Aufrufen anderer Graphics-Methoden wie lineTo() oder drawCircle() zum Zeichnen verwendet wird. Die Füllung bleibt wirksam, bis Sie eine der Methoden beginFill(), beginBitmapFill(), beginGradientFill() oder beginShaderFill() aufrufen. Durch das Aufrufen der clear()-Methode wird die Füllung gelöscht.

Die Anwendung stellt die Füllung immer dann dar, wenn drei oder mehr Punkte gezeichnet werden oder die endFill()-Methode aufgerufen wird.

endFill()beginFill()beginBitmapFill()flash.geom.Matrix.createGradientBox()flash.display.GradientTypeflash.display.SpreadMethod
beginShaderFill Gibt eine Shaderfüllung an, die bei nachfolgenden Aufrufen anderer Graphics-Methoden wie lineTo() oder drawCircle() zum Zeichnen verwendet wird.Wenn der Shaderausgabetyp mit diesem Vorgang nicht kompatibel ist (der Shader muss eine pixel3- oder pixel4-Ausgabe festlegen). ArgumentErrorArgumentErrorWenn der Shader eine Bildeingabe festlegt, die nicht vorhanden ist. ArgumentErrorArgumentErrorWenn eine ByteArray- oder Vector.<Number>-Instanz als Eingabe verwendet wird und die width- und height-Eigenschaft für ShaderInput nicht festgelegt ist oder die festgelegten Werte nicht mit der Datenmenge im Eingabeobjekt übereinstimmen. Weitere Informationen finden Sie im Abschnitt zur ShaderInput.input-Eigenschaft. ArgumentErrorArgumentErrorshaderflash.display:ShaderDer für die Füllung zu verwendende Shader. In dieser Shader-Instanz muss keine Bildeingabe festgelegt werden. Ist im Shader jedoch eine Bildeingabe festgelegt, so muss diese manuell bereitgestellt werden. Um die Eingabe festzulegen, setzen Sie die input-Eigenschaft der entsprechenden ShaderInput-Eigenschaft der Shader.data-Eigenschaft.

Wird eine Shader-Instanz als Argument übergeben, so wird der Shader intern kopiert. Beim Füllzeichenvorgang wird diese interne Kopie verwendet anstatt des Verweises auf den ursprünglichen Shader. Änderungen am Shader, beispielsweise die Änderung eines Parameterwerts, einer Eingabe, oder des Bytecode, werden nicht auf die Kopie des Shaders angewendet, die für die Füllung verwendet wird.

matrixflash.geom:MatrixnullEin Matrixobjekt (der flash.geom.Matrix-Klasse), mit dem Sie Transformationen am Shader definieren können. Die folgende Matrix können Sie beispielsweise verwenden, um einen Shader um 45 Grad (pi/4 rad) zu drehen: matrix = new flash.geom.Matrix(); matrix.rotate(Math.PI / 4);

Die vom Shader entgegengenommenen Koordinaten basieren auf der im matrix-Parameter festgelegten Matrix. Bei der Standardmatrix (null) sind die Koordinaten im Shader lokale Pixelkoordinaten, die für das Sampling einer Eingabe verwendet werden können.

Legt eine Shaderfüllung fest.
Legt eine Shaderfüllung fest, die bei nachfolgenden Aufrufen anderer Graphics-Methoden (wie lineTo() oder drawCircle()) für das Objekt verwendet wird. Die Füllung bleibt wirksam, bis Sie eine der Methoden beginFill(), beginBitmapFill(), beginGradientFill() oder beginShaderFill() aufrufen. Durch das Aufrufen der clear()-Methode wird die Füllung gelöscht.

Die Anwendung stellt die Füllung immer dann dar, wenn drei oder mehr Punkte gezeichnet werden oder die endFill()-Methode aufgerufen wird.

Shader-Füllungen werden beim GPU-Rendering nicht unterstützt; gefüllte Bereiche werden in Cyan eingefärbt.

endFill()beginFill()beginBitmapFill()beginGradientFill()flash.display.ShaderInput
clear Löscht die Grafiken, die für dieses Graphics-Objekt gezeichnet worden sind, und setzt die Einstellungen für den Füll- und Linienstil zurück. Löscht die Grafiken, die für dieses Graphics-Objekt gezeichnet worden sind, und setzt die Einstellungen für den Füll- und Linienstil zurück. copyFrom Kopiert alle Zeichenbefehle vom Graphics-Quellobjekt in das aufrufende Graphics-Objekt.sourceGraphicsflash.display:GraphicsDas Graphics-Objekt, von dem die Zeichenbefehle kopiert werden. Kopiert alle Zeichenbefehle vom Graphics-Quellobjekt in das aufrufende Graphics-Objekt. curveTo Zeichnet eine Kurve im aktuellen Linienstil von der aktuellen Zeichnungsposition zu (anchorX, anchorY) unter Verwendung des durch (controlX, controlY) angegebenen Steuerpunkts.controlXNumberEine Zahl, die eine horizontale Position relativ zum Registrierungspunkt des übergeordneten Anzeigeobjekts angibt. controlYNumberEine Zahl, die eine vertikale Position relativ zum Registrierungspunkt des übergeordneten Anzeigeobjekts angibt. anchorXNumberEine Zahl, die eine horizontale Position des nächsten Ankerpunkts relativ zum Registrierungspunkt des übergeordneten Anzeigeobjekts angibt. anchorYNumberEine Zahl, die eine vertikale Position des nächsten Ankerpunkts relativ zum Registrierungspunkt des übergeordneten Anzeigeobjekts angibt. Zeichnet eine Kurve von der aktuellen Zeichnungsposition zu (anchorX, anchorY) unter Verwendung des durch (controlX, controlY) angegebenen Steuerpunkts. Zeichnet eine Kurve im aktuellen Linienstil von der aktuellen Zeichnungsposition zu (anchorX, anchorY) unter Verwendung des durch (controlX, controlY) angegebenen Steuerpunkts. Die aktuelle Zeichnungsposition wird dann auf (anchorX, anchorY) gesetzt. Wenn der Movieclip, in dem Sie zeichnen, einen mit den Flash-Zeichenwerkzeugen erstellten Inhalt enthält, werden die Ergebnisse von Aufrufen der curveTo()-Methode unterhalb dieses Inhalts gezeichnet. Wenn Sie die curveTo()-Methode vor der moveTo()-Methode aufrufen, ist der Standardwert der aktuellen Zeichnungsposition (0, 0). Wenn ein Parameter fehlt, schlägt die Ausführung dieser Methode fehl, und die aktuelle Zeichnungsposition wird beibehalten.

Die gezeichnete Kurve ist eine quadratische Bézierkurve. Quadratische Bézierkurven bestehen aus zwei Ankerpunkten und einem Steuerpunkt. Die Kurve interpoliert die zwei Ankerpunkte und neigt sich zum Steuerpunkt hin.

Im folgenden Beispiel wird ein grünes kreisförmiges Objekt mit einer Breite und Höhe von 100 Pixel an der Position 250 Pixel rechts vom Registrierungspunkt (0, 0) des Sprite-Anzeigeobjekts gezeichnet.

Zeichnen Sie vier Kurven, um einen Kreis zu erzeugen, und füllen Sie ihn grün aus.

Beachten Sie, dass aufgrund der Beschaffenheit der quadratischen Bezier-Gleichung kein perfekter Kreis entsteht. Am besten zeichnen Sie einen Kreis mit der Methode drawCircle() der Graphics-Klasse.

package { import flash.display.Sprite; import flash.display.Shape; public class Graphics_curveToExample1 extends Sprite { public function Graphics_curveToExample1():void { var roundObject:Shape = new Shape(); roundObject.graphics.beginFill(0x00FF00); roundObject.graphics.moveTo(250, 0); roundObject.graphics.curveTo(300, 0, 300, 50); roundObject.graphics.curveTo(300, 100, 250, 100); roundObject.graphics.curveTo(200, 100, 200, 50); roundObject.graphics.curveTo(200, 0, 250, 0); roundObject.graphics.endFill(); this.addChild(roundObject); } } }
Im folgenden Beispiel wird mithilfe der Methode curveTo() ein Neumond gezeichnet.

Es werden zwei Kurven mit einer Linienstärke von 1 Pixel gezeichnet und der Raum zwischen den Kurven wird weiß ausgefüllt. Mit der Methode moveTo() wird die aktuelle Zeichenposition auf die Koordinaten (100, 100) festgelegt. Die erste Kurve verschiebt die Zeichenposition auf (100, 200), den Zielpunkt der Kurve. Die zweite Kurve bringt die Position zurück zum Startpunkt (100, 100), der zugleich der Zielpunkt der zweiten Kurve ist. Die horizontalen Steuerpunkte bestimmten die unterschiedlichen Kurvengrößen.

package { import flash.display.Sprite; import flash.display.Shape; public class Graphics_curveToExample2 extends Sprite { public function Graphics_curveToExample2() { var newMoon:Shape = new Shape(); newMoon.graphics.lineStyle(1, 0); newMoon.graphics.beginFill(0xFFFFFF); newMoon.graphics.moveTo(100, 100); newMoon.graphics.curveTo(30, 150, 100, 200); newMoon.graphics.curveTo(50, 150, 100, 100); graphics.endFill(); this.addChild(newMoon); } } }
drawCircle Zeichnet einen Kreis.xNumberDie x-Position des Kreismittelpunkts relativ zum Registrierungspunkt des übergeordneten Anzeigeobjekts (in Pixel). yNumberDie y-Position des Kreismittelpunkts relativ zum Registrierungspunkt des übergeordneten Anzeigeobjekts (in Pixel). radiusNumberDer Radius des Kreises (in Pixel). Zeichnet einen Kreis. Zeichnet einen Kreis. Setzen Sie den Linienstil oder die Füllung oder beides, bevor Sie die drawCircle()-Methode aufrufen. Dazu rufen Sie die Methode linestyle(), lineGradientStyle(), beginFill(), beginGradientFill() oder beginBitmapFill() auf. Am Ende des Abschnitts über diese Klasse finden Sie in Beispiel , in dem die Verwendung dieser Methode veranschaulicht wird. drawEllipse()lineStyle()lineGradientStyle()beginFill()beginGradientFill()beginBitmapFill()drawEllipse Zeichnet eine Ellipse.xNumberDie x-Position der linken oberen Ecke des Begrenzungsrahmens der Ellipse relativ zum Registrierungspunkt des übergeordneten Anzeigeobjekts (in Pixel). yNumberDie y-Position der linken oberen Ecke des Begrenzungsrahmens der Ellipse relativ zum Registrierungspunkt des übergeordneten Anzeigeobjekts (in Pixel). widthNumberDie Breite der Ellipse (in Pixel). heightNumberDie Höhe der Ellipse (in Pixel). Zeichnet eine Ellipse. Zeichnet eine Ellipse. Setzen Sie den Linienstil oder die Füllung oder beides, bevor Sie die drawEllipse()-Methode aufrufen. Dazu rufen Sie die Methode linestyle(), lineGradientStyle(), beginFill(), beginGradientFill() oder beginBitmapFill() auf. Im folgenden Beispiel werden mithilfe der Funktion drawEgg() drei unterschiedlich große Eier (drei Ellipsen verschiedener Größe) gezeichnet. Die Größe ist vom Parameter eggSize abhängig.
  1. Der Konstruktor ruft die Funktion drawEgg() auf und übergibt die horizontalen und vertikalen Parameter für die Position, an der das Ei gezeichnet werden soll, sowie den Typ des Eis (eggSize). (Die Höhe und Breite der Eier (der Ellipsen) kann verwendet werden, um festzulegen, wo sie angezeigt werden.)
  2. Die Funktion drawEgg() zeichnet die Ellipsen unterschiedlicher Größe und füllt sie mithilfe der Methode beginFill(). Für diese Funktion wurde keine erweiterte Fehlerverarbeitung geschrieben.
package { import flash.display.Sprite; import flash.display.Shape; public class Graphics_drawEllipseExample extends Sprite { public static const SMALL:uint = 0; public static const MEDIUM:uint = 1; public static const LARGE:uint = 2; public function Graphics_drawEllipseExample() { drawEgg(SMALL, 0, 100); drawEgg(MEDIUM, 100, 60); drawEgg(LARGE, 250, 35); } public function drawEgg(eggSize:uint, x:Number, y:Number):void { var myEgg:Shape = new Shape(); myEgg.graphics.beginFill(0xFFFFFF); myEgg.graphics.lineStyle(1); switch(eggSize) { case SMALL: myEgg.graphics.drawEllipse(x, y, 60, 70); break; case MEDIUM: myEgg.graphics.drawEllipse(x, y, 120, 150); break; case LARGE: myEgg.graphics.drawEllipse(x, y, 150, 200); break; default: trace ("Wrong size! There is no egg."); break; } myEgg.graphics.endFill(); this.addChild(myEgg); } } }
drawCircle()lineStyle()lineGradientStyle()beginFill()beginGradientFill()beginBitmapFill()
drawGraphicsData Sendet eine Reihe von IGraphicsData-Instanzen für das Zeichnen.graphicsDataEin Vektor mit Grafikobjekten, die die IGraphicsData-Schnittstelle implementieren. Sendet eine Reihe von IGraphicsData-Instanzen für das Zeichnen. Diese Methode akzeptiert einen Vektor mit Objekten, einschließlich Pfade, Füllungen und Striche, die die IGraphicsData-Schnittstelle implementieren. Ein Vektor mit IGraphicsData-Instanzen kann sich auf einen Teil einer Form beziehen, kann aber auch ein komplexer, umfangreicher Datensatz sein, der eine Form vollständig darstellt.

Grafikpfade können andere Grafikpfade enthalten. Enthält der graphicsData-Vektor einen Pfad, so wird dieser während dieses Vorgangs mit allen seinen Unterpfaden dargestellt.

Im folgenden Beispiel wird ein GraphicsGradientFill-Objekt für die Festlegung der Fülleigenschaften eines Quadrats erstellt. Danach wird für die Festlegung der Eigenschaften der Begrenzungslinie des Quadrats ein GraphicsStroke-Objekt (für die Linienstärke) und ein GraphicsSolidFill-Objekt (für die Linienfarbe) erstellt. Weiterhin wird ein GraphicsPath-Objekt erstellt, das die Werte zum Zeichnen der Form enthält. Diese Objekte werden alle in einem IGraphicsData-Objekt gespeichert und für die Darstellung der Form an den drawGraphicsData()-Befehl übergeben. package{ import flash.display.*; import flash.geom.*; public class DrawGraphicsDataExample extends Sprite { public function DrawGraphicsDataExample(){ // establish the fill properties var myFill:GraphicsGradientFill = new GraphicsGradientFill(); myFill.colors = [0xEEFFEE, 0x0000FF]; myFill.matrix = new Matrix(); myFill.matrix.createGradientBox(100, 100, 0); // establish the stroke properties var myStroke:GraphicsStroke = new GraphicsStroke(2); myStroke.fill = new GraphicsSolidFill(0x000000); // establish the path properties var myPath:GraphicsPath = new GraphicsPath(new Vector.<int>(), new Vector.<Number>()); myPath.commands.push(1,2,2,2,2); myPath.data.push(10,10, 10,100, 100,100, 100,10, 10,10); // populate the IGraphicsData Vector array var myDrawing:Vector.<IGraphicsData> = new Vector.<IGraphicsData>(); myDrawing.push(myFill, myStroke, myPath); // render the drawing graphics.drawGraphicsData(myDrawing); } } }
flash.display.IGraphicsDataflash.display.GraphicsBitmapFillflash.display.GraphicsEndFillflash.display.GraphicsGradientFillflash.display.GraphicsPathflash.display.GraphicsShaderFillflash.display.GraphicsSolidFillflash.display.GraphicsStrokeflash.display.GraphicsTrianglePath
drawPath Sendet eine Reihe von Befehlen für das Zeichnen.commandsEin Ganzzahlvektor, der Befehle darstellt, die in der GraphicsPathCommand-Klasse definiert sind. Die GraphicsPathCommand-Klasse ordnet Befehle numerischen Bezeichnern für dieses Vektor-Array zu. dataEin Zahlenvektor, bei dem jedes Zahlenpaar als Koordinatenposition behandelt wird (ein Paar bestehend aus x und y). Die Wertepaare aus x- und y-Koordinaten sind keine Point-Objekte. Der data-Vektor besteht aus einer Reihe von Zahlen, bei dem jede Zweiergruppe eine Koordinatenposition darstellt. windingStringevenOddLegt die Windungsregel mithilfe eines in der GraphicsPathWinding-Klasse definierten Werts fest. Sendet eine Reihe von Befehlen für das Zeichnen. Die drawPath()-Methode verwendet Vektor-Arrays, um einzelne moveTo()-, lineTo()- und curveTo()-Zeichenbefehle in einem einzigen Aufruf zusammenzufassen. Die Parameter der drawPath()-Methode kombinieren Zeichenbefehle mit Wertepaaren aus x- und y-Koordinaten und einer Zeichenrichtung. Die Zeichenbefehle sind Werte der GraphicsPathCommand-Klasse. Die Wertepaare aus x- und y-Koordinaten sind Zahlen in einem Array, wobei jedes Paar eine Koordinatenposition festlegt. Die Zeichenrichtung ist ein Wert aus der GraphicsPathWinding-Klasse.

Generell ist die Darstellung von Zeichnungen mithilfe von drawPath() schneller als mit einer Reihe einzelner lineTo()- und curveTo()-Methoden.

Die drawPath()-Methode verwendet eine gleitende Berechnung, sodass die Drehung und Skalierung von Formen genauer ist und ein besseres Ergebnis erzielt. Andererseits können Kurven, die mithilfe der drawPath()-Methode gesendet wurden, geringfügige Ausrichtungsfehler auf der Subpixelebene aufweisen, wenn sie gemeinsam mit der lineTo()- oder curveTo()-Methode verwendet werden.

Die drawPath()-Methode verwendet auch leicht unterschiedliche Regeln für das Füllen und Zeichnen von Linien. Diese sind nachfolgend beschrieben:

  • Beim Anwenden einer Füllung beim Darstellen eines Pfads:
    • Ein Unterpfad, der kürzer als 3 Punkte ist, wird nicht dargestellt. (Beachten Sie jedoch, dass der Strich trotzdem dargestellt wird, und zwar in Übereinstimmung mit den Regeln für Striche, siehe unten.)
    • Ein nicht geschlossener Unterpfad (Endpunkt und Anfangspunkt stimmen nicht überein) wird implizit geschlossen.
  • Beim Anwenden eines Strichs beim Darstellen eines Pfads:
    • Der Unterpfad kann aus einer beliebigen Anzahl an Punkten bestehen.
    • Der Unterpfad wird niemals implizit geschlossen.
Im folgenden Beispiel werden zwei Vector-Objekte mit Daten gefüllt und dann zum Zeichnen eines blauen Sterns an die drawPath()-Methode übergeben. Der erste Vektor, star_commands, enthält eine Reihe von Ganzzahlen, die Zeichenbefehle aus der flash.display.GraphicsPathCommand-Klasse darstellen. Dabei entspricht der Wert 1 einem MoveTo()-und der Wert 2 einem LineTo()-Befehl. Der zweite Vektor, star_coord, enthält fünf Sätze aus x- und y-Koordinatenpaaren. Die drawPath()-Methode gleicht zum Zeichnen des Sterns die Befehle mit den Positionen ab. package{ import flash.display.*; public class DrawPathExample extends Sprite { public function DrawPathExample(){ var star_commands:Vector.<int> = new Vector.<int>(5, true); star_commands[0] = 1; star_commands[1] = 2; star_commands[2] = 2; star_commands[3] = 2; star_commands[4] = 2; var star_coord:Vector.<Number> = new Vector.<Number>(10, true); star_coord[0] = 66; //x star_coord[1] = 10; //y star_coord[2] = 23; star_coord[3] = 127; star_coord[4] = 122; star_coord[5] = 50; star_coord[6] = 10; star_coord[7] = 49; star_coord[8] = 109; star_coord[9] = 127; graphics.beginFill(0x003366); graphics.drawPath(star_commands, star_coord); } } } Im Beispiel oben wird jeder Befehl und jedes Koordinatenpaar einzeln zugewiesen, damit Ihre Position im Array gezeigt werden kann. Sie können jedoch auch ein einer einzigen Anweisung zugewiesen werden. Im folgenden Beispiel wird derselbe Stern gezeichnet, indem die Werte für die Arrays in einer einzigen push()-Anweisung zugewiesen werden: package{ import flash.display.*; public class DrawPathExample extends Sprite { public function DrawPathExample(){ var star_commands:Vector.<int> = new Vector.<int>(); star_commands.push(1, 2, 2, 2, 2); var star_coord:Vector.<Number> = new Vector.<Number>(); star_coord.push(66,10, 23,127, 122,50, 10,49, 109,127); graphics.beginFill(0x003366); graphics.drawPath(star_commands, star_coord); } } } Hinweis: Standardmäßig verwendet die drawPath()-Methode den Windungstyp „Gerade-Ungerade“. Dadurch wird die Mitte des Sterns nicht gefüllt. Legen Sie im dritten Parameter den Windungstyp „Nicht null“ fest, damit die Mitte des Sterns gefüllt wird: graphics.drawPath(star_commands, star_coord, GraphicsPathWinding.NON_ZERO);
flash.display.GraphicsPathCommandflash.display.GraphicsPathWinding
drawRect Zeichnet ein Rechteck.Wenn der Parameter width oder height etwas anderes als eine Zahl enthält (Number.NaN). ArgumentErrorArgumentErrorxNumberEine Ganzzahl, die die horizontale Position relativ zum Registrierungspunkt des übergeordneten Anzeigeobjekts angibt (in Pixel). yNumberEine Ganzzahl, die die vertikale Position relativ zum Registrierungspunkt des übergeordneten Anzeigeobjekts angibt (in Pixel). widthNumberDie Breite des Rechtecks (in Pixel). heightNumberDie Höhe des Rechtecks (in Pixel). Zeichnet ein abgerundetes Rechteck. Zeichnet ein Rechteck. Setzen Sie den Linienstil oder die Füllung oder beides, bevor Sie die drawRect()-Methode aufrufen. Dazu rufen Sie die Methode linestyle(), lineGradientStyle(), beginFill(), beginGradientFill() oder beginBitmapFill() auf. Im folgenden Beispiel wird gezeigt, wie Sie in ActionScript 3.0 Formen zeichnen können. Beispiel bereitgestellt von ActionScriptExamples.com. var movieClip:MovieClip = new MovieClip(); movieClip.graphics.beginFill(0xFF0000); movieClip.graphics.drawRect(0, 0, 100, 80); movieClip.graphics.endFill(); movieClip.x = 10; movieClip.y = 10; addChild(movieClip); lineStyle()lineGradientStyle()beginFill()beginGradientFill()beginBitmapFill()drawRoundRect()drawRoundRect Zeichnet ein abgerundetes Rechteck.Wenn der Parameter width, height, ellipseWidth oder ellipseHeight etwas anderes als eine Zahl enthält (Number.NaN). ArgumentErrorArgumentErrorxNumberEine Ganzzahl, die die horizontale Position relativ zum Registrierungspunkt des übergeordneten Anzeigeobjekts angibt (in Pixel). yNumberEine Ganzzahl, die die vertikale Position relativ zum Registrierungspunkt des übergeordneten Anzeigeobjekts angibt (in Pixel). widthNumberDie Breite des abgerundeten Rechtecks (in Pixel). heightNumberDie Höhe des abgerundeten Rechtecks (in Pixel). ellipseWidthNumberDie Breite der Ellipse, die zum Zeichnen der abgerundeten Ecken verwendet wird (in Pixel). ellipseHeightNumberunknownDie Höhe der Ellipse, die zum Zeichnen der abgerundeten Ecken verwendet wird (in Pixel). Optional. Wird kein Wert angegeben, wird als Standardwert der Wert verwendet, der für den Parameter ellipseWidth angegeben wurde. Zeichnet ein abgerundetes Rechteck. Zeichnet ein abgerundetes Rechteck. Setzen Sie den Linienstil oder die Füllung oder beides, bevor Sie die drawRoundRect()-Methode aufrufen. Dazu rufen Sie die Methode linestyle(), lineGradientStyle(), beginFill(), beginGradientFill() oder beginBitmapFill() auf. Am Ende des Abschnitts über diese Klasse finden Sie in Beispiel , in dem die Verwendung dieser Methode veranschaulicht wird. lineStyle()lineGradientStyle()beginFill()beginGradientFill()beginBitmapFill()drawRect()drawTriangles Stellt einen Satz an Dreiecken dar, normalerweise, um Bitmaps zu verzerren und ihnen ein dreidimensionales Aussehen zu verleihen.verticesEin Zahlenvektor, bei dem jedes Zahlenpaar als Koordinatenposition behandelt wird (ein Paar bestehend aus x und y). Der vertices-Parameter wird benötigt. indicesnullEin Ganzzahl- oder Indexvektor, bei dem jeweils drei Indexwerte ein Dreieck definieren. Ist der indexes-Parameter null, so definieren jeweils drei Scheitelpunkte (sechs x,y-Paare im vertices-Vektor) ein Dreieck. Andernfalls bezieht sich jede Indexposition auf einen Scheitelpunkt, d. h. ein Zahlenpaar im vertices-Vektor. Beispiel: indexes[1] verweist auf (vertices[2], vertices[3]). Der indexes-Parameter ist optional, allgemein verringern Indizes jedoch die gesendete und berechnete Datenmenge. uvtDatanullEin Vektor normalisierter Koordinaten, der für die Anwendung von Texturmapping verwendet wird. Jede Koordinate verweist auf einen Punkt in der Bitmap, der für die Füllung verwendet wird. Für jeden Scheitelpunkt muss es eine UV- oder UVT-Koordinate geben. Die UV-Koordinaten (0,0) entsprechen dem linken oberen Bereich der Bitmap, während (1,1) dem rechten unteren Bereich entspricht.

Entspricht die Länge dieses Vektors der doppelten Länge des vertices-Vektors, so werden die normalisierten Koordinaten ohne Perspektivenkorrektur verwendet.

Entspricht die Länge dieses Vektors der dreifachen Länge des vertices-Vektors, so wird die dritte Koordinate als „t“ interpretiert, als Entfernung zwischen Auge und Textur im Sichtraum. Dies ermöglicht der Wiedergabe-Engine die korrekte Anwendung von Perspektiven beim Texturmapping im 3D-Raum.

Ist der uvtData-Parameter null, werden die normalen Füllregeln (und beliebigen Füllungstypen) angewendet.

cullingStringnoneLegt fest, ob Dreiecke, die in eine festgelegte Richtung zeigen, dargestellt werden sollen. Dieser Parameter verhindert die Darstellung von Dreiecken, die in der aktuellen Ansicht nicht sichtbar sind. Dieser Parameter kann auf einen beliebigen in der TriangleCulling-Klasse festgelegten Wert gesetzt werden.
Stellt einen Satz an Dreiecken dar, normalerweise, um Bitmaps zu verzerren und ihnen ein dreidimensionales Aussehen zu verleihen. Die drawTriangles()-Methode ordnet den Flächen von Dreiecken entweder die aktuelle oder eine Bitmapfüllung als Satz von Koordinaten (u,v) zu.

Es kann jeder Füllungstyp verwendet werden, aber wenn die Füllung über eine Transformationsmatrix verfügt, wird diese Transformationsmatrix ignoriert.

Ein uvt-Parameter verbessert bei der Verwendung einer Bitmapfüllung das Texturmapping.

flash.display.TriangleCullingflash.display.GraphicsTrianglePath
endFill Versieht die Linien und Kurven, die seit dem letzten Aufruf der Methode „beginFill()“, „beginGradientFill()“ oder „beginBitmapFill()“ hinzugefügt wurden, mit einer Füllung.Versieht die Linien und Kurven mit einer Füllung. Versieht die Linien und Kurven, die seit dem letzten Aufruf der Methode beginFill(), beginGradientFill() oder beginBitmapFill() hinzugefügt wurden, mit einer Füllung. Flash verwendet die im vorherigen Aufruf der Methode beginFill(), beginGradientFill() oder beginBitmapFill() angegebene Füllung. Wenn die aktuelle Zeichnungsposition nicht der in einer moveTo()-Methode angegebenen vorherigen Position entspricht und eine Füllung definiert ist, wird der Pfad mit einer Linie geschlossen und dann gefüllt. beginFill()beginBitmapFill()beginGradientFill()lineBitmapStyle Legt eine Bitmap fest, die beim Zeichnen von Linien für den Linienstrich verwendet wird.bitmapflash.display:BitmapDataDie Bitmap, die für den Linienstrich verwendet wird. matrixflash.geom:MatrixnullEine optionale Transformationsmatrix, wie sie in der flash.geom.Matrix-Klasse definiert ist. Die Matrix wird verwendet, um die Bitmap zu skalieren oder anderweitig zu bearbeiten, bevor sie auf den Linienstil angewendet wird. repeatBooleantrueOb eine Bitmap in einem Kachelmuster wiederholt wird. smoothBooleanfalseOb auf die Bitmap eine Glättung angewendet wird. Legt eine Bitmap fest, die beim Zeichnen von Linien für den Linienstrich verwendet wird.

Der Bitmaplinienstil wird für nachfolgende Aufrufe von Graphics-Methoden, z. B. lineTo() oder drawCircle(), verwendet. Der Linienstil bleibt wirksam, bis Sie die lineStyle()- oderlineGradientStyle()-Methode oder wieder die lineBitmapStyle()-Methode mit anderen Parametern aufrufen.

Sie können die lineBitmapStyle()-Methode während des Zeichnens eines Pfads aufrufen, um für unterschiedliche Linienabschnitte in einem Pfad unterschiedliche Stile zu verwenden.

Rufen Sie die lineStyle()-Methode vor der lineBitmapStyle()-Methode auf, um einen Strich zu aktivieren, andernfalls ist der Linienstil undefined.

Wenn Sie die clear()-Methode aufrufen, wird der Linienstil wieder auf undefined gesetzt.

lineStyle()lineGradientStyle()flash.geom.Matrix
lineGradientStyle Legt einen Verlauf für den Strich beim Zeichnen von Linien fest.typeStringEin Wert aus der GradientType-Klasse, mit dem angegeben wird, welcher Farbverlaufstyp verwendet werden soll, entweder „GradientType.LINEAR“ oder „GradientType.RADIAL“. colorsArrayEin Array mit hexadezimalen RGB-Farbwerten, die im Farbverlauf verwendet werden sollen (beispielsweise 0xFF0000 für Rot, 0x0000FF für Blau usw.). alphasArrayEin Array mit Alphawerten für die entsprechenden Farben im Array „colors“. Gültig sind Werte von 0 bis 1. Ist der Wert kleiner als 0, ist der Standardwert 0. Ist der Wert größer als 1, ist der Standardwert 1. ratiosArrayEin Array mit Farbverteilungsverhältnissen. Die zulässigen Werte liegen zwischen 0 und 255. Dieser Wert gibt den Breitenanteil an, in dem die Farbe mit 100 % gesampelt wird. Der Wert 0 stellt die linke Position im Farbverlaufsfeld dar, 255 die rechte. Dieser Wert repräsentiert Positionen im Farbverlaufsfeld, nicht im Koordinatenraum des endgültigen Farbverlaufs, der breiter oder schmaler als das Farbverlaufsfeld sein kann. Geben Sie für jeden Wert im Parameter colors einen Wert an.

Die folgende Abbildung zeigt für einen linearen Verlauf mit den beiden Farben Rot und Blau die Farbplatzierung im Verlauf basierend auf den verschiedenen Werten im ratios-Array:

ratiosGradient[0, 127][0, 255][127, 255]

Die Werte im Array müssen sich sequenziell erhöhen. Beispiel: [0, 63, 127, 190, 255].

matrixflash.geom:MatrixnullEine Transformationsmatrix, wie sie von der flash.geom.Matrix-Klasse definiert wird. Die flash.geom.Matrix-Klasse umfasst eine createGradientBox()-Methode, mit der Sie die Matrix zur Verwendung mit der lineGradientStyle()-Methode auf einfache Weise festlegen können. spreadMethodStringpadEin Wert aus der SpreadMethod-Klasse, der festlegt, welche Auftragstärke zu verwenden ist:

SpreadMethod.PADSpreadMethod.REFLECTSpreadMethod.REPEAT

interpolationMethodStringrgbEin Wert aus der InterpolationMethod-Klasse, der festlegt, welcher Wert zu verwenden ist. Angenommen, Sie haben einen einfachen linearen Farbverlauf zwischen zwei Farben (wobei der Parameter spreadMethod auf SpreadMethod.REFLECT gesetzt ist). Die verschiedenen Interpolationsmethoden haben folgende Auswirkung auf die Darstellung des Farbverlaufs:

InterpolationMethod.LINEAR_RGBInterpolationMethod.RGB

focalPointRatioNumber0Eine Zahl, die die Position des Farbverlaufsbrennpunkts steuert. Der Wert 0 bedeutet, dass der Brennpunkt in der Mitte liegt. Der Wert 1 bedeutet, dass der Brennpunkt an einem Rand des Farbverlaufskreises liegt. Der Wert -1 bedeutet, dass der Brennpunkt am anderen Rand des Farbverlaufskreises liegt. Werte, die kleiner als -1 oder größer als 1 sind, werden auf -1 bzw. 1 gerundet. Das folgende Bild zeigt einen Farbverlauf mit einem focalPointRatio von -0,75:

Legt einen Verlauf für den Strich beim Zeichnen von Linien fest.

Der Linienverlaufsstil wird für nachfolgende Aufrufe von Graphics-Methoden, z. B. lineTo() oder drawCircle(), verwendet. Der Linienstil bleibt wirksam, bis Sie die lineStyle()- oderlineBitmapStyle()-Methode oder wieder die lineGradientStyle()-Methode mit anderen Parametern aufrufen.

Sie können lineGradientStyle() beim Zeichnen eines Pfads aufrufen, um für unterschiedliche Liniensegmente in einem Pfad unterschiedliche Linientypen zu verwenden.

Rufen Sie die lineStyle()-Methode vor der lineGradientStyle()-Methode auf, um einen Strich zu aktivieren, andernfalls ist der Linienstil undefined.

Wenn Sie die clear()-Methode aufrufen, wird der Linienstil wieder auf undefined gesetzt.

Im folgenden Beispiel werden ein Rechteck und ein Kreis mit einem Farbverlaufsstrich von Rot über Grün zu Blau gezeichnet.

Mit der Methode createGradientBox() aus der Matrix-Klasse wird das Verlaufsfeld auf eine Breite von 200 und eine Höhe von 40 festgelegt. Die Stärke der Linie wird auf 5 Pixel festgelegt. Die Strichstärke muss für die Methode lineGradientStyle() definiert werden. Der Verlauf ist als linear festgelegt. Als Farben für den Verlauf sind Rot, Grün und Blau angegeben. Die Transparenz (der Alphawert) für die Farben wird auf 1 (deckend) festgelegt Die Verteilung des Verlaufs ist gleichmäßig, wobei die Farben mit 100 % bei 0 (links im Verlaufsfeld), 128 (Mitte des Feldes) und 255 (rechts im Feld) gesampelt werden. Die Breite des Rechtecks umfasst das gesamte Spektrum des Verlaufs, während der Kreis 50 % ab der Mitte des Spektrums umfasst.

package { import flash.display.Sprite; import flash.display.Shape; import flash.geom.Matrix; import flash.display.GradientType; public class Graphics_lineGradientStyleExample extends Sprite { public function Graphics_lineGradientStyleExample() { var myShape:Shape = new Shape(); var gradientBoxMatrix:Matrix = new Matrix(); gradientBoxMatrix.createGradientBox(200, 40, 0, 0, 0); myShape.graphics.lineStyle(5); myShape.graphics.lineGradientStyle(GradientType.LINEAR, [0xFF0000, 0x00FF00, 0x0000FF], [1, 1, 1], [0, 128, 255], gradientBoxMatrix); myShape.graphics.drawRect(0, 0, 200, 40); myShape.graphics.drawCircle(100, 120, 50); this.addChild(myShape); } } }
lineStyle()lineBitmapStyle()flash.geom.Matrix.createGradientBox()flash.display.GradientTypeflash.display.SpreadMethod
lineShaderStyle Legt einen Shader für den Linienstrich beim Zeichnen von Linien fest.shaderflash.display:ShaderDer für den Linienstrich zu verwendende Shader. matrixflash.geom:MatrixnullEine optionale Transformationsmatrix, wie sie in der flash.geom.Matrix-Klasse definiert ist. Die Matrix wird verwendet, um die Bitmap zu skalieren oder anderweitig zu bearbeiten, bevor sie auf den Linienstil angewendet wird. Legt einen Shader für den Linienstrich beim Zeichnen von Linien fest.

Der Shaderlinienstil wird für nachfolgende Aufrufe von Graphics-Methoden, z. B. lineTo() oder drawCircle(), verwendet. Der Linienstil bleibt wirksam, bis Sie die lineStyle()- oderlineGradientStyle()-Methode oder wieder die lineBitmapStyle()-Methode mit anderen Parametern aufrufen.

Sie können die lineShaderStyle()-Methode während des Zeichnens eines Pfads aufrufen, um für unterschiedliche Linienabschnitte in einem Pfad unterschiedliche Stile zu verwenden.

Rufen Sie die lineStyle()-Methode vor der lineShaderStyle()-Methode auf, um einen Strich zu aktivieren, andernfalls ist der Linienstil undefined.

Wenn Sie die clear()-Methode aufrufen, wird der Linienstil wieder auf undefined gesetzt.

lineStyle()lineBitmapStyle()flash.geom.Matrix
lineStyle Legt einen Linienstil fest, der für nachfolgende Aufrufe von Graphics-Methoden, z. B. lineTo() oder drawCircle(), verwendet wird.thicknessNumberunknownEine Ganzzahl, die die Stärke der Linie in Punkt angibt. Gültig sind Werte von 0 bis 255. Wenn keine Zahl angegeben ist oder wenn der Parameter den Wert „undefined“ aufweist, wird keine Linie gezeichnet. Wenn ein kleinerer Wert als 0 übergeben wird, ist der Standardwert 0. Der Wert 0 steht für die geringste Linienstärke. Der Höchstwert beträgt 255. Wenn ein größerer Wert als 255 übergeben wird, ist der Standardwert 255. coloruint0Der hexadezimale Farbwert der Linie (Rot ist beispielsweise 0xFF0000, Blau 0x0000FF usw.). Wird kein Wert angegeben, ist der Standardwert 0x000000 (Schwarz). Optional. alphaNumber1.0Eine Ganzzahl, die den Alphawert der Linienfarbe angibt. Gültig sind Werte von 0 bis 1. Wird kein Wert angegeben, ist der Standardwert 1 (einfarbige vollständige Füllung). Ist der Wert kleiner als 0, ist der Standardwert 0. Ist der Wert größer als 1, ist der Standardwert 1. pixelHintingBooleanfalse(Nicht unterstützt in Flash Lite 4) Ein boolescher Wert, der angibt, ob Striche auf ganze Pixel gesetzt werden. Dies wirkt sich sowohl auf die Positionen der Anker einer Kurve als auch auf die Linienstärke des Strichs selbst aus. Wenn pixelHinting auf true gesetzt ist, werden die Linienstärken auf volle Pixel eingestellt. Ist pixelHinting auf false gesetzt, können Kurven und gerade Linien unterbrochen sein. In den folgenden Abbildungen wird veranschaulicht, wie Flash Player oder Adobe AIR zwei Rechtecke mit abgerundeten Ecken darstellen, die identisch sind, abgesehen davon, dass der pixelHinting-Parameter in der lineStyle()-Methode anders eingestellt ist (die Abbildungen sind um 200 % vergrößert, um den Unterschied deutlich zu zeigen):

Wird kein Wert angegeben, wird die Funktion nicht verwendet.

scaleModeStringnormal(Nicht unterstützt in Flash Lite 4) Ein Wert aus der LineScaleMode-Klasse, die angibt, welcher Skalierungsmodus verwendet werden soll:
  • LineScaleMode.NORMAL: Die Linienstärke wird immer skaliert, wenn das Objekt skaliert wird (der Standard).
  • LineScaleMode.NONE: Die Linienstärke wird nie skaliert.
  • LineScaleMode.VERTICAL: Die Linienstärke wird nicht skaliert, wenn das Objekt nur vertikal skaliert wurde. Betrachten Sie beispielsweise die folgenden Kreise, die mit einer 1 Pixel starken Linie gezeichnet wurden und bei denen der Parameter scaleMode jeweils auf LineScaleMode.VERTICAL gesetzt wurde. Der Kreis links wurde nur vertikal skaliert, und der Kreis rechts wurde sowohl vertikal als auch horizontal skaliert.

  • LineScaleMode.HORIZONTAL: Die Linienstärke wird nicht skaliert, wenn das Objekt nur vertikal skaliert wurde. Betrachten Sie beispielsweise die folgenden Kreise, die mit einer 1 Pixel starken Linie gezeichnet wurden und bei denen der Parameter scaleMode jeweils auf LineScaleMode.HORIZONTAL gesetzt wurde. Der Kreis links wurde nur horizontal skaliert, und der Kreis rechts wurde sowohl horizontal als auch vertikal skaliert.

capsStringnull(Nicht unterstützt in Flash Lite 4) Ein Wert der CapsStyle-Klasse, der den Stil der Linienenden definiert. Folgende Werte sind zulässig: CapsStyle.NONE, CapsStyle.ROUND und CapsStyle.SQUARE. Wird kein Wert angegeben, verwendet Flash runde Enden.

Die folgende Abbildung zeigt beispielsweise die verschiedenen Einstellungen für capsStyle. Die Abbildung zeigt für jede Einstellung eine blaue Linie mit der Stärke 30 (für die capsStyle gilt) sowie eine überlagerte schwarze Linie mit der Stärke 1 (für die kein capsStyle gilt):

jointsStringnull(Nicht unterstützt in Flash Lite 4) Ein Wert der JointStyle-Klasse, der den Verbindungsstil für Winkel festlegt. Folgende Werte sind zulässig: JointStyle.BEVEL, JointStyle.MITER und JointStyle.ROUND. Wird kein Wert angegeben, verwendet Flash runde Verbindungen.

Die folgende Abbildung zeigt beispielsweise die verschiedenen Einstellungen für joints. Die Abbildung zeigt für jede Einstellung eine blaue Winkellinie mit der Stärke 30 (für die jointStyle gilt) sowie eine überlagerte schwarze Winkellinie mit der Stärke 1 (für die kein jointStyle gilt):

Hinweis: Ist joints auf JointStyle.MITER gesetzt, können Sie den Parameter miterLimit verwenden, um die Länge des Winkels einzuschränken.

miterLimitNumber3(Nicht unterstützt in Flash Lite 4) Eine Zahl, die die Grenze festlegt, an der ein Winkel abgeschnitten wird. Gültige Werte liegen zwischen 1 und 255 (Werte außerhalb dieses Bereichs werden auf 1 bzw. 255 gerundet). Dieser Wert wird nur dann verwendet, wenn jointStyle auf "miter" gesetzt wird. Der Wert miterLimit steht für die Länge, die ein Winkel über jenen Punkt hinausgehen kann, an dem zwei Linien eine Verbindung bilden. Der Wert drückt einen Faktor der Linieneigenschaft thickness aus. Bei einem miterLimit-Faktor von 2,5 und einer thickness von 10 Pixeln, wird der Winkel bei 25 Pixeln abgeschnitten.

Betrachten Sie beispielsweise die folgenden Winkellinien mit einer thickness von 20 und mit einem miterLimit von 1, 2 und 4. Darüber befinden sich schwarze Referenzlinien, die die Schnittpunkte der Verbindungen anzeigen:

Beachten Sie, dass bei einem gegebenen miterLimit-Wert ein bestimmter Maximalwinkel existiert, bei dem der Winkel abgeschnitten wird. In der folgenden Tabelle finden Sie einige Beispiele:

miterLimit-Wert:Winkel, die kleiner sind als dieser Wert, werden abgeschnitten:1.41490 Grad260 Grad430 Grad815 Grad
Legt den Linienstil fest, den Flash zum Zeichnen von Linien verwendet.
Legt einen Linienstil fest, der für nachfolgende Aufrufe von Graphics-Methoden, z. B. lineTo() oder drawCircle(), verwendet wird. Der Linienstil bleibt wirksam, bis Sie die lineGradientStyle()-Methode, die lineBitmapStyle()-Methode oder wieder die lineStyle()-Methode mit anderen Parametern aufrufen.

Sie können die lineStyle()-Methode während des Zeichnens eines Pfads aufrufen, um für unterschiedliche Linienabschnitte in einem Pfad unterschiedliche Stile zu verwenden.

Hinweis: Wenn Sie die clear()-Methode aufrufen, wird der Linienstil wieder auf undefined gesetzt.

Hinweis: Flash Lite 4 unterstützt nur die ersten drei Parameter (thickness, color und alpha).

Die Verwendung der Methode getStyle() wird im Beispiel für die Methode lineTo() oder moveTo() veranschaulicht.
lineBitmapStyle()lineGradientStyle()LineScaleModeCapsStyleJointStyle
lineTo Zeichnet eine Linie im aktuellen Linienstil von der aktuellen Zeichnungsposition zu (x, y). Die aktuelle Zeichnungsposition wird dann auf (x, y) gesetzt.xNumberEine Ganzzahl, die die horizontale Position relativ zum Registrierungspunkt des übergeordneten Anzeigeobjekts angibt (in Pixel). yNumberEine Ganzzahl, die die vertikale Position relativ zum Registrierungspunkt des übergeordneten Anzeigeobjekts angibt (in Pixel). Zeichnet eine Linie von der aktuellen Zeichnungsposition zu (x, y). Zeichnet eine Linie im aktuellen Linienstil von der aktuellen Zeichnungsposition zu (x, y). Die aktuelle Zeichnungsposition wird dann auf (x, y) gesetzt. Wenn das Anzeigeobjekt, in dem Sie zeichnen, mit den Flash-Zeichenwerkzeugen erstellte Objekte enthält, werden die Ergebnisse von Aufrufen der lineTo()-Methode unter diesen Objekten gezeichnet. Wenn Sie lineTo() vor der moveTo()-Methode aufrufen, wird die aktuelle Zeichnungsposition standardmäßig auf (0, 0) gesetzt. Wenn ein Parameter fehlt, schlägt die Ausführung dieser Methode fehl, und die aktuelle Zeichnungsposition wird beibehalten. Im folgenden Beispiel wird mithilfe der Methode lineTo() ein Trapezoid gezeichnet, das bei Pixel (100, 100) beginnt.

Die Linienstärke wird auf 10 Pixel, die Farbe auf gold und deckend gesetzt, es werden keine Linienabschlüsse verwendet (da alle Linien verbunden sind), und die Verbindung zwischen den Linien wird auf MITER mit einer Winkelgrenze von 10 gesetzt, um spitze Ecken zu erhalten.

package { import flash.display.Sprite; import flash.display.LineScaleMode; import flash.display.CapsStyle; import flash.display.JointStyle; import flash.display.Shape; public class Graphics_lineToExample extends Sprite { public function Graphics_lineToExample() { var trapezoid:Shape = new Shape(); trapezoid.graphics.lineStyle(10, 0xFFD700, 1, false, LineScaleMode.VERTICAL, CapsStyle.NONE, JointStyle.MITER, 10); trapezoid.graphics.moveTo(100, 100); trapezoid.graphics.lineTo(120, 50); trapezoid.graphics.lineTo(200, 50); trapezoid.graphics.lineTo(220, 100); trapezoid.graphics.lineTo(100, 100); this.addChild(trapezoid); } } }
moveTo Verschiebt die aktuelle Zeichnungsposition auf (x, y).xNumberEine Ganzzahl, die die horizontale Position relativ zum Registrierungspunkt des übergeordneten Anzeigeobjekts angibt (in Pixel). yNumberEine Ganzzahl, die die vertikale Position relativ zum Registrierungspunkt des übergeordneten Anzeigeobjekts angibt (in Pixel). Verschiebt die aktuelle Zeichnungsposition auf (x, y). Verschiebt die aktuelle Zeichnungsposition auf (x, y). Wenn ein Parameter fehlt, schlägt die Ausführung dieser Methode fehl, und die aktuelle Zeichnungsposition wird beibehalten. Im folgenden Beispiel wird eine gestrichelte Linie mit einer Strichstärke von drei Pixel gezeichnet. Dazu werden die Methoden moveTo() und lineTo() verwendet.

Mithilfe der Methode lineStyle() wird die Linienstärke auf 3 Pixel festgelegt. Außerdem wird festgelegt, dass keine Skalierung erfolgen soll. Die Farbe wird auf Rot mit 25 Prozent Deckkraft festgelegt. Die Eigenschaft CapsStyle wird auf „square“ gesetzt (die Standardeinstellung ist „round“).

Da es sich bei Graphics_moveToExample um eine Instanz der Sprite-Klasse handelt, ist der Zugriff auf alle Methoden der Graphics-Klasse möglich. Mit den Methoden der Graphics-Klasse kann direkt im Sprite-Objekt Graphic_moveToExample gezeichnet werden. Wenn dem Vektorzeichenobjekt jedoch keine Form (Shape) gegeben wird, sind die Möglichkeiten des Verwaltens, Verschiebens oder Änderns beschränkt.

package { import flash.display.Sprite; import flash.display.CapsStyle; import flash.display.LineScaleMode; public class Graphics_moveToExample extends Sprite { public function Graphics_moveToExample() { graphics.lineStyle(3, 0x990000, 0.25, false, LineScaleMode.NONE, CapsStyle.SQUARE); graphics.moveTo(10, 20); graphics.lineTo(20, 20); graphics.moveTo(30, 20); graphics.lineTo(50, 20); graphics.moveTo(60, 20); graphics.lineTo(80, 20); graphics.moveTo(90, 20); graphics.lineTo(110, 20); graphics.moveTo(120, 20); graphics.lineTo(130, 20); } } }
NativeWindowType Die NativeWindowType-Klasse definiert Konstanten für die type-Eigenschaft des NativeWindowInitOptions-Objekts, das für die Erstellung von nativen Fenstern verwendet wird.Definiert Konstanten für die unterstützten Fenstertypen. Object Die NativeWindowType-Klasse definiert Konstanten für die type-Eigenschaft des NativeWindowInitOptions-Objekts, das für die Erstellung von nativen Fenstern verwendet wird.

Hinweis: Der Wert der type-Eigenschaft wird bei der Erstellung eines Fensters festgelegt und kann später nicht mehr geändert werden.

flash.display.NativeWindowflash.display.NativeWindowInitOptionsLIGHTWEIGHT Ein minimales Fenster.lightweightString Ein minimales Fenster. NORMAL Ein typisches Fenster.normalString Ein typisches Fenster. UTILITY Ein Dienstprogrammfenster.utilityString Ein Dienstprogrammfenster.
StageAspectRatio Die StageAspectRatio-Klasse stellt Werte für die Stage.setAspectRatio()-Methode bereit.Object Die StageAspectRatio-Klasse stellt Werte für die Stage.setAspectRatio()-Methode bereit. flash.display.Stage.setAspectRatio()LANDSCAPE Gibt eine Geräteausrichtung an, die die Benutzeroberfläche im Querformat darstellt landscapeString Gibt eine Geräteausrichtung an, die die Benutzeroberfläche im Querformat darstellt PORTRAIT Gibt eine Geräteausrichtung an, die die Benutzeroberfläche im Hochformat darstellt portraitString Gibt eine Geräteausrichtung an, die die Benutzeroberfläche im Hochformat darstellt Screen Die Screen-Klasse stellt Informationen über die Anzeigebildschirme bereit, die für diese Anwendung verfügbar sind.flash.events:EventDispatcher Die Screen-Klasse stellt Informationen über die Anzeigebildschirme bereit, die für diese Anwendung verfügbar sind.

Bei Bildschirmen handelt es sich um unabhängige Desktop-Bereiche innerhalb eines möglicherweise größeren virtuellen Desktops. Der Ursprung des virtuellen Desktops ist die obere linke Ecke des vom Betriebssystem festgelegten Hauptbildschirms. Deshalb können die Koordinaten für die Begrenzungen eines einzelnen Anzeigebildschirms negativ sein. Der virtuelle Desktop kann auch Bereiche enthalten, die sich nicht in einem der Anzeigebildschirme befinden.

Die Screen-Klasse enthält statische Klassenmitglieder für den Zugriff auf die verfügbaren Bildschirmobjekte sowie Instanzmitglieder für den Zugriff auf die Eigenschaften eines einzelnen Bildschirms. Bildschirminformationen sollten nicht zwischengespeichert werden, da sie jederzeit von einem Benutzer geändert werden können.

Beachten Sie, dass die Bildschirme und die an den Computer angeschlossenen Monitore sich nicht unbedingt 1:1 entsprechen. Beispielsweise kann ein Bildschirm auf zwei Monitoren angezeigt werden.

Die Screen-Klasse kann nicht direkt instanziiert werden. Aufrufe des new Screen()-Konstruktors geben eine ArgumentError-Ausnahme aus.

Im folgenden Beispiel wird die DockingWindow-Klasse verwendet, um ein Fenster zu erstellen, das an den Bildschirmseiten angedockt wird. Dies wird in den folgenden Schritten erreicht:
  1. Reaktion auf Tastaturereignisse, um zu bestimmen, an welcher Seite des Bildschirms das Fenster angedockt werden soll.
  2. Zugriff auf die statische getScreensForRectangle()-Methode der Screen-Klasse, um das Screen-Objekt für den Bildschirm abzurufen, auf dem das Fenster derzeit angezeigt wird.
  3. Zurücksetzen der Fenstergrenzen auf Grundlage der Bildschirmabmessungen.
  4. Neuzeichnen des Fensterinhalts auf Grundlage der neuen Fensterabmessungen.

Hinweis: Diese Klasse ist als Stammklasse einer AIR-Anwendung mit den Einstellungen SystemChrome="none" und transparent="true" vorgesehen. Um diese Klasse bei einem Fenster mit Systemchrom zu verwenden, müssen Sie die Chromestärke und Mindestbreite des Fensters bei der Berechnung der Fensterposition und -größe berücksichtigen.

package { import flash.display.Screen; import flash.display.Sprite; import flash.display.StageAlign; import flash.display.StageScaleMode; import flash.events.KeyboardEvent; import flash.geom.Rectangle; import flash.ui.Keyboard; public class DockingWindow extends Sprite { private const dockedWidth:uint = 80; private const dockedHeight:uint = 80; public function DockingWindow():void{ stage.align = StageAlign.TOP_LEFT; stage.scaleMode = StageScaleMode.NO_SCALE; stage.addEventListener(KeyboardEvent.KEY_DOWN,onKey); dockLeft(); } private function onKey(event:KeyboardEvent):void{ switch(event.keyCode){ case Keyboard.LEFT : dockLeft(); break; case Keyboard.RIGHT : dockRight(); break; case Keyboard.UP : dockTop(); break; case Keyboard.DOWN : dockBottom(); break; case Keyboard.SPACE : stage.nativeWindow.close(); } } public function dockLeft():void{ var screen:Screen = getCurrentScreen(); stage.nativeWindow.x = screen.visibleBounds.left; stage.nativeWindow.y = screen.visibleBounds.top; stage.nativeWindow.height = screen.visibleBounds.height; stage.stageWidth = dockedWidth; drawContent(); } public function dockRight():void{ var screen:Screen = getCurrentScreen(); stage.nativeWindow.x = screen.visibleBounds.width - dockedWidth; stage.nativeWindow.y = screen.visibleBounds.top; stage.stageWidth = dockedWidth; stage.nativeWindow.height = screen.visibleBounds.height; drawContent(); } public function dockTop():void{ var screen:Screen = getCurrentScreen(); stage.nativeWindow.x = screen.visibleBounds.left; stage.nativeWindow.y = screen.visibleBounds.top; stage.nativeWindow.width = screen.visibleBounds.width; stage.stageHeight = dockedHeight; drawContent(); } public function dockBottom():void{ var screen:Screen = getCurrentScreen(); stage.nativeWindow.x = screen.visibleBounds.left; stage.nativeWindow.y = screen.visibleBounds.height - dockedHeight; stage.nativeWindow.width = screen.visibleBounds.width; stage.stageHeight = dockedHeight; drawContent(); } private function getCurrentScreen():Screen{ return Screen.getScreensForRectangle(stage.nativeWindow.bounds)[0]; } private function drawContent():void{ const size:int = 60; const pad:int = 10; var numHSquares:int = Math.floor(stage.stageWidth/(size + pad)); var numVSquares:int = Math.floor(stage.stageHeight/(size + pad)); with (graphics){ clear(); lineStyle(1); beginFill(0x3462d5,.7); for(var i:int = 0; i < numHSquares; i++){ for(var j:int = 0; j < numVSquares; j++){ drawRect((i * (size + pad)) + pad, (j * (size + pad)) + pad, size, size); } } endFill(); } } } }
getScreensForRectangle Gibt den (möglicherweise leeren) Satz der Bildschirme zurück, die das angegebene Rechteck schneiden.Ein Array mit Screen-Objekten, die die Bildschirme enthalten, die einen beliebigen Teil des vom rect-Parameter definierten Bereichs enthalten. Arrayrectflash.geom:RectangleEin Rechteck mit Koordinaten relativ zum Ursprung des virtuellen Desktops. Bei diesem Ursprung handelt es sich um die linke obere Ecke des primären Bildschirms. Gibt den (möglicherweise leeren) Satz der Bildschirme zurück, die das angegebene Rechteck schneiden. Das folgende Beispiel zeigt, wie das Array der Bildschirme abgerufen wird, die mindestens einen Teil eines gegebenen Rechtecks enthalten: import flash.display.Screen; import flash.geom.Rectangle; var rect:Rectangle = new Rectangle(-200, 100, 1000, 600); var intersectedScreens:Array = Screen.getScreensForRectangle(rect); bounds Die Begrenzungen dieses Bildschirms.flash.geom:Rectangle Die Begrenzungen dieses Bildschirms.

Die Bildschirmposition ist relativ zum virtuellen Desktop.

Unter Linux-Systemen, die bestimmte Fenstermanager verwenden, gibt diese Eigenschaft die Grenzen des Desktops, nicht die sichtbaren Grenzen des Bildschirms zurück.

Das folgende Beispiel zeigt, wie die Begrenzungen eines Bildschirms abgerufen werden (in diesem Fall der primäre Anzeigebildschirm): import flash.display.Screen; import flash.geom.Rectangle; var mainScreen:Screen = Screen.mainScreen; var screenBounds:Rectangle = mainScreen.bounds;
colorDepth Die Farbtiefe dieses Bildschirms in Bit.int Die Farbtiefe dieses Bildschirms in Bit. Das folgende Beispiel zeigt, wie die Farbtiefe eines Bildschirms abgerufen wird (in diesem Fall der primäre Anzeigebildschirm): var mainScreen:Screen = Screen.mainScreen; var colors:uint = mainScreen.colorDepth; mainScreen Die primäre Anzeige.flash.display:Screen Die primäre Anzeige. Das folgende Beispiel zeigt, wie das Screen-Objekt abgerufen wird, das den Hauptbildschirm dieses Computers repräsentiert: var primaryScreen:Screen = Screen.mainScreen; screens Das Array der derzeit verfügbaren Bildschirme.Array Das Array der derzeit verfügbaren Bildschirme.

Eine Änderung des zurückgegebenen Arrays hat keinerlei Auswirkungen auf die verfügbaren Bildschirme.

Das folgende Beispiel zeigt, wie das Array mit den verfügbaren Bildschirmen abgerufen wird: var screenArray:Array = Screen.screens;
visibleBounds Die Begrenzungen des Bereichs auf diesem Bildschirm, in dem Fenster sichtbar sind.flash.geom:Rectangle Die Begrenzungen des Bereichs auf diesem Bildschirm, in dem Fenster sichtbar sind.

Die visibleBounds eines Bildschirms schließen unter Windows die Taskleiste (und andere angedockte Desktopleisten) aus, ebenso wie die Menüleiste und, abhängig von den Systemeinstellungen, das Dock unter Mac OS X. Bei manchen Linuxkonfigurationen ist es nicht möglich, die Sichtbarkeitsgrenzen zu bestimmen. In diesem Fall gibt die visibleBounds-Eigenschaft denselben Wert zurück wie die screenBounds-Eigenschaft.

Das folgende Beispiel zeigt, wie die nutzbaren Begrenzungen eines Bildschirms abgerufen werden (in diesem Fall der primäre Anzeigebildschirm): import flash.display.Screen; import flash.geom.Rectangle; var mainScreen:Screen = Screen.mainScreen; var screenBounds:Rectangle = mainScreen.visibleBounds;
NativeWindowDisplayState Die NativeWindowDisplayState-Klasse definiert Konstanten für die Namen von Fensteranzeigestatus.Object Die NativeWindowDisplayState-Klasse definiert Konstanten für die Namen von Fensteranzeigestatus.

Hinweis: Die Vollbildmodi werden mithilfe der displayState-Eigenschaft des Stage-Objekts gesetzt, nicht mit der displayState-Eigenschaft des Fensters.

flash.display.Stage.displayStateflash.display.StageDisplayStateMAXIMIZED Der maximierte Anzeigestatus.maximizedString Der maximierte Anzeigestatus. MINIMIZED Der minimierte Anzeigestatus.minimizedString Der minimierte Anzeigestatus. NORMAL Der normale Anzeigestatus.normalString Der normale Anzeigestatus.
Bitmap Die Bitmap-Klasse repräsentiert Anzeigeobjekte, die Bitmaps darstellen.Repräsentiert Anzeigeobjekte, die von Bildern abgeleitet sind. flash.display:DisplayObject Die Bitmap-Klasse repräsentiert Anzeigeobjekte, die Bitmaps darstellen. Dabei kann es sich um Bilder handeln, die Sie mit der flash.display.Loader-Klasse laden, oder auch um Bilder, die Sie mit dem Konstruktor Bitmap() erstellen.

Mit dem Konstruktor Bitmap() können Sie ein Bitmap-Objekt zu erstellen, das einen Verweis auf ein BitmapData-Objekt enthält. Verwenden Sie nach der Erstellung eines Bitmap-Objekts die Methode addChild() oder addChildAt() des übergeordneten DisplayObjectContainer-Objekts, um die Bitmap in die Anzeigeliste aufzunehmen.

Ein Bitmap-Objekt kann seinen BitmapData-Verweis auf mehrere Bitmap-Objekte aufteilen, und zwar unabhängig von Übersetzungs- oder Drehungseigenschaften. Da Sie mehrere Bitmap-Objekte erstellen können, die auf dasselbe BitmapData-Objekt verweisen, können mehrere Anzeigeobjekte dasselbe komplexe BitmapData-Objekt verwenden, ohne die Speicherbelastung des BitmapData-Objekts für jede Anzeigeobjektinstanz berücksichtigen zu müssen.

Ein BitmapData-Objekt kann von einem Bitmap-Objekt auf zweierlei Weise auf den Bildschirm gezeichnet werden: Entweder, indem der Vektorrenderer als eine Form mit Bitmap-Füllung verwendet wird, oder indem Sie eine schnellere Pixelkopierroutine einsetzen. Die Pixelkopierroutine ist wesentlich schneller als der Vektorrenderer, doch muss das Bitmap-Objekt bestimmte Bedingungen erfüllen, damit sie eingesetzt werden kann:

  • Auf das Bitmap-Objekt darf keine Dehnung, Drehung oder Neigung angewendet werden.
  • Auf das Bitmap-Objekt darf keine Farbtransformation angewendet werden.
  • Auf das Bitmap-Objekt darf kein Mischmodus angewendet werden.
  • Das Bild darf nicht über Maskenebenen oder setMask()-Methoden zugeschnitten werden.
  • Das Bild selbst darf keine Maske sein.
  • Die Zielkoordinaten müssen sich auf einer ganzen Pixelbegrenzung befinden.

Wenn Sie ein Bitmap-Objekt aus einer anderen Domäne als der des Loader-Objekts verwenden, mit dem das Bild geladen wurde, und es keine URL-Richtliniendatei gibt, die den Zugriff auf die Domäne des Loader-Objekts erlaubt, kann ein Skript in dieser Domäne nicht auf die Bitmap-Objekte und deren Eigenschaften und Methoden zugreifen. Weitere Informationen finden Sie im Flash Player Developer Center im Abschnitt Sicherheit.

Hinweis: Die Bitmap-Klasse ist keine Unterklasse der InteractiveObject-Klasse, sodass keine Mausereignisse ausgelöst werden können. Sie können jedoch die addEventListener()-Methode des Anzeigeobjekt-Containers verwenden, der das Bitmap-Objekt enthält.

Im folgenden Beispiel wird die BitmapExample-Klasse verwendet, um die Grafik „Image.gif“ an der Standardposition (x = 0, y = 0) in ein „DisplayObject“ zu laden. Eine Kopie von „Image.gif“ wird rechts vom Original positioniert, für das neue Farben auf Pixel angewendet werden, die einen Test mit der threshold()-Methode bestanden haben. Dies wird in den folgenden Schritten erreicht:
  1. Es wird eine url-Eigenschaft erstellt, die den Speicherort und Namen der Bilddatei angibt.
  2. Der Klassenkonstruktor ruft die configureAssets()-Methode auf, die wiederum die completeHandler()-Methode aufruft.
  3. configureAssets() erstellt ein Loader-Objekt, das dann einen Ereignis-Listener instanziiert. Der Ereignis-Listener wird ausgelöst, wenn die completeHandler()-Methode die Bildbearbeitung abgeschlossen hat.
  4. Als Nächstes erstellt die buildChild()-Methode eine neue Instanz eines URLRequest-Objekts, request, mit Übergabe von url, damit der Dateiname und -speicherort bekannt sind.
  5. Das request-Objekt wird an die loader.load()-Methode übergeben, die das Bild über ein Anzeigeobjekt in den Speicher lädt.
  6. Das Bild wird in die Anzeigeliste eingefügt, die das Bild sofort auf dem Bildschirm bei den Koordinaten x = 0, y = 0 anzeigt.
  7. Die completeHandler()-Methode führt dann Folgendes aus:
    1. Sie erstellt ein zweites Loader-Objekt und ein Bitmap-Objekt, das über das Loader-Objekt initialisiert wird.
    2. Sie erstellt ein zweites Bitmap-Objekt, duplicate, das wiederum die duplicateImage()-Methode aufruft, die ein Duplikat des Originalbilds erzeugt.
    3. Sie erstellt ein BitmapData-Objekt, das dem BitmapData-Objekt des duplicate-Objekts zugeordnet ist.
    4. Sie erstellt ein neues Rechteckobjekt, das mit denselben Werten für Koordinaten, Breite und Höhe wie das Originalbild initialisiert wird.
    5. Sie erstellt ein neues Point-Objekt mit der Standardeinstellung x = 0, y = 0.
    6. Sie erstellt die folgenden Variablen:
      • operation: Wendet die neue Farbe an, wenn der Schwellenwert größer oder gleich dem Original ist.
      • threshold: Der Wert, mit dem jedes Pixel verglichen wird, wird auf Hellgrau mit einem Alphawert von 0xCC gesetzt.
      • color: Die Farbe, auf die die Pixel eingestellt werden, die den Schwellentest bestehen. In diesem Fall ist dies reines Gelb.
      • mask: Die genau entgegengesetzte Farbe (durchsichtiges Blau).
      • copySource: Auf „false“ gesetzt. Dies zeigt an, dass die Pixelwerte nicht kopiert werden, wenn der Schwellenwert den Test nicht besteht. Dieser Wert hat keine Bedeutung, da das Bild dupliziert wird und nur Pixel geändert werden, die den Schwellenwerttest bestehen.
    7. Ruft mithilfe der vorherigen Variablen die threshold()-Methode auf. Es ergibt sich die folgende Schwellenwertgleichung: if (current pixel Value & 0x000000FF) >= (0xCCCCCCCC & 0x000000FF) then set pixel to 0xFFFFFF00.

Hinweise:

  • Für die Kompilierung der SWF-Datei müssen Sie die Option „Sicherheit bei lokaler Wiedergabe“ auf „Nur auf lokale Dateien zugreifen“ einstellen.
  • Zur Ausführung dieses Beispiels müssen Sie eine Datei mit dem Namen „Image.gif“ in dem Ordner ablegen, in dem sich die SWF-Datei befindet.
  • Es wird empfohlen, ein Bild mit einer Breite von bis zu 80 Pixel zu verwenden.

package { import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.Loader; import flash.display.Sprite; import flash.events.*; import flash.geom.Point; import flash.geom.Rectangle; import flash.net.URLRequest; public class BitmapExample extends Sprite { private var url:String = "Image.gif"; private var size:uint = 80; public function BitmapExample() { configureAssets(); } private function configureAssets():void { var loader:Loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler); loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); var request:URLRequest = new URLRequest(url); loader.x = size * numChildren; loader.load(request); addChild(loader); } private function duplicateImage(original:Bitmap):Bitmap { var image:Bitmap = new Bitmap(original.bitmapData.clone()); image.x = size * numChildren; addChild(image); return image; } private function completeHandler(event:Event):void { var loader:Loader = Loader(event.target.loader); var image:Bitmap = Bitmap(loader.content); var duplicate:Bitmap = duplicateImage(image); var bitmapData:BitmapData = duplicate.bitmapData; var sourceRect:Rectangle = new Rectangle(0, 0, bitmapData.width, bitmapData.height); var destPoint:Point = new Point(); var operation:String = ">="; var threshold:uint = 0xCCCCCCCC; var color:uint = 0xFFFFFF00; var mask:uint = 0x000000FF; var copySource:Boolean = true; bitmapData.threshold(bitmapData, sourceRect, destPoint, operation, threshold, color, mask, copySource); } private function ioErrorHandler(event:IOErrorEvent):void { trace("Unable to load image: " + url); } } }
flash.display.Loaderflash.display.BitmapDataBitmap Initialisiert ein Bitmap-Objekt, das auf das angegebene BitmapData-Objekt verweisen soll.bitmapDataflash.display:BitmapDatanullDas BitmapData-Objekt, auf das verwiesen wird. pixelSnappingStringautoGibt an, ob das Bitmap-Objekt am nächsten Pixel ausgerichtet wird. smoothingBooleanfalseGibt an, ob die Bitmap beim Skalieren geglättet wird. Im folgenden Beispiel wird dieselbe Bitmap um den Faktor 3 skaliert angezeigt, wobei smoothing auf false (links) und true (rechts) gesetzt ist:

Initialisiert ein Bitmap-Objekt, das auf das angegebene BitmapData-Objekt verweisen soll. Im folgenden Beispiel wird gezeigt, wie Sie zur Laufzeit ein Bild mithilfe der ActionScript 3.0-Loader-Klasse dynamisch laden und dann die Pixel des Bilds in vier separate Bitmap-Objektinstanzen in der Anzeigeliste kopieren, indem Sie die content-Eigenschaft und die bitmapData-Eigenschaft der Loader-Instanz verwenden. Beispiel bereitgestellt von ActionScriptExamples.com. const IMAGE_URL:String = "http://www.helpexamples.com/flash/images/logo.png"; var ldr:Loader = new Loader(); ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, ldr_complete); ldr.load(new URLRequest(IMAGE_URL)); var bitmap1:Bitmap; var bitmap2:Bitmap; var bitmap3:Bitmap; var bitmap4:Bitmap; function ldr_complete(evt:Event):void { var bmp:Bitmap = ldr.content as Bitmap; bitmap1 = new Bitmap(bmp.bitmapData); bitmap1.x = 100; bitmap1.y = 100; bitmap1.rotation = 0; addChild(bitmap1); bitmap2 = new Bitmap(bmp.bitmapData); bitmap2.x = 200; bitmap2.y = 100; bitmap2.rotation = 90; addChild(bitmap2); bitmap3 = new Bitmap(bmp.bitmapData); bitmap3.x = 300; bitmap3.y = 100; bitmap3.rotation = 180; addChild(bitmap3); bitmap4 = new Bitmap(bmp.bitmapData); bitmap4.x = 400; bitmap4.y = 100; bitmap4.rotation = 270; addChild(bitmap4); }
bitmapData Das BitmapData-Objekt, auf das verwiesen wird.flash.display:BitmapData Das BitmapData-Objekt, auf das verwiesen wird. pixelSnapping Steuert, ob das Bitmap-Objekt am nächsten Pixel ausgerichtet wird.String Steuert, ob das Bitmap-Objekt am nächsten Pixel ausgerichtet wird. Die PixelSnapping-Klasse umfasst die folgenden zulässigen Werte:
  • PixelSnapping.NEVER: Keine Ausrichtung an Pixeln.
  • PixelSnapping.ALWAYS: Die Grafik wird immer am nächsten Pixel ausgerichtet, und zwar unabhängig von einer etwaigen Transformation.
  • PixelSnapping.AUTO: Das Bild wird am nächsten Pixel ausgerichtet, wenn es ohne Drehung oder Neigung gezeichnet wird, und mit einem Skalierungsfaktor von 99,9 % bis 100,1 % gezeichnet. Sind diese Bedingungen erfüllt, wird die Bitmap bei einhundertprozentiger Skalierung gezeichnet und am nächstgelegenen Pixel ausgerichtet. Intern ermöglicht es dieser Wert, dass die Grafik so schnell wie möglich gezeichnet wird, indem der Vektorrenderer verwendet wird.
smoothing Steuert, ob die Bitmap beim Skalieren geglättet wird.Boolean Steuert, ob die Bitmap beim Skalieren geglättet wird. Wenn true angegeben ist, wird die Bitmap beim Skalieren geglättet. Wenn false angegeben ist, wird die Bitmap beim Skalieren nicht geglättet.
Scene Die Scene-Klasse umfasst Eigenschaften für das Identifizieren von Name, Bildbezeichnungen und Anzahl der Bilder in einer Szene.Object Die Scene-Klasse umfasst Eigenschaften für das Identifizieren von Name, Bildbezeichnungen und Anzahl der Bilder in einer Szene. Eine Scene-Objektinstanz wird in Flash Professional, nicht durch Schreiben von ActionScript-Code erstellt. Die MovieClip-Klasse umfasst eine currentScene-Eigenschaft, die ein Scene-Objekt bezeichnet, nämlich die aktuelle Szene in der Zeitleiste der MovieClip-Instanz, in der sich der Abspielkopf gerade befindet. Die scenes-Eigenschaft der MovieClip-Klasse ist ein Array von Scene-Objekten. Auch die Methoden gotoAndPlay() und gotoAndStop() der MovieClip-Klasse verwenden Scene-Objekte als Parameter. MovieClip.currentSceneMovieClip.scenesMovieClip.gotoAndPlay()MovieClip.gotoAndStop()labels Ein Array an FrameLabel-Objekten für die Szene.Array Ein Array an FrameLabel-Objekten für die Szene. Jedes FrameLabel-Objekt umfasst eine frame-Eigenschaft, die die Bildnummer angibt, die der Bezeichnung entspricht, sowie eine name-Eigenschaft. FrameLabelname Der Name der Szene.String Der Name der Szene. numFrames Die Anzahl der Bilder in der Szene.int Die Anzahl der Bilder in der Szene. StageDisplayState Die StageDisplayState-Klasse stellt Werte für die Stage.displayState-Eigenschaft bereit.Object Die StageDisplayState-Klasse stellt Werte für die Stage.displayState-Eigenschaft bereit. flash.display.Stage.displayStateFULL_SCREEN_INTERACTIVE Legt fest, dass die Bühne im Vollbildmodus angezeigt wird und die Tastaturinteraktion aktiviert ist.fullScreenInteractiveString Legt fest, dass die Bühne im Vollbildmodus angezeigt wird und die Tastaturinteraktion aktiviert ist. Diese Funktionalität wird nur von AIR-Anwendungen unterstützt. FULL_SCREEN Legt fest, dass die Bühne im Vollbildmodus angezeigt wird.fullScreenString Legt fest, dass die Bühne im Vollbildmodus angezeigt wird. Die Tastaturinteraktion ist in diesem Modus deaktiviert. NORMAL Legt fest, dass die Bühne im normalen Modus angezeigt wird.normalString Legt fest, dass die Bühne im normalen Modus angezeigt wird. ShaderData Ein ShaderData-Objekt enthält Eigenschaften, die beliebige Parameter und Eingaben für ein Shaderkernel darstellen, sowie Eigenschaften, die für den Shader festgelegte Metadaten enthalten.Object Ein ShaderData-Objekt enthält Eigenschaften, die beliebige Parameter und Eingaben für ein Shaderkernel darstellen, sowie Eigenschaften, die für den Shader festgelegte Metadaten enthalten.

Diese Eigenschaften werden dem ShaderData-Objekt bei der Erstellung hinzugefügt. Die Namen der Eigenschaften stimmen mit den im Shaderquellcode festgelegten Namen überein. Die Datentypen der verschiedenen Eigenschaften sind unterschiedlich, je nachdem, welchen Aspekt des Shaders die Eigenschaft darstellt. Die Eigenschaften, die Shaderparameter darstellen, sind ShaderParameter-Instanzen; die Eigenschaften, die Eingabebilder darstellen sind ShaderInput-Instanzen; die Eigenschaften, die Shadermetadaten darstellen, sind Instanzen der ActionScript-Klasse, die dem jeweiligen Datentyp entsprechen (Beispiel: eine String-Instanz für Metadaten im Textformat, eine uint-Instanz für uint-Metadaten).

Sehen Sie sich beispielsweise diesen Shader an, der durch ein Eingabebild (src), zwei Parameter (size und radius) und drei Metadatenwerte (nameSpace, version und description) definiert ist:

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

Wenn Sie eine Shader-Instanz durch Laden des Bytecodes für diesen Shader erstellen, enthält die ShaderData-Instanz in ihren data-Eigenschaften diese Eigenschaften:

EigenschaftDatentypWertnameString„DoNothing“nameSpaceString„Adobe::Example“versionString„1“descriptionString„A shader that does nothing, but does it well.“srcShaderInput[Eine ShaderInput-Instanz]sizeShaderParameter[Eine ShaderParameter-Instanz mit Eigenschaften für die Parametermetadaten]radiusShaderParameter[Eine ShaderParameter-Instanz mit Eigenschaften für die Parametermetadaten]

Beachten Sie: Eingabebilder oder Parameter, die zwar im Shaderquellcode definiert sind, aber in der evaluatePixel()-Funktion des Shaders nicht verwendet werden, werden entfernt, wenn der Shader in Form von Bytecode kompiliert wird. In diesem Fall wird keine entsprechende ShaderInput- oder ShaderParameter-Instanz als Eigenschaft der ShaderData-Instanz hinzugefügt.

Im Allgemeinen wird eine ShaderData-Instanz nicht durch Entwicklercode erstellt. Eine ShaderData-Instanz, die Daten, Parameter und Eingaben für einen Shader enthält, ist als data-Eigenschaft der Shader-Instanz verfügbar.

Das folgende Beispiel zeigt, wie Sie einen Shader laden und die ShaderData-Instanz in der data-Eigenschaft auflisten, um die Shadereigenschaften für Eingabe, Parameter und Metadaten anzuzeigen.

Beachten Sie, dass im Beispiel davon ausgegangen wird, dass im selben Ordner wie dem Ausgabeordner der Anwendung eine Shaderbytecodedatei mit dem Namen „donothing.pbj“ vorhanden ist.

// // Source code for the shader: // <languageVersion : 1.0;> kernel DoNothing < namespace: "Adobe::Example"; vendor: "Adobe examples"; version: 1; description: "A shader that does nothing, but does it well."; > { input image4 src; output pixel4 dst; parameter float2 size < description: "The size of the image to which the shader is applied"; minValue: float2(0.0, 0.0); maxValue: float2(100.0, 100.0); defaultValue: float2(50.0, 50.0); >; parameter float radius < description: "The radius of the effect"; minValue: float(0.0); maxValue: float(50.0); defaultValue: float(25.0); >; void evaluatePixel() { float2 one = (radius / radius) * (size / size); dst = sampleNearest(src, outCoord()); } } // // ActionScript source code: // package { import flash.display.Shader; import flash.display.Sprite; import flash.events.Event; import flash.net.URLLoader; import flash.net.URLLoaderDataFormat; import flash.net.URLRequest; public class ShaderDataExample extends Sprite { private var loader:URLLoader; public function ShaderDataExample() { loader = new URLLoader(); loader.dataFormat = URLLoaderDataFormat.BINARY; loader.addEventListener(Event.COMPLETE, loadCompleteHandler); loader.load(new URLRequest("donothing.pbj")); } private function loadCompleteHandler(event:Event):void { var shader:Shader = new Shader(); shader.byteCode = loader.data; for (var p:String in shader.data) { trace(p, ":", shader.data[p]); for (var d:String in shader.data[p]) { trace("\t", d, ":", shader.data[p][d]); } } } } }
flash.display.Shader.dataflash.display.ShaderInputflash.display.ShaderParameterShaderData Erstellt eine ShaderData-Instanz.byteCodeflash.utils:ByteArrayDer Bytecode des Shaders. Erstellt eine ShaderData-Instanz. Im Allgemeinen wird der ShaderData-Konstruktor nicht direkt durch Entwicklercode aufgerufen. Der Zugriff auf eine ShaderData-Instanz, die Daten, Parameter und Eingaben für eine Shader-Instanz enthält, erfolgt über deren data-Eigenschaft. flash.display.Shader.data
ShaderJob Eine ShaderJob-Instanz wird für die Ausführung eines Shadervorgangs im eigenständigen Modus verwendet.flash.events:EventDispatcher Eine ShaderJob-Instanz wird für die Ausführung eines Shadervorgangs im eigenständigen Modus verwendet. Der Shadervorgang wird ausgeführt und gibt die Ergebnisdaten zurück. Der Entwickler entscheidet, wie er das Ergebnis verwendet.

Es gibt zwei Hauptgründe für die Verwendung des Shaders im eigenständigen Modus:

  • Verarbeitung von Nicht-Bilddaten: Durch die ShaderJob-Instanz können Sie die Eingabewerte bestimmen und entscheiden, wie die Shaderergebnisse verwendet werden. Der Shader kann das Ergebnis anstatt in Bilddaten als Binärdaten oder Zahlendaten zurückgeben.
  • Verarbeitung im Hintergrund: Manche Shader sind komplex und ihre Ausführung erfordert einige Zeit. Die Ausführung eines komplexen Shaders in der Hauptausführung einer Anwendung kann andere Teile der Anwendung, etwa Benutzerinteraktionen oder die Aktualisierung des Bildschirms, beträchtlich verlangsamen. Mit der ShaderJob-Instanz können Sie den Shader im Hintergrund ausführen. Auf diese Weise läuft der Shadervorgang unabhängig von der Hautpausführung der Anwendung ab.

Die shader-Eigenschaft (oder der constructor-Parameter) gibt die Shader-Instanz an, die den für diesen Vorgang verwendeten Shader darstellt. Parameter oder Eingaben, die der Shader benötigt, stellen Sie mithilfe der verknüpften ShaderParameter- oder ShaderInput-Instanzen bereit.

Vor Ausführung des ShaderJob-Vorgangs stellen Sie ein Objekt bereit, in das das Ergebnis geschrieben wird. Dazu setzen Sie das Objekt als Wert für die target-Eigenschaft. Bei Abschluss des Shadervorgangs wird das Ergebnis in das target-Objekt geschrieben.

Zum Starten eines Shadervorgangs im Hintergrund rufen Sie die start()-Methode auf. Bei Abschluss des Shadervorgangs wird das Ergebnis in das target-Objekt geschrieben. Dabei löst die ShaderJob-Instanz ein complete-Ereignis aus, das Listener informiert, dass das Ergebnis bereitsteht.

Um einen Shader synchron auszuführen (also nicht im Hintergrund), führen Sie die start()-Methode aus und übergeben true als Argument. Der Shader läuft im Hauptausführungs-Thread und Ihr Code wird angehalten, bis der Vorgang abgeschlossen ist. Am Ende wird das Ergebnis in das target-Objekt geschrieben. Dann wird die Ausführung der Anwendung bei der nächsten Codezeile fortgesetzt.

ShaderShaderInputShaderParameterShaderEventcomplete Wird ausgelöst, wenn ein asynchron ausgeführter ShaderJob die Datenverarbeitung mithilfe des Shaders beendet.flash.events.ShaderEvent.COMPLETEflash.events.ShaderEvent Wird ausgelöst, wenn ein asynchron ausgeführter ShaderJob die Datenverarbeitung mithilfe des Shaders beendet. Eine ShaderJob-Instanz wird asynchron ausgeführt, wenn die start()-Methode mit dem Wert false für den waitForCompletion-Parameter aufgerufen wird. ShaderJob shaderflash.display:ShadernullDer für den Vorgang verwendete Shader. targetObjectnullDas Objekt, in das das Ergebnis des Shadervorgangs geschrieben wird. Dieses Argument muss eine BitmapData-, ByteArray- oder Vector.<Number>-Instanz sein. widthint0Die Breite der Ergebnisdaten im target, wenn es sich dabei um eine ByteArray- oder Vector.<Number>-Instanz handelt. Die Größe der ByteArray- oder Vector.<Number>-Instanz wird bei Bedarf erhöht und bestehende Daten werden überschrieben. heightint0Die Höhe der Ergebnisdaten im target, wenn es sich dabei um eine ByteArray- oder Vector.<Number>-Instanz handelt. Die Größe der ByteArray- oder Vector.<Number>-Instanz wird bei Bedarf erhöht und bestehende Daten werden überschrieben. cancel Bricht den aktuell laufenden Shadervorgang ab. Bricht den aktuell laufenden Shadervorgang ab. Bereits berechnete Ergebnisdaten werden dabei gelöscht. Das complete-Ereignis wird nicht ausgelöst.

Mehrfaches Aufrufen von cancel() hat keine Auswirkungen.

start Startet einen Shadervorgang im synchronen oder asynchronen Modus, entsprechend dem Wert des waitForCompletion-Parameters.Wenn die target-Eigenschaft null oder keine BitmapData-, ByteArray- oder Vector.<Number>-Instanz ist. ArgumentErrorArgumentErrorWenn der Shader eine Bildeingabe festlegt, die nicht vorhanden ist. ArgumentErrorArgumentErrorWenn eine ByteArray- oder Vector.<Number>-Instanz als Eingabe verwendet wird und die width- und height-Eigenschaft für ShaderInput nicht festgelegt ist oder die festgelegten Werte nicht mit der Datenmenge im Eingabeobjekt übereinstimmen. Weitere Informationen finden Sie im Abschnitt zur ShaderInput.input-Eigenschaft. ArgumentErrorArgumentErrorwaitForCompletionBooleanfalseLegt fest, ob der Shader im Hintergrund (false, Standardwert) oder in der Hauptausführung des Programms (true) ausgeführt wird. Startet einen Shadervorgang im synchronen oder asynchronen Modus, entsprechend dem Wert des waitForCompletion-Parameters.

Im asynchronen Modus (wenn waitForCompletion den Wert false hat) wird der ShaderJob im Hintergrund ausgeführt. Dies ist der Standardmodus. Der Shadervorgang hat keine Auswirkungen auf die Reaktionszeit der Anzeige oder andere Vorgänge. Im asynchronen Modus wird der start()-Aufruf sofort zurückgegeben und das Programm setzt mit der nächsten Codezeile fort. Nach Abschluss eines asynchronen Shadervorgangs steht das Ergebnis bereit und das complete-Ereignis wird ausgelöst.

Es kann jeweils nur ein ShaderJob-Vorgang im Hintergrund ausgeführt werden. Shadervorgänge werden bis zu ihrer Ausführung in eine Warteschlange gereiht. Wird während der Ausführung eines Shadervorgangs die start()-Methode aufgerufen, so wird der neue Vorgang an das Ende der Warteschlange gereiht. Er wird ausgeführt, wenn er an der Reihe ist.

Ein Shadervorgang wird synchron ausgeführt, wenn die start()-Methode aufgerufen wird und sie den Wert true für den waitForCompletion-Parameter (den einzigen Parameter) aufweist. Ihr Code wird vom Zeitpunkt, zu dem start() aufgerufen wird, bis zum Abschluss des Shadervorgangs angehalten. Dann steht das Ergebnis zur Verfügung und die Ausführung wird bei der nächsten Codezeile fortgesetzt.

Wenn Sie die start()-Methode aufrufen, wird die Shader-Instanz in der shader-Eigenschaft intern kopiert. Für den Shadervorgang wird statt eines Verweises auf den ursprünglichen Shader die interne Kopie verwendet. Änderungen am Shader (beispielsweise an Parameterwerten, Eingabe oder Bytecode) werden nicht auf die für den Shadervorgang verwendete Shaderkopie angewendet. Um Änderungen am Shader in den Shadervorgang einzubeziehen, rufen Sie, falls erforderlich, die cancel()-Methode auf und dann nochmals die start()-Methode, um den Shadervorgang neu zu starten.

Während der Ausführung eines Shadervorgangs wird der Wert des target-Objekts nicht geändert. Wenn der Vorgang abgeschlossen (und im asynchronen Modus das complete-Ereignis ausgelöst) wird, wird das Gesamtergebnis direkt in das target-Objekt geschrieben. Wenn es sich beim target-Objekt um eine BitmapData-Instanz handelt und die zugehörige dispose()-Methode vor Abschluss des Vorgangs aufgerufen wird, wird das complete-Ereignis dennoch im asynchronen Modus ausgelöst. Die Ergebnisdaten werden jedoch nicht in das BitmapData-Objekt geschrieben, da es entfernt wurde.

completeflash.events:ShaderEventWird beim Abschluss eines Vorgangs aufgerufen, wenn die start()-Methode mit einem waitForCompletion-Argument gleich true aufgerufen wurde. Wird beim Abschluss eines Vorgangs aufgerufen, wenn die start()-Methode mit einem waitForCompletion-Argument gleich „true“ aufgerufen wurde.
height Die Höhe der Ergebnisdaten im target, wenn es sich dabei um eine ByteArray- oder Vector.<Number>-Instanz handelt.int Die Höhe der Ergebnisdaten im target, wenn es sich dabei um eine ByteArray- oder Vector.<Number>-Instanz handelt. Die Größe der ByteArray- oder Vector.<Number>-Instanz wird bei Bedarf erhöht und bestehende Daten werden überschrieben. progress Der Fortschritt eines Shaders, der ausgeführt wird.Number Der Fortschritt eines Shaders, der ausgeführt wird. Diese Eigenschaft ist ein Wert zwischen 0 und 1. Null ist der Ausgangswert (0 % abgeschlossen). Eins gibt an, dass der Shadervorgang abgeschlossen ist.

Wenn die cancel()-Methode aufgerufen wird, erhält diese Eigenschaft den Wert undefined und ihr Wert ist unzuverlässig, bis der Shadervorgang erneut startet.

shader Der für den Vorgang verwendete Shader.flash.display:Shader Der für den Vorgang verwendete Shader. Eingaben oder Parameter, die der Shader benötigt, müssen mithilfe der ShaderInput- oder ShaderParameter-Eigenschaft der data-Eigenschaft der Shader-Instanz angegeben werden. Eine Eingabe muss mit dem entsprechenden ShaderInput bereitgestellt werden, auch, wenn es dasselbe Objekt wie das target-Objekt ist.

Um ein ByteArray zu verarbeiten, das ein lineares Daten-Array (im Gegensatz zu Bilddaten) enthält, setzen Sie für die entsprechende ShaderInput-Instanz height auf 1 und width auf die Wertzahl der 32-Bit-Gleitkommazahl im ByteArray. In diesem Fall muss die Shadereingabe mithilfe des image1-Datentyps definiert werden.

flash.display.ShaderDataflash.display.ShaderInputflash.display.ShaderParameter
target Das Objekt, in das das Ergebnis des Shadervorgangs geschrieben wird.Object Das Objekt, in das das Ergebnis des Shadervorgangs geschrieben wird. Dieses Objekt muss eine BitmapData-, ByteArray- oder Vector.<Number>-Instanz sein. width Die Breite der Ergebnisdaten im „target“, wenn es sich beim Ziel um eine ByteArray- oder Vector.<Number>-Instanz handelt.int Die Breite der Ergebnisdaten im target, wenn es sich dabei um eine ByteArray- oder Vector.<Number>-Instanz handelt. Die Größe der ByteArray- oder Vector.<Number>-Instanz wird bei Bedarf erhöht und bestehende Daten werden überschrieben.
NativeWindowSystemChrome Die NativeWindowSystemChrome-Klasse definiert Konstanten für die systemChrome-Eigenschaft des NativeWindowInitOptions-Objekts, das für die Erstellung eines nativen Fensters verwendet wird.Definiert Konstanten, die die unterstützten Typen des Fensterdesigns repräsentieren. Object Die NativeWindowSystemChrome-Klasse definiert Konstanten für die systemChrome-Eigenschaft des NativeWindowInitOptions-Objekts, das für die Erstellung eines nativen Fensters verwendet wird.

Systemchrom bezieht sich auf die betriebssystemspezifischen Elemente eines Fensters, wie die Titelleiste sowie die Schaltflächen zum Minimieren, Maximieren und Schließen.

Hinweis: Der Typ des verwendeten Systemchroms wird bei der Erstellung des Fensters angegeben und kann später nicht mehr geändert werden.

flash.display.NativeWindowflash.display.NativeWindowInitOptionsALTERNATE Reserviert für die zukünftige Verwendung.alternateString Reserviert für die zukünftige Verwendung.

Nicht verwenden.

NONE Kein Systemchrom.noneString Kein Systemchrom. STANDARD Das Standardchrom für das Hostbetriebssystem.standardString Das Standardchrom für das Hostbetriebssystem.

Mit dieser Einstellung können Sie die Gestaltung des nativen Betriebssystems nachahmen.

IGraphicsStroke Diese Schnittstelle wird für die Definition von Objekten verwendet, die als Strichparameter in der flash.display.Graphics-Methode und Klassen für das Zeichnen verwendet werden können. Diese Schnittstelle wird für die Definition von Objekten verwendet, die als Strichparameter in der flash.display.Graphics-Methode und Klassen für das Zeichnen verwendet werden können. Verwenden Sie Klassen, die diese Schnittstelle implementieren, um Stricheigenschaftsdaten zu erstellen und zu verwalten und diese Daten in verschiedenen Instanzen wiederzuverwenden. flash.display.Graphics.drawGraphicsData()SimpleButton Die SimpleButton-Klasse ermöglicht die Steuerung aller Instanzen von Schaltflächensymbolen in einer SWF-Datei.Die SimpleButton-Klasse ermöglicht die Steuerung aller Instanzen von Schaltflächensymbolen in einer SWF-Datei. flash.display:InteractiveObject Die SimpleButton-Klasse ermöglicht die Steuerung aller Instanzen von Schaltflächensymbolen in einer SWF-Datei.

In Flash Professional können Sie im Eigenschafteninspektor einer Schaltfläche einen Instanznamen zuweisen. SimpleButton-Instanznamen werden im Film-Explorer und im Dialogfeld „Zielpfad einfügen“ des Bedienfelds „Aktionen“ angezeigt. Nachdem Sie in Flash Professional eine Instanz einer Schaltfläche erstellt haben, können Sie die Methoden und Eigenschaften der SimpleButton-Klasse verwenden, um Schaltflächen mit ActionScript zu bearbeiten.

In ActionScript 3.0 erstellen Sie eine SimpleButton-Instanz mithilfe des Konstruktors new SimpleButton():

Die SimpleButton-Klasse übernimmt ihre Eigenschaften von der InteractiveObject-Klasse.

Im folgenden Beispiel wird die SimpleButtonExample-Klasse verwendet, die wiederum die CustomSimpleButton-Klasse verwendet, die vier ButtonDisplayState-Objekte instanziiert. Das Ergebnis ist eine Schaltfläche, die als Quadrat angelegt wird und deren Hintergrund sich je nach Mausstatus ändert, indem Instanzeigenschaften der SimpleButton-Klasse außer Kraft gesetzt werden. Dies wird in den folgenden Schritten erreicht:
  1. Im Konstruktor SimpleButtonExample() wird ein neues CustomSimpleButton-Objekt vom Typ „SimpleButton“ mit dem Namen button erstellt. Dieses Objekt ruft die CustomSimpleButton-Konstruktormethode auf. Das button-Objekt wird der Anzeigeliste hinzugefügt. Farbe und Größe der Schaltfläche werden in den darauf folgenden Schritten festgelegt.
  2. In der CustomSimpleButton-Klasse werden Instanzeigenschaften deklariert, die später verwendet werden, um die Größe und Hintergrundfarbe von button zu steuern. Dies erfolgt basierend auf dem jeweiligen Status (orange im normalen Status, dunkelgelb im Mouseover-Status und hellblau im Mousedown-Status). Für jeden Status von button ist die Größe des Quadrats auf 80 Pixel festgelegt, indem die size-Eigenschaft verwendet wird.
  3. Die Konstruktorfunktion für die CustomSimpleButton-Klasse setzt die Eigenschaften downState, overState, upState, hitTestState und useHandCursor mit vier Instanzen der ButtonDisplayState-Klasse.
  4. In der ButtonDisplayState-Klasse setzt der Konstruktor den Wert des Quadrats für Größe und Hintergrundfarbe und ruft die draw()-Methode auf.
  5. Die draw()-Methode zeichnet das Quadrat unter Verwendung der im Konstruktor angegebenen Größe und Hintergrundfarbe basierend auf dem Status der Schaltfläche neu.
package { import flash.display.Sprite; public class SimpleButtonExample extends Sprite { public function SimpleButtonExample() { var button:CustomSimpleButton = new CustomSimpleButton(); addChild(button); } } } import flash.display.DisplayObject; import flash.display.Shape; import flash.display.SimpleButton; class CustomSimpleButton extends SimpleButton { private var upColor:uint = 0xFFCC00; private var overColor:uint = 0xCCFF00; private var downColor:uint = 0x00CCFF; private var size:uint = 80; public function CustomSimpleButton() { downState = new ButtonDisplayState(downColor, size); overState = new ButtonDisplayState(overColor, size); upState = new ButtonDisplayState(upColor, size); hitTestState = new ButtonDisplayState(upColor, size * 2); hitTestState.x = -(size / 4); hitTestState.y = hitTestState.x; useHandCursor = true; } } class ButtonDisplayState extends Shape { private var bgColor:uint; private var size:uint; public function ButtonDisplayState(bgColor:uint, size:uint) { this.bgColor = bgColor; this.size = size; draw(); } private function draw():void { graphics.beginFill(bgColor); graphics.drawRect(0, 0, size, size); graphics.endFill(); } }
InteractiveObject-KlasseSimpleButton Erstellt eine neue SimpleButton-Instanz.upStateflash.display:DisplayObjectnullDer ursprüngliche Wert für den SimpleButton-Status „up“. overStateflash.display:DisplayObjectnullDer ursprüngliche Wert für den SimpleButton-Status „over“. downStateflash.display:DisplayObjectnullDer ursprüngliche Wert für den SimpleButton-Status „down“. hitTestStateflash.display:DisplayObjectnullDer ursprüngliche Wert für den SimpleButton-Status „hitTest“. Erstellt eine neue SimpleButton-Instanz. Erstellt eine neue SimpleButton-Instanz. Ein oder alle Anzeigeobjekte, die die verschiedenen Schaltflächenzustände repräsentieren, können als Parameter im Konstruktor gesetzt werden. downState Legt ein Anzeigeobjekt fest, das als visuelles Objekt für den Schaltflächenzustand „down“ verwendet wird. Dies ist der Zustand der Schaltfläche, wenn Benutzer das hitTestState-Objekt auswählen.flash.display:DisplayObjectLegt einen DisplayObject-Wert fest, der für den Schaltflächenzustand „down“ verwendet wird. Legt ein Anzeigeobjekt fest, das als visuelles Objekt für den Schaltflächenzustand down verwendet wird. Dies ist der Zustand der Schaltfläche, wenn Benutzer das hitTestState-Objekt auswählen. hitTestStateoverStateupStateenabled Ein boolescher Wert, der angibt, ob eine Schaltfläche aktiviert ist.BooleanGibt an, ob eine Schaltfläche aktiviert (true) oder deaktiviert (false) ist. Ein boolescher Wert, der angibt, ob eine Schaltfläche aktiviert ist. Wenn eine Schaltfläche deaktiviert ist (ihre enabled-Eigenschaft also auf false gesetzt wurde), dann ist diese Schaltfläche zwar sichtbar, aber das Klicken darauf hat keine Auswirkung. Der Standardwert ist true. Diese Eigenschaft ist nützlich, wenn Sie einen Teil der Navigation deaktivieren möchten, z. B. wenn Sie eine Schaltfläche auf der gerade angezeigten Seite deaktivieren möchten, damit nicht darauf geklickt werden und die Seite nicht erneut geladen werden kann.

Hinweis: Um Mausklicks auf eine Schaltfläche zu verhindern, setzen Sie sowohl die enabled- als auch die mouseEnabled-Eigenschaft auf false.

hitTestState Legt ein Anzeigeobjekt fest, das als Kollisionserkennungsobjekt für die Schaltfläche verwendet wird.flash.display:DisplayObject Legt ein Anzeigeobjekt fest, das als Kollisionserkennungsobjekt für die Schaltfläche verwendet wird. Für eine normale Schaltfläche setzen Sie die hitTestState-Eigenschaft auf dasselbe Anzeigeobjekt wie die overState-Eigenschaft. Wenn Sie die hitTestState-Eigenschaft nicht setzen, ist die SimpleButton-Schaltfläche nicht aktiv. Sie reagiert also nicht auf Benutzereingabeereignisse. downStateoverStateupStateoverState Legt ein Anzeigeobjekt fest, das als visuelles Objekt für den Schaltflächenstatus „over“ verwendet wird. Dies ist der Status, den die Schaltfläche aufweist, wenn sich der Zeiger über der Schaltfläche befindet.flash.display:DisplayObjectLegt einen DisplayObject-Wert fest, der für den Schaltflächenzustand „over“ verwendet wird. Legt ein Anzeigeobjekt fest, das als visuelles Objekt für den Schaltflächenstatus „over“ verwendet wird. Dies ist der Status, den die Schaltfläche aufweist, wenn sich der Zeiger über der Schaltfläche befindet. downStatehitTestStateupStatesoundTransform Das SoundTransform-Objekt, das dieser Schaltfläche zugewiesen wurde.flash.media:SoundTransform Das SoundTransform-Objekt, das dieser Schaltfläche zugewiesen wurde. Ein SoundTransform-Objekt enthält Eigenschaften zum Festlegen von Lautstärke, Schwenkung sowie Zuordnung von linkem und rechtem Lautsprecher. Dieses SoundTransform-Objekt wird auf alle Statuszustände der Schaltfläche angewendet. Dieses SoundTransform-Objekt wirkt sich nur auf eingebettete Sounds aus. flash.media.SoundTransformtrackAsMenu Zeigt an, ob andere Anzeigeobjekte, die SimpleButton- oder MovieClip-Objekte sind, durch das Loslassen des Benutzereingabegeräts erzeugte Ereignisse empfangen können.Boolean Zeigt an, ob andere Anzeigeobjekte, die SimpleButton- oder MovieClip-Objekte sind, durch das Loslassen des Benutzereingabegeräts erzeugte Ereignisse empfangen können. Die trackAsMenu-Eigenschaft dient zum Erstellen von Menüs. Sie können die trackAsMenu-Eigenschaft für jedes SimpleButton- oder MovieClip-Objekt setzen. Wenn die trackAsMenu-Eigenschaft nicht vorhanden ist, lautet das Standardverhalten false.

Sie können die trackAsMenu-Eigenschaft jederzeit ändern. Die geänderte Schaltfläche übernimmt sofort das neue Verhalten.

upState Legt ein Anzeigeobjekt fest, das als visuelles Objekt für den Schaltflächenstatus „up“ verwendet wird. Dies ist der Status, den die Schaltfläche aufweist, wenn sich der Zeiger nicht über der Schaltfläche befindet.flash.display:DisplayObjectLegt einen DisplayObject-Wert fest, der für den Schaltflächenzustand „up“ verwendet wird. Legt ein Anzeigeobjekt fest, das als visuelles Objekt für den Schaltflächenstatus „up“ verwendet wird. Dies ist der Status, den die Schaltfläche aufweist, wenn sich der Zeiger nicht über der Schaltfläche befindet. downStatehitTestStateoverStateuseHandCursor Ein boolescher Wert, der bei der Einstellung „true“ angibt, ob der Handcursor angezeigt wird, wenn der Zeiger über eine Schaltfläche bewegt wird.BooleanZeigt einen Handcursor an, wenn der Wert „true“ ist. Ein boolescher Wert, der bei der Einstellung true angibt, ob der Handcursor angezeigt wird, wenn der Zeiger über eine Schaltfläche bewegt wird. Wenn diese Eigenschaft auf false gesetzt ist, wird stattdessen der Pfeilcursor angezeigt. Der Standardwert lautet true.

Sie können die Eigenschaft useHandCursor jederzeit ändern. Die geänderte Schaltfläche übernimmt sofort das neue Cursorverhalten.

TriangleCulling Definiert Codes für Cullingalgorithmen, die bestimmen, welche Dreiecke beim Zeichnen von Dreieckpfaden nicht dargestellt werden.Object Definiert Codes für Cullingalgorithmen, die bestimmen, welche Dreiecke beim Zeichnen von Dreieckpfaden nicht dargestellt werden.

Die Bezeichnungen POSITIVE und NEGATIVE beziehen sich auf das Vorzeichen der Normalen eines Dreiecks entlang der z-Achse. Die Normale ist ein 3D-Vektor, der senkrecht zur Oberfläche des Dreiecks verläuft.

Bei einem Dreieck, dessen Scheitelpunkte 0, 1 und 2 im Uhrzeigersinn angeordnet sind, hat die Normale einen positiven Wert. Mit anderen Worten: Die Normale zeigt in eine positiven z-Achsenrichtung, vom aktuellen Blickpunkt weg. Wenn der Algorithmus TriangleCulling.POSITIVE verwendet wird, werden Dreiecke mit positiven Normalen nicht dargestellt. Dies wird auch als Backface Culling (Unterdrücken von Rückflächen) bezeichnet.

Bei einem Dreieck, dessen Scheitelpunkte entgegen dem Uhrzeigersinn angeordnet sind, hat die Normale einen negativen Wert. Mit anderen Worten: Die Normale zeigt in einer negativen z-Achsenrichtung, zum aktuellen Blickpunkt hin. Wenn der Algorithmus TriangleCulling.NEGATIVE verwendet wird, werden Dreiecke mit negativen Normalen nicht dargestellt.

flash.display.Graphics.drawTriangles()flash.display.GraphicsTrianglePathEinführung in 3D-Vektoren3D Backface CullingNEGATIVE Gibt an, dass alle Dreiecke unterdrückt werden, die zum aktuellen Blickpunkt hin zeigen.negativeString Gibt an, dass alle Dreiecke unterdrückt werden, die zum aktuellen Blickpunkt hin zeigen. NONE Gibt an, dass kein Culling erfolgt, also keine Flächen unterdrückt werden.noneString Gibt an, dass kein Culling erfolgt, also keine Flächen unterdrückt werden. Alle Dreiecke im Pfad werden dargestellt. POSITIVE Gibt an, dass alle Dreiecke unterdrückt werden, die vom aktuellen Blickpunkt weg zeigen.positiveString Gibt an, dass alle Dreiecke unterdrückt werden, die vom aktuellen Blickpunkt weg zeigen. Dies wird auch als Backface Culling (Unterdrücken von Rückflächen) bezeichnet.
NativeWindow Die NativeWindow-Klasse bietet eine Schnittstelle zum Erstellen und Steuern von nativen Desktop-Fenstern.flash.events:EventDispatcher Die NativeWindow-Klasse bietet eine Schnittstelle zum Erstellen und Steuern von nativen Desktop-Fenstern.

Unterstützung von AIR-Profilen: Diese Funktion wird auf allen Desktopbetriebssystemen unterstützt, jedoch nicht auf mobilen Geräten oder Geräten mit AIR für TV. Mit der NativeWindow.isSupported-Eigenschaft können Sie testen, ob zur Laufzeit bei Desktopgeräten Unterstützung gegeben ist. Weitere Informationen zum AIR-Support über mehrere Profile finden Sie unter Unterstützung von AIR-Profilen.

Ein Verweis auf die NativeWindow-Instanz wird vom Fensterkonstruktor zurückgegeben. Der Zugriff auf einen Verweis auf eine NativeWindow-Instanz ist auch mit der stage.nativeWindow-Eigenschaft eines beliebigen Anzeigeobjekts auf der Bühne des jeweiligen Fensters möglich:

var window:NativeWindow = displayObject.stage.nativeWindow;

Der Zugriff auf die Eigenschaften einer NativeWindow-Instanz ist nur nach Anwendungsinhalt möglich. Wenn anwendungsfremder Inhalt versucht, auf ein NativeWindow-Objekt zuzugreifen, wird ein Sicherheitsfehler ausgegeben.

Inhalte können einem Fenster hinzugefügt werden, indem DisplayObjectContainer-Methoden des Stage-Objekts, z. B. addChild() verwendet werden.

Flex-Komponenten können der Anzeigeliste einer NativeWindow-Instanz nicht direkt hinzugefügt werden. Erstellen Sie Ihre Fenster stattdessen mit den Flex-Komponenten „mx:WindowedApplication“ und „mx:Window“ und fügen Sie ihnen die anderen Flex-Komponenten als untergeordnete Objekte hinzu. Sie können einem NativeWindow-Fenster Flex-basierte SWF-Inhalte direkt hinzufügen, sofern die SWF-Datei Anwendungsinhalt ist und in ihre eigene Anwendungsdomäne geladen wird.

Ein HTML-Stammfenster zur Anzeige von HTML-Inhalt lässt sich meist mit HTMLLoader.createRootContent() einfacher erstellen. Mit dieser Methode erstellte Fenster verfügen automatisch über ein HTMLLoader-Objekt. (Bei JavaScript-Code können Sie auch die window.open()-Funktion verwenden. Mit dieser Methode haben Sie jedoch weniger Kontrolle über das Erscheinungsbild und das Verhalten des Fensters.)

Die folgenden Vorgänge für NativeWindow-Objekte sind asynchron: Änderungen von close(), maximize(), minimize(), restore() und bounds. Eine Anwendung kann durch Warten auf die jeweiligen Ereignisse feststellen, wann diese Operationen abgeschlossen wurden.

Wenn die NativeApplication.autoExit-Eigenschaft auf den Standardwert trueeingestellt ist, wird die Anwendung geschlossen, wenn ihr letztes Fenster geschlossen wird (und alle close-Ereignisprozeduren zurückgegeben wurden). Wenn autoExit auf false eingestellt ist, muss NativeApplication.nativeApplication.exit() aufgerufen werden, um die Anwendung zu beenden.

NativeWindow-Objekte werden nicht vom Garbage Collector entfernt, nachdem der Fensterkonstruktor und bevor close() aufgerufen wurde. Die Anwendung ist dafür verantwortlich, ihre eigenen Fenster zu schließen.

flash.display.Stage.nativeWindowflash.display.NativeWindowInitOptionsflash.desktop.NativeApplicationflash.system.ApplicationDomainflash.html.HTMLLoader.createRootWindow()deactivate Wird von diesem NativeWindow-Objekt ausgelöst, nachdem das Fenster deaktiviert wurde.flash.events.Event.DEACTIVATEflash.events.Event Wird von diesem NativeWindow-Objekt ausgelöst, nachdem das Fenster deaktiviert wurde. activate Wird von diesem NativeWindow-Objekt ausgelöst, nachdem das Fenster aktiviert wurde.flash.events.Event.ACTIVATEflash.events.Event Wird von diesem NativeWindow-Objekt ausgelöst, nachdem das Fenster aktiviert wurde. close Wird von diesem NativeWindow-Objekt ausgelöst, nachdem das Fenster geschlossen wurde.flash.events.Event.CLOSEflash.events.Event Wird von diesem NativeWindow-Objekt ausgelöst, nachdem das Fenster geschlossen wurde. closing Wird von diesem NativeWindow-Objekt ausgelöst, unmittelbar bevor das Fenster geschlossen werden soll.flash.events.Event.CLOSINGflash.events.Event Wird von diesem NativeWindow-Objekt ausgelöst, unmittelbar bevor das Fenster geschlossen werden soll. Dieses Ereignis kann abgebrochen werden, um das Schließen des Fensters zu verhindern. displayStateChange Wird von diesem NativeWindow-Objekt ausgelöst, nachdem sich die displayState-Eigenschaft des Fensters geändert hat.flash.events.NativeWindowDisplayStateEvent.DISPLAY_STATE_CHANGEflash.events.NativeWindowDisplayStateEvent Wird von diesem NativeWindow-Objekt ausgelöst, nachdem sich die displayState-Eigenschaft des Fensters geändert hat.

Ändern Sie nicht die Größe des Fensters oder seinen Anzeigestatus in der displayStateChange-Ereignisprozedur.

displayStateChanging Wird von diesem NativeWindow-Objekt ausgelöst, unmittelbar bevor sich die display-Eigenschaft des Fensters ändert.flash.events.NativeWindowDisplayStateEvent.DISPLAY_STATE_CHANGINGflash.events.NativeWindowDisplayStateEvent Wird von diesem NativeWindow-Objekt ausgelöst, unmittelbar bevor sich die display-Eigenschaft des Fensters ändert. Dieses Ereignis kann abgebrochen werden, um die Änderung zu verhindern. Das folgende Beispiel zeigt, wie ein displayStateChanging-Ereignis abgebrochen wird. function displayStateChanging_handler(displayStateEvent:NativeWindowDisplayStateEvent):void { //shouldStopStateChange is an application-defined Boolean indicating //that display state changes should be canceled if (displayStateEvent.type == NativeWindowDisplayStateEvent.DISPLAY_STATE_CHANGING && shouldStopStateChange) { displayStateEvent.preventDefault(); } } resize Wird von diesem NativeWindow-Objekt ausgelöst, nachdem die Größe des Fensters geändert wurde.flash.events.NativeWindowBoundsEvent.RESIZEflash.events.NativeWindowBoundsEvent Wird von diesem NativeWindow-Objekt ausgelöst, nachdem die Größe des Fensters geändert wurde. Ein resize-Ereignis wird immer ausgelöst, wenn sich die Größe (width- oder height-Eigenschaft) ändert. Verursacht werden kann dies durch eine systemgesteuerte Größenänderung des Fensters, durch Minimieren, Maximieren oder Wiederherstellen des Fensters oder die Änderung der Fenstergröße durch das Setzen der width-, height- oder bounds-Eigenschaft. resize-Ereignisse für NativeWindow werden während systemgesteuerter resize-Schleifen ausgelöst. Im Gegensatz dazu werden resize-Ereignisse für Stage-Objekte ausgelöst, wenn die Bühne für das Zeichnen bereit ist. Stage resize-Ereignisresizing Wird von diesem NativeWindow-Objekt ausgelöst, unmittelbar bevor die Größe des Fensters auf dem Desktop geändert werden soll.flash.events.NativeWindowBoundsEvent.RESIZINGflash.events.NativeWindowBoundsEvent Wird von diesem NativeWindow-Objekt ausgelöst, unmittelbar bevor die Größe des Fensters auf dem Desktop geändert werden soll. Dieses Ereignis kann abgebrochen werden, um die Größenänderung zu verhindern oder zu ändern. Das folgende Beispiel zeigt, wie ein resizing-Ereignis abgebrochen wird. function boundsChanging_handler(boundsEvent:NativeWindowBoundsEvent):void { //shouldStopResize is an application-defined Boolean indicating //that resize operations should be canceled if (boundsEvent.type == NativeWindowBoundsEvent.RESIZING && shouldStopResize) { boundsEvent.preventDefault(); } } move Wird von diesem NativeWindow-Objekt ausgelöst, nachdem das Fenster auf dem Desktop verschoben wurde.flash.events.NativeWindowBoundsEvent.MOVEflash.events.NativeWindowBoundsEvent Wird von diesem NativeWindow-Objekt ausgelöst, nachdem das Fenster auf dem Desktop verschoben wurde.

Ein move-Ereignis wird immer ausgelöst, wenn sich der Ursprung (x- oder y-Eigenschaft) des Fensters ändert. Verursacht werden kann dies durch eine systemgesteuerte Fensterverschiebung, durch Minimieren, Maximieren oder Wiederherstellen des Fensters oder durch die Änderung der Fensterposition durch Setzen der x-, y- oder bounds-Eigenschaft.

Hinweis: Vermeiden Sie Aktionen, die möglicherweise gleichzeitig Betriebssystem-Dialogfelder in den Prozedurfunktionen für die beiden Ereignisse moving und move eines NativeWindow-Objekts öffnen. Dies kann beispielsweise auftreten, wenn beide Prozedurfunktionen einen Fehler ausgeben. Wenn das passiert, reagiert das zweite geöffnete Dialogfeld nicht auf Mausklicks und muss mithilfe der Tastatur geschlossen werden.

moving Wird von diesem NativeWindow-Objekt ausgelöst, unmittelbar bevor das Fenster auf dem Desktop verschoben werden soll.flash.events.NativeWindowBoundsEvent.MOVINGflash.events.NativeWindowBoundsEvent Wird von diesem NativeWindow-Objekt ausgelöst, unmittelbar bevor das Fenster auf dem Desktop verschoben werden soll. Dieses Ereignis kann abgebrochen werden, um die Verschiebung zu verhindern oder zu ändern.

Hinweis: Vermeiden Sie Aktionen, die möglicherweise gleichzeitig Betriebssystem-Dialogfelder in den Prozedurfunktionen für die beiden Ereignisse moving und move eines NativeWindow-Objekts öffnen. Dies kann beispielsweise auftreten, wenn beide Prozedurfunktionen einen Fehler ausgeben. Wenn das passiert, reagiert das zweite geöffnete Dialogfeld nicht auf Mausklicks und muss mithilfe der Tastatur geschlossen werden.

NativeWindow Erstellt eine neue NativeWindow-Instanz und ein entsprechendes Betriebssystem-Fenster.Wenn der initOptions-Parameter ungültig ist. IllegalOperationErrorflash.errors:IllegalOperationErrorinitOptionsflash.display:NativeWindowInitOptionsEin Objekt, das die Initialisierungseigenschaften für dieses Fenster enthält. Erstellt eine neue NativeWindow-Instanz und ein entsprechendes Betriebssystem-Fenster.

Die im initOptions-Parameter definierten Einstellungen können nach der Erstellung des Fensters nicht mehr geändert werden. Ungültige initOptions-Einstellungen geben einen Fehler aufgrund eines ungültigen Vorgangs aus. Einstellungen, die zwar gültig, aber auf dem aktuellen System nicht verfügbar sind, verursachen keinen Ausnahmefehler. Die spezifischen Fensterfunktionen des aktuellen Betriebssystems lassen sich bei Bedarf über die statischen NativeWindow-Mitglieder ermitteln, wie beispielsweise systemMaxSize.

Die Standardfenstergröße wird vom Betriebssystem bestimmt. Fenster werden in einem nicht sichtbaren Zustand erstellt. Damit Änderungen am Fenster nicht sichtbar werden, ändern Sie nicht die visible-Eigenschaft des Fensters auf true und rufen Sie nicht activate() auf, bevor die Fensteränderungen abgeschlossen sind.

Das folgende Beispiel zeigt, wie eine neue NativeWindow-Instanz erstellt und aktiviert wird: import flash.display.NativeWindowInitOptions; import flash.display.NativeWindowSystemChrome; import flash.display.NativeWindowType; import flash.display.NativeWindow; import flash.display.StageAlign; import flash.display.StageScaleMode; import flash.geom.Rectangle; var windowOptions:NativeWindowInitOptions = new NativeWindowInitOptions(); windowOptions.systemChrome = NativeWindowSystemChrome.STANDARD; windowOptions.type = NativeWindowType.NORMAL; var newWindow:NativeWindow = new NativeWindow(windowOptions); newWindow.stage.scaleMode = StageScaleMode.NO_SCALE; newWindow.stage.align = StageAlign.TOP_LEFT; newWindow.bounds = new Rectangle(100, 100, 800, 800); newWindow.activate();
flash.display.NativeWindowInitOptionsflash.html.HTMLLoader.createRootWindow()
activate Aktiviert dieses Fenster. Aktiviert dieses Fenster.

Die Aktivierung eines Fensters hat folgende Auswirkungen:

  • Das Fenster wird sichtbar.
  • Das Fenster wird in den Vordergrund gestellt.
  • Das Fenster erhält Tastatur- und Mausfokus.

Unter Linux ist activate() ein asynchroner Vorgang.

Das NativeWindow-Objekt löst auf allen Plattformen ein activate-Ereignis aus.

Das folgende Beispiel zeigt, wie ein Fenster aktiviert wird.

Mit einem Verweis auf ein Anzeigeobjekt auf der Fensterbühne:

displayObject.stage.nativeWindow.activate();
Mit einem Verweis auf eine Instanz der NativeWindow-Klasse: windowObj.activate(); Von JavaScript in einer HTML-Seite, die im Fenster dargestellt wird (wobei window das globale JavaScript-Fensterobjekt ist): window.nativeWindow.activate();
visibleorderToFront()
close Schließt dieses Fenster. Schließt dieses Fenster.

Ein close-Ereignis wird ausgelöst, sobald der Schließvorgang beendet wurde. Ein closing-Ereignis wird nicht ausgelöst. Wenn das Abbrechen des Schließvorgangs zulässig sein soll, lösen Sie ein closing-Ereignis aus und überprüfen Sie, ob registrierte Listener das Standardverhalten vor dem Aufruf der close-Methode abbrechen.

Wenn ein Fenster geschlossen wird, werden auch alle Fenster, deren Eigentümer es ist, geschlossen. Das untergeordnete Fenster setzt keine closing-Ereignisse ab.

Wenn auf Anzeigeobjektinstanzen, die sich aktuell im Fenster befinden, nicht anderswo verwiesen wird, werden sie vom Garbagekollektor eingesammelt und zerstört, mit Ausnahme des ursprünglichen mit AIR erstellten Anwendungsfensters. Damit Anzeigeobjekte vom Garbagekollektor aus dem ursprünglichen Fenster entfernt werden können, müssen Sie sie von der Fensterbühne entfernen.

Nach dem Schließen ist das NativeWindow-Objekt zwar immer noch ein gültiger Verweis, aber beim Zugriff auf die meisten Eigenschaften und Methoden wird ein Fehler aufgrund eines ungültigen Vorgangs ausgegeben.

Geschlossene Fenster können nicht erneut geöffnet werden. Wenn das Fenster bereits geschlossen ist, werden keine Aktionen ausgeführt und keine Ereignisse ausgelöst.

Hinweis: Um ein Fenster auszublenden, ohne es zu schließen, stellen Sie seine visible-Eigenschaft auf false ein.

Das folgende Beispiel zeigt, wie ein Fenster geschlossen wird.

Mit einem Verweis auf die NativeWindow-Instanz (windowObj):

windowObj.close();
Mit einem Verweis auf ein Anzeigeobjekt auf der Fensterbühne: displayObj.stage.nativeWindow.close(); Mit einer JavaScript-Routine, die in einem HTMLLoader-Objekt (oder HTML-Stammfenster) ausgeführt wird: window.close(); //overriddable in HTMLHost Oder: window.nativeWindow.close(); //not overriddable Das folgende Beispiel zeigt, wie das Abbrechen einer close-Operation zugelassen werden kann (dabei ist windowObj die NativeWindow-Instanz, die geschlossen werden soll): public function closeCommand():Boolean{ var closeEvent:Event = new Event(Event.CLOSING,true,true); windowObj.dispatchEvent(closeEvent); if(!closeEvent.isDefaultPrevented()){ windowObj.close(); return true; } else { return false; } } Das folgende Beispiel veranschaulicht das Schließen eines Fensters mit einer JavaScript-Routine, die in einem HTMLLoader-Objekt (oder HTML-Stammfenster) ausgeführt wird, wobei das Abbrechen des Vorgangs zulässig ist: <script src="AIRAliases.js" type="text/javascript"></script> <script type="text/javascript"> var dirtyData = false; function closeWindow(){ var closingEvent = new air.Event(air.Event.CLOSING,true,true); window.nativeWindow.dispatchEvent(closingEvent); if(!closingEvent.isDefaultPrevented()){ window.nativeWindow.close(); //or use: window.close(); return true; } else { return false; } } function onClosing(event){ if(dirtyData){ event.preventDefault(); //Save data... } } window.nativeWindow.addEventListener(air.Event.CLOSING,onClosing); </script>
flash.display.NativeWindow.closedflash.html.HTMLLoaderflash.html.HTMLHost
globalToScreen Konvertiert einen Punkt in Pixelkoordinaten relativ zum Ursprung der Fensterbühne (ein globaler Punkt hinsichtlich der Anzeigeliste) in einen Punkt auf dem virtuellen DesktopDer angegebene globale Punkt relativ zum Desktop. flash.geom:PointglobalPointflash.geom:PointDer Punkt auf der Bühne, der in einen Punkt auf dem Bildschirm konvertiert werden soll. Konvertiert einen Punkt in Pixelkoordinaten relativ zum Ursprung der Fensterbühne (ein globaler Punkt hinsichtlich der Anzeigeliste) in einen Punkt auf dem virtuellen Desktop

Virtuelle Desktop-Koordinaten sind relativ zur oberen linken Ecke des primären Monitors.

flash.display.Screen
listOwnedWindows Gibt eine Liste der NativeWindow-Objekte an, die diesem Fenster gehören.ein Vector.<NativeWindow>-Objekt, das null oder mehrere NativeWindow-Objekte enthält, die Eigentum dieser Instanz sind. Gibt eine Liste der NativeWindow-Objekte an, die diesem Fenster gehören.

Sie können den Eigentümer von NativeWindows nicht ändern, indem Sie Objekte zum zurückgegebenen Vektor hinzufügen bzw. daraus entfernen. Das Eigentumsverhältnis eines Fensters kann nach dem Erstellen eines Fensters nicht mehr geändert werden.

flash.display.NativeWindowInitOptions.owner
maximize Maximiert dieses Fenster.Wenn diese Methode nach dem Schließen dieses Fensters aufgerufen wird. IllegalOperationErrorflash.errors:IllegalOperationError Maximiert dieses Fenster.

Ein Aufruf der maximize()-Methode löst ein displayStateChange-Ereignis und ggf. auch ein move- und ein resize-Ereignis aus. Während das Systemchrom ein displayStateChanging-Ereignis ausgelöst wird, das abgebrochen werden kann, wenn der Benutzer einen Maximierungsbefehl initiiert, muss Ihre Maximierungslogik dieses Verhalten, falls erwünscht, erst implementieren.

Die maximize()-Methode wird asynchron ausgeführt. Durch Warten auf das displayStateChange-Ereignis kann festgestellt werden, ob die Statusänderung abgeschlossen wurde. Wenn das Fenster bereits maximiert ist, werden keine Aktionen ausgeführt und keine Ereignisse ausgelöst.

Hinweise zum Verhalten des Betriebssystems:

  • Auf Betriebssystemen, unter denen die Maximierung des Fensters eine Größenänderung nicht verhindert (wie beispielsweise Mac OS X), wird das Fenster beim Aufruf von maximize() auf die volle Bildschirmgröße vergrößert, was jedoch eine anschließende Größenänderung nicht verhindert. Bei der Größenänderung eines vergrößerten Fensters wird auch der Anzeigestatus wiederhergestellt.
  • Auf manchen Betriebssystemen, wie Mac OS X oder manchen Linux-Fenstermanagern, werden Fenster beim Maximieren nicht über die in der maxSize-Eigenschaft angegebenen Breite und Höhe hinaus vergrößert. Auf anderen vergrößern sich Fenster und füllen den ganzen Bildschirm aus, auch wenn er größer ist als die in maxSize angegebene Größe.
  • Bei manchen Linux-Fenstermanagern können Fenster von Dienstprogrammen nicht maximiert werden.
Das folgende Beispiel zeigt, wie das Abbrechen eines Maximierungsvorgangs zugelassen werden kann: public function maximizeWindow(nativeWin:NativeWindow):Boolean{ if(nativeWin.displayState != NativeWindowDisplayState.MAXIMIZED){ var beforeState:String = nativeWin.displayState; var afterState:String = NativeWindowDisplayState.MAXIMIZED; var displayStateEvent:NativeWindowDisplayStateEvent = new NativeWindowDisplayStateEvent(NativeWindowDisplayStateEvent.DISPLAY_STATE_CHANGING, true,true,beforeState,afterState); nativeWin.dispatchEvent(displayStateEvent); if(!displayStateEvent.isDefaultPrevented()){ nativeWin.maximize(); return true; } else { return false; } } return false; } Das folgende Beispiel zeigt, wie das Abbrechen eines maximize-Vorgangs mit einer JavaScript-Routine, die in einem HTMLLoader-Objekt im Fenster (oder einem HTML-Fenster) ausgeführt wird, zugelassen werden kann: function maximizeWindow(nativeWin){ if(nativeWin.displayState != air.NativeWindowDisplayState.MAXIMIZED){ var beforeState = nativeWin.displayState; var afterState = air.NativeWindowDisplayState.MAXIMIZED; var displayStateEvent = new air.NativeWindowDisplayStateEvent(air.NativeWindowDisplayStateEvent.DISPLAY_STATE_CHANGING, true,true,beforeState,afterState); nativeWin.dispatchEvent(displayStateEvent); if(!displayStateEvent.isDefaultPrevented()){ nativeWin.maximize(); return true; } else { return false; } } return false; }
flash.display.NativeWindowDisplayStateflash.events.NativeWindowDisplayStateEvent
minimize Minimiert dieses Fenster.Wenn diese Methode nach dem Schließen dieses Fensters aufgerufen wird. IllegalOperationErrorflash.errors:IllegalOperationError Minimiert dieses Fenster.

Ein Aufruf von minimize() löst ein displayStateChange-Ereignis und ggf. auch ein move- und ein resize-Ereignis aus. Während für das Systemchrom ein displayStateChanging-Ereignis ausgelöst wird, das abgebrochen werden kann, wenn der Benutzer einen Minimierungsbefehl ausgibt, ist dies beim direkten Aufruf von minimize() nicht der Fall. Dieses Verhalten kann in der Minimierungslogik implementiert werden.

Die minimize()-Methode wird asynchron ausgeführt. Durch Warten auf das displayStateChange-Ereignis, das auf allen Plattformen ausgelöst wird, kann festgestellt werden, ob die Statusänderung abgeschlossen wurde. Wenn das Fenster bereits minimiert ist, werden keine Aktionen ausgeführt und keine Ereignisse ausgelöst.

Alle Fenster, die Eigentum dieses Fensters sind, werden ausgeblendet, wenn es minimiert wird. Die untergeordneten Fenster setzen keine displayStateChanging- oder displayStateChange-Ereignisse ab.

Hinweise:

  • Unter Windows wird ein unsichtbares Fenster (visible == false) durch das Minimieren sichtbar.
  • Bei manchen Linux-Fenstermanagern können Fenster von Dienstprogrammen nicht minimiert werden.
Das folgende Beispiel zeigt, wie das Abbrechen eines Aufrufs von minimize() zugelassen werden kann, indem ein DisplayStateChangingEvent-Ereignis ausgelöst wird: public function minimizeWindow(nativeWin:NativeWindow):Boolean{ if(nativeWin.displayState != NativeWindowDisplayState.MINIMIZED){ var beforeState:String = nativeWin.displayState; var afterState:String = NativeWindowDisplayState.MINIMIZED; var displayStateEvent:NativeWindowDisplayStateEvent = new NativeWindowDisplayStateEvent(NativeWindowDisplayStateEvent.DISPLAY_STATE_CHANGING, true,true,beforeState,afterState); nativeWin.dispatchEvent(displayStateEvent); if(!displayStateEvent.isDefaultPrevented()){ nativeWin.minimize(); return true; } else { return false; } } return false; } Das folgende Beispiel zeigt, wie das Abbrechen eines Aufrufs von minimize mit einer JavaScript-Routine, die in einem HTMLLoader-Objekt (oder einem HTML-Fenster) ausgeführt wird, zugelassen werden kann: function minimizeWindow(){ if(window.nativeWindow.displayState != air.NativeWindowDisplayState.MINIMIZED){ var beforeState = window.nativeWindow.displayState; var afterState = air.NativeWindowDisplayState.MINIMIZED; var displayStateEvent = new air.NativeWindowDisplayStateEvent(air.NativeWindowDisplayStateEvent.DISPLAY_STATE_CHANGING, true,true,beforeState,afterState); window.nativeWindow.dispatchEvent(displayStateEvent); if(!displayStateEvent.isDefaultPrevented()){ window.nativeWindow.minimize(); return true; } else { return false; } } return false; }
flash.display.NativeWindowDisplayStateflash.events.NativeWindowDisplayStateEvent
notifyUser Löst über das Betriebssystem einen visuellen Hinweis aus, der anzeigt, dass ein wichtiges Ereignis aufgetreten ist.typeStringEin String, der die Dringlichkeit der Benachrichtigung repräsentiert. Löst über das Betriebssystem einen visuellen Hinweis aus, der anzeigt, dass ein wichtiges Ereignis aufgetreten ist.

Wenn NativeWindow.supportsNotification auf true eingestellt ist, entspricht der visuelle Hinweis den Konventionen des nativen Betriebssystems. Unter Windows blinkt beispielsweise das Symbol in der Taskleiste.

Der type-Parameter bestimmt die Intensität des visuellen Hinweises. Konstanten für die zulässigen Werte sind in der NotificationType-Klasse definiert und können folgendermaßen lauten:

  • NotificationType.INFORMATIONAL
  • NotificationType.CRITICAL

Visuelle Hinweise, die nur zur Information dienen, werden nur kurz angezeigt. Dagegen werden visuelle Hinweise für kritische Benachrichtigungen so lange angezeigt, bis der Benutzer dieses Fenster aktiviert. Nicht alle Linux-Fenstermanager unterstützen zwei Benachrichtigungsebenen: Bei solchen Fenstermanagern hat notifyUser() die gleichen Auswirkungen, egal, welche Option festgelegt ist.

Hinweis: notifyUser() kann zwar aufgerufen werden, wenn NativeWindow.supportsNotification auf false eingestellt ist, hat in diesem Fall jedoch keine Wirkung.

orderInBackOf Stellt dieses Fenster direkt hinter das angegebene Fenster.Hat den Wert true, wenn dieses Fenster erfolgreich in den Hintergrund gesendet wurde; false, wenn dieses Fenster nicht sichtbar oder minimiert ist. Booleanwindowflash.display:NativeWindowEin Anwendungsfenster. Stellt dieses Fenster direkt hinter das angegebene Fenster.

Weder das Fenster noch die Anwendung wird aktiviert oder erhält den Fokus. Minimierte oder ausgeblendete Fenster (visible ist false) können nicht neu angeordnet werden.

Ein Fenster, das einem anderen Fenster gehört, kann nicht hinter seinen Eigentümer verschoben werden. Wenn dieses Fenster einen Eigentümer hat, werden der Eigentümer und seine anderen untergeordneten Fenster ebenfalls hinter dem Ziel eingeordnet. Wenn das Zielfenster einen Eigentümer hat, wird dieses Fenster stattdessen hinter den Eigentümer des Fensters verschoben.

Bei manchen Linux-Fenstermanagern können Fenster von Dienstprogrammen nicht hinter normalen Fenstern angeordnet werden.

Die folgenden Beispiele zeigen, wie ein Fenster mit Verweisen auf die NativeWindow-Instanzen direkt unter ein anderes Fenster verschoben wird: windowBehind.orderInBackOf(windowFront); Mit Verweisen auf Anzeigeobjekte auf den Fensterbühnen: displayObjBehind.stage.nativeWindow.orderInBackOf(displayObjectFront.stage.nativeWindow); Mit einer JavaScript-Routine, die in einem HTMLLoader-Objekt (oder HTML-Stammfenster) ausgeführt wird, unter Verwendung von Verweisen auf zwei JavaScript-Fensterobjekte: jsWindowObjBehind.nativeWindow.orderInBackOf(jsWindowObjFront.nativeWindow);
orderInFrontOf Stellt dieses Fenster direkt vor das angegebene Fenster.Hat den Wert true, wenn dieses Fenster in den Vordergrund gestellt wurde; false, wenn dieses Fenster unsichtbar oder minimiert ist. Booleanwindowflash.display:NativeWindowEin Anwendungsfenster. Stellt dieses Fenster direkt vor das angegebene Fenster.

Weder das Fenster noch die Anwendung wird aktiviert oder erhält den Fokus. Minimierte oder ausgeblendete Fenster (visible ist false) können nicht neu angeordnet werden.

Ein Fenster kann nicht in den Vordergrund eines Fensters, dessen Eigentümer es ist, verschoben werden. Wenn dieses Fenster einen Eigentümer hat, werden der Eigentümer und dessen andere untergeordnete Fenster ebenfalls im Vordergrund dies Ziels angeordnet. Wenn das Zielfenster einen Eigentümer hat, wird dieses Fenster ebenfalls im Vordergrund aller anderen Fenster, die denselben Eigentümer wie das Ziel haben, angeordnet.

Bei manchen Linux-Fenstermanagern können normale Fenster nicht vor Fenstern von Dienstprogrammen angeordnet werden.

Die folgenden Beispiele zeigen, wie ein Fenster mit Verweisen auf die NativeWindow-Instanzen direkt über ein anderes Fenster verschoben wird: windowFront.orderInFrontOf(windowBehind); Mit Verweisen auf Anzeigeobjekte auf den Fensterbühnen: displayObjFront.stage.nativeWindow.orderInFrontOf(displayObjectBehind.stage.nativeWindow); Mit einer JavaScript-Routine, die in einem HTMLLoader-Objekt (oder HTML-Stammfenster) ausgeführt wird, unter Verwendung von Verweisen auf zwei JavaScript-Fensterobjekte: jsWindowObjFront.nativeWindow.orderInFrontOf(jsWindowObjBehind.nativeWindow);
orderToBack Stellt dieses Fenster hinter alle anderen sichtbaren Fenster in den Hintergrund.Hat den Wert true, wenn dieses Fenster erfolgreich in den Hintergrund gesendet wurde; false, wenn dieses Fenster nicht sichtbar oder minimiert ist. Boolean Stellt dieses Fenster hinter alle anderen sichtbaren Fenster in den Hintergrund.

Weder das Fenster noch die Anwendung wird aktiviert oder erhält den Fokus. Minimierte oder ausgeblendete Fenster (visible ist false) können nicht neu angeordnet werden.

Wenn alwaysInFront den Wert true hat, wird dieses Fenster beim Aufruf dieser Methode nicht hinter Fenster gestellt, für die alwaysInFront gleich false gilt.

Ein Fenster, das einem anderen Fenster gehört, kann nicht hinter seinen Eigentümer verschoben werden. Wenn dieses Fenster einen Eigentümer hat, werden der Eigentümer und dessen andere untergeordnete Fenster ebenfalls am unteren Ende der Anzeigeliste angeordnet. Dieses Fenster muss hinter alle anderen Fenster verschoben werden, die Eigentum desselben Fensters sind. Wenn dieses Fenster Eigentümer von anderen Fenstern ist, werden diese Fenster ebenfalls in ihrer aktuellen relativen Reihenfolge zueinander in den Hintergrund verschoben.

Bei manchen Linux-Fenstermanagern können Fenster von Dienstprogrammen nicht hinter normalen Fenstern angeordnet werden.

Das folgende Beispiel zeigt, wie ein Fenster hinter alle anderen Fenster (mit derselben alwaysInFront-Einstellung) in der Anwendung gestellt wird: windowObj.orderToBack(); Mit einem Verweis auf ein Anzeigeobjekt auf der Fensterbühne: displayObj.stage.nativeWindow.orderToBack(); Mit einer JavaScript-Routine, die in einem HTMLLoader-Objekt im Fenster (oder HTML-Stammfenster) ausgeführt wird: window.nativeWindow.orderToBack();
orderToFront Stellt dieses Fenster vor alle anderen sichtbaren Fenster in den Vordergrund.Hat den Wert true, wenn dieses Fenster in den Vordergrund gestellt wurde; false, wenn dieses Fenster unsichtbar oder minimiert ist. Boolean Stellt dieses Fenster vor alle anderen sichtbaren Fenster in den Vordergrund.

Weder das Fenster noch die Anwendung wird aktiviert oder erhält den Fokus. Minimierte oder ausgeblendete Fenster (visible ist false) können nicht neu angeordnet werden.

Wenn alwaysInFront auf false gesetzt ist, wird dieses Fenster beim Aufruf dieser Methode nicht vor Fenster gestellt, für die alwaysInFront gleich true gilt.

Ein Fenster kann nicht in den Vordergrund eines Fensters, dessen Eigentümer es ist, verschoben werden. Wenn dieses Fenster Eigentümer von anderen Fenstern ist, werden diese Fenster ebenfalls in ihrer aktuellen relativen Reihenfolge zueinander in den Vordergrund verschoben. Wenn dieses Fenster einen Eigentümer hat, werden der Eigentümer und dessen andere Fenster ebenfalls im Vordergrund des Fensters angeordnet. Dieses Fenster wird vor andere Fenster verschoben, die denselben Eigentümer haben.

Bei manchen Linux-Fenstermanagern können normale Fenster nicht vor Fenstern von Dienstprogrammen angeordnet werden.

Das folgende Beispiel zeigt, wie ein Fenster vor alle anderen Fenster in der Anwendung (mit derselben alwaysInFront-Einstellung) gestellt wird: windowObj.orderToFront(); Mit einem Verweis auf ein Anzeigeobjekt auf der Fensterbühne: displayObj.stage.nativeWindow.orderToFront(); Mit einer JavaScript-Routine, die in einem HTMLLoader-Objekt im Fenster (oder HTML-Stammfenster) ausgeführt wird: window.nativeWindow.orderToFront();
restore Stellt dieses Fenster von einem minimierten oder maximierten Zustand wieder her.Wenn die Methode nach dem Schließen dieses Fensters aufgerufen wird. IllegalOperationErrorflash.errors:IllegalOperationError Stellt dieses Fenster von einem minimierten oder maximierten Zustand wieder her.

Ein Aufruf von restore() löst ein displayStateChange-Ereignis und ggf. auch ein move- und ein resize-Ereignis aus. Während für das Systemchrom ein displayStateChanging-Ereignis ausgelöst wird, das abgebrochen werden kann, wenn der Benutzer einen Minimierungsbefehl initiiert, muss Ihre Maximierungslogik dieses Verhalten, falls erwünscht, erst implementieren.

Wenn das Fenster sich bereits im Status NativeWindowDisplayState.NORMAL befindet, werden keine Aktionen ausgeführt und keine Ereignisse ausgelöst.

Durch Warten auf das displayStateChange-Ereignis, das auf allen Plattformen ausgelöst wird, kann festgestellt werden, ob die Statusänderung abgeschlossen wurde.

Das folgende Beispiel zeigt, wie das Abbrechen eines Wiederherstellungsvorgangs zugelassen wird: public function restoreWindow(nativeWin:NativeWindow):Boolean{ if(nativeWin.displayState != NativeWindowDisplayState.NORMAL){ var beforeState:String = nativeWin.displayState; var afterState:String = NativeWindowDisplayState.NORMAL; var displayStateChangingEvent:NativeWindowDisplayStateEvent = new NativeWindowDisplayStateEvent(NativeWindowDisplayStateEvent.DISPLAY_STATE_CHANGING, true,true,beforeState,afterState); nativeWin.dispatchEvent(displayStateChangingEvent); if(!displayStateChangingEvent.isDefaultPrevented()){ nativeWin.restore(); return true; } else { return false; } } return false; } Das folgende Beispiel zeigt, wie das Abbrechen eines Wiederherstellungsvorgangs mit einer JavaScript-Routine, die in einem HTMLLoader-Objekt im Fenster (oder einem HTML-Fenster) ausgeführt wird, zugelassen wird: function restoreWindow(nativeWin){ if(window.nativeWindow.displayState != air.NativeWindowDisplayState.NORMAL){ var beforeState = window.nativeWindow.displayState; var afterState = air.NativeWindowDisplayState.NORMAL; var displayStateEvent = new air.NativeWindowDisplayStateEvent(air.NativeWindowDisplayStateEvent.DISPLAY_STATE_CHANGING, true,true,beforeState,afterState); window.nativeWindow.dispatchEvent(displayStateEvent); if(!displayStateEvent.isDefaultPrevented()){ window.nativeWindow.restore(); return true; } else { return false; } } return false; }
flash.display.NativeWindowDisplayStateflash.events.NativeWindowDisplayStateEvent
startMove Startet eine systemgesteuerte Verschiebung dieses Fensters.Wenn die Methode nach dem Schließen dieses Fensters aufgerufen wird. IllegalOperationErrorflash.errors:IllegalOperationErrorHat den Wert true, wenn das Verschieben erfolgreich eingeleitet wurde, und false, wenn das Fenster maximiert ist. Boolean Startet eine systemgesteuerte Verschiebung dieses Fensters.

Beim Aufruf von einem mouseDown-Ereignis startet diese Methode eine mausgesteuerte Verschiebesequenz, die bis zum Auftreten eines mouseUp-Ereignisses fortgesetzt wird.

Beim Aufruf von anderem Code startet diese Methode eine tastatur- oder mausgesteuerte Verschiebesequenz gemäß der Standardsequenz des Betriebssystems.

Bei einer Verschiebesequenz werden mehrere Ereignisse ausgelöst, während der Fensterursprung sich verschiebt. Für jeden Verschiebungsschritt wird zunächst ein moving-Ereignis ausgelöst. Wird dieses moving-Ereignis nicht abgebrochen, wird die Fensterposition aktualisiert und ein move-Ereignis ausgelöst. Wenn das moving-Ereignis abgebrochen wird, wird die Verschiebesequenz umgehend beendet.

Das folgende Beispiel zeigt, wie ein Fenster als Reaktion auf ein mouseDown-Ereignis verschoben wird: var initOpts:NativeWindowInitOptions = new NativeWindowInitOptions(); var win:NativeWindow = new NativeWindow(initOpts); win.activate(); win.stage.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler); function mouseDownHandler(event:MouseEvent):void { win.startMove(); }
startResize Startet eine systemgesteuerte Größenänderung dieses Fensters.Wenn die Methode nach dem Schließen dieses Fensters aufgerufen wird. IllegalOperationErrorflash.errors:IllegalOperationErrorHat den Wert true, wenn die Größenänderung erfolgreich eingeleitet wurde, und false, wenn das Fenster maximiert ist. BooleanedgeOrCornerStringBREine Konstante der NativeWindowResize-Klasse, die angibt, an welcher Kante oder Ecke dieses Fensters die Größe geändert werden soll. Folgende Werte sind gültig:

WertVertical alignmentHorizontal alignmentNativeWindowResize.TOPTopCenterNativeWindowResize.BOTTOMBottomCenterNativeWindowResize.LEFTCenterLeftNativeWindowResize.RIGHTCenterRightNativeWindowResize.TOP_LEFTTopLeftNativeWindowResize.TOP_RIGHTTopRightNativeWindowResize.BOTTOM_LEFTBottomLeftNativeWindowResize.BOTTOM_RIGHTBottomRightNativeWindowResize.NONE----

Startet eine systemgesteuerte Größenänderung dieses Fensters.

Beim Aufruf von einer mouseDown-Ereignisprozedur startet diese Methode eine mausgesteuerte Größenänderungssequenz, die bis zum Auftreten eines mouseUp-Ereignisses fortgesetzt wird.

Beim Aufruf von anderem Code startet diese Methode eine tastatur- oder mausgesteuerte Größenänderungssequenz gemäß der Standardsequenz des Betriebssystems.

Bei der Größenänderungssequenz werden mehrere Ereignisse ausgelöst, während die Fensterabmessungen sich ändern. Für jeden Änderungsschritt wird zunächst ein resizing-Ereignis ausgelöst. Wird dieses resizing-Ereignis nicht abgebrochen, werden die Fensterabmessungen aktualisiert und ein resize-Ereignis wird ausgelöst. Wenn das resizing-Ereignis abgebrochen wird, wird die Sequenz umgehend beendet.

Das folgende Beispiel zeigt, wie ein Fenster als Reaktion auf ein mouseDown-Ereignis verschoben wird: stage.addEventListener(MouseEvent.MOUSE_DOWN, onResizeCommand); function onResizeCommand(event:MouseEvent):void { var win:NativeWindow = event.target.nativeWindow; var resizeFrom:String = ""; if (event.stageY < win.height * .33) { resizeFrom = NativeWindowResize.TOP; } else if (event.stageY > win.height * .66) { resizeFrom = NativeWindowResize.BOTTOM; } if (event.stageX < win.width * .33) { resizeFrom += NativeWindowResize.LEFT; } else if (event.stageX > win.width * .66) { resizeFrom += NativeWindowResize.RIGHT; } win.startResize(resizeFrom); }
flash.display.NativeWindowResize
active Gibt an, ob es sich bei diesem Fenster um das aktive Anwendungsfenster handelt.Boolean Gibt an, ob es sich bei diesem Fenster um das aktive Anwendungsfenster handelt.

Verwenden Sie die activate()-Methode, um ein Fenster zu aktivieren.

flash.display.NativeWindow.activate()flash.desktop.NativeApplication.activate()
alwaysInFront Gibt an, ob dieses Fenster sich stets vor anderen Fenstern befindet (auch vor Fenstern anderer Anwendungen).Boolean Gibt an, ob dieses Fenster sich stets vor anderen Fenstern befindet (auch vor Fenstern anderer Anwendungen).

Die Tiefenanordnung des Systems lässt sich in zwei Fenstergruppen einteilen. Fenster in der Gruppe alwaysInFront werden immer vor allen anderen Fenstern angezeigt. Die Tiefenanordnung der Fenster in derselben Gruppe wird normal bestimmt. Das heißt, dass ein Fenster durch Aktivieren vor die anderen Fenster in seiner Gruppe gestellt wird.

Wird alwaysInFront von false zu true geändert, wird das Fenster vor alle anderen Fenster gestellt. Beim Ändern der Eigenschaft von true zu false wird das Fenster hinter die Fenster gestellt, die auf „alwaysInFront“ eingestellt sind, es befindet sich jedoch immer noch vor allen anderen Fenstern. Wenn die Eigenschaft auf ihren aktuellen Wert eingestellt wird, ändert sich die Tiefenanordnung der Fenster nicht. Das Festlegen der alwaysInFront-Eigenschaft eines Fensters, das einen Eigentümer hat, bleibt ohne Auswirkungen.

Die alwaysInFront-Eigenschaft sollte nur selten auf true gesetzt werden, da Fenster mit dieser Einstellung auch vor den Fenstern anderer Anwendungen angezeigt werden, selbst wenn die andere Anwendung aktiv ist.

Hinweise zum Verhalten des Betriebssystems:

  • Einige Linux-Fenstermanager zeigen keine Fenster an, deren alwaysInFront-Eigenschaft vor Vollbildfenstern auf gesetzt ist.
  • Unter Mac® OS X hat die Einstellung von alwaysInFront auf true keine Wirkung, wenn die displayState-Eigenschaft der Fensterbühne entweder fullScreen oder fullScreenInteractive lautet.
Das folgende Beispiel zeigt, wie erzwungen wird, dass ein Fenster vor allen anderen Fenstern angezeigt wird (bei denen die Anzeige im Vordergrund nicht erzwungen wird): windowObj.alwaysInFront = true; Mit einem Verweis auf ein Anzeigeobjekt auf der Fensterbühne: displayObject.stage.nativeWindow.alwaysInFront=true; Mit einer JavaScript-Routine, die in einem HTMLLoader-Objekt im Fenster (oder HTML-Stammfenster) ausgeführt wird: window.nativeWindow.alwaysInFront = true;
bounds Die Größe und Position dieses Fensters.flash.geom:RectangleWenn das Rechteck null ist oder ungültige Werte enthält. ArgumentErrorArgumentErrorWenn der Zugriff auf die bounds-Eigenschaft erfolgt, nachdem dieses Fenster bereits geschlossen wurde. IllegalOperationErrorflash.errors:IllegalOperationError Die Größe und Position dieses Fensters.

Die Abmessungen eines Fensters umfassen auch ggf. vorhandenes Systemchrom. Die Abmessungen der Fensterbühne entsprechen den Fensterabmessungen abzüglich der Größe des ggf. vorhandenen Systemchroms. Wenn die Breite und die Höhe des Fensters geändert werden, ändern sich auch die Eigenschaften stageWidth und stageHeight der Bühne. Umgekehrt wird bei einer Änderung der Bühnenabmessungen auch die Fenstergröße geändert.

In einem HTML-Stammfenster entsprechen die outerWidth- und outerHeight-Eigenschaften den Fenstereigenschaften height und width. Die Eigenschaften innerWidth und innerHeight entsprechen den Eigenschaften stage.stageWidth und stage.stageHeight abzüglich der Dicke der automatischen Bildlaufleisten, die ggf. im Fenster angezeigt werden.

Ein resize-Ereignis wird immer ausgelöst, wenn sich die Breite oder die Höhe dieses Fensters ändert. Gleichermaßen wird ein move-Ereignis ausgelöst, wenn sich der Ursprung (x,y) dieses Fensters ändert. Unter Mac OS und Windows löst das direkte Setzen der bounds-Eigenschaft kein moving- oder resizing-Ereignis aus. Unter Linux löst das NativeWindow moving- und resizing-Ereignisse aus, wenn Sie die bounds-Eigenschaft setzen.

Das Setzen der bounds-Eigenschaft für ein Fenster entspricht dem Setzen der Eigenschaften x, y, width und height. Ähnlich entspricht das Setzen der einzelnen Abmessungen dem Setzen der bounds-Eigenschaft. Wenn Sie alle Abmessungen unter Verwendung der bounds-Eigenschaft gleichzeitig setzen, werden weniger Ereignisse ausgelöst.

Die Reihenfolge, in der die einzelnen Abmessungswerte gesetzt werden, ist nicht garantiert. Bei Linux-Fenstermanagern, die die Vergrößerung von Fenstern über den Desktopbereich hinaus nicht erlauben, kann die Änderung einer einzelnen Eigenschaft blockiert werden, selbst wenn der Gesamteffekt bei Anwendung aller Eigenschaftenänderungen ein gültiges Fenster ergeben hätte.

Wenn die angegebene Breite bzw. Höhe den erlaubten Mindest- oder Höchstwert unter- bzw. überschreitet, wird die Fensterbreite oder -höhe auf den nächsten zulässigen Wert gesetzt. Folgende Faktoren bestimmen die minimale und maximale Breite bzw. Höhe:

  • Die minSize- und maxSize-Eigenschaft des NativeWindow-Objekts
  • Die Mindest- und Höchstgrenze des Betriebssystems, die den Werten von NativeWindow.systemMinSize und NativeWindow.systemMaxSize entspricht.
  • Die maximale Breite und Höhe eines Fensters in Adobe AIR, die je 4095 Pixel beträgt. (In AIR 1.5 und älter beträgt die maximale Breite und Höhe eines Fensters jeweils 2880 Pixel.)
  • Die minimale Breite und Höhe für ein beliebiges angezeigtes Systemchrom.

Pixelwerte werden auf die nächste Ganzzahl gerundet, wenn die Position oder Größe eines Fensters geändert wird.

Im folgenden Beispiel wird gezeigt, wie die Grenzen eines Fensters mit Verweis auf ein NativeWindow-Objekt gesetzt werden können: windowObj.bounds = new Rectangle(200, 200, 1000, 800); Mit einem Verweis auf ein Anzeigeobjekt auf der Fensterbühne: displayObject.stage.nativeWindow.bounds = new Rectangle(20, 20, 800, 600); Mit einer JavaScript-Routine, die in einem HTMLLoader-Objekt im Fenster (oder HTML-Stammfenster) ausgeführt wird: window.nativeWindow.bounds = new air.Rectangle(20, 20, 800, 600);
flash.display.NativeWindowInitOptions.resizable
closed Gibt an, ob dieses Fenster geschlossen wurde.Boolean Gibt an, ob dieses Fenster geschlossen wurde.

Beim Zugriff auf die folgenden Eigenschaften für ein geschlossenes Fenster wird ein Fehler aufgrund eines ungültigen Vorgangs ausgegeben:

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

Gleichermaßen wird beim Aufrufen der folgenden Methoden für ein geschlossenes Fenster ein Fehler aufgrund eines ungültigen Vorgangs ausgegeben:

  • minimize()
  • maximize()
  • restore()
  • startResize()
  • startMove()
Im folgenden Beispiel wird gezeigt, wie auf die closed-Eigenschaft eines Fensters zugegriffen wird: var isWindowClosed:Boolean = windowObj.closed; Mit einem Verweis auf ein Anzeigeobjekt auf der Fensterbühne: var isWindowClosed:Boolean = displayObject.stage.nativeWindow.closed; Mit einer JavaScript-Routine, die in einem HTMLLoader-Objekt im Fenster (oder HTML-Stammfenster) ausgeführt wird: var isWindowClosed = window.nativeWindow.closed;
displayState Der Anzeigestatus dieses Fensters.StringWenn der Zugriff auf die displayState-Eigenschaft erfolgt, nachdem dieses Fenster bereits geschlossen wurde. IllegalOperationErrorflash.errors:IllegalOperationError Der Anzeigestatus dieses Fensters.

Konstanten für die möglichen Werte sind in der NativeWindowDisplayState-Klasse definiert:

  • NativeWindowDisplayState.NORMAL
  • NativeWindowDisplayState.MINIMIZED
  • NativeWindowDisplayState.MAXIMIZED
Das folgende Beispiel zeigt, wie der aktuelle Anzeigestatus des Fensters mit einem Verweis auf das Fensterobjekt abgerufen werden kann: var state:String = windowObj.displayState;
flash.display.NativeWindowDisplayState
height Die Höhe dieses Fensters in Pixel.NumberWenn der eingestellte Wert null oder ungültig ist. ArgumentErrorArgumentErrorWenn der Zugriff auf die Eigenschaft erfolgt, nachdem dieses Fenster bereits geschlossen wurde. IllegalOperationErrorflash.errors:IllegalOperationError Die Höhe dieses Fensters in Pixel.

Die Abmessungen eines Fensters umfassen auch ggf. angezeigtes Systemfensterchrom. Die Höhe des nutzbaren Anzeigebereichs innerhalb eines Fensters ist über die Stage.stageHeight-Eigenschaft verfügbar.

Das Ändern der height-Eigenschaft eines Fensters entspricht dem Ändern der Höhe über die bounds-Eigenschaft.

Wenn die angegebene Höhe den erlaubten Mindest- oder Höchstwert unter- bzw überschreitet, wird die Fensterhöhe auf den nächsten zulässigen Wert gesetzt. Folgende Faktoren bestimmen die minimale und maximale Höhe:

  • Die minSize.x- und maxSize.x-Eigenschaft des NativeWindow-Objekts
  • Die Mindest- und Höchstgrenze des Betriebssystems, die den Werten von NativeWindow.systemMinSize und NativeWindow.systemMaxSize entspricht.
  • Die maximale Höhe eines Fensters in Adobe AIR, 4095 Pixel (in AIR 1.5 und älter 2880 Pixel).

Unter Linux ist das Setzen der height-Eigenschaft ein asynchroner Vorgang.

Durch Warten auf das resize-Ereignis, das auf allen Plattformen ausgelöst wird, kann festgestellt werden, ob die Höhenänderung abgeschlossen wurde.

Pixelwerte werden auf die nächste Ganzzahl gerundet, wenn die Höhe eines Fensters geändert wird.

flash.display.NativeWindow.boundsflash.display.Stage.stageHeight
isSupported Gibt an, ob das Clientsystem native Fenster unterstützt.Boolean Gibt an, ob das Clientsystem native Fenster unterstützt. maxSize Die maximale Größe dieses Fensters.flash.geom:PointWenn die zugewiesene Größe nicht den minimalen und maximalen Werten für die Fenstergröße des Betriebssystems entspricht. IllegalOperationErrorflash.errors:IllegalOperationErrorWenn „size“ für die aktuellen Berechtigungen des Inhalts nicht zulässig ist. SecurityErrorSecurityErrorWenn die Größe null ist oder ungültige Werte enthält. ArgumentErrorArgumentErrorWenn der Zugriff auf die maxSize-Eigenschaft erfolgt, nachdem dieses Fenster bereits geschlossen wurde. IllegalOperationErrorflash.errors:IllegalOperationError Die maximale Größe dieses Fensters.

Der Größengrenzwert wird über die Koordinaten eines Point-Objekts festgelegt. Die x-Eigenschaft des Punkts entspricht der Fensterbreite, und die y-Eigenschaft der Fensterhöhe.

Die maxSize-Einschränkung wird für Änderungsvorgänge der Fenstergröße erzwungen, die über ActionScript --Code und über das Betriebssystem aufgerufen werden.

Beim Einstellen von maxSize werden die Fenstergrenzen geändert, wenn die aktuellen Begrenzungen größer als die neue Maximalgröße sind.

Wenn die angegebene Breite bzw. Höhe den erlaubten Höchstwert überschreitet, wird die Fensterbreite auf den nächsten zulässigen Wert gesetzt. Folgende Faktoren bestimmen die minimale und maximale Breite bzw. Höhe:

  • Der maximal zulässige Wert des Betriebssystems, also der NativeWindow.systemMaxSize-Wert.
  • Die maximale Breite und Höhe eines Fensters in Adobe AIR, die je 4095 Pixel beträgt. (In AIR 1.5 und älter beträgt die maximale Breite und Höhe eines Fensters jeweils 2880 Pixel.)

Hinweis: Unter manchen Betriebssystemen, beispielsweise Mac OS X, werden Fenster beim Vergrößern nur auf den maxSize-Wert maximiert, selbst wenn das maximierte Fenster kleiner ist als das Betriebssystemfenster. Das Fenster befindet sich dennoch im maximierten Anzeigestatus.

Das folgende Beispiel zeigt, wie die maximal zulässige Größe für ein Fenster festgelegt wird. windowObj.maxSize = new Point(1040,920); Mit einem Verweis auf ein Anzeigeobjekt auf der Fensterbühne: displayObject.stage.nativeWindow.maxSize = new Point(800,600); Mit einer JavaScript-Routine, die in einem HTMLLoader-Objekt im Fenster (oder HTML-Stammfenster) ausgeführt wird: window.nativeWindow.maxSize = new air.Point(960,960);
flash.display.NativeWindow.systemMinSizeflash.display.NativeWindow.systemMaxSize
maximizable Gibt die maximizable-Einstellung an, mit der dieses Fenster erstellt wurde.BooleanBeim Versuch, die Eigenschaft ohne entsprechende Berechtigung auf false einzustellen. SecurityErrorSecurityErrorWenn der Zugriff auf die Eigenschaft erfolgt, nachdem dieses Fenster bereits geschlossen wurde. IllegalOperationErrorflash.errors:IllegalOperationError Gibt die maximizable-Einstellung an, mit der dieses Fenster erstellt wurde.

Die maximizable-Einstellung kann nach der Erstellung des Fensters nicht mehr geändert werden.

Hinweis: Einige Linux-Fenstermanager lassen das Maximieren von Fenstern durch den Benutzer zu, selbst wenn die maximizable-Eigenschaft den Wert false aufweist.

flash.display.NativeWindowInitOptions.maximizable
menu Das native Menü für dieses Fenster.flash.display:NativeMenu Das native Menü für dieses Fenster.

Wenn der menu-Eigenschaft des Fensters ein NativeMenu-Objekt zugewiesen ist, wird ein natives Menü für das Fenster angezeigt, wenn NativeWindow.supportsMenu auf true eingestellt ist, es sei denn, die systemChrome-Eigenschaft des Fensters lautet NativeWindowSystemChrome.NONE.

Hinweis: Wenn NativeWindow.supportsMenu auf false eingestellt ist oder wenn die systemChrome-Eigenschaft des Fensters NativeWindowSystemChrome.NONE lautet, darf einem Fenster zwar ein Menü zugewiesen werden, dies hat jedoch keine Wirkung. Sie sollten die NativeWindow.supportsMenu-Eigenschaft verwenden, um festzulegen, ob das Betriebssystem Fenstermenüs unterstützt. Die Verwendung anderer Vorgehensweisen (z. B. Capabilities.os) zur Festlegung der Unterstützung kann zu Programmierfehlern führen (beispielsweise dann, wenn mögliche Zielbetriebssysteme nicht berücksichtigt werden).

flash.display.NativeWindow.supportsMenu
minSize Die Mindestgröße dieses Fensters.flash.geom:PointWenn die zugewiesene Größe nicht innerhalb der minimalen und maximalen Betriebssystemwerte für die Fenstergröße liegt. IllegalOperationErrorflash.errors:IllegalOperationErrorWenn „size“ für die aktuellen Berechtigungen des Inhalts nicht zulässig ist. SecurityErrorSecurityErrorWenn die Größe null ist oder ungültige Werte enthält. ArgumentErrorArgumentErrorWenn der Zugriff auf die minSize-Eigenschaft erfolgt, nachdem dieses Fenster bereits geschlossen wurde. IllegalOperationErrorflash.errors:IllegalOperationError Die Mindestgröße dieses Fensters.

Der Größengrenzwert wird über die Koordinaten eines Point-Objekts festgelegt. Die x-Eigenschaft des Punkts entspricht der Fensterbreite, und die y-Eigenschaft der Fensterhöhe.

Beim Einstellen von minSize werden die Fenstergrenzen geändert, wenn die aktuellen Begrenzungen kleiner als die neue Mindestgröße sind.

Die minSize-Einschränkung wird für Änderungsvorgänge der Fenstergröße erzwungen, die über ActionScript --Code und über das Betriebssystem aufgerufen werden.

Hinweis: Die Breite und Höhe von ggf. angezeigtem Systemchrom können möglicherweise dazu führen, dass ein Fenster nicht auf die angegebene minimale Größe eingestellt werden kann.

Das folgende Beispiel zeigt, wie die minimal zulässige Größe für ein Fenster festgelegt wird: windowObj.minSize = new Point(200,80); Mit einem Verweis auf ein Anzeigeobjekt auf der Fensterbühne: displayObject.stage.nativeWindow.minSize = new Point(120,60); Mit einer JavaScript-Routine, die in einem HTMLLoader-Objekt im Fenster (oder HTML-Stammfenster) ausgeführt wird: window.nativeWindow.minSize = new air.Point(80,60);
flash.display.NativeWindow.systemMinSizeflash.display.NativeWindow.systemMaxSize
minimizable Gibt die minimizable-Einstellung an, mit der dieses Fenster erstellt wurde.BooleanBeim Versuch, die Eigenschaft ohne entsprechende Berechtigung auf false einzustellen. SecurityErrorSecurityErrorWenn der Zugriff auf die Eigenschaft erfolgt, nachdem dieses Fenster bereits geschlossen wurde. IllegalOperationErrorflash.errors:IllegalOperationError Gibt die minimizable-Einstellung an, mit der dieses Fenster erstellt wurde.

Die minimizable-Einstellung kann nach der Erstellung des Fensters nicht mehr geändert werden.

Hinweis: Einige Linux-Fenstermanager lassen das Minimieren von Fenstern durch den Benutzer zu, selbst wenn die minimizable-Eigenschaft den Wert false aufweist.

flash.display.NativeWindowInitOptions.minimizable
owner Das NativeWindow-Objekt, das Eigentümer dieses Fensters ist.flash.display:NativeWindow Das NativeWindow-Objekt, das Eigentümer dieses Fensters ist.

Der Eigentümer eines Fensters wird beim Erstellen des Fensters festgelegt und kann nicht geändert werden. Um ein Fenster zu erstellen, das einen Eigentümer hat, legen Sie das NativeWindow-Objekt, das der Eigentümer ist, als owner-Eigenschaft des NativeWindowInitOptions-Objekts fest, das zum Erstellen des untergeordneten Fensters verwendet wird.

Hinweis: Unter Linux zeigen einige Fenstermanager keine untergeordneten Fenster (Eigentum) im Vordergrund des Eigentümerfensters an, wenn dieses im Vollbildmodus angezeigt wird.

flash.display.NativeWindowInitOptions.owner
resizable Gibt die resizable-Einstellung an, mit der dieses Fenster erstellt wurde.BooleanBeim Versuch, die Eigenschaft ohne entsprechende Berechtigung auf false einzustellen. SecurityErrorSecurityErrorWenn der Zugriff auf die Eigenschaft erfolgt, nachdem dieses Fenster bereits geschlossen wurde. IllegalOperationErrorflash.errors:IllegalOperationError Gibt die resizable-Einstellung an, mit der dieses Fenster erstellt wurde.

Die resizable-Einstellung kann nach der Erstellung des Fensters nicht mehr geändert werden.

flash.display.NativeWindowInitOptions.resizable
stage Das Stage-Objekt für dieses Fenster.flash.display:Stage Das Stage-Objekt für dieses Fenster. Das Stage-Objekt ist das Stammobjekt in der Anzeigelistenarchitektur, die in ActionScript 3.0-basiertem SWF-Inhalt verwendet wird.

Die Bühne bildet den Stamm der Anzeigeliste für das Fenster. Visuelle Anzeigeobjekte können einem Fenster hinzugefügt werden, indem sie der Bühne hinzugefügt werden oder einem anderen Objekt, das sich bereits in der Anzeigeliste dieser Bühne befindet. Die Bühnenabmessungen entsprechen denen des Fensterclientbereichs, wenn Systemchrom für das Fenster verwendet wird. Die Bühnenabmessungen sind mit denen des Fensters identisch, wenn kein Systemchrom verwendet wird.

Das folgende Beispiel zeigt, wie Bühneneigenschaften für eine NativeWindow-Instanz festgelegt werden: import flash.display.StageAlign; windowObj.stage.align = StageAlign.TOP_LEFT;
flash.display.Stage
supportsMenu Gibt an, ob AIR native Fenstermenüs auf dem aktuellen Computersystem unterstützt.Boolean Gibt an, ob AIR native Fenstermenüs auf dem aktuellen Computersystem unterstützt.

Wenn NativeWindow.supportsMenu auf true eingestellt ist, wird ein natives Menü für ein Fenster angezeigt, wenn der menu-Eigenschaft des Fensters ein NativeMenu-Objekt zugewiesen ist, es sei denn, die systemChrome-Eigenschaft des Fensters ist auf NativeWindowSystemChrome.NONE eingestellt). Sie sollten die NativeWindow.supportsMenu-Eigenschaft verwenden, um festzulegen, ob das Betriebssystem native Fenstermenüs unterstützt. Die Verwendung anderer Vorgehensweisen (z. B. Capabilities.os) zur Festlegung der Unterstützung kann zu Programmierfehlern führen (beispielsweise dann, wenn mögliche Zielbetriebssysteme nicht berücksichtigt werden).

Hinweis: Wenn NativeWindow.supportsMenu auf false eingestellt ist oder wenn die systemChrome-Eigenschaft des Fensters NativeWindowSystemChrome.NONE lautet, darf einem Fenster zwar ein Menü zugewiesen werden, dies hat jedoch keine Wirkung.

flash.display.NativeMenuflash.desktop.NativeApplication.supportsMenu
supportsNotification Gibt an, ob AIR Fensterbenachrichtigungshinweise auf dem aktuellen Computersystem unterstützt.Boolean Gibt an, ob AIR Fensterbenachrichtigungshinweise auf dem aktuellen Computersystem unterstützt.

Wenn NativeWindow.supportsNotification auf true eingestellt ist, bewirkt ein Aufruf der notifyUser()-Methode des Fensters, dass der Benutzer in einem visuellen Hinweis auf ein wichtiges Ereignis aufmerksam gemacht wird. Der visuelle Hinweis entspricht den Konventionen des nativen Betriebssystems. So blinkt unter Windows® beispielsweise das Taskleistensymbol auf.

Hinweis: notifyUser() kann zwar aufgerufen werden, wenn NativeWindow.supportsNotification auf false eingestellt ist, hat in diesem Fall jedoch keine Wirkung.

flash.display.NativeWindow.notifyUser()
supportsTransparency Gibt an, ob AIR native Fenster mit transparenten Pixeln unterstützt.Boolean Gibt an, ob AIR native Fenster mit transparenten Pixeln unterstützt.

Wenn NativeWindow.supportsTransparency auf true gesetzt ist, wird Pixeltransparenz befolgt, sofern die transparent-Eigenschaft auf true gesetzt ist. Die Deckkraft aller Pixel wird auf 1 gesetzt, wenn NativeWindow.supportsTransparency auf false gesetzt ist, unabhängig vom Wert der transparent-Eigenschaft des Fensters. Voll transparente Pixel werden schwarz dargestellt, wenn NativeWindow.supportsTransparency auf false gesetzt ist. Sie sollten die NativeWindow.supportsTransparency-Eigenschaft verwenden, um festzulegen, ob das Betriebssystem Transparenz unterstützt. Die Verwendung anderer Vorgehensweisen (z. B. Capabilities.os) zur Festlegung der Unterstützung kann zu Programmierfehlern führen (beispielsweise dann, wenn mögliche Zielbetriebssysteme nicht berücksichtigt werden).

Hinweis: Der Wert dieser Eigenschaft kann sich aufgrund von Benutzereinstellungen für das Betriebssystem ändern, während die Anwendung ausgeführt wird.

flash.display.NativeWindow.transparent
systemChrome Gibt die Systemchromeinstellung an, mit der dieses Fenster erstellt wurde.StringBeim Versuch, die Eigenschaft ohne entsprechende Berechtigung auf false einzustellen. SecurityErrorSecurityErrorWenn der Zugriff auf die Eigenschaft erfolgt, nachdem dieses Fenster bereits geschlossen wurde. IllegalOperationErrorflash.errors:IllegalOperationError Gibt die Systemchromeinstellung an, mit der dieses Fenster erstellt wurde.

Bei den von NativeWindow.systemChrome zurückgegebenen Werten handelt es sich um eine der Konstanten, die in der NativeWindowSystemChrome-Klasse definiert sind.

Die Systemchromeinstellung kann nach der Erstellung des Fensters nicht mehr geändert werden.

Im folgenden Beispiel wird gezeigt, wie Sie den Systemchromtyp für ein Fenster erhalten: var sysChromeType:String = windowObj.systemChrome; Mit einem Verweis auf ein Anzeigeobjekt auf der Fensterbühne: var sysChromeType:String = displayObject.stage.nativeWindow.systemChrome; Mit einer JavaScript-Routine, die in einem HTMLLoader-Objekt im Fenster (oder HTML-Stammfenster) ausgeführt wird: var sysChromeType = window.nativeWindow.systemChrome; Das folgende Beispiel zeigt, wie Sie die angezeigten Systemchrom- und Transparenzeinstellungen ändern, indem Sie ein neues Fenster erstellen und alle untergeordneten Anzeigeobjekte in das neue Fenster verschieben: import flash.display.NativeWindow; import flash.display.NativeWindowSystemChrome; import flash.display.NativeWindowInitOptions; public function deChromeWindow(oldWindow:NativeWindow):NativeWindow{ if(oldWindow.systemChrome != NativeWindowSystemChrome.NONE){ var newOptions:NativeWindowInitOptions = new NativeWindowInitOptions(); newOptions.systemChrome = NativeWindowSystemChrome.NONE; newOptions.transparent = true; var newWindow:NativeWindow = new NativeWindow(newOptions); newWindow.stage.stageWidth = oldWindow.stage.stageWidth; newWindow.stage.stageHeight = oldWindow.stage.stageHeight; newWindow.stage.align = oldWindow.stage.align; newWindow.stage.scaleMode = oldWindow.stage.scaleMode; for(var i:int = 0; i < oldWindow.stage.numChildren; i++){ newWindow.stage.addChild(oldWindow.stage.getChildAt(i)); } newWindow.activate(); oldWindow.close(); return newWindow; } return oldWindow; }
flash.display.NativeWindowSystemChromeflash.display.NativeWindowInitOptions.systemChrome
systemMaxSize Die größte Fenstergröße, die unter dem Betriebssystem zulässig ist.flash.geom:Point Die größte Fenstergröße, die unter dem Betriebssystem zulässig ist.

Der Größengrenzwert wird über die Koordinaten eines Point-Objekts festgelegt. Die x-Eigenschaft des Punkts entspricht der Fensterbreite, und die y-Eigenschaft der Fensterhöhe.

Neben den Größenbeschränkungen des Betriebssystems gilt in AIR eine maximale Fenstergröße von 4095 mal 4095 Pixel (2880 Pixel mal 2880 Pixel in AIR 1.5 und älter). Des Weiteren kann eine Anwendung mithilfe der maxSize-Eigenschaft des NativeWindow-Objekts einen Grenzwert setzen.

systemMinSize Die kleinste Fenstergröße, die unter dem Betriebssystem zulässig ist.flash.geom:Point Die kleinste Fenstergröße, die unter dem Betriebssystem zulässig ist.

Der Größengrenzwert wird über die Koordinaten eines Point-Objekts festgelegt. Die x-Eigenschaft des Punkts entspricht der Fensterbreite, und die y-Eigenschaft der Fensterhöhe.

title Der Fenstertitel.StringWenn der Zugriff auf die Eigenschaft erfolgt, nachdem dieses Fenster bereits geschlossen wurde. IllegalOperationErrorflash.errors:IllegalOperationError Der Fenstertitel.

Der Titel wird im Systemchrom des Fensters eingeblendet, sofern angezeigt, sowie in anderen systemabhängigen Orten (beispielsweise in der Taskleiste).

Das folgende Beispiel zeigt, wie der Titel eines Fensterobjekts eingestellt wird: windowObj.title = "Window Title";
transparent Gibt die Transparenzeinstellung an, mit der dieses Fenster erstellt wurde.BooleanBeim Versuch, die Eigenschaft ohne entsprechende Berechtigung auf false einzustellen. SecurityErrorSecurityErrorWenn der Zugriff auf die Eigenschaft erfolgt, nachdem dieses Fenster bereits geschlossen wurde. IllegalOperationErrorflash.errors:IllegalOperationError Gibt die Transparenzeinstellung an, mit der dieses Fenster erstellt wurde.

Die transparent-Eigenschaft kann nach der Erstellung des Fensters nicht mehr geändert werden. Die Transparenz wirkt sich sowohl auf die visuelle Darstellung als auch auf das Mausverhalten des Fensters aus. Unter Windows und Max OS X kann ein Fenster Mausereignisse nicht wahrnehmen, wenn der Alphawert der Pixel unter einer bestimmten Grenze liegt. Diese Grenze liegt je nach Betriebssystem ungefähr zwischen ,06 und ,01. Unter Linux nimmt das Fenster Mausereignisse oberhalb volltransparenter Bereiche wahr und hindert Benutzer dadurch daran, auf andere Fenster und Elemente auf dem Desktop zuzugreifen.

Hinweis: Die Fenstertransparenz kann nicht in allen Fällen unterstützt werden. Ist aufgrund der Betriebssystemkonfiguration des Benutzers die Transparenz nicht verfügbar, so wird das Fenster ohne Transparenz erstellt. Bereiche, die transparent hätten sein sollen, werden mit Schwarz zusammengesetzt. Verwenden Sie die NativeWindow.supportsTransparency-Eigenschaft um festzulegen, ob die Fenstertransparenz unterstützt wird.

flash.display.NativeWindowInitOptions.transparent
type Gibt die Fenstertypeinstellung an, mit der dieses Fenster erstellt wurde.StringBeim Versuch, die Eigenschaft ohne entsprechende Berechtigung auf false einzustellen. SecurityErrorSecurityErrorWenn der Zugriff auf die Eigenschaft erfolgt, nachdem dieses Fenster bereits geschlossen wurde. IllegalOperationErrorflash.errors:IllegalOperationError Gibt die type-Einstellung an, mit der dieses Fenster erstellt wurde.

Bei den von NativeWindow.type zurückgegebenen Werten handelt es sich um eine der Konstanten, die in der NativeWindowType-Klasse definiert sind.

Die type-Einstellung kann nach der Erstellung des Fensters nicht mehr geändert werden.

flash.display.NativeWindowTypeflash.display.NativeWindowInitOptions.type
visible Gibt an, ob dieses Fenster sichtbar ist.BooleanBeim Versuch, die Eigenschaft ohne entsprechende Berechtigung auf false einzustellen. SecurityErrorSecurityErrorWenn der Zugriff auf die Eigenschaft erfolgt, nachdem dieses Fenster bereits geschlossen wurde. IllegalOperationErrorflash.errors:IllegalOperationError Gibt an, ob dieses Fenster sichtbar ist.

Ein unsichtbares Fenster wird nicht auf dem Desktop angezeigt, aber alle Eigenschaften und Methoden des Fensters sind gültig.

Standardmäßig ist visible auf false eingestellt. Um ein Fenster anzuzeigen, stellen Sie visible auf true ein oder rufen Sie NativeWindow.activate() auf.

Wenn dieses Fenster einen Eigentümer hat, bestimmt der Sichtbarkeitsstatus des Eigentümerfensters, ob dieses Fenster angezeigt wird. Wenn das Eigentümerfenster nicht angezeigt wird, werden die Fenster, die es besitzt, nicht angezeigt, selbst wenn ihre visible-Eigenschaften auf true gesetzt sind.

Hinweis: Unter Mac OS X hat die Einstellung visible=false für ein minimiertes Fenster nicht zur Folge, dass das Fenstersymbol aus dem Dock entfernt wird. Wenn der Benutzer anschließend auf das Symbol im Dock klickt, kehrt das Fenster zum visible-Status zurück und wird auf dem Desktop angezeigt.

In den folgenden Beispielen wird gezeigt, wie auf die visible-Eigenschaft eines Fensters zugegriffen wird: windowObj.visible = true; Mit einem Verweis auf ein Anzeigeobjekt auf der Fensterbühne: displayObj.stage.nativeWindow.visible = true; Mit einer JavaScript-Routine, die in einem HTMLLoader-Objekt im Fenster (oder HTML-Stammfenster) ausgeführt wird: window.nativeWindow.visible = true;
activate()
width Die Breite dieses Fensters in Pixel.NumberWenn der eingestellte Wert null oder ungültig ist. ArgumentErrorArgumentErrorWenn der Zugriff auf die Eigenschaft erfolgt, nachdem dieses Fenster bereits geschlossen wurde. IllegalOperationErrorflash.errors:IllegalOperationError Die Breite dieses Fensters in Pixel.

Die für ein natives Fenster protokollierten Abmessungen umfassen alle angezeigten Systemfensterchrome. Die Breite des nutzbaren Anzeigebereichs innerhalb eines Fensters ist über die Stage.stageWidth-Eigenschaft verfügbar.

Das Ändern der width-Eigenschaft eines Fensters entspricht dem Ändern der Breite über die bounds-Eigenschaft.

Wenn die angegebene Breite den erlaubten Mindest- oder Höchstwert unter- bzw überschreitet, wird die Fensterbreite auf den nächsten zulässigen Wert gesetzt. Folgende Faktoren bestimmen die minimale und maximale Breite:

  • Die minSize.y- und maxSize.y-Eigenschaft des NativeWindow-Objekts
  • Die Mindest- und Höchstgrenze des Betriebssystems, die den Werten von NativeWindow.systemMinSize.y und NativeWindow.systemMaxSize.y entspricht.
  • Die maximale Breite eines Fensters in Adobe AIR, 4095 Pixel (in AIR 1.5 und älter 2880 Pixel).

Unter Linux ist das Setzen der width-Eigenschaft ein asynchroner Vorgang.

Durch Warten auf das resize-Ereignis, das auf allen Plattformen ausgelöst wird, kann festgestellt werden, ob die Höhenänderung abgeschlossen wurde.

Pixelwerte werden auf die nächste Ganzzahl gerundet, wenn die Breite eines Fensters geändert wird.

flash.display.NativeWindow.boundsflash.display.Stage.stageWidth
x Die horizontale Achsenkoordinate der linken oberen Ecke dieses Fensters relativ zur linken oberen Ecke des Betriebssystemdesktops.NumberWenn der eingestellte Wert null oder ungültig ist. ArgumentErrorArgumentErrorWenn der Zugriff auf die Eigenschaft erfolgt, nachdem dieses Fenster bereits geschlossen wurde. IllegalOperationErrorflash.errors:IllegalOperationError Die horizontale Achsenkoordinate der linken oberen Ecke dieses Fensters relativ zur linken oberen Ecke des Betriebssystemdesktops.

Auf Systemen mit mehreren Monitoren kann x negativ sein. Wenn Sie den Wert speichern, etwa um ein Fenster wieder an seiner vorherigen Position zu platzieren, sollten Sie sicherstellen, dass die wiederhergestellte Position brauchbar ist. Änderungen der Bildschirmauflösung oder Monitoranordnung können dazu führen, dass ein Fenster außerhalb des Bildschirms platziert wird. Verwenden Sie die Screen-Klasse, um Informationen über die Desktopgeometrie zu erhalten.

Das Ändern der x-Eigenschaft eines Fensters entspricht dem Ändern der Position über die bounds-Eigenschaft.

Unter Linux ist das Setzen der x-Eigenschaft ein asynchroner Vorgang.

Durch Warten auf das move-Ereignis, das auf allen Plattformen ausgelöst wird, kann die Fertigstellung der Positionsänderung entdeckt werden.

Pixelwerte werden auf die nächste Ganzzahl gerundet, wenn die x-Koordinate eines Fensters geändert wird.

flash.display.NativeWindow.boundsflash.display.Screen
y Die vertikale Achsenkoordinate der oberen linken Ecke dieses Fensters relativ zur oberen linken Ecke des Betriebssystem-Desktops.NumberWenn der eingestellte Wert null oder ungültig ist. ArgumentErrorArgumentErrorWenn der Zugriff auf die Eigenschaft erfolgt, nachdem dieses Fenster bereits geschlossen wurde. IllegalOperationErrorflash.errors:IllegalOperationError Die vertikale Achsenkoordinate der oberen linken Ecke dieses Fensters relativ zur oberen linken Ecke des Betriebssystem-Desktops.

Auf Systemen mit mehreren Monitoren kann y negativ sein. Wenn Sie den Wert speichern, etwa um ein Fenster wieder an seiner vorherigen Position zu platzieren, sollten Sie sicherstellen, dass die wiederhergestellte Position brauchbar ist. Änderungen der Bildschirmauflösung oder Monitoranordnung können dazu führen, dass ein Fenster außerhalb des Bildschirms platziert wird. Verwenden Sie die Screen-Klasse, um Informationen über die Desktopgeometrie zu erhalten.

Das Ändern der y-Eigenschaft eines Fensters entspricht dem Ändern der Position über die bounds-Eigenschaft.

Unter Linux ist das Setzen der y-Eigenschaft ein asynchroner Vorgang.

Durch Warten auf das move-Ereignis, das auf allen Plattformen ausgelöst wird, kann die Fertigstellung der Positionsänderung entdeckt werden.

Pixelwerte werden auf die nächste Ganzzahl gerundet, wenn die y-Koordinate eines Fensters geändert wird.

flash.display.NativeWindow.boundsflash.display.Screen
Stage Die Stage-Klasse repräsentiert den Hauptzeichenbereich.flash.display:DisplayObjectContainer Die Stage-Klasse repräsentiert den Hauptzeichenbereich.

Für SWF-Inhalt, der im Browser angezeigt wird (in Flash® Player), repräsentiert die Bühne den gesamten Bereich, in dem der Inhalt angezeigt wird. Für Inhalt, der in AIR unter Desktopbetriebssystemen ausgeführt wird, hat jedes NativeWindow-Objekt ein zugehöriges Stage-Objekt.

Das Stage-Objekt ist nicht global zugänglich. Sie müssen über die stage-Eigenschaft einer DisplayObject-Instanz darauf zugreifen.

Die Stage-Klasse besitzt mehrere übergeordneten Klassen (DisplayObjectContainer, InteractiveObject, DisplayObject und EventDispatcher), von denen sie Eigenschaften und Methoden übernimmt. Viele dieser Eigenschaften und Methoden lassen sich entweder gar nicht auf Stage-Objekte anwenden oder erfordern eine Sicherheitsüberprüfung, wenn sie für ein Stage-Objekt aufgerufen werden. Die Eigenschaften und Methoden, die eine Sicherheitsüberprüfung benötigen, sind als Teil der Stage-Klasse dokumentiert.

Darüber hinaus sind die folgenden geerbten Eigenschaften auf Stage-Objekte nicht anwendbar. Wenn Sie versuchen, diese Eigenschaften zu setzen, wird ein Fehler vom Typ „IllegalOperationError“ ausgelöst. Diese Eigenschaften werden zwar immer gelesen, doch da sie nicht gesetzt werden können, enthalten sie stets die Standardwerte.

  • accessibilityProperties
  • alpha
  • blendMode
  • cacheAsBitmap
  • contextMenu
  • filters
  • focusRect
  • loaderInfo
  • mask
  • mouseEnabled
  • name
  • opaqueBackground
  • rotation
  • scale9Grid
  • scaleX
  • scaleY
  • scrollRect
  • tabEnabled
  • tabIndex
  • transform
  • visible
  • x
  • y

Manche Ereignisse, von denen Sie erwarten würden, dass Sie zur Stage-Klasse gehören, z. B. enterFrame, exitFrame, frameConstructed und render, können keine Stage-Ereignisse sein, da in den Situationen, in denen sie verwendet werden, keine Verweis auf das Stage-Objekt garantiert werden kann. Da diese Ereignisse nicht vom Stage-Objekt ausgelöst werden können, werden sie stattdessen von jeder DisplayObject-Instanz ausgelöst. Das bedeutet, dass Sie jeder beliebigen DisplayObjekt-Instanz einen Ereignis-Listener hinzufügen können, der auf die Ereignisse wartet. Diese Ereignisse, die zur DisplayObject-Klasse gehören, werden broadcast-Ereignisse genannt, um sie von Ereignissen zu unterscheiden, die bei einer spezifischen DisplayObject-Instanz vorkommen. Zwei andere broadcast-Ereignisse, activate und deactivate, gehören zu EventDispatcher, der Superklasse von DisplayObject. Die activate- und deactivate-Ereignisse verhalten sich ähnlich wie die broadcast-Ereignisse von DisplayObject, mit der Ausnahme, dass sie nicht nur von allen DisplayObject-Instanzen ausgelöst werden sondern auch von allen EventDispatcher-Instanzen und den Instanzen anderer Unterklassen von EventDispatcher. Weitere Informationen zu broadcast-Ereignissen finden Sie im Abschnitt zur DisplayObject-Klasse.

Im folgenden Beispiel wird die Klasse StageExample verwendet, um Ereignisse auszulösen, wenn die Bühne aktiviert oder wenn deren Größe geändert wird. Dies wird in den folgenden Schritten erreicht:
  1. Der Klassenkonstruktor richtet zuerst die Flash-Anwendung ein, die unabhängig von der Größe des Flash Player-Fensters fixiert werden soll, und fügt unter Verwendung der Methoden activateHandler() und resizeHandler() dann zwei Ereignis-Listener hinzu.
  2. Die activateHandler()-Methode wird ausgeführt, sobald die linke Maustaste gedrückt wird.
  3. Die resizeHandler()-Methode wird ausgeführt, wenn die Größe der Bühne geändert wird.
package { import flash.display.Sprite; import flash.display.StageAlign; import flash.display.StageScaleMode; import flash.events.Event; public class StageExample extends Sprite { public function StageExample() { stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = StageAlign.TOP_LEFT; stage.addEventListener(Event.ACTIVATE, activateHandler); stage.addEventListener(Event.RESIZE, resizeHandler); } private function activateHandler(event:Event):void { trace("activateHandler: " + event); } private function resizeHandler(event:Event):void { trace("resizeHandler: " + event); trace("stageWidth: " + stage.stageWidth + " stageHeight: " + stage.stageHeight); } } }
flash.display.DisplayObjectstageVideoAvailability Wird vom Stage-Objekt abgesetzt, wenn sich der Status der stageVideos-Eigenschaft ändert.flash.events.StageVideoAvailabilityEvent.STAGE_VIDEO_AVAILABILITYflash.events.StageVideoAvailabilityEvent Wird vom Stage-Objekt abgesetzt, wenn sich der Status der stageVideos-Eigenschaft ändert. orientationChange Wird vom Stage-Objekt abgesetzt, wenn sich die Bühnenausrichtung ändert.flash.events.StageOrientationEvent.ORIENTATION_CHANGEflash.events.StageOrientationEvent Wird vom Stage-Objekt abgesetzt, wenn sich die Bühnenausrichtung ändert.

Ausrichtungsänderungen können auftreten, wenn der Benutzer das Gerät dreht oder eine Tastatur herausschiebt oder wenn setAspectRatio() aufgerufen wird.

Hinweis: Wenn die autoOrients-Eigenschaft den Wert false hat, ändert sich die Bühnenausrichtung beim Drehen des Geräts nicht. StageOrientationEvents für die Gerätedrehung wird also nur dann abgesetzt, wenn autoOrients den Wert true hat.

orientationChanging Wird vom Stage-Objekt abgesetzt, wenn die Änderung der Bühnenausrichtung beginnt. flash.events.StageOrientationEvent.ORIENTATION_CHANGINGflash.events.StageOrientationEvent Wird vom Stage-Objekt abgesetzt, wenn die Änderung der Bühnenausrichtung beginnt.

Wichtig: orientationChanging-Ereignisse werden bei Android-Geräten nicht abgesetzt.

Hinweis: Wenn die autoOrients-Eigenschaft den Wert false hat, ändert sich die Bühnenausrichtung beim Drehen des Geräts nicht. StageOrientationEvents für die Gerätedrehung wird also nur dann abgesetzt, wenn autoOrients den Wert true hat.

fullScreen Wird ausgelöst, wenn der Vollbildmodus für das Stage-Objekt aktiviert oder deaktiviert wird.flash.events.FullScreenEvent.FULL_SCREENflash.events.FullScreenEvent Wird ausgelöst, wenn der Vollbildmodus für das Stage-Objekt aktiviert oder deaktiviert wird. Ein Änderung des Vollbildmodus kann initiiert werden, indem ActionScript verwendet wird, indem Benutzer einen Tastaturbefehl drücken oder indem das Vollbildfenster den Fokus abgibt. resize Wird ausgelöst, wenn die scaleMode-Eigenschaft des Stage-Objekts auf „StageScaleMode.NO_SCALE“ gesetzt und die Größe der SWF-Datei verändert wird.flash.events.Event.RESIZEflash.events.Event Wird ausgelöst, wenn die scaleMode-Eigenschaft des Stage-Objekts auf StageScaleMode.NO_SCALE gesetzt und die Größe der SWF-Datei verändert wird. mouseLeave Wird vom Stage-Objekt abgesetzt, wenn der Zeiger aus dem Bühnenbereich verschoben wird.flash.events.Event.MOUSE_LEAVEflash.events.Event Wird vom Stage-Objekt abgesetzt, wenn der Zeiger aus dem Bühnenbereich verschoben wird. Wenn die Maustaste gedrückt wird, wird das Ereignis nicht abgesetzt. addChildAt Fügt dieser DisplayObjectContainer-Instanz eine untergeordnete DisplayObject-Instanz hinzu. Durch Aufrufen der addChildAt()-Methode eines Stage-Objekts wird für jeden Aufrufer, der sich nicht in derselben Sicherheits-Sandbox wie der Bühneneigentümer (die Haupt-SWF-Datei) befindet, eine Ausnahme ausgelöst. Um dies zu verhindern, kann der Bühneneigentümer der Domäne des Aufrufers die entsprechende Berechtigung erteilen, indem er die Methode Security.allowDomain() oder Security.allowInsecureDomain() aufruft. Weitere Informationen finden Sie im Kapitel „Sicherheit“ des ActionScript 3.0 Entwicklerhandbuchs. SecurityErrorSecurityErrorDie DisplayObject-Instanz, die Sie im Parameter child übergeben. flash.display:DisplayObjectchildflash.display:DisplayObjectDie DisplayObject-Instanz, die der DisplayObjectContainer-Instanz untergeordnet werden soll. indexintDie Indexposition, an der die untergeordnete Instanz hinzugefügt wird. Wenn Sie eine gerade besetzte Indexposition angeben, werden das untergeordnete Objekt an dieser Stelle sowie alle darüber liegenden Positionen innerhalb der Child-Liste um eine Position nach oben verschoben. Fügt dieser DisplayObjectContainer-Instanz eine untergeordnete DisplayObject-Instanz hinzu. Das untergeordnete Objekt wird an der angegebenen Indexposition eingefügt. Die Indexposition 0 bezeichnet das hintere (untere) Ende der Anzeigeliste für dieses DisplayObjectContainer-Objekt.

Das folgende Beispiel enthält z. B. drei Anzeigeobjekte mit der Bezeichnung a, b und c jeweils an den Indexpositionen 0, 1 und 2:

Wenn Sie ein Child-Objekt hinzufügen, das bereits einem anderen Anzeigeobjektcontainer untergeordnet worden ist, wird es aus dessen Child-Liste entfernt.

addChild Fügt dieser DisplayObjectContainer-Instanz eine untergeordnete DisplayObject-Instanz hinzu. Durch Aufrufen der addChild()-Methode eines Stage-Objekts wird für jeden Aufrufer, der sich nicht in derselben Sicherheits-Sandbox wie der Bühneneigentümer (die Haupt-SWF-Datei) befindet, eine Ausnahme ausgelöst. Um dies zu verhindern, kann der Bühneneigentümer der Domäne des Aufrufers die entsprechende Berechtigung erteilen, indem er die Methode Security.allowDomain() oder Security.allowInsecureDomain() aufruft. Weitere Informationen finden Sie im Kapitel „Sicherheit“ des ActionScript 3.0 Entwicklerhandbuchs. SecurityErrorSecurityErrorDie DisplayObject-Instanz, die Sie im Parameter child übergeben. flash.display:DisplayObjectchildflash.display:DisplayObjectDie DisplayObject-Instanz, die der DisplayObjectContainer-Instanz untergeordnet werden soll. Fügt dieser DisplayObjectContainer-Instanz eine untergeordnete DisplayObject-Instanz hinzu. Die untergeordnete Instanz wird allen anderen untergeordneten Objekten dieser DisplayObjectContainer-Instanz an der ersten Position (also oben) hinzugefügt. (Um ein untergeordnetes Objekt an einer bestimmten Indexposition hinzuzufügen, verwenden Sie die addChildAt()-Methode.)

Wenn Sie ein Child-Objekt hinzufügen, das bereits einem anderen Anzeigeobjektcontainer untergeordnet worden ist, wird es aus dessen Child-Liste entfernt.

Hinweis: Der Befehl stage.addChild() kann mit einer veröffentlichten SWF-Datei Probleme verursachen, darunter Sicherheitsprobleme und Konflikte mit anderen geladenen SWF-Dateien. In einer Flash-Laufzeitinstanz gibt es immer nur eine Bühne, unabhängig davon, wie viele SWF-Dateien Sie in die Laufzeitumgebung laden. Im Allgemeinen sollten Objekte deshalb gar nicht direkt zur Bühne hinzugefügt werden. Das einzige Objekt, dass die Bühne enthalten sollte, ist das Stammobjekt. Erstellen Sie einen DisplayObjectContainer, um alle Elemente der Anzeigeliste aufzunehmen. Falls erforderlich, fügen Sie diese DisplayObjectContainer-Instanz dann der Bühne hinzu.

addEventListener Registriert ein Ereignis-Listener-Objekt bei einem EventDispatcher-Objekt, sodass der Listener über ein Ereignis benachrichtigt wird.Durch Aufrufen der addEventListener-Methode eines Stage-Objekts wird für jeden Aufrufer, der sich nicht in derselben Sicherheits-Sandbox wie der Bühneneigentümer (die Haupt-SWF-Datei) befindet, eine Ausnahme ausgelöst. Um dies zu verhindern, kann der Bühneneigentümer der Domäne des Aufrufers die entsprechende Berechtigung erteilen, indem er die Methode Security.allowDomain() oder Security.allowInsecureDomain() aufruft. Weitere Informationen finden Sie im Kapitel „Sicherheit“ des ActionScript 3.0 Entwicklerhandbuchs. SecurityErrorSecurityErrortypeStringDer Typ des Ereignisses. listenerFunctionDie Listener-Funktion, die das Ereignis verarbeitet. Diese Funktion muss ein Ereignisobjekt als einzigen Parameter akzeptieren und darf keinen Wert zurückgeben, wie das nachfolgende Beispiel zeigt: function(evt:Event):void

Der Name der Funktion ist beliebig.

useCaptureBooleanfalse Bestimmt, ob der Listener in der Erfassungsphase oder in der Ziel- und Bubbling-Phase arbeitet. Ist useCapture auf true gesetzt, so verarbeitet der Listener das Ereignis nur während der Erfassungsphase und nicht während der Ziel- oder Bubbling-Phase. Hat useCapture hingegen den Wert false, verarbeitet der Listener das Ereignis nur während der Ziel- oder Bubbling-Phase. Um auf das Ereignis in allen drei Phasen zu warten, rufen Sie addEventListener() zweimal auf; einmal ist useCapture auf true gesetzt, und beim zweiten Mal hat useCapture den Wert false. priorityint0Die Prioritätsstufe des Ereignis-Listeners. Die Priorität wird durch eine vorzeichenbehaftete 32-Bit-Ganzzahl zugewiesen. Je höher die Zahl, desto höher die Priorität. Alle Listener mit der Priorität n werden vor Listenern mit der Priorität n -1 verarbeitet. Wenn zwei oder mehr Listener die gleiche Priorität aufweisen, werden sie in der Reihenfolge verarbeitet, in der sie hinzugefügt wurden. Die Standardpriorität ist 0. useWeakReferenceBooleanfalseBestimmt, ob der Verweis auf den Listener stark oder schwach ist. Ein starker Verweis (der Standard) verhindert, dass der Listener von einem Garbage Collector entfernt wird. Ein schwacher Verweis hingegen nicht.

Funktionen von Mitgliedern auf Klassenebene werden nicht vom Garbagekollektor entfernt. Daher können Sie useWeakReference für Mitgliedsfunktionen auf Klassenebene auf true setzen, ohne dass sie vom Garbagekollektor entfernt werden. Wenn Sie useWeakReference auf true setzen bei einem Listener, der eine verschachtelte innere Funktion ist, wird die Funktion vom Garbagekollektor entfernt. Indem Sie Verweise auf die innere Funktion erstellen (d. h sie in einer anderen Variable speichern), umgehen Sie die Garbage Collection, sodass die Funktion permanent gespeichert bleibt.

Registriert ein Ereignis-Listener-Objekt bei einem EventDispatcher-Objekt, sodass der Listener über ein Ereignis benachrichtigt wird. Sie können Ereignis-Listener bei allen Knoten in der Anzeigeliste für eine bestimmte Art von Ereignis, Phase oder Priorität registrieren.

Nachdem Sie einen Ereignis-Listener erfolgreich registriert haben, können Sie seine Priorität nicht durch weitere Aufrufe von addEventListener() ändern. Um die Priorität eines Listeners zu ändern, müssen Sie zunächst removeListener() aufrufen. Anschließend können Sie den Listener mit der neuen Prioritätsstufe erneut aufrufen.

Nach der Registrierung des Listeners haben nachfolgende Aufrufe von addEventListener() mit einem anderen type- oder useCapture-Wert eine separate Listener-Registrierung zur Folge. Wenn Sie beispielsweise zuerst einen Listener registrieren, für den useCapture auf true gesetzt ist, wird dieser nur während der Aufnahmephase aktiv sein. Wenn Sie addEventListener() für dasselbe Listener-Objekt erneut aufrufen, diesmal aber useCapture auf false gesetzt ist, werden zwei separate Listener angelegt: einer, der während der Aufnahmephase aktiv ist und ein zweiter, der während der Ziel- und Bubbling-Phase aktiv ist.

Sie können einen Ereignis-Listener nicht nur für die Ziel- oder Bubbling-Phase registrieren. Die beiden Phasen hängen während der Registrierung immer zusammen, da Bubbling nur für übergeordnete Elemente des Zielknotens gilt.

Wenn Sie einen Ereignis-Listener nicht mehr brauchen, entfernen sie ihn, indem Sie removeEventListener() aufrufen. Andernfalls könnte es zu Speicherproblemen kommen. Ereignis-Listener werden nicht automatisch aus dem Speicher entfernt, da der Garbage Collector den Listener nicht entfernt, solange das auslösende Objekt vorhanden ist (sofern der useWeakReference-Parameter auf true gesetzt ist).

Beim Kopieren einer EventDispatcher-Instanz werden zugewiesene Ereignis-Listener nicht kopiert. (Wenn ein neu angelegter Knoten einen Ereignis-Listener benötigt, müssen Sie den Listener nach dem Erstellen des Knotens zuweisen.) Wenn Sie jedoch eine EventDispatcher-Instanz verschieben, werden zugewiesene Ereignis-Listener ebenfalls verschoben.

Wenn der Ereignis-Listener bei einem Knoten registriert wird, während mit diesem Knoten ein Ereignis durchgeführt wird, so wird der Ereignis-Listener während der aktuellen Phase nicht ausgelöst, kann aber während einer späteren Phase im Ereignisablauf ausgelöst werden, etwa während der Bubbling-Phase.

Wird ein Ereignis-Listener von einem Knoten entfernt, während mit dem Knoten ein Ereignis durchgeführt wird, so wird er von den aktuellen Aktionen immer noch ausgelöst. Nachdem er entfernt worden ist, wird der Ereignis-Listener nicht wieder aufgerufen (es sei denn er wird für spätere Verarbeitungsvorgänge erneut aufgerufen).

assignFocus Stellt den Tastaturfokus auf das interaktive Objekt ein, das vom objectToFocus-Parameter angegeben wird. Dabei wird die Richtung des Fokus vom direction-Parameter bestimmt. Wenn der Fokus nicht auf das Ziel eingestellt werden kann oder wenn die Richtung keinen gültigen Typ aufweist. ErrorErrorobjectToFocusflash.display:InteractiveObjectDas Objekt, das den Fokus erhalten soll, oder null, um den Fokus von einem beliebigen Element auf der Bühne zu entfernen. directionStringDie Richtung, aus der das objectToFocus-Objekt den Fokus erhält. Gültige Werte werden als Konstanten in der FocusDirection-Klasse aufgelistet. Weist einem interaktiven Objekt den Tastaturfokus zu und gibt die Richtung an, aus der das Objekt den Fokus erhält. Stellt den Tastaturfokus auf das interaktive Objekt ein, das vom objectToFocus-Parameter angegeben wird. Dabei wird die Richtung des Fokus vom direction-Parameter bestimmt.

Das Konzept der Fokusrichtung muss von der Anwendung (oder vom Anwendungsframework) definiert werden. Es existiert keine inhärente Funktionalität zum Sortieren des Fokus von interaktiven Objekten, Sie können jedoch über andere verfügbare Eigenschaften ein Anordnungsprinzip definieren. Beispielsweise können Sie interaktive Objekte nach ihren Positionen auf der Bühne oder in der Anzeigeliste sortieren. Ein Aufruf von assignFocus() entspricht dem Einstellen der Stage.focus-Eigenschaft, bietet jedoch zusätzlich die Möglichkeit, die Richtung anzugeben, aus der der Fokus eingestellt wird.

Das objectToFocus-Objekt löst beim Erhalt des Fokus ein focusIn-Ereignis aus. Die direction-Eigenschaft des FocusEvent-Objekts gibt die Einstellung des direction-Parameters an.

Wenn Sie das HTMLLoader-Objekt dem objectToFocus-Parameter zuweisen, wählt das HTMLLoader-Objekt im HTML-DOM das richtige zu fokussierende Objekt auf Basis des direction-Parameterwerts. Wenn es sich dabei um FocusDirection.BOTTOM handelt, erhält im HTML-DOM das zu fokussierende Objekt am Ende der Lesereihefolge den Fokus. Wenn es sich dabei um FocusDirection.TOP handelt, erhält im HTML-DOM das zu fokussierende Objekt zu Beginn der Lesereihenfolge den Fokus. Wenn es sich dabei um NONE handelt, erhält das HTMLLoader-Objekt den Fokus, ohne dass sein aktuell fokussiertes Element geändert wird.

flash.display.Stage.focusflash.display.FocusDirectionflash.events.FocusEvent
dispatchEvent Sendet ein Ereignis in den Ereignisablauf.Durch Aufrufen der dispatchEvent()-Methode eines Stage-Objekts wird für jeden Aufrufer, der sich nicht in derselben Sicherheits-Sandbox wie der Bühneneigentümer (die Haupt-SWF-Datei) befindet, eine Ausnahme ausgelöst. Um dies zu verhindern, kann der Bühneneigentümer der Domäne des Aufrufers die entsprechende Berechtigung erteilen, indem er die Methode Security.allowDomain() oder Security.allowInsecureDomain() aufruft. Weitere Informationen finden Sie im Kapitel „Sicherheit“ des ActionScript 3.0 Entwicklerhandbuchs. SecurityErrorSecurityErrorDer Wert true, wenn das Ereignis erfolgreich ausgelöst wurde. Der Wert false weist entweder auf einen Fehler hin oder auf die Tatsache, dass preventDefault() für das Ereignis aufgerufen worden ist. Booleaneventflash.events:EventDas Ereignisobjekt, das in den Ereignisablauf integriert wird. Wenn das Ereignis erneut gesendet wird, wird automatisch ein Klon des Ereignisses erstellt. Nachdem ein Ereignis ausgelöst wurde, lässt sich seine target-Eigenschaft nicht mehr ändern, daher funktioniert ein Zurücksenden des Ereignisses nur, wenn Sie eine neue Kopie des Ereignisses erstellen. Sendet ein Ereignis in den Ereignisablauf. Das Ereignisziel ist das EventDispatcher-Objekt, für das die Methode dispatchEvent() aufgerufen wird. getChildAtflash.display:DisplayObjectindexintgetChildIndexintchildflash.display:DisplayObjecthasEventListener Überprüft, ob das EventDispatcher-Objekt Listener für einen bestimmten Ereignistyp registriert hat.Durch Aufrufen der hasEventListener()-Methode eines Stage-Objekts wird für jeden Aufrufer, der sich nicht in derselben Sicherheits-Sandbox wie der Bühneneigentümer (die Haupt-SWF-Datei) befindet, eine Ausnahme ausgelöst. Um dies zu verhindern, kann der Bühneneigentümer der Domäne des Aufrufers die entsprechende Berechtigung erteilen, indem er die Methode Security.allowDomain() oder Security.allowInsecureDomain() aufruft. Weitere Informationen finden Sie im Kapitel „Sicherheit“ des ActionScript 3.0 Entwicklerhandbuchs. SecurityErrorSecurityErrorDer Wert true, wenn ein Listener des angegebenen Typs registriert ist; andernfalls false. BooleantypeStringDer Typ des Ereignisses. Überprüft, ob das EventDispatcher-Objekt Listener für einen bestimmten Ereignistyp registriert hat. Dadurch können Sie bestimmen, wo ein EventDispatcher-Objekt die Verarbeitung eines Ereignistyps in der Ereignisablaufhierarchie geändert hat. Um festzustellen, ob ein bestimmter Ereignistyp einen Ereignis-Listener auslöst, verwenden Sie willTrigger().

Der Unterschied zwischen hasEventListener() und willTrigger() besteht darin, dass hasEventListener() nur das Objekt untersucht, zu dem es gehört, während willTrigger() den gesamten Ereignisablauf auf das im Parameter type angegebene Ereignis untersucht.

Wird hasEventListener() von einem LoaderInfo-Objekt aus aufgerufen, werden nur die Listener berücksichtigt, die dem Aufrufer zugänglich sind.

invalidate Durch Aufrufen der invalidate()-Methode wird Flash-Laufzeitumgebungen signalisiert, dass bei nächster Gelegenheit die Anzeigeliste neu gezeichnet werden muss (z. B., wenn der Abspielkopf in ein neues Bild tritt).Signalisiert den Flash-Laufzeitumgebungen, dass die Eigenschaften von Anzeigeobjekten aktualisiert werden müssen, sobald sich die Gelegenheit bietet, die Bühne zu aktualisieren. Durch Aufrufen der invalidate()-Methode wird Flash-Laufzeitumgebungen signalisiert, dass bei nächster Gelegenheit die Anzeigeliste neu gezeichnet werden muss (z. B., wenn der Abspielkopf in ein neues Bild tritt). Nachdem Sie die invalidate()-Methode aufgerufen haben und die Anzeigeliste neu gezeichnet worden ist, sendet die Flash-Laufzeitumgebung ein render-Ereignis an jedes Anzeigeobjekt, das gemäß seiner Registrierung auf das render-Ereignis wartet. Sie müssen die invalidate()-Methode immer dann aufrufen, wenn die Flash-Laufzeitumgebung render-Ereignisse senden soll.

Das render-Ereignis gibt Ihnen die Gelegenheit, Änderungen an der Anzeigeliste vorzunehmen, und zwar unmittelbar bevor sie neu gezeichnet wird. Dadurch haben Sie die Möglichkeit, Aktualisierungen an der Anzeigeliste bis zur letzten Gelegenheit zurückzustellen. Auf diese Weise wird die Performance verbessert, da unnötige Bildschirmaktualisierungen vermieden werden.

Das render-Ereignis wird nur ausgelöst, um Objekte anzuzeigen, die sich in derselben Sicherheitsdomäne befinden wie der Code, der die stage.invalidate()-Methode aufruft, oder um Anzeigeobjekte aus einer Sicherheitsdomäne anzuzeigen, der die Berechtigung über die Security.allowDomain()-Methode erteilt wurde.

flash.events.Event.RENDER
isFocusInaccessible Legt fest, ob die Stage.focus-Eigenschaft aus Sicherheitsgründen den Wert „null“ zurückgibt.true, wenn das Objekt mit dem Fokus zu einer Sicherheits-Sandbox gehört, auf die die SWF-Datei keinen Zugriff hat. BooleanLegt fest, ob die Stage.focus-Eigenschaft aus Sicherheitsgründen den Wert null zurückgibt. Legt fest, ob die Stage.focus-Eigenschaft aus Sicherheitsgründen den Wert null zurückgibt. Anders ausgedrückt: isFocusInaccessible gibt den Wert true zurück, wenn das Objekt mit dem Fokus zu einer Sicherheits-Sandbox gehört, auf die die SWF-Datei keinen Zugriff hat. removeChildAt Entfernt ein untergeordnetes Anzeigeobjekt aus der angegebenen Indexposition in der Child-Liste des Anzeigeobjekt-Containers.Durch das Aufrufen der removeChildAt()-Methode eines Stage-Objekts wird für jeden Aufrufer, der sich nicht in derselben Sicherheits-Sandbox wie das zu entfernende Objekt befindet, eine Ausnahme ausgelöst. Um dies zu verhindern, kann der Objekteigentümer der Domäne des Aufrufers die entsprechende Berechtigung erteilen, indem er die Methode Security.allowDomain() oder Security.allowInsecureDomain() aufruft. Weitere Informationen finden Sie im Kapitel „Sicherheit“ des ActionScript 3.0 Entwicklerhandbuchs. SecurityErrorSecurityErrorDie entfernte DisplayObject-Instanz. flash.display:DisplayObjectindexintDie Child-Indexposition des zu entfernenden Anzeigeobjekts. Entfernt ein untergeordnetes Anzeigeobjekt aus der angegebenen index-Position in der Child-Liste des Anzeigeobjekt-Containers. Die parent-Eigenschaft des entfernten untergeordneten Objekts wird auf null gesetzt, und das Objekt wird vom Garbage Collector entfernt, wenn keine anderen Verweise auf das untergeordnete Objekt existieren. Die Indexpositionen von Anzeigeobjekten über dem untergeordneten Objekt im Anzeigeobjekt-Container werden um jeweils 1 herabgesetzt.

Der Garbage Collector weist nicht verwendete Speicherkapazität neu zu. Wenn auf Variablen oder Objekte nicht mehr aktiv verwiesen wird und diese auch nirgends mehr gespeichert sind, werden sie vom Garbagekollektor entfernt, und der belegte Arbeitsspeicher wird bereinigt.

removeChildflash.display:DisplayObjectchildflash.display:DisplayObjectsetAspectRatio Legt die Bühne auf eine Ausrichtung mit dem angegebenen Seitenverhältnis fest.Der als newAspectRatio-Parameter übergebene Wert ist nicht gültig. Der Wert muss einer der Konstanten entsprechen, die in der StageAspectRatio-Klasse definiert wurden. ArgumentErrorArgumentErrornewAspectRatioStringDer Typcode für das gewünschte Seitenverhältnis (StageAspectRatio.PORTRAIT oder StageAspectRatio.LANDSCAPE). Legt die Bühne auf eine Ausrichtung mit dem angegebenen Seitenverhältnis fest.

Wenn sich die Bühnenausrichtung in Folge des Methodenaufrufs ändert, setzt das Stage-Objekt ein orientationChange-Ereignis ab.

Um festzustellen, welche Geräteausrichtung unterstützt wird, überprüfen Sie den Wert der Stage.supportsOrientantionChange-Eigenschaft.

Unterstützung von AIR-Profilen: Diese Funktion wird auf mobilen Geräten unterstützt, nicht jedoch auf Desktopbetriebssystemen oder Geräten mit AIR für TV. Mit der Stage.supportsOrientantionChange-Eigenschaft können Sie testen, ob zur Laufzeit Unterstützung gegeben ist. Weitere Informationen zum AIR-Support über mehrere Profile finden Sie unter Unterstützung von AIR-Profilen.

StageAspectRatiosupportsOrientationChange
setChildIndex Ändert die Position eines vorhandenen untergeordneten Objekts im Anzeigeobjekt-Container.Durch Aufrufen der setChildIndex()-Methode eines Stage-Objekts wird für jeden Aufrufer, der sich nicht in derselben Sicherheits-Sandbox wie der Bühneneigentümer (die Haupt-SWF-Datei) befindet, eine Ausnahme ausgelöst. Um dies zu verhindern, kann der Bühneneigentümer der Domäne des Aufrufers die entsprechende Berechtigung erteilen, indem er die Methode Security.allowDomain() oder Security.allowInsecureDomain() aufruft. Weitere Informationen finden Sie im Kapitel „Sicherheit“ des ActionScript 3.0 Entwicklerhandbuchs. SecurityErrorSecurityErrorchildflash.display:DisplayObjectDie child-DisplayObject-Instanz, deren Indexnummer Sie ändern möchten. indexintDie resultierende Indexnummer für das child-Anzeigeobjekt. Ändert die Position eines vorhandenen untergeordneten Objekts im Anzeigeobjekt-Container. Dies wirkt sich auf die Anordnung der untergeordneten Objekte aus. Das folgende Beispiel enthält z. B. drei Anzeigeobjekte mit der Bezeichnung a, b und c jeweils an den Indexpositionen 0, 1 und 2:

Wenn Sie die setChildIndex()-Methode verwenden und eine bereits belegte Indexposition angeben, werden nur die Positionen zwischen der alten und der neuen Position des Anzeigeobjekts geändert. Alle anderen Positionen bleiben unverändert. Wenn ein untergeordnetes Objekt an eine NIEDRIGERE Indexposition als bisher verschoben wird, werden alle dazwischen liegenden untergeordneten Objekte für den Indexverweis um 1 ERHÖHT. Wenn ein untergeordnetes Objekt an eine HÖHERE Indexposition als bisher verschoben wird, werden alle dazwischen liegenden untergeordneten Objekte für den Indexverweis um 1 VERRINGERT. Wenn der Anzeigeobjekt-Container im vorigen Beispiel z. B. den Namen container hat, können Sie die Position der Anzeigeobjekte mit den Bezeichnungen a und b austauschen, indem Sie den folgenden Code aufrufen:

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

Dieser Code führt zur folgenden Objektanordnung:

setOrientation Stellt die Bühne auf die angegebene Ausrichtung ein.Der als newOrientation-Parameter übergebene Wert ist nicht gültig. Der Wert muss mit einer der Konstanten übereinstimmen, die in der StageOrientation-Klasse definiert wurden, mit Ausnahme der StageOrientation.UNKNOWN-Konstante. ArgumentErrorArgumentErrornewOrientationStringDie neue Ausrichtung der Bühne. Stellt die Bühne auf die angegebene Ausrichtung ein.

Legt den newOrientation-Parameter auf einen der folgenden vier Werte fest, die in der StageOrientation-Klasse als Konstanten definiert wurden:

StageOrientation-KonstanteBühnenausrichtungStageOrientation.DEFAULTLegt die Bühnenausrichtung auf die Standardausrichtung (rechte Seite oben) fest.StageOrientation.ROTATED_RIGHTLegt die Bühnenausrichtung als nach rechts gedreht fest.StageOrientation.ROTATED_LEFTLegt die Bühnenausrichtung als nach links gedreht fest.StageOrientation.UPSIDE_DOWNLegt die Bühnenausrichtung als auf den Kopf gedreht fest.

Stellen Sie den Parameter nicht auf StageOrientation.UNKNOWN oder einen anderen Stringwert als die in der Tabelle aufgeführten ein.

Um festzustellen, ob das Ändern der Geräteausrichtung unterstützt wird, überprüfen Sie den Wert der Stage.supportsOrientantionChange-Eigenschaft. Überprüfen Sie die Liste, die von der supportedOrientations-Eigenschaft bereitgestellt wird, um festzustellen, welche Ausrichtungen vom aktuellen Gerät unterstützt werden.

Das Festlegen der Ausrichtung ist ein asynchroner Vorgang. Es ist nicht garantiert, dass der Vorgang sofort nach dem Aufrufen der setOrientation()-Methode abgeschlossen wird. Fügen Sie einen Ereignis-Listener für das orientationChange-Ereignis hinzu, um festzustellen, wann die Änderung der Ausrichtung abgeschlossen ist.

Wichtig: Die setOrientation()-Methode wurde auf Android-Geräten in Versionen vor AIR 2.6 nicht unterstützt.

autoOrientssupportsOrientationChangeStageOrientationEventStageOrientationorientationChangeflash.events:StageOrientationEventDie Bühnengröße wurde als Ergebnis des Aufrufs der setOrientation()-Methode geändert. Die Bühnengröße wurde als Ergebnis des Aufrufs der setOrientation()-Methode geändert.
swapChildrenAtindex1intindex2intswapChildren Kehrt die z-Reihenfolge (von vorne nach hinten) der beiden angegebenen untergeordneten Objekte um.Durch Aufruf der swapChildrenAt()-Methode eines Stage-Objekts wird für jeden Aufrufer, der sich nicht in derselben Sicherheits-Sandbox wie der Eigentümer eines der auszutauschenden Objekte befindet, eine Ausnahme ausgelöst. Um dies zu verhindern, kann der Objekteigentümer der Domäne des Aufrufers die entsprechende Berechtigung erteilen, indem er die Methode Security.allowDomain() oder Security.allowInsecureDomain() aufruft. Weitere Informationen finden Sie im Kapitel „Sicherheit“ des ActionScript 3.0 Entwicklerhandbuchs. SecurityErrorSecurityErrorchild1flash.display:DisplayObjectDas erste untergeordnete Objekt. child2flash.display:DisplayObjectDas zweite untergeordnete Objekt. Kehrt die z-Reihenfolge (von vorne nach hinten) der beiden angegebenen untergeordneten Objekte um. Alle anderen untergeordneten Objekte im Anzeigeobjekt-Container bleiben auf derselben Indexposition. willTrigger Überprüft, ob bei diesem EventDispatcher-Objekt oder bei einem seiner übergeordneten Objekte ein Ereignis-Listener für einen bestimmten Ereignistyp registriert ist.Durch Aufrufen der willTrigger()-Methode eines Stage-Objekts wird für jeden Aufrufer, der sich nicht in derselben Sicherheits-Sandbox wie der Bühneneigentümer (die Haupt-SWF-Datei) befindet, eine Ausnahme ausgelöst. Um dies zu verhindern, kann der Bühneneigentümer der Domäne des Aufrufers die entsprechende Berechtigung erteilen, indem er die Methode Security.allowDomain() oder Security.allowInsecureDomain() aufruft. Weitere Informationen finden Sie im Kapitel „Sicherheit“ des ActionScript 3.0 Entwicklerhandbuchs. SecurityErrorSecurityErrorDer Wert true, wenn ein Listener des angegebenen Typs ausgelöst wird; andernfalls false. BooleantypeStringDer Typ des Ereignisses. Überprüft, ob bei diesem EventDispatcher-Objekt oder bei einem seiner Vorgänger ein Ereignis-Listener für einen bestimmten Ereignistyp registriert ist. Diese Methode liefert den Wert true, wenn während irgendeiner Phase des Ereignisablaufs ein Ereignis-Listener aufgerufen wird, wenn ein Ereignis des angegebenen Typs für dieses EventDispatcher-Objekt oder eines seiner nachfolgenden Elemente ausgelöst wird.

Der Unterschied zwischen der hasEventListener()- und der willTrigger()-Methode besteht darin, dass die Methode hasEventListener() nur das Objekt untersucht, zu dem sie gehört, während die willTrigger()-Methode den gesamten Ereignisablauf auf das im Parameter type angegebene Ereignis untersucht.

Wird willTrigger() von einem LoaderInfo-Objekt aus aufgerufen, werden nur die Listener berücksichtigt, die dem Aufrufer zugänglich sind.

align Ein Wert aus der StageAlign-Klasse, der die Ausrichtung der Bühne im Flash Player oder Browser bestimmt.String Ein Wert aus der StageAlign-Klasse, der die Ausrichtung der Bühne im Flash Player oder Browser bestimmt. Folgende Werte sind gültig:

WertVertical AlignmentHorizontalStageAlign.TOPTopCenterStageAlign.BOTTOMBottomCenterStageAlign.LEFTCenterLeftStageAlign.RIGHTCenterRightStageAlign.TOP_LEFTTopLeftStageAlign.TOP_RIGHTTopRightStageAlign.BOTTOM_LEFTBottomLeftStageAlign.BOTTOM_RIGHTBottomRight

Die Eigenschaft align ist nur für ein Objekt verfügbar, das sich in derselben Sicherheits-Sandbox befindet wie der Bühneneigentümer (die Haupt-SWF-Datei). Um dies zu verhindern, kann der Bühneneigentümer der Domäne des aufrufenden Objekts die entsprechende Berechtigung erteilen, indem er die Methode Security.allowDomain() oder Security.alowInsecureDomain() aufruft. Weitere Informationen finden Sie im Kapitel „Sicherheit“ des ActionScript 3.0 Entwicklerhandbuchs.

flash.display.StageAlign
allowsFullScreen Legt fest, ob diese Bühne die Verwendung des Vollbildmodus zulässt Boolean Legt fest, ob diese Bühne die Verwendung des Vollbildmodus zulässt autoOrients Legt fest, ob die Bühne automatisch die Ausrichtung ändert, wenn die Ausrichtung des Geräts geändert wird.Boolean Legt fest, ob die Bühne automatisch die Ausrichtung ändert, wenn die Ausrichtung des Geräts geändert wird.

Der Anfangswert dieser Eigenschaft wird vom autoOrients-Element des Anwendungsdeskriptors abgeleitet und ist standardmäßig false. Wenn die Eigenschaft auf false geändert wird, kann das Verhalten nicht garantiert werden. Bei einigen Geräten behält die Bühne ihre aktuelle Ausrichtung. Bei anderen ändert sich die Bühnenausrichtung zu einer vom Gerät definierten Standardausrichtung, nach der keine weiteren Ausrichtungsänderungen möglich sind.

Unterstützung von AIR-Profilen: Diese Funktion wird auf mobilen Geräten unterstützt, nicht jedoch auf Desktopbetriebssystemen oder Geräten mit AIR für TV. Mit der Stage.supportsOrientantionChange-Eigenschaft können Sie testen, ob zur Laufzeit Unterstützung gegeben ist. Weitere Informationen zum AIR-Support über mehrere Profile finden Sie unter Unterstützung von AIR-Profilen.

deviceOrientationsupportsOrientationChange
colorCorrectionSupport Gibt an, ob die Flash-Laufzeitumgebung auf einem Betriebssystem ausgeführt wird, das Farbkorrektur unterstützt, und ob das Farbprofil des primären (Haupt-) Bildschirms von der Flash-Laufzeitumgebung gelesen und interpretiert wird.String Gibt an, ob die Flash-Laufzeitumgebung auf einem Betriebssystem ausgeführt wird, das Farbkorrektur unterstützt, und ob das Farbprofil des primären (Haupt-) Bildschirms von der Flash-Laufzeitumgebung gelesen und interpretiert wird. Diese Eigenschaft gibt auch den Standardstatus der Farbkorrektur des Hostsystems (normalerweise der Browser) zurück. Aktuell gültige Rückgabewerte sind:

Die drei möglichen Werte sind Strings mit entsprechenden Konstanten in der flash.display.ColorCorrectionSupport-Klasse:

  • "unsupported": Die Farbkorrektur ist nicht verfügbar.
  • "defaultOn": Farbkorrektur immer ausführen.
  • "defaultOff": Farbkorrektur nie ausführen.
Das folgende Beispiel zeigt eine Ereignisprozedur, die in einem Textfeld anzeigt, ob die aktuelle Umgebung Farbkorrektur unterstützt oder nicht. Zuerst wird der Wert von stage.colorCorrectionSupport überprüft, um festzustellen, ob er auf DEFAULT_ON oder DEFAULT_OFF eingestellt ist; dies sind Werte aus der ColorCorrectionSupport-Klasse. Wenn die Eigenschaft einen dieser Werte aufweist, wird im Textfeld der aktuelle Wert angezeigt. Andernfalls, wenn der Wert weder DEFAULT_ON noch DEFAULT_OFF ist, wird im Textfeld „unsupported“ (nicht unterstützt) angezeigt. function addHandler(add_event:Event) { if (stage.colorCorrectionSupport == ColorCorrectionSupport.DEFAULT_ON || stage.colorCorrectionSupport == ColorCorrectionSupport.DEFAULT_OFF) { lblHasCM.text = "stage.colorCorrectionSupport: " + stage.colorCorrectionSupport; } else { lblHasCM.text = "stage.colorCorrectionSupport: unsupported"; } }
flash.display.ColorCorrectionSupportcolorCorrection
colorCorrection Steuert die Farbkorrektur der Flash-Laufzeitumgebung für Anzeigen.StringVersucht, die Monitorfarbkorrektur zu verwenden Steuert die Farbkorrektur der Flash-Laufzeitumgebung für Anzeigen. Die Farbkorrektur funktioniert nur, wenn dem Hauptmonitor ein gültiges ICC-Farbprofil zugewiesen ist, in dem die speziellen Farbattribute des Geräts angegeben sind. Standardmäßig versucht die Flash-Laufzeitumgebung, die Farbkorrektur des Hosts (normalerweise ein Browser) nachzubilden.

Verwenden Sie die Stage.colorCorrectionSupport-Eigenschaft, um festzustellen, ob die Farbkorrektur auf dem aktuellen System verfügbar und als Standard festgelegt ist. Ist die Farbkorrektur verfügbar, wird davon ausgegangen, dass alle Farben der Bühne im sRGB-Farbraum, dem am weitesten verbreiteten Farbraum, liegen. Quellprofile von Eingabegeräten werden bei der Farbkorrektur nicht berücksichtigt. Es erfolgt keine Farbkorrektur der Eingabe. Es wird lediglich die Bühnenausgabe dem ICC-Farbprofil des Hauptmonitors zugeordnet.

Allgemein gesagt sind die Vorteile des Farbmanagements folgende: berechenbare und konsistente Farbe, bessere Konvertierung, genaueres Proofing und effizientere Ausgabe über mehrere Medien hinweg. Beachten Sie jedoch, dass das Farbmanagement keine perfekten Konvertierungen leisten kann, da Geräte oder Ausgangsbilder einen unterschiedlichen Farbumfang haben. Weiterhin ist trotz Farbmanagement das Einrichten benutzerdefinierter oder bearbeiteter Profile nötig. Farbprofile sind abhängig von Browsern, Betriebssystemen (OS), Betriebssystemerweiterungen, Ausgabegeräten und dem Anwendungssupport.

Die Anwendung von Farbkorrektur beeinträchtigt die Leistung der Flash-Laufzeitumgebung. Die Farbkorrektur einer Flash-Laufzeitumgebung ist eine Farbkorrektur im Dokumentstil, da alle SWF-Filme als Dokumente mit impliziten sRGB-Profilen betrachtet werden. Verwenden Sie die Stage.colorCorrectionSupport-Eigenschaft, um die Flash-Laufzeitumgebung anzuweisen, Farben auf den Anzeigefarbraum zu korrigieren, wenn die SWF-Datei (Dokument) angezeigt wird. Flash-Laufzeitumgebungen kompensieren nur Unterschiede zwischen Monitoren, nicht zwischen Eingabegeräten (Kamera, Scanner usw.)

Die drei möglichen Werte sind Strings mit entsprechenden Konstanten in der flash.display.ColorCorrection-Klasse:

  • "default": Verwendet dieselbe Farbkorrektur wie das Hostsystem
  • "on": Farbkorrektur immer durchführen
  • "off": Farbkorrektur nie durchführen
Das folgende Beispiel zeigt eine Ereignisprozedur, die die Farbkorrektur in der aktuellen SWF-Datei ein- und ausschaltet und in einem Textfeld den aktuellen Status der Farbkorrektur anzeigt. Wenn der Stage.colorCorrection-Wert kein Wert aus der ColorCorrection-Klasse ist, meldet die Prozedur einen Fehler. function addHandler(add_event:Event) { switch(stage.colorCorrection) { case ColorCorrection.ON: stage.colorCorrection = ColorCorrection.OFF; lblCMEnableState.text = "State: " + stage.colorCorrection; break; case ColorCorrection.OFF: stage.colorCorrection = ColorCorrection.DEFAULT; lblCMEnableState.text = "State: " + stage.colorCorrection; break; case ColorCorrection.DEFAULT: stage.colorCorrection = ColorCorrection.ON; lblCMEnableState.text = "State: " + stage.colorCorrection; break; default: lblCMEnableState.text = "Error."; break; }
flash.display.ColorCorrectioncolorCorrectionSupport
coloruintdeviceOrientation Die physische Ausrichtung des Geräts.String Die physische Ausrichtung des Geräts.

Bei Geräten mit herausschiebbarer Tastatur hat der Zustand der Tastatur eine höhere Priorität beim Bestimmen der Geräteausrichtung als die vom Beschleunigungssensor erkannte Ausrichtung. Bei einem hochformatigen Gerät mit seitlich angebrachter Tastatur meldet die deviceOrientation-Eigenschaft deshalb ROTATED_LEFT, wenn die Tastatur geöffnet ist, unabhängig davon, wie der Benutzer das Gerät hält.

Verwenden Sie die in der StageOrientation-Klasse definierten Konstanten, wenn Sie Werte für diese Eigenschaft festlegen oder vergleichen.

Unterstützung von AIR-Profilen: Diese Funktion wird auf mobilen Geräten unterstützt, nicht jedoch auf Desktopbetriebssystemen oder Geräten mit AIR für TV. Mit der Stage.supportsOrientationChange-Eigenschaft können Sie testen, ob zur Laufzeit Unterstützung gegeben ist. Weitere Informationen zum AIR-Support über mehrere Profile finden Sie unter Unterstützung von AIR-Profilen.

autoOrientsStageOrientation
displayState Ein Wert aus der StageDisplayState-Klasse, der festlegt, welcher Anzeigestatus zu verwenden ist.StringDurch Aufrufen der displayState-Eigenschaft eines Stage-Objekts wird für jeden Aufrufer, der sich nicht in derselben Sicherheits-Sandbox wie der Bühneneigentümer (die Haupt-SWF-Datei) befindet, eine Ausnahme ausgelöst. Um dies zu verhindern, kann der Bühneneigentümer der Domäne des Aufrufers die entsprechende Berechtigung erteilen, indem er die Methode Security.allowDomain() oder Security.allowInsecureDomain() aufruft. Weitere Informationen finden Sie im Kapitel „Sicherheit“ des ActionScript 3.0 Entwicklerhandbuchs. Es wird ein Sicherheitsfehler ausgelöst, wenn versucht wird, die displayState-Eigenschaft bei angezeigtem Einstellungsdialogfeld einzurichten, ohne dass eine Benutzerreaktion erfolgt, oder wenn das allowFullScreen-Attribut des HTML-Tags param oder embed nicht auf true gesetzt ist. SecurityErrorSecurityError Ein Wert aus der StageDisplayState-Klasse, der festlegt, welcher Anzeigestatus zu verwenden ist. Folgende Werte sind gültig:
  • StageDisplayState.FULL_SCREEN: Legt fest, dass die AIR-Anwendung oder Flash-Laufzeitumgebung die Bühne auf den gesamten Bildschirm des Benutzers ausdehnt, wobei die Tastatureingabe deaktiviert ist.
  • StageDisplayState.FULL_SCREEN_INTERACTIVE: Legt fest, dass die AIR-Anwendung die Bühne auf den gesamten Bildschirm des Benutzers ausdehnt, wobei die Tastatureingabe erlaubt ist. (Nicht verfügbar für Inhalte, die in Flash Player ausgeführt werden.)
  • StageDisplayState.NORMAL: Setzt die Flash-Laufzeitumgebung auf den Standardanzeigemodus für die Bühne zurück.

Das Skalierverhalten des Films im Vollbildmodus wird durch die scaleMode-Einstellung bestimmt (diese wird mithilfe der Stage.scaleMode-Eigenschaft oder der embed-Tageinstellungen der SWF-Datei in der HTML-Datei eingerichtet). Wenn die scaleMode-Eigenschaft den Wert noScale hat, während die Anwendung in den Vollbildmodus wechselt, werden die width- und height-Eigenschaften der Bühne aktualisiert und das Stage-Objekt setzt ein resize-Ereignis ab. Wenn ein anderer Skalierungsmodus eingestellt wird, werden die Bühne und ihr Inhalt skaliert, um die neuen Abmessungen auszufüllen. Das Stage-Objekt behält seine ursprünglichen width- und height-Werte und setzt kein resize-Ereignis ab.

Die folgenden Einschränkungen gelten für SWF-Dateien, die innerhalb einer HTML-Seite wiedergegeben werden (nicht für SWF-Dateien, die den eigenständigen Flash Player verwenden oder die in der AIR-Laufzeitumgebung ausgeführt werden):

  • Um den Vollbildmodus zu aktivieren, fügen Sie den Parameter allowFullScreen den Tags object und embed auf der HTML-Seite hinzu, die die SWF-Datei enthält. Dabei muss allowFullScreen wie im folgenden Beispiel auf "true" gesetzt sein: <param name="allowFullScreen" value="true" /> ... <embed src="example.swf" allowFullScreen="true" ... >

    Auf einer HTML-Seite können die Tags zum Einbetten von SWF auch mithilfe eines Skripts erzeugt werden. Sie müssen das Skript ändern, damit die richtigen allowFullScreen-Einstellungen eingefügt werden. Von Flash Professional und Flash Builder erzeugte HTML-Seiten verwenden die AC_FL_RunContent()-Funktion, um Verweise auf SWF-Dateien einzubetten. Sie müssen dann die allowFullScreen-Parametereinstellungen wie folgt hinzufügen:

    AC_FL_RunContent( ... "allowFullScreen", "true", ... )
  • Der Vollbildmodus wird als Reaktion auf einen Mausklick oder das Drücken einer Taste durch Benutzer initiiert. Der Film kann Stage.displayState nicht ohne Eingabe von Benutzern ändern. Flash-Laufzeitumgebungen beschränken Tastatureingaben im Vollbildmodus. Zu den gültigen Eingaben gehören Tastaturbefehle, die den Vollbildmodus beenden sowie Tasten für nicht druckbare Zeichen wie Pfeiltasten, Leertaste, Umschalt-Taste und Tabulatortasten. Tastaturbefehle zum Beenden des Vollbildmodus sind: Escape (Windows, Linux, Mac), Strg+W (Windows), Befehlstaste+W (Mac) und Alt+F4.

    Im Film wird ein Dialogfeld der Flash-Laufzeitumgebung angezeigt, wenn Benutzer den Vollbildmodus aktivieren, um Benutzer darüber zu informieren und darauf hinzuweisen, dass der Vollbildmodus durch Drücken der Esc-Taste beendet werden kann.

  • Ab Flash Player 9.0.115.0 und höher funktioniert der Vollbildmodus im fensterlosen Modus genau wie im Fenstermodus. Wenn Sie den Fenstermodus (wmode im HTML-Code) auf „Undurchsichtig ohne Fenster“ (opaque) oder „Transparent ohne Fenster“ (transparent) einstellen, kann das Vollbild initiiert werden, das Vollbildfenster ist jedoch immer undurchsichtig.

Diese Einschränkungen gelten nicht für SWF-Inhalt, der im eigenständigen Flash Player oder in AIR ausgeführt wird. AIR unterstützt einen interaktiven Vollbildmodus, der Tastatureingaben zulässt.

Für AIR-Inhalt, der im Vollbildmodus ausgeführt wird, werden der Bildschirmschoner und die Energiesparoptionen während der Wiedergabe von Video-Inhalt deaktiviert, bis das Video gestoppt oder der Vollbildmodus beendet wird.

Unter Linux ist das Setzen von displayState auf StageDisplayState.FULL_SCREEN oder StageDisplayState.FULL_SCREEN_INTERACTIVE ein asynchroner Vorgang.

Im folgenden Beispiel wird interaktiv gezeigt, wie Sie den Vollbildmodus einrichten können, indem Sie die displayState-Eigenschaft ändern.

Hinweis: Aufgrund von Sicherheitsbeschränkungen kann der Vollbildmodus nur in bestimmten Situationen ausgelöst werden, z. B. wenn Benutzer auf die entsprechende Option klicken oder eine Taste drücken. Wenn die allowFullScreen-Eigenschaft in einem Browser ausgeführt wird, muss sie auf „true“ gesetzt sein.

package { import flash.display.Sprite; import flash.display.Stage; import flash.events.*; import flash.net.NetConnection; import flash.net.NetStream; import flash.media.Video; public class FullScreenExample extends Sprite { private var videoURL:String = "testVideo.flv"; private var connection:NetConnection; private var stream:NetStream; private var video:Video; public function FullScreenExample() { connection = new NetConnection(); connection.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler); connection.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler); connection.connect(null); loaderInfo.addEventListener(Event.INIT, createMouseListener); } private function createMouseListener(event:Event):void { stage.addEventListener(MouseEvent.CLICK,toggleFullScreen); } private function toggleFullScreen(event:MouseEvent):void { switch(stage.displayState) { case "normal": stage.displayState = "fullScreen"; break; case "fullScreen": default: stage.displayState = "normal"; break; } } // Video related: private function netStatusHandler(event:NetStatusEvent):void { switch (event.info.code) { case "NetConnection.Connect.Success": connectStream(); break; case "NetStream.Play.StreamNotFound": trace("Unable to locate video: " + videoURL); break; } } private function connectStream():void { var stream:NetStream = new NetStream(connection); stream.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler); stream.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler); video = new Video(stage.stageWidth,stage.stageHeight); video.attachNetStream(stream); stream.play(videoURL); addChild(video); } private function securityErrorHandler(event:SecurityErrorEvent):void { trace("securityErrorHandler: " + event); } private function asyncErrorHandler(event:AsyncErrorEvent):void { // ignore AsyncErrorEvent events. } } }
flash.display.StageDisplayStateStage.scaleModeflash.events.FullScreenEventflash.events.Event.RESIZE
focus Das interaktive Objekt mit Tastaturfokus bzw. „null“, wenn der Fokus nicht gesetzt ist oder wenn das Objekt mit dem Fokus zu einer Sicherheits-Sandbox gehört, auf die mit dem aufrufenden Objekt nicht zugegriffen werden kann.flash.display:InteractiveObjectGibt eine Fehlermeldung aus, wenn der Fokus nicht auf das Ziel gesetzt werden kann. ErrorErrorDas Objekt mit dem Tastaturfokus. Das interaktive Objekt mit Tastaturfokus bzw. null, wenn der Fokus nicht gesetzt ist oder wenn das Objekt mit dem Fokus zu einer Sicherheits-Sandbox gehört, zu der das aufrufende Objekt keinen Zugang hat. Im folgenden Code wird der anfängliche Fokus auf das Textfeld myTF gesetzt, sodass der Benutzer mit dem Tippen beginnen kann, ohne vorher auf das Feld zu klicken. Wenn Sie diesen Code in der Benutzeroberfläche des Authoring-Tools testen, können Sie nur auf wenige Tasten zugreifen, da der Host (Browser oder Tool) die meisten Tastenbetätigungen zuerst interpretiert. Um die beabsichtigte Funktionsweise dieses Beispiels zu sehen, kompilieren Sie es und führen Sie die SWF-Datei aus. var myTF:TextField = new TextField(); myTF.border =true; myTF.type = TextFieldType.INPUT; addChild(myTF); stage.focus= myTF; frameRate Ruft die Bildrate der Bühne ab und setzt sie gegebenenfalls neu.NumberDurch Aufrufen der frameRate-Eigenschaft eines Stage-Objekts wird für jeden Aufrufer, der sich nicht in derselben Sicherheits-Sandbox wie der Bühneneigentümer (die Haupt-SWF-Datei) befindet, eine Ausnahme ausgelöst. Um dies zu verhindern, kann der Bühneneigentümer der Domäne des Aufrufers die entsprechende Berechtigung erteilen, indem er die Methode Security.allowDomain() oder Security.allowInsecureDomain() aufruft. Weitere Informationen finden Sie im Kapitel „Sicherheit“ des ActionScript 3.0 Entwicklerhandbuchs. SecurityErrorSecurityError Ruft die Bildrate der Bühne ab und setzt sie gegebenenfalls neu. Die Bildrate wird als Bilder pro Sekunde definiert. Standardmäßig wird die Bildrate von der zuerst geladenen SWF-Datei übernommen. Der zulässige Bereich für die Bildrate liegt zwischen 0,01 und 1000 Bildern pro Sekunde.

Hinweis: Eine hohe Bildrate kann von einer Anwendung möglicherweise nicht eingehalten werden, entweder weil die Zielplattform nicht schnell genug ist oder weil der Player mit der vertikalen Austastlücke des Anzeigegeräts (in der Regel 60 Hz auf LCD-Geräten) synchronisiert ist. In manchen Fällen ist es auch möglich, dass die Zielplattform die maximale Bildrate herabsetzt, wenn eine hohe CPU-Auslastung erwartet wird.

Bei Inhalt, der in Adobe AIR ausgeführt wird, gilt Folgendes: Wenn die frameRate-Eigenschaft für ein Stage-Objekt eingestellt wird, ändert dies die Bildrate für alle Stage-Objekte (von unterschiedlichen NativeWindow-Objekten verwendet).

fullScreenHeight Setzt die Höhe des Monitors, der verwendet wird, wenn der Vollbildmodus aktiviert wird, zurück, falls dieser Modus sofort aufgerufen wird.uint Setzt die Höhe des Monitors, der verwendet wird, wenn der Vollbildmodus aktiviert wird, zurück, falls dieser Modus sofort aufgerufen wird. Wenn der Benutzer über mehrere Monitore verfügt, wird der Monitor verwendet, auf dem sich zu diesem Zeitpunkt der größte Teil der Bühne befindet.

Hinweis: Falls der Benutzer die Möglichkeit hat, zwischen dem Abrufen des Wertes und dem Wechseln in den Vollbildmodus den Browser von einem Monitor zu einem anderen zu verschieben, könnte der Wert inkorrekt sein. Wenn Sie den Wert in eine Ereignisprozedur abrufen, die Stage.displayState auf StageDisplayState.FULL_SCREEN setzt, ist der Wert korrekt.

Dies ist die Höhe des Monitors in Pixel; dieser Wert ist identisch mit der Höhe der Bühne, wenn Stage.align auf den Wert StageAlign.TOP_LEFT und Stage.scaleMode auf den Wert StageScaleMode.NO_SCALE gesetzt ist.

In diesem Beispiel wird ein grünes Rechteck in der Größe der Bühne erstellt. Darauf wird ein rotes Quadrat platziert, das als Schaltfläche aktiviert wird. Durch Klicken auf das rote Quadrat wird die Ereignisprozedur enterFullScreen() ausgelöst, die die Eigenschaft fullScreenSourceRect festlegt und den Vollbildmodus aktiviert. Um die Eigenschaft fullScreenSourceRect festzulegen, beginnt die Ereignisprozedur mit der Position und den Abmessungen des roten Quadrats. Danach wird das Seitenverhältnis (Breite durch Höhe) des roten Quadrats mit dem Seitenverhältnis der Bühne im Vollbild verglichen, sodass das Rechteck (fullScreenSourceRect) dem Seitenverhältnis des Bildschirms entsprechend erweitert werden kann. Im Ergebnis nimmt das rote Quadrat die gesamte Höhe des Bildschirms ein, während an beiden Seiten der grüne Hintergrund sichtbar ist. Wenn das Seitenverhältnis nicht angepasst worden wäre, wäre anstelle des grünen Hintergrunds auf beiden Seiten die Hintergrundfarbe der Bühne (standardmäßig weiß) zu sehen.

Hinweis: Testen Sie dieses Beispiel im Browser. Wählen Sie auf der Registerkarte „HTML“ des Dialogfelds „Einstellungen für Veröffentlichungen“ die Vorlage „Nur Flash - Vollbild zulassen“. Geben Sie 9.0.115.0 bei der Flash Player-Version an und achten Sie darauf, dass auf der Registerkarte „Format“ die Formate „Flash“ und „HTML“ ausgewählt sind. Die resultierende HTML-Datei lässt sich im Browser veröffentlichen und öffnen.

import flash.display.Sprite; import flash.display.Stage; import flash.display.StageDisplayState; import flash.events.MouseEvent; import flash.geom.Rectangle; // cover the stage with a green rectangle var greenRect:Sprite = new Sprite(); greenRect.graphics.beginFill(0x00FF00); greenRect.graphics.drawRect(0, 0, stage.stageWidth, stage.stageHeight); addChild(greenRect); // create red square on stage, turn it into a button for going to full screen var redSquare:Sprite = new Sprite(); redSquare.graphics.beginFill(0xFF0000); redSquare.graphics.drawRect(0, 0, 300, 300); redSquare.x = 50; redSquare.y = 50; redSquare.addEventListener(MouseEvent.CLICK, enterFullScreen); redSquare.buttonMode = true; addChild(redSquare); function enterFullScreen(e:MouseEvent):void { // we will go to full screen zoomed in on the red square var redSquare:Sprite = e.target as Sprite; var fullScreenRect:Rectangle = new Rectangle(redSquare.x, redSquare.y, redSquare.width, redSquare.height); // calculate aspect ratio of the red square var rectAspectRatio:Number = fullScreenRect.width / fullScreenRect.height; // calculate aspect ratio of the screen var screenAspectRatio:Number = stage.fullScreenWidth / stage.fullScreenHeight; // change the fullScreenRect so that it covers the entire screen, keeping it centered on the redSquare // try commenting out this section to see what happens if you do not fix the aspect ratio. if (rectAspectRatio > screenAspectRatio) { var newHeight:Number = fullScreenRect.width / screenAspectRatio; fullScreenRect.y -= ((newHeight - fullScreenRect.height) / 2); fullScreenRect.height = newHeight; } else if (rectAspectRatio < screenAspectRatio) { var newWidth:Number = fullScreenRect.height * screenAspectRatio; fullScreenRect.x -= ((newWidth - fullScreenRect.width) / 2); fullScreenRect.width = newWidth; } // go to full screen stage.fullScreenSourceRect = fullScreenRect; stage.displayState = StageDisplayState.FULL_SCREEN; }
displayStatefullScreenSourceRectfullScreenWidthscaleModeStageDisplayStateflash.events.Event.RESIZEflash.events.FullScreenEvent
fullScreenSourceRect Veranlasst die Flash-Laufzeitumgebung einen bestimmten Bereich der Bühne im Vollbildmodus anzuzeigen.flash.geom:Rectangle Veranlasst die Flash-Laufzeitumgebung einen bestimmten Bereich der Bühne im Vollbildmodus anzuzeigen. Falls verfügbar, verwendet die Flash-Laufzeitumgebung die Hardwareskalierung, wobei die Grafik- und Videokarte des Computers genutzt wird und Inhalte im Allgemeinen schneller als bei der Softwareskalierung angezeigt werden.

Wenn diese Eigenschaft auf ein gültiges Rechteck und die Eigenschaft displayState auf den Vollbildmodus gesetzt wird, skaliert die Flash-Laufzeitumgebung den angegebenen Bereich. Die tatsächliche Größe der Bühne in Pixeln innerhalb von ActionScript wird nicht geändert. Die Flash-Laufzeitumgebung erzwingt eine Mindestgröße des Rechtecks, damit die standardmäßige Meldung „Vollbildmodus mit Esc beenden“ darin Platz findet. Diese Mindestgröße beträgt normalerweise ca. 260 x 30 Pixel, kann jedoch je nach Plattform und Flash-Laufzeitumgebungsversion variieren.

Diese Eigenschaft kann nur festgelegt werden, wenn sich die Flash-Laufzeitumgebung nicht im Vollbildmodus befindet. Um diese Eigenschaft richtig zu verwenden, legen Sie sie zuerst fest und setzen Sie dann die Eigenschaft displayState auf den Vollbildmodus, wie in den Codebeispielen dargestellt.

Um die Skalierung zu aktivieren, legen Sie die Eigenschaft fullScreenSourceRect auf ein Rechteckobjekt fest:

// valid, will enable hardware scaling stage.fullScreenSourceRect = new Rectangle(0,0,320,240);

Um die Skalierung zu deaktivieren, legen Sie in ActionScript 3.0 fullScreenSourceRect=null und in ActionScript 2.0 undefined fest.

stage.fullScreenSourceRect = null;

Der Endbenutzer kann die Hardwareskalierung, die standardmäßig aktiviert ist, in den Flash Player-Anzeigeeinstellungen auch deaktivieren. Weitere Informationen finden Sie unter www.adobe.com/go/display_settings_de.

Um die Vorteile der Hardwareskalierung zu nutzen, setzen Sie die gesamte Bühne oder einen Teil der Bühne in den Vollbildmodus. Im folgenden ActionScript 3.0-Code wird die gesamte Bühne in den Vollbildmodus gesetzt: import flash.geom.*; { stage.fullScreenSourceRect = new Rectangle(0,0,320,240); stage.displayState = StageDisplayState.FULL_SCREEN; } Im folgenden Beispiel kann der Benutzer zwischen dem Abspielen eines Videos im Vollbildmodus oder im normalen Bildschirmmodus wechseln, indem er auf die Bühne klickt. Wenn die SWF-Datei für dieses Beispiel in Flash Player 9.0.115.0 oder höher abgespielt wird, wird Hardwarebeschleunigung verwendet, um die Vollbildskalierung der Anzeige zu verbessern.

Damit der Vollbildmodus mit Hardwarebeschleunigung verwendet werden kann, müssen folgende Bedingungen erfüllt sein:

  1. Flash Player 9.0.115.0 oder höher wird benötigt, ebenso ein Authoring-Tool, das diese Version unterstützt.
  2. HTML-Vorlagen müssen modifiziert werden, damit sie den Vollbildmodus unterstützen. Das Attribut allowFullScreen muss für die Tags object und embed auf true gesetzt werden. (Die Skripten, die SWF-Einbettungs-Tags generieren, müssen ebenfalls den Vollbildmodus zulassen.) Beispieldateien, die für Flash Builder verwendet werden können, finden Sie im Artikel Exploring full-screen mode in Flash Player 9.
  3. Ihre Anwendung muss über Zugriffsberechtigungen für eine FLV-Videodatei verfügen. In diesem Beispiel wird davon ausgegangen, dass sich die Flash Video-Datei (FLV) im selben Ordner wie die SWF-Datei befindet.
  4. Der Benutzer muss den Zugriff auf den Vollbildmodus zulassen.
  5. Weitere Informationen zur Hardwareskalierung finden Sie im Artikel Exploring Flash Player support for high-definition H.264 video and AAC audio für Flash Player.

Eine FLV-Datei wird mit den Objekten NetConnection und NetStream geladen. Da sich die FLV-Datei im selben Ordner wie die SWF-Datei befindet und die Verbindung über HTTP hergestellt wird, wird der Parameter der NetConnection.connect()-Methode auf null gesetzt. Das NetConnection-Objekt connect meldet seinen Status, indem ein netStatus-Ereignis ausgelöst wird, welches die netStatusHandler()-Methode aufruft. Die netStatusHandler()-Methode überprüft, ob die Verbindung erfolgreich hergestellt wurde, und ruft die connectStream()-Methode auf, die ein NetStream-Objekt erstellt, welches das NetConnection-Objekt als Parameter annimmt. Sie erstellt auch ein Video-Objekt und fügt das NetStream-Objekt dem Video-Objekt hinzu. Das Video-Objekt wird dann der Anzeigeliste hinzugefügt, und der Stream wird für das Abspielen eingerichtet. Da die FLV-Videodatei keine Metadaten oder Cue-Point-Informationen enthält, wird ein AsyncError-Ereignis ausgelöst. Es muss ein Listener für die Verarbeitung des Ereignisses eingerichtet werden. Hier wurde der Listener erstellt und ignoriert das Ereignis. Ein weiterer Listener für das Ereignis netStatus wurde für das NetStream-Objekt eingerichtet. Er zeigt eine Fehlermeldung an, wenn der Stream nicht gefunden wurde. (Beachten Sie, dass netStatusHandler() für die Verarbeitung beliebig vieler unterschiedlicher Statusinformationen, die für den Stream oder die Verbindung gemeldet werden, verwendet werden könnte.)

Wenn auf die Eigenschaften und Methoden einer geladenen SWF-Datei zugegriffen werden kann, wird die createMouseListener()-Methode aufgerufen. Sie richtet einen Ereignis-Listener für das Klicken auf die Bühne ein. Die toggleFullScreen()-Methode überprüft, ob der Anzeigestatus im Vollbild oder im normalen Modus ist. Für den normalen Modus wird die Größe des Video-Objekts auf die Größe des Videostreams gesetzt. Die fullScreenSourceRect-Eigenschaft wird auf ein Rechteck gesetzt, das den Abmessungen des Video-Objekts entspricht. Dann wird die Stage.displayMode-Eigenschaft auf den Vollbildmodus gesetzt, wodurch das Video im ursprünglichen Rechteck erweitert wird, um den gesamten Vollbildbereich auszufüllen. Wenn die Systemanforderungen erfüllt sind, wird die Grafikhardware des Computers verwendet, um die Leistung der Videodarstellung im Vollbild zu verbessern, und der Anzeigestatus wird auf den Vollbildmodus gesetzt. Um Sicherheitsfehler abzufangen, die beim Wechsel in den Vollbildmodus auftreten könnten, wird eine try...catch-Anweisung verwendet. (Beachten Sie, dass der Anzeigestatus auf den Vollbildmodus gesetzt werden muss, nach die Eigenschaft fullScreenSourceRect gesetzt wurde.) Vor dem Wechsel in den normalen Modus werden die Breite und Höhe des Video-Objekts auf die Werte des gespeicherten ursprünglichen Video-Objekts zurückgesetzt. Andernfalls bestimmen die für den Vollbildmodus am Video-Objekt vorgenommenen Änderungen die Breite und Höhe.

package { import flash.display.Sprite; import flash.display.StageDisplayState; import flash.media.Video; import flash.net.NetConnection; import flash.net.NetStream; import flash.events.NetStatusEvent; import flash.events.AsyncErrorEvent; import flash.events.SecurityErrorEvent; import flash.events.MouseEvent; import flash.events.Event; import flash.geom.Rectangle; public class Stage_fullScreenSourceRectExample2 extends Sprite { private var videoURL:String = "testVideo1.flv"; private var connection:NetConnection; private var stream:NetStream; private var myVideo:Video; private var savedWidth:uint; private var savedHeight:uint; public function Stage_fullScreenSourceRectExample2() { connection = new NetConnection(); connection.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler); connection.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler); connection.connect(null); loaderInfo.addEventListener(Event.INIT, createMouseListener); } private function createMouseListener(event:Event):void { stage.addEventListener(MouseEvent.CLICK, toggleFullScreen); } private function toggleFullScreen(event:MouseEvent):void { if(stage.displayState == StageDisplayState.NORMAL) { myVideo.width = myVideo.videoWidth; myVideo.height = myVideo.videoHeight; try { stage.fullScreenSourceRect = new Rectangle(myVideo.x, myVideo.y, myVideo.width, myVideo.height); stage.displayState = StageDisplayState.FULL_SCREEN; } catch (e:SecurityError) { trace ("A security error occurred while switching to full screen: " + event); myVideo.width = savedWidth; myVideo.height = savedHeight; } }else { myVideo.width = savedWidth; myVideo.height = savedHeight; stage.displayState = StageDisplayState.NORMAL; } } private function netStatusHandler(event:NetStatusEvent):void { switch (event.info.code) { case "NetConnection.Connect.Success": connectStream(); break; case "NetStream.Play.StreamNotFound": trace ("Unable to locate video: " + videoURL); break; } } private function connectStream():void { var stream:NetStream = new NetStream(connection); stream.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler); stream.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler); myVideo = new Video(); myVideo.attachNetStream(stream); stream.play(videoURL); savedWidth = myVideo.width; savedHeight = myVideo.height; addChild(myVideo); } private function securityErrorHandler(event:SecurityErrorEvent):void { trace("securityErrorHandler: " + event); } private function asyncErrorHandler(event:AsyncErrorEvent):void { } } }
flash.display.StageDisplayStateStage.displayStateStage.scaleModeflash.events.FullScreenEventflash.events.Event.RESIZE
fullScreenWidth Setzt die Breite des Monitors, der verwendet wird, wenn der Vollbildmodus aktiviert wird, zurück, falls dieser Modus sofort aufgerufen wird.uint Setzt die Breite des Monitors, der verwendet wird, wenn der Vollbildmodus aktiviert wird, zurück, falls dieser Modus sofort aufgerufen wird. Wenn der Benutzer über mehrere Monitore verfügt, wird der Monitor verwendet, auf dem sich zu diesem Zeitpunkt der größte Teil der Bühne befindet.

Hinweis: Falls der Benutzer die Möglichkeit hat, zwischen dem Abrufen des Wertes und dem Wechseln in den Vollbildmodus den Browser von einem Monitor zu einem anderen zu verschieben, könnte der Wert inkorrekt sein. Wenn Sie den Wert in eine Ereignisprozedur abrufen, die Stage.displayState auf StageDisplayState.FULL_SCREEN setzt, ist der Wert korrekt.

Dies ist die Breite des Monitors in Pixel; dieser Wert ist identisch mit der Breite der Bühne, wenn Stage.align auf den Wert StageAlign.TOP_LEFT und Stage.scaleMode auf den Wert StageScaleMode.NO_SCALE gesetzt ist.

In diesem Beispiel wird ein grünes Rechteck in der Größe der Bühne erstellt. Darauf wird ein rotes Quadrat platziert, das als Schaltfläche aktiviert wird. Durch Klicken auf das rote Quadrat wird die Ereignisprozedur enterFullScreen() ausgelöst, die die Eigenschaft fullScreenSourceRect festlegt und den Vollbildmodus aktiviert. Um die Eigenschaft fullScreenSourceRect festzulegen, beginnt die Ereignisprozedur mit der Position und den Abmessungen des roten Quadrats. Danach wird das Seitenverhältnis (Breite durch Höhe) des roten Quadrats mit dem Seitenverhältnis der Bühne im Vollbild verglichen, sodass das Rechteck (fullScreenSourceRect) dem Seitenverhältnis des Bildschirms entsprechend erweitert werden kann. Im Ergebnis nimmt das rote Quadrat die gesamte Höhe des Bildschirms ein, während an beiden Seiten der grüne Hintergrund sichtbar ist. Wenn das Seitenverhältnis nicht angepasst worden wäre, wäre anstelle des grünen Hintergrunds auf beiden Seiten die Hintergrundfarbe der Bühne (standardmäßig weiß) zu sehen.

Hinweis: Testen Sie dieses Beispiel im Browser. Wählen Sie auf der Registerkarte „HTML“ des Dialogfelds „Einstellungen für Veröffentlichungen“ die Vorlage „Nur Flash - Vollbild zulassen“. Geben Sie 9.0.115.0 bei der Flash Player-Version an und achten Sie darauf, dass auf der Registerkarte „Format“ die Formate „Flash“ und „HTML“ ausgewählt sind. Die resultierende HTML-Datei lässt sich im Browser veröffentlichen und öffnen.

import flash.display.Sprite; import flash.display.Stage; import flash.display.StageDisplayState; import flash.events.MouseEvent; import flash.geom.Rectangle; // cover the stage with a green rectangle var greenRect:Sprite = new Sprite(); greenRect.graphics.beginFill(0x00FF00); greenRect.graphics.drawRect(0, 0, stage.stageWidth, stage.stageHeight); addChild(greenRect); // create red square on stage, turn it into a button for going to full screen var redSquare:Sprite = new Sprite(); redSquare.graphics.beginFill(0xFF0000); redSquare.graphics.drawRect(0, 0, 300, 300); redSquare.x = 50; redSquare.y = 50; redSquare.addEventListener(MouseEvent.CLICK, enterFullScreen); redSquare.buttonMode = true; addChild(redSquare); function enterFullScreen(e:MouseEvent):void { // we will go to full screen zoomed in on the red square var redSquare:Sprite = e.target as Sprite; var fullScreenRect:Rectangle = new Rectangle(redSquare.x, redSquare.y, redSquare.width, redSquare.height); // calculate aspect ratio of the red square var rectAspectRatio:Number = fullScreenRect.width / fullScreenRect.height; // calculate aspect ratio of the screen var screenAspectRatio:Number = stage.fullScreenWidth / stage.fullScreenHeight; // change the fullScreenRect so that it covers the entire screen, keeping it centered on the redSquare // try commenting out this section to see what happens if you do not fix the aspect ratio. if (rectAspectRatio > screenAspectRatio) { var newHeight:Number = fullScreenRect.width / screenAspectRatio; fullScreenRect.y -= ((newHeight - fullScreenRect.height) / 2); fullScreenRect.height = newHeight; } else if (rectAspectRatio < screenAspectRatio) { var newWidth:Number = fullScreenRect.height * screenAspectRatio; fullScreenRect.x -= ((newWidth - fullScreenRect.width) / 2); fullScreenRect.width = newWidth; } // go to full screen stage.fullScreenSourceRect = fullScreenRect; stage.displayState = StageDisplayState.FULL_SCREEN; }
displayStatefullScreenHeightfullScreenSourceRectscaleModeStageDisplayStateflash.events.Event.RESIZEflash.events.FullScreenEvent
height Gibt die Höhe des Anzeigeobjekts in Pixeln an.NumberDurch das Verweisen auf die height-Eigenschaft eines Stage-Objekts wird für jeden Aufrufer, der sich nicht in derselben Sicherheits-Sandbox wie der Bühneneigentümer (die Haupt-SWF-Datei) befindet, eine Ausnahme ausgelöst. Um dies zu verhindern, kann der Bühneneigentümer der Domäne des Aufrufers die entsprechende Berechtigung erteilen, indem er die Methode Security.allowDomain() oder Security.allowInsecureDomain() aufruft. Weitere Informationen finden Sie im Kapitel „Sicherheit“ des ActionScript 3.0 Entwicklerhandbuchs. SecurityErrorSecurityErrorEs ist niemals zulässig, die height-Eigenschaft eines Stage-Objekts zu setzen, selbst wenn das aufrufende Objekt der Bühneneigentümer (die Haupt-SWF-Datei) ist. IllegalOperationErrorflash.errors:IllegalOperationError Gibt die Höhe des Anzeigeobjekts in Pixeln an. Die Höhe wird auf Basis der Begrenzungen des Inhalts des Anzeigeobjekts berechnet. Wenn Sie die Eigenschaft height festsetzen, wird die Eigenschaft scaleY entsprechend angepasst, wie im folgenden Code gezeigt. var rect:Shape = new Shape(); rect.graphics.beginFill(0xFF0000); rect.graphics.drawRect(0, 0, 100, 100); trace(rect.scaleY) // 1; rect.height = 200; trace(rect.scaleY) // 2;

Abgesehen von TextField- und Video-Objekten, hat ein Anzeigeobjekt ohne Inhalt (z. B. ein leeres Sprite) eine Höhe von 0, selbst wenn Sie versuchen, height auf einen anderen Wert zu setzen.

mouseChildren Bestimmt, ob die untergeordneten Elemente des Objekts maus- oder benutzereingabegerätfähig sind oder nicht.BooleanDurch das Verweisen auf die mouseChildren-Eigenschaft eines Stage-Objekts wird für jeden Aufrufer, der sich nicht in derselben Sicherheits-Sandbox wie der Bühneneigentümer (die Haupt-SWF-Datei) befindet, eine Ausnahme ausgelöst. Um dies zu verhindern, kann der Bühneneigentümer der Domäne des Aufrufers die entsprechende Berechtigung erteilen, indem er die Methode Security.allowDomain() oder Security.allowInsecureDomain() aufruft. Weitere Informationen finden Sie im Kapitel „Sicherheit“ des ActionScript 3.0 Entwicklerhandbuchs. SecurityErrorSecurityError Bestimmt, ob die untergeordneten Elemente des Objekts maus- oder benutzereingabegerätfähig sind oder nicht. Wenn ein Objekt aktiviert ist, kann ein Benutzer damit interagieren, indem er eine Maus oder ein anderes Benutzereingabegerät verwendet. Der Standardwert lautet true.

Diese Eigenschaft ist praktisch, wenn Sie eine Schaltfläche mit einer Instanz der Sprite-Klasse (anstelle der SimpleButton-Klasse) erstellen. Wenn Sie zum Erstellen einer Schaltfläche eine Sprite-Instanz verwenden, können Sie die Schaltfläche ausrüsten und mithilfe der addChild()-Methode zusätzliche Sprite-Instanzen hinzufügen. Dieser Vorgang kann zu unerwarteten Verhaltensweisen bei Mausereignissen führen, da die untergeordneten Sprite-Instanzen zum Zielobjekt eines Mausereignisses werden können, wenn eigentlich die übergeordnete Instanz des Zielobjekts erwartet wird. Um sicherzustellen, dass die übergeordnete Instanz als Zielobjekt für Mausereignisse dient, können Sie die mouseChildren-Eigenschaft der übergeordneten Instanz auf false setzen.

Durch das Festlegen dieser Eigenschaft wird kein Ereignis ausgelöst. Um interaktive Funktionalität zu erzielen, müssen Sie die addEventListener()-Methode verwenden.

nativeWindow Ein Verweis auf das NativeWindow-Objekt, das diese Bühne enthält.flash.display:NativeWindow Ein Verweis auf das NativeWindow-Objekt, das diese Bühne enthält.

Das Fenster repräsentiert das Fenster des nativen Betriebssystems; die Bühne repräsentiert den Inhalt des Fensters. Diese Eigenschaft ist nur gültig für Inhalt, der auf Plattformen, die die NativeWindow-Klasse unterstützen, in AIR ausgeführt wird. Bei anderen Plattformen ist diese Eigenschaft null. In Flash Player (in einem Browser ausgeführter Inhalt) ist diese Eigenschaft ebenfalls null.

numChildren Liefert die Anzahl der Objekte, die diesem Objekt untergeordnet sind.intDurch das Verweisen auf die numChildren-Eigenschaft eines Stage-Objekts wird für jeden Aufrufer, der sich nicht in derselben Sicherheits-Sandbox wie der Bühneneigentümer (die Haupt-SWF-Datei) befindet, eine Ausnahme ausgelöst. Um dies zu verhindern, kann der Bühneneigentümer der Domäne des Aufrufers die entsprechende Berechtigung erteilen, indem er die Methode Security.allowDomain() oder Security.allowInsecureDomain() aufruft. Weitere Informationen finden Sie im Kapitel „Sicherheit“ des ActionScript 3.0 Entwicklerhandbuchs. SecurityErrorSecurityError Liefert die Anzahl der Objekte, die diesem Objekt untergeordnet sind. orientation Die aktuelle Ausrichtung der Bühne.String Die aktuelle Ausrichtung der Bühne. Diese Eigenschaft wird auf einen der vier Werte gesetzt, die in der StageOrientation-Klasse als Konstanten definiert sind: StageOrientation-KonstanteBühnenausrichtungStageOrientation.DEFAULTDer Bildschirm befindet sich in der Standardausrichtung (rechte Seite nach oben).StageOrientation.ROTATED_RIGHTDer Bildschirm ist nach rechts gedreht.StageOrientation.ROTATED_LEFTDer Bildschirm ist nach links gedreht.StageOrientation.UPSIDE_DOWNDer Bildschirm ist auf den Kopf gedreht.StageOrientation.UNKNOWNDie Anwendung hat die anfängliche Ausrichtung des Bildschirms noch nicht bestimmt. Sie können einen Ereignis-Listener für das orientationChange-Ereignis hinzufügen

Um die Bühnenausrichtung festzulegen, verwenden Sie die setOrientation()-Methode.

Wichtig: Die orientation-Eigenschaft wird auf Android-Geräten ab 2.6-Namespace unterstützt.

StageOrientationautoOrientsdeviceOrientationsupportsOrientationChange
quality Ein Wert der StageQuality-Klasse, der die verwendete Wiedergabequalität angibt.StringDurch Aufrufen der quality-Eigenschaft eines Stage-Objekts wird für jeden Aufrufer, der sich nicht in derselben Sicherheits-Sandbox wie der Bühneneigentümer (die Haupt-SWF-Datei) befindet, eine Ausnahme ausgelöst. Um dies zu verhindern, kann der Bühneneigentümer der Domäne des Aufrufers die entsprechende Berechtigung erteilen, indem er die Methode Security.allowDomain() oder Security.allowInsecureDomain() aufruft. Weitere Informationen finden Sie im Kapitel „Sicherheit“ des ActionScript 3.0 Entwicklerhandbuchs. SecurityErrorSecurityError Ein Wert der StageQuality-Klasse, der die verwendete Wiedergabequalität angibt. Folgende Werte sind gültig:
  • StageQuality.LOW: Niedrige Wiedergabequalität. Für Grafiken wird kein Anti-Aliasing und für Bitmaps keine Glättung durchgeführt, aber in Laufzeitumgebungen wird weiterhin MIP-Mapping verwendet.
  • StageQuality.MEDIUM: Mittlere Wiedergabequalität. Für Grafiken wird ein Anti-Aliasing mit einem 2x2-Pixelraster durchgeführt. Das Glätten von Bitmaps hängt von der Einstellung Bitmap.smoothing ab. Für Laufzeitumgebungen wird MIP-Mapping verwendet. Diese Einstellung ist für Filme geeignet, die keinen Text enthalten.
  • StageQuality.HIGH: Hohe Wiedergabequalität. Für Grafiken wird ein Anti-Aliasing mit einem 4x4-Pixelraster durchgeführt. Das Glätten von Bitmaps hängt von der Einstellung Bitmap.smoothing ab. Für Laufzeitumgebungen wird MIP-Mapping verwendet. Dies ist die von Flash Player verwendete Standardeinstellung für die Wiedergabequalität.
  • StageQuality.BEST: Maximale Wiedergabequalität. Für Grafiken wird ein Anti-Aliasing mit einem 4x4-Pixelraster durchgeführt. Wenn Bitmap.smoothing den Wert true aufweist, verwendet die Laufzeitumgebung einen hochwertigen Algorithmus für die Verkleinerung, durch den weniger Artefakte entstehen (bei Verwendung von StageQuality.BEST mit Bitmap.smoothing und dem Wert true verringert sich die Leistung jedoch erheblich; daher wird diese Einstellung nicht empfohlen).

Bei höheren Qualitätseinstellungen werden skalierte Bitmaps besser dargestellt. Höhere Qualitätseinstellungen beanspruchen jedoch auch mehr Computerressourcen. Besonders bei der Wiedergabe von skaliertem Video kann eine hohe Qualitätseinstellung die Bildrate verringern.

Im Desktop-Profil von Adobe AIR kann tquality auf StageQuality.BEST oder StageQuality.HIGH gesetzt werden (der Standardwert ist StageQuality.HIGH). Der Versuch, die Eigenschaft auf einen anderen Wert einzustellen, hat keinerlei Auswirkungen (und die Eigenschaft wird nicht geändert). Im mobile-Profil von AIR sind alle vier Qualitätseinstellungen verfügbar. Der Standardwert für mobile Geräte ist StageQuality.MEDIUM.

Bei Inhalt, der in Adobe AIR ausgeführt wird, gilt Folgendes: Wenn die quality-Eigenschaft für ein Stage-Objekt eingestellt wird, ändert dies die Wiedergabequalität für alle Stage-Objekte (von unterschiedlichen NativeWindow-Objekten verwendet).

Hinweis: Da das Betriebssystem die Geräteschriften zeichnet, hat die quality-Eigenschaft darauf keine Auswirkung.
flash.display.StageQualityflash.display.Bitmap.smoothing
scaleMode Ein Wert aus der StageScaleMode-Klasse, mit dem angegeben wird, welcher Skalierungsmodus verwendet werden soll.StringDurch Aufrufen der scaleMode-Eigenschaft eines Stage-Objekts wird für jeden Aufrufer, der sich nicht in derselben Sicherheits-Sandbox wie der Bühneneigentümer (die Haupt-SWF-Datei) befindet, eine Ausnahme ausgelöst. Um dies zu verhindern, kann der Bühneneigentümer der Domäne des Aufrufers die entsprechende Berechtigung erteilen, indem er die Methode Security.allowDomain() oder Security.allowInsecureDomain() aufruft. Weitere Informationen finden Sie im Kapitel „Sicherheit“ des ActionScript 3.0 Entwicklerhandbuchs. SecurityErrorSecurityErrorEin Wert aus der StageScaleMode-Klasse, mit dem angegeben wird, welcher Skalierungsmodus verwendet werden soll. Ein Wert aus der StageScaleMode-Klasse, mit dem angegeben wird, welcher Skalierungsmodus verwendet werden soll. Folgende Werte sind gültig:
  • StageScaleMode.EXACT_FIT: Die gesamte Anwendung wird im angegebenen Bereich angezeigt. Das ursprüngliche Seitenverhältnis wird nicht beibehalten. Verzerrungen können auftreten und die Anwendung erscheint möglicherweise gestreckt oder gestaucht.
  • StageScaleMode.SHOW_ALL: Die gesamte Anwendung wird im angegebenen Bereich verzerrungsfrei angezeigt. Dabei bleibt das ursprüngliche Seitenverhältnis der Anwendung erhalten. Unter Umständen werden an zwei Seiten der Anwendung Ränder angezeigt.
  • StageScaleMode.NO_BORDER: Die gesamte Anwendung füllt den angegebenen Bereich so, dass er ohne Verzerrung in den angegebenen Bereich passt. Bei Bedarf wird jedoch zugeschnitten. Das ursprüngliche Seitenverhältnis der Anwendung bleibt erhalten.
  • StageScaleMode.NO_SCALE: Die gesamte Anwendung wird fixiert und bleibt auch dann unverändert, wenn sich die Größe des Player-Fensters ändert. Ist das Player-Fenster kleiner als der Flash-Inhalt, wird der Inhalt zugeschnitten.
flash.display.StageScaleMode
showDefaultContextMenu Gibt an, ob die Standardelemente im Kontextmenü der Flash-Laufzeitumgebung ein- oder ausgeblendet werden.BooleanDurch Aufrufen der showDefaultContextMenu-Eigenschaft eines Stage-Objekts wird für jeden Aufrufer, der sich nicht in derselben Sicherheits-Sandbox wie der Bühneneigentümer (die Haupt-SWF-Datei) befindet, eine Ausnahme ausgelöst. Um dies zu verhindern, kann der Bühneneigentümer der Domäne des Aufrufers die entsprechende Berechtigung erteilen, indem er die Methode Security.allowDomain() oder Security.allowInsecureDomain() aufruft. Weitere Informationen finden Sie im Kapitel „Sicherheit“ des ActionScript 3.0 Entwicklerhandbuchs. SecurityErrorSecurityErrorGibt an, ob die Standardelemente im Kontextmenü des Flash Players ein- oder ausgeblendet werden. Gibt an, ob die Standardelemente im Kontextmenü der Flash-Laufzeitumgebung ein- oder ausgeblendet werden.

Wenn die showDefaultContextMenu-Eigenschaft auf true gesetzt ist (die Standardeinstellung), werden alle Elemente des Kontextmenüs eingeblendet. Wenn die showDefaultContextMenu-Eigenschaft auf false gesetzt ist, werden nur die Befehle „Einstellungen“ und „Info...“ angezeigt.

softKeyboardRect Der Bereich der Bühne, der zurzeit von der virtuellen Tastatur verdeckt wird.flash.geom:Rectangle Der Bereich der Bühne, der zurzeit von der virtuellen Tastatur verdeckt wird.

Der Bereich hat eine Größe von null (0,0,0,0), wenn die virtuelle Tastatur nicht sichtbar ist.

Wenn die Tastatur geöffnet wird, wird softKeyboardRect in dem Moment gesetzt, in dem das softKeyboardActivate-Ereignis abgesetzt wird. Ändert sich die Größe der Tastatur, während sie geöffnet ist, aktualisiert die Laufzeitumgebung die softKeyboardRect-Eigenschaft und setzt ein weiteres softKeyboardActivate-Eigenschaft ab.

Hinweis: Unter Android wird der von der Tastatur verdeckte Bereich geschätzt, wenn das Betriebssystem nicht die erforderlichen Informationen zur genauen Bestimmung des Bereichs bereitstellt. Dieses Problem tritt im Vollbildmodus auf und auch, wenn die Tastatur als Antwort auf die Fokusübergabe an eine InteractiveObject-Instanz oder durch Aufrufen der requestSoftKeyboard()-Methode geöffnet wird.

SoftKeyboardEventInteractiveObject.needsSoftKeyboard
stageFocusRect Bestimmt, ob Objekte mit leuchtendem Rahmen angezeigt werden, wenn sie den Fokus besitzen.BooleanDurch Aufrufen der stageFocusRect-Eigenschaft eines Stage-Objekts wird für jeden Aufrufer, der sich nicht in derselben Sicherheits-Sandbox wie der Bühneneigentümer (die Haupt-SWF-Datei) befindet, eine Ausnahme ausgelöst. Um dies zu verhindern, kann der Bühneneigentümer der Domäne des Aufrufers die entsprechende Berechtigung erteilen, indem er die Methode Security.allowDomain() oder Security.allowInsecureDomain() aufruft. Weitere Informationen finden Sie im Kapitel „Sicherheit“ des ActionScript 3.0 Entwicklerhandbuchs. SecurityErrorSecurityErrorBestimmt, ob Objekte mit leuchtendem Rahmen angezeigt werden, wenn sie den Fokus besitzen. Bestimmt, ob Objekte mit leuchtendem Rahmen angezeigt werden, wenn sie den Fokus besitzen. stageHeight Die aktuelle Höhe der Bühne in Pixel.intDurch Aufrufen der stageHeight-Eigenschaft eines Stage-Objekts wird für jeden Aufrufer, der sich nicht in derselben Sicherheits-Sandbox wie der Bühneneigentümer (die Haupt-SWF-Datei) befindet, eine Ausnahme ausgelöst. Um dies zu verhindern, kann der Bühneneigentümer der Domäne des Aufrufers die entsprechende Berechtigung erteilen, indem er die Methode Security.allowDomain() oder Security.allowInsecureDomain() aufruft. Weitere Informationen finden Sie im Kapitel „Sicherheit“ des ActionScript 3.0 Entwicklerhandbuchs. SecurityErrorSecurityError Die aktuelle Höhe der Bühne in Pixel.

Wenn der Wert der Stage.scaleMode-Eigenschaft auf StageScaleMode.NO_SCALE eingestellt ist und der Benutzer die Fenstergröße ändert, behält der Bühneninhalt seine definierte Größe bei, während die stageHeight-Eigenschaft sich ändert und dann der neuen Höhe des Bildschirmbereichs entspricht, in dem die SWF-Datei angezeigt wird. (Bei den anderen Skalierungsmodi entspricht die stageHeight-Eigenschaft immer der Originalhöhe der SWF-Datei.) Sie können einen Ereignis-Listener für das resize-Ereignis hinzufügen und dann über die stageHeight-Eigenschaft der Stage-Klasse die tatsächlichen Pixelabmessungen des Flash-Laufzeitumgebungsfensters bestimmen, dessen Größe geändert wurde. Über den Ereignis-Listener können Sie steuern, wie der Bildschirminhalt angepasst wird, wenn der Benutzer die Fenstergröße ändert.

Geräte mit AIR für TV verhalten sich anders als Desktopgeräte, wenn Sie die stageHeight-Eigenschaft festlegen. Wenn die Stage.scaleMode-Eigenschaft auf StageScaleMode.NO_SCALE gesetzt ist und Sie die stageHeight-Eigenschaft festlegen, wird die Bühnenhöhe erst im nächsten Bild der SWF-Datei geändert.

Hinweis: Auf einer HTML-Seite, die die SWF-Datei enthält, muss für die beiden Tags object und embed das zugehörige height-Attribut auf einen Prozentwert eingestellt werden (wie 100 %), nicht auf Pixel. Wenn die Einstellungen von JavaScript-Code generiert werden, muss der height-Parameter der AC_FL_RunContent()-Methode ebenfalls auf einen Prozentwert eingestellt werden. Dieser Prozentsatz wird auf den Wert von stageHeight angewendet.

flash.display.StageScaleMode
stageVideos Eine Liste der StageVideo-Objekte, die zum Abspielen externer Videos verfügbar sind. Eine Liste der StageVideo-Objekte, die zum Abspielen externer Videos verfügbar sind.

Sie können jeweils nur eine begrenzte Anzahl von StageVideo-Objekten verwenden. Wenn die Ausführung einer SWF-Datei beginnt, richtet sich die Anzahl der verfügbaren StageVideo-Objekte nach der Plattform und der verfügbaren Hardware.

Um ein StageVideo-Objekt zu verwenden, weisen Sie ein Mitglied des stageVideos-Vektorobjekts einer StageVideo-Variable zu.

Alle StageVideo-Objekte werden auf der Bühne hinter allen Anzeigeobjekten angezeigt. Die StageVideo-Objekte werden auf der Bühne in der Reihenfolge angezeigt, in der sie im stageVideos-Vektorobjekt erscheinen. Beispiel: Das stageVideos-Vektorobjekt enthält drei Einträge :

  1. Das StageVideo-Objekt an der Indexposition 0 des stageVideos-Vektorobjekts wird hinter allen StageVideo-Objekten angezeigt.
  2. Das StageVideo-Objekt an der Indexposition 1 wird vor dem StageVideo-Objekt an der Indexposition 0 angezeigt.
  3. Das StageVideo-Objekt an der Indexposition 2 wird vor dem StageVideo-Objekt an der Indexposition 1 angezeigt.

Mit der StageVideo.depth-Eigenschaft können Sie diese Reihenfolge ändern.

Hinweis: Geräte mit AIR für TV unterstützen nur ein StageVideo-Objekt.

Der folgende Code zeigt, wie ein StageVideo-Objekt abgerufen wird: var stageVideo:StageVideo; if ( stage.stageVideos.length >= 1 ) { stageVideo = stage.stageVideos[0]; }
flash.media.StageVideoflash.events.StageVideoEvent
stageWidth Bestimmt die aktuelle Breite der Bühne in Pixel.intDurch Aufrufen der stageWidth-Eigenschaft eines Stage-Objekts wird für jeden Aufrufer, der sich nicht in derselben Sicherheits-Sandbox wie der Bühneneigentümer (die Haupt-SWF-Datei) befindet, eine Ausnahme ausgelöst. Um dies zu verhindern, kann der Bühneneigentümer der Domäne des Aufrufers die entsprechende Berechtigung erteilen, indem er die Methode Security.allowDomain() oder Security.allowInsecureDomain() aufruft. Weitere Informationen finden Sie im Kapitel „Sicherheit“ des ActionScript 3.0 Entwicklerhandbuchs. SecurityErrorSecurityError Bestimmt die aktuelle Breite der Bühne in Pixel.

Wenn der Wert der Stage.scaleMode-Eigenschaft auf StageScaleMode.NO_SCALE eingestellt ist und der Benutzer die Fenstergröße ändert, behält der Bühneninhalt seine definierte Größe bei, während die stageWidth-Eigenschaft sich ändert und dann der neuen Breite des Bildschirmbereichs entspricht, in dem die SWF-Datei angezeigt wird. (Bei den anderen Skalierungsmodi entspricht die stageWidth-Eigenschaft immer der Originalbreite der SWF-Datei.) Sie können einen Ereignis-Listener für das resize-Ereignis hinzufügen und dann über die stageWidth-Eigenschaft der Stage-Klasse die tatsächlichen Pixelabmessungen des Flash-Laufzeitumgebungsfensters bestimmen, dessen Größe geändert wurde. Über den Ereignis-Listener können Sie steuern, wie der Bildschirminhalt angepasst wird, wenn der Benutzer die Fenstergröße ändert.

Geräte mit AIR für TV verhalten sich anders als Desktopgeräte, wenn Sie die stageWidth-Eigenschaft festlegen. Wenn die Stage.scaleMode-Eigenschaft auf StageScaleMode.NO_SCALE gesetzt ist und Sie die stageWidth-Eigenschaft festlegen, wird die Bühnenbreite erst im nächsten Bild der SWF-Datei geändert.

Hinweis: Auf einer HTML-Seite, die die SWF-Datei enthält, muss für die beiden Tags object und embed das zugehörige width-Attribut auf einen Prozentwert eingestellt werden (wie 100 %), nicht auf Pixel. Wenn die Einstellungen von JavaScript-Code generiert werden, muss der width-Parameter der AC_FL_RunContent()-Methode ebenfalls auf einen Prozentwert eingestellt werden. Dieser Prozentsatz wird auf den Wert von stageWidth angewendet.

flash.display.StageScaleMode
supportedOrientations Die vom aktuellen Gerät unterstützten Ausrichtungen. Die vom aktuellen Gerät unterstützten Ausrichtungen.

Sie können die in dieser Liste enthaltenen orientation-Strings als Parameters für die setOrientation()-Methode verwenden. Wenn Sie eine nicht unterstützte Ausrichtung festlegen, kommt es zu einem Fehler.

Die möglichen Ausrichtungen sind:

StageOrientation-KonstanteBühnenausrichtungStageOrientation.DEFAULTLegt die Bühnenausrichtung auf die Standardausrichtung (rechte Seite oben) fest.StageOrientation.ROTATED_RIGHTLegt die Bühnenausrichtung als nach rechts gedreht fest.StageOrientation.ROTATED_LEFTLegt die Bühnenausrichtung als nach links gedreht fest.StageOrientation.UPSIDE_DOWNLegt die Bühnenausrichtung als auf den Kopf gedreht fest.
StageOrientationautoOrientssetOrientationorientation
supportsOrientationChange Ob die Anwendung Änderungen an der Bühnenausrichtung (und Gerätedrehung) unterstützt.Boolean Ob die Anwendung Änderungen an der Bühnenausrichtung (und Gerätedrehung) unterstützt. Zurzeit hat diese Eigenschaft nur in AIR-Anwendungen, die auf mobilen Geräten ausgeführt werden, den Wert true. autoOrientsdeviceOrientationsupportsOrientationChangetabChildren Bestimmt, ob die dem Objekt untergeordneten Objekte per Tabulatortaste aktivierbar sind.BooleanDurch das Verweisen auf die tabChildren-Eigenschaft eines Stage-Objekts wird für jeden Aufrufer, der sich nicht in derselben Sicherheits-Sandbox wie der Bühneneigentümer (die Haupt-SWF-Datei) befindet, eine Ausnahme ausgelöst. Um dies zu verhindern, kann der Bühneneigentümer der Domäne des Aufrufers die entsprechende Berechtigung erteilen, indem er die Methode Security.allowDomain() oder Security.allowInsecureDomain() aufruft. Weitere Informationen finden Sie im Kapitel „Sicherheit“ des ActionScript 3.0 Entwicklerhandbuchs. SecurityErrorSecurityError Bestimmt, ob die dem Objekt untergeordneten Objekte per Tabulatortaste aktivierbar sind. Aktiviert oder deaktiviert die Möglichkeit zur Auswahl von untergeordneten Objekten mithilfe der Tabulatortaste. Der Standardwert lautet true.

Hinweis: Verwenden Sie die tabChildren-Eigenschaft nicht in Flex. Verwenden Sie stattdessen die mx.core.UIComponent.hasFocusableChildren-Eigenschaft.

textSnapshot Liefert ein TextSnapshot-Objekt für diese DisplayObjectContainer-Instanz.flash.text:TextSnapshotEin Verweis auf die textSnapshot-Eigenschaft eines Stage-Objekts löst eine Ausnahme aus, da diese Eigenschaft nicht in der Stage-Klasse implementiert ist. Um dies zu verhindern, rufen Sie die textSnapshot-Eigenschaft eines Anzeigeobjekt-Containers auf, der nicht das Stage-Objekt ist. IllegalOperationErrorflash.errors:IllegalOperationError Liefert ein TextSnapshot-Objekt für diese DisplayObjectContainer-Instanz. width Gibt die Breite des Anzeigeobjekts in Pixeln an.NumberDurch das Verweisen auf die width-Eigenschaft eines Stage-Objekts wird für jeden Aufrufer, der sich nicht in derselben Sicherheits-Sandbox wie der Bühneneigentümer (die Haupt-SWF-Datei) befindet, eine Ausnahme ausgelöst. Um dies zu verhindern, kann der Bühneneigentümer der Domäne des Aufrufers die entsprechende Berechtigung erteilen, indem er die Methode Security.allowDomain() oder Security.allowInsecureDomain() aufruft. Weitere Informationen finden Sie im Kapitel „Sicherheit“ des ActionScript 3.0 Entwicklerhandbuchs. SecurityErrorSecurityErrorEs ist niemals zulässig, die width-Eigenschaft eines Stage-Objekts zu setzen, selbst wenn Sie der Bühneneigentümer sind. IllegalOperationErrorflash.errors:IllegalOperationError Gibt die Breite des Anzeigeobjekts in Pixeln an. Die Breite wird auf Basis der Begrenzungen des Inhalts des Anzeigeobjekts berechnet. Wenn Sie die Eigenschaft width festsetzen, wird die Eigenschaft scaleX entsprechend angepasst, wie im folgenden Code gezeigt. var rect:Shape = new Shape(); rect.graphics.beginFill(0xFF0000); rect.graphics.drawRect(0, 0, 100, 100); trace(rect.scaleX) // 1; rect.width = 200; trace(rect.scaleX) // 2;

Abgesehen von TextField- und Video-Objekten, hat ein Anzeigeobjekt ohne Inhalt (z. B. ein leeres Sprite) eine Breite von 0, selbst wenn Sie versuchen, width auf einen anderen Wert zu setzen.

wmodeGPU Gibt an, ob GPU-Compositing verfügbar ist und verwendet wird.Boolean Gibt an, ob GPU-Compositing verfügbar ist und verwendet wird. Der Wert von wmodeGPU ist nur dann true, wenn alle drei der folgenden Bedingungen erfüllt sind:

  • GPU-Compositing wurde angefordert.
  • GPU-Compositing ist verfügbar.
  • GPU-Compositing wird verwendet.

Insbesondere die wmodeGPU-Eigenschaft gibt einen der folgenden Fälle an:

  1. GPU-Compositing wurde nicht angefordert oder ist nicht verfügbar. In diesem Fall hat die wmodeGPU-Eigenschaft den Wert false.
  2. GPU-Compositing wurde angefordert (falls zutreffend und verfügbar), die Umgebung arbeitet aufgrund von Einschränkungen des Inhalts jedoch im „Fallbackmodus“ (keine optimale Darstellung). In diesem Fall hat die wmodeGPU-Eigenschaft den Wert true.
  3. GPU-Compositing wurde angefordert (falls zutreffend und verfügbar), die Umgebung arbeitet im besten Modus. In diesem Fall hat die wmodeGPU-Eigenschaft ebenfalls den Wert true.

Anders ausgedrückt identifiziert die wmodeGPU-Eigenschaft die Fähigkeiten und den Status der Darstellungsumgebung. Bei Laufzeitumgebungen, die GPU-Compositing nicht unterstützen, wie AIR 1.5.2, ist der Wert immer false, da (wie oben beschrieben) der Wert nur dann true ist, wenn GPU-Compositing angefordert wurde, verfügbar ist und verwendet wird.

Die wmodeGPU-Eigenschaft ist hilfreich, um zur Laufzeit festzustellen, ob GPU-Compositing verwendet wird oder nicht. Der Wert von wmodeGPU gibt an, ob Ihr Inhalt von der Hardware skaliert wird oder nicht, sodass Sie Grafiken in der richtigen Größe präsentieren können. Sie können auch feststellen, ob Sie über einen schnellen Pfad rendern oder nicht, sodass Sie die Komplexität Ihrer Inhalte entsprechend anpassen können.

Für Flash Player, der in einem Browser ausgeführt wird, kann GPU-Compositing durch den Wert gpu für den wmode-HTML-Parameter auf der Seite, die den SWF-Datei hostet, angefordert werden. Bei anderen Konfigurationen kann GPU-Compositing im Header einer SWF-Datei angefordert werden (die Einstellung erfolgt über SWF-Authoring-Tools).

Die wmodeGPU-Eigenschaft identifiziert nicht die aktuelle Renderingleistung. Auch wenn GPU-Compositing „verwendet wird“, läuft der Renderingvorgang nicht unbedingt im besten Modus. Um den Inhalt für die optimale Darstellung anzupassen, verwenden Sie eine Debugger-Version einer Flash-Laufzeitumgebung und stellen Sie DisplayGPUBlendsetting in Ihrer Datei „mm.cfg“ ein.

Hinweis: Diese Eigenschaft hat immer den Wert false, wenn aus ActionScript darauf verwiesen wird, das ausgeführt wird, bevor die Laufzeitumgebung ihren ersten Renderingdurchgang ausführt. Wenn Sie wmodeGPU zum Beispiel von einem Skript in Bild 1 in Adobe Flash Professional untersuchen und Ihre SWF-Datei die erste SWF-Datei ist, die in eine neue Instanz der Laufzeitumgebung geladen wird, ist hat wmodeGPU den Wert false. Um einen genauen Wert zu erhalten, warten Sie, bis wenigstens ein Renderingdurchgang erfolgt ist. Wenn Sie einen Ereignis-Listener für das exitFrame-Eigenschaft eines DisplayObject schreiben, hat wmodeGPU den korrekten Wert.

Im folgenden Beispiel wird die wmodeGPU-Eigenschaft untersucht, nachdem das mySprite-Anzeigeobjekt gerendert wurde, sodass Sie einen genauen Wert erhalten. mySprite.addEventListener(EXIT_FRAME, exithandler): function exithandler(exiteventobject:Event):void { trace(stage.wmodeGPU); }
DisplayObject-exitFrame-Ereignis
NativeWindowInitOptions Die NativeWindowInitOptions-Klasse definiert die Initialisierungsoptionen, die für die Erstellung einer neuen NativeWindow-Instanz verwendet werden.Object Die NativeWindowInitOptions-Klasse definiert die Initialisierungsoptionen, die für die Erstellung einer neuen NativeWindow-Instanz verwendet werden.

Die in den Initialisierungsoptionen definierten Eigenschaften können nach der Erstellung eines Fensters nicht mehr geändert werden.

Hinweis: Für das von AIR automatisch erstellte erste Anwendungsfenster sind alle diese Eigenschaften (mit Ausnahme von type) im Anwendungsdeskriptor festgelegt. Das ursprüngliche Fenster hat immer den Typ NativeWindowType.NORMAL.

flash.display.NativeWindowflash.display.NativeWindowTypeflash.display.NativeWindowSystemChromeNativeWindowInitOptions Erstellt ein neues NativeWindowInitOptions-Objekt. Erstellt ein neues NativeWindowInitOptions-Objekt.

Die Standardwerte des neu erstellten Objekts lauten:

  • systemChrome = NativeWindowSystemChrome.STANDARD
  • type = NativeWindowType.NORMAL
  • transparent = false
  • owner = null
  • resizable = true
  • maximizable = true
  • minimizable = true
maximizable Legt fest, ob ein Fenster durch den Benutzer maximiert werden kann.Booleantrue Legt fest, ob ein Fenster durch den Benutzer maximiert werden kann.

Bei Fenstern mit Systemchrom beeinflusst diese Einstellung die Darstellung der Maximierungsschaltfläche des Fensters. Sie beeinflusst zudem andere Teile der systemverwalteten Benutzeroberfläche, wie das Fenster-Menü unter Microsoft Windows.

Wenn diese Eigenschaft auf false gesetzt ist, kann das Fenster durch den Benutzer nicht maximiert werden. Durch das Aufrufen der maximize()-Methode von NativeWindow wird das Fenster unmittelbar maximiert.

Hinweise zum Verhalten des Betriebssystems:

  • Unter Betriebssystemen wie Mac OS X, bei denen eine Maximierung des Fensters die Größenänderung nicht verhindert, müssen sowohl maximizable als auch resizable auf false eingestellt werden, um zu verhindern, dass die Fenstergröße geändert wird.
  • Einige Linux-Fenstermanager lassen das Maximieren von Fenstern durch den Benutzer zu, selbst wenn die maximizable-Eigenschaft den Wert false aufweist.
flash.display.NativeWindow.displayState
minimizable Legt fest, ob ein Fenster durch den Benutzer minimiert werden kann.Booleantrue Legt fest, ob ein Fenster durch den Benutzer minimiert werden kann.

Bei Fenstern mit Systemchrom beeinflusst diese Einstellung die Darstellung der Minimierungsschaltfläche des Fensters. Sie beeinflusst zudem andere Teile der systemverwalteten Benutzeroberfläche, wie das Fenster-Menü unter Microsoft Windows.

Wenn diese Eigenschaft auf false gesetzt ist, kann das Fenster durch den Benutzer nicht minimiert werden. Durch das Aufrufen der minimize()-Methode von NativeWindow wird das Fenster unmittelbar minimiert.

Hinweis: Einige Linux-Fenstermanager lassen das Minimieren von Fenstern durch den Benutzer zu, selbst wenn die minimizable-Eigenschaft den Wert false aufweist.

flash.display.NativeWindow.displayState
owner Gibt das NativeWindow-Objekt an, das Eigentümer aller mit diesen NativeWindowInitOptions erstellten Fenster ist.flash.display:NativeWindow<code>null</code> Gibt das NativeWindow-Objekt an, das Eigentümer aller mit diesen NativeWindowInitOptions erstellten Fenster ist.

Wenn ein Fenster einen Eigentümer hat, wird dieses Fenster immer vor seinem Eigentümer angezeigt und wird zusammen mit seinem Eigentümer minimiert, ausgeblendet und geschlossen.

flash.display.NativeWindow.ownerflash.display.NativeWindow.listOwnedWindows()
resizable Legt fest, ob die Fenstergröße durch den Benutzer geändert werden kann.Booleantrue Legt fest, ob die Fenstergröße durch den Benutzer geändert werden kann.

Wenn diese Eigenschaft auf false gesetzt ist, kann die Fenstergröße durch einen Benutzer, der Systemchrom verwendet, nicht geändert werden. Durch Aufrufen der startResize()-Methode von NativeWindow als Antwort auf ein Mausereignis kann der Benutzer die Größe des Fensters ändern. Die Fenstergröße kann auch durch das direkte Setzen der Fenstergrenzen geändert werden.

Hinweise zum Verhalten des Betriebssystems:

  • Unter Betriebssystemen wie Mac OS X, bei denen die Fenstermaximierung eine Größenänderungsoperation ist, müssen sowohl maximizable als auch resizable auf false eingestellt werden, um zu verhindern, dass die Fenstergröße geändert wird.
  • Einige Linux-Fenstermanager lassen das Ändern der Fenstergröße durch den Benutzer zu, selbst wenn die resizable-Eigenschaft den Wert false aufweist.
flash.display.NativeWindow.bounds
systemChrome Legt fest, ob Systemchrom für das Fenster zur Verfügung steht.StringNativeWindowSystemChrome.STANDARD Legt fest, ob Systemchrom für das Fenster zur Verfügung steht.

Chrom bezieht sich auf die Fenstersteuerungen, über die der Benutzer die Desktop-Eigenschaften eines Fensters steuern kann. Das Systemchrom verwendet die Standardsteuerungen der Desktop-Umgebung, in der die AIR-Anwendung ausgeführt wird, und entspricht der standardmäßigen Gestaltung des nativen Betriebssystems.

Um von einem Framework (wie Flex) bereitgestelltes Chrom zu verwenden oder um eigenes Fensterchrom anzugeben, stellen Sie systemChrome auf NativeWindowSystemChrome.NONE ein.

Konstanten für die gültigen Werte dieser Eigenschaft sind in der NativeWindowSystemChrome-Klasse definiert:

  • NativeWindowSystemChrome.NONE
  • NativeWindowSystemChrome.STANDARD

Wird keine Angabe gemacht, gilt für systemChrome der Standardwert NativeWindowSystemChrome.STANDARD.

Bei Fenstern mit Systemchrom kann die transparent-Eigenschaft nicht auf true gesetzt werden.

flash.display.NativeWindowSystemChrome
transparent Gibt an, ob das Fenster Transparenz und Alpha-Blending zum Desktop unterstützt.Booleanfalse Gibt an, ob das Fenster Transparenz und Alpha-Blending zum Desktop unterstützt.

Bei der Einstellung true wird die Fensteranzeige vor dem Desktop zusammengesetzt. Fensterbereiche, die nicht von einem Anzeigeobjekt bedeckt werden oder die von einem Anzeigeobjekt mit einer Alpha-Einstellung von fast Null bedeckt werden, sind praktisch unsichtbar und erfassen keine Mausereignisse (die Mausereignisse werden von dem Desktop-Objekt unter dem Fenster empfangen). Der Alpha-Wert, bei dem ein Objekt keine Mausereignisse mehr erfasst, liegt je nach Betriebssystem zwischen ca. 0,06 und 0,01.

Bei Fenstern mit Systemchrom kann die transparent-Eigenschaft nicht auf true gesetzt werden.

Hinweis: Nicht alle Linux-Fenstermanager unterstützen Transparenz. Auf diesen Systemen werden transparente Bereiche eines Fensters mit Schwarz erstellt.

type Gibt den Typ des zu erstellenden Fensters an.StringNativeWindowType.NORMAL Gibt den Typ des zu erstellenden Fensters an.

Konstanten für die gültigen Werte dieser Eigenschaft sind in der NativeWindowType-Klasse definiert:

  • NativeWindowType.NORMAL: Ein typisches Fenster. Normale Fenster verwenden das Fensterdesign in voller Größe und erscheinen in der Taskleiste von Windows oder Linux.
  • NativeWindowType.UTILITY: Eine Werkzeugpalette. Dienstprogrammfenster verwenden eine schmalere Version des System-Fensterdesigns und werden nicht in der Windows-Taskleiste angezeigt.
  • NativeWindowType.LIGHTWEIGHT – Lightweight-Fenster können kein System-Fensterdesign haben und erscheinen nicht in der Taskleiste von Windows oder Linux. Zudem verfügen Lightweight-Fenster nicht über das System-Menü (Alt+Leertaste) unter Windows. Lightweight-Fenster eignen sich für Benachrichtigungen und Steuerungen wie Kombinationsfelder, die einen Anzeigebereich öffnen, der nur für einen kurzen Zeitraum eingeblendet wird. Bei Verwendung des Lightweight-Typs muss systemChrome auf NativeWindowSystemChrome.NONE eingestellt werden.

Wenn kein Wert angegeben wird, hat type den Standardwert NativeWindowType.NORMAL.

flash.display.NativeWindowType
ShaderParameter Eine ShaderParameter-Instanz stellt einen einzelnen Eingabeparameter für ein Shaderkernel dar.Object Eine ShaderParameter-Instanz stellt einen einzelnen Eingabeparameter für ein Shaderkernel dar. Ein Kernel kann so definiert sein, dass es null, einen oder mehrere Parameter akzeptiert, die bei der Kernelausführung verwendet werden. Ein ShaderParameter stellt Informationen zum Parameter bereit, z. B. welcher Datentyp erwartet wird. Er stellt auch einen Mechanismus für das Einstellen des Parameterwerts, der bei der Shaderausführung verwendet wird, bereit. Um einen oder mehrere Werte für den Shaderparameter anzugeben, erstellen Sie ein Array mit dem Wert bzw. den Werten und weisen es der value-Eigenschaft zu.

Auf eine ShaderParameter-Instanz, die einen Parameter für eine Shader-Instanz darstellt, wird als Eigenschaft der data-Eigenschaft der Shader-Instanz zugegriffen. Der Name der ShaderParameter-Eigenschaft ist derselbe wie der Parametername im Shadercode. Wenn beispielsweise in einem Shader ein Parameter namens radius definiert ist, ist die ShaderParameter-Instanz, die den radius-Parameter darstellt, als radius-Eigenschaft verfügbar, wie hier zu sehen ist:

var radiusParam:ShaderParameter = myShader.data.radius;

Zusätzlich zu den definierten Eigenschaften der ShaderParameter-Klasse hat jede ShaderParameter-Instanz weitere Eigenschaften, die den für den Parameter festgelegten Metadaten entsprechen. Diese Eigenschaften werden dem ShaderParameter-Objekt bei der Erstellung hinzugefügt. Die Namen der Eigenschaften stimmen mit den im Shaderquellcode festgelegten Metadatennamen überein. Der Datentyp der Eigenschaft hängt vom Datentyp der jeweils entsprechenden Metadaten ab. Ein Textmetadatenwert wie etwa „description“ ist eine String-Instanz. Eine Metadateneigenschaft mit einem Wert, der kein String ist (wie z. B. minValue oder defaultValue) wird als Array-Instanz dargestellt. Die Anzahl an Elementen und Elementdatentypen entspricht den Metadatenwerten.

Gehen Sie etwa von einem Shader mit den folgenden beiden Parameterdeklarationen aus:

parameter float2 size < description: "The size of the image to which the kernel is applied"; minValue: float2(0.0, 0.0); maxValue: float2(100.0, 100.0); defaultValue: float2(50.0, 50.0); >; parameter float radius < description: "The radius of the effect"; minValue: 0.0; maxValue: 50.0; defaultValue: 25.0; >;

Die dem size-Parameter entsprechende ShaderParameter-Instanz verfügt zusätzlich zu ihren integrierten Eigenschaften über die folgenden Metadateneigenschaften:

EigenschaftsnameDatentypWertnameString"size"descriptionString"The size of the image to which the kernel is applied"minValueArray[0, 0]maxValueArray[100, 100]defaultValueArray[50, 50]

Der dem radius-Parameter entsprechende ShaderParameter hat die folgenden zusätzlichen Eigenschaften:

EigenschaftsnameDatentypWertnameString"radius"descriptionString"The radius of the effect"minValueArray[0]maxValueArray[50]defaultValueArray[25]

Im Allgemeinen wird eine ShaderParameter-Instanz nicht direkt durch Entwicklercode erstellt. Bei der Erstellung der Shader-Instanz wird für jeden Shaderparameter eine ShaderParameter-Instanz erstellt.

flash.display.ShaderDataflash.display.Shader.dataShaderParameter Erstellt eine ShaderParameter-Instanz. Erstellt eine ShaderParameter-Instanz. Der ShaderParameter-Konstruktor wird nicht direkt durch den Entwicklercode aufgerufen. Bei der Erstellung der Shader-Instanz wird für jeden Shaderparameter eine ShaderParameter-Instanz erstellt. index Die auf null basieremde Indexposition des Parameters.int Die auf null basieremde Indexposition des Parameters. type Der Datentyp des Parameters, wie im Shader definiert.String Der Datentyp des Parameters, wie im Shader definiert. Der Satz der möglichen Werte für die type-Eigenschaft wird durch die Konstanten in der ShaderParameterType-Klasse definiert. flash.display.ShaderParameterTypevalue Der Wert bzw. die Werte, die als Parameterwerte an den Shader übergeben werden.Array Der Wert bzw. die Werte, die als Parameterwerte an den Shader übergeben werden. Die value-Eigenschaft ist ein indiziertes Array. Anzahl und Typ der Elemente im Array entsprechen dem Datentyp des Parameters, der mithilfe der type-Eigenschaft festgelegt wird.

Die folgende Tabelle zeigt den Parametertyp und die zugehörige Anzahl sowie den zugehörigen Datentyp der Elemente im value-Arrays an:

ParametertypAnzahl ElementeDatentyp Elementefloat (ShaderParameterType.FLOAT)1Numberfloat2 (ShaderParameterType.FLOAT2)2Numberfloat3 (ShaderParameterType.FLOAT3)3Numberfloat4 (ShaderParameterType.FLOAT4)4Numberint (ShaderParameterType.INT)1int oder uintint2 (ShaderParameterType.INT2)2int oder uintint3 (ShaderParameterType.INT3)3int oder uintint4 (ShaderParameterType.INT4)4int oder uintbool (ShaderParameterType.BOOL)1Boolescher Ausdruckbool2 (ShaderParameterType.BOOL2)2Boolescher Ausdruckbool3 (ShaderParameterType.BOOL3)3Boolescher Ausdruckbool4 (ShaderParameterType.BOOL4)4Boolescher Ausdruckfloat2x2 (ShaderParameterType.MATRIX2X2)4Numberfloat3x3 (ShaderParameterType.MATRIX3X3)9Numberfloat4x4 (ShaderParameterType.MATRIX4X4)16Number

Bei den Matrixparametertypen füllen die Arrayelemente zuerst die Zeilen der Matrix, dann die Spalten aus. Angenommen, mit der folgenden Zeile ActionScript-Code soll ein 2x2-Parameter namens myMatrix gefüllt werden:

myShader.data.myMatrix.value = [.1, .2, .3, .4];

Im Shader haben die Matrixelemente die folgenden Werte:

  • myMatrix[0][0]: .1
  • myMatrix[0][1]: .2
  • myMatrix[1][0]: .3
  • myMatrix[1][1]: .4
GradientType Die GradientType-Klasse stellt Werte für den Parameter „type“ in den Methoden „beginGradientFill()“ und „lineGradientStyle()“ der flash.display.Graphics-Klasse bereit.Object Die GradientType-Klasse stellt Werte für den Parameter type in den Methoden beginGradientFill() und lineGradientStyle() der flash.display.Graphics-Klasse bereit. LINEAR Ein Wert, der zur Festlegung einer linearen Farbverlaufsfüllung verwendet wird.linearString Ein Wert, der zur Festlegung einer linearen Farbverlaufsfüllung verwendet wird. RADIAL Ein Wert, der zur Festlegung einer radialen Farbverlaufsfüllung verwendet wird.radialString Ein Wert, der zur Festlegung einer radialen Farbverlaufsfüllung verwendet wird. InterpolationMethod Die InterpolationMethod-Klasse stellt für den Parameter „interpolationMethod“ in den Methoden „Graphics.beginGradientFill()“ und „Graphics.lineGradientStyle()“ Werte bereit.Object Die InterpolationMethod-Klasse stellt für den Parameter interpolationMethod in den Methoden Graphics.beginGradientFill() und Graphics.lineGradientStyle() Werte bereit. Dieser Parameter bestimmt den RGB-Farbraum, der für die Darstellung des Farbverlaufs verwendet werden soll. flash.display.Graphics.beginGradientFill()flash.display.Graphics.lineGradientStyle()LINEAR_RGB Legt fest, dass die lineare RGB-Interpolationsmethode verwendet werden soll.linearRGBString Legt fest, dass die lineare RGB-Interpolationsmethode verwendet werden soll. Dies bedeutet, dass ein RGB-Farbraum auf Basis eines linearen RGB-Farbmodells verwendet wird. RGBRGB Legt fest, dass die RGB-Interpolationsmethode verwendet werden soll.rgbString Legt fest, dass die RGB-Interpolationsmethode verwendet werden soll. Dies bedeutet, dass der Farbverlauf mit dem exponentiellen sRGB-Farbraum (Standard-RGB) dargestellt wird. Der sRGB-Raum ist ein vom W3C zugelassener Standard, der eine nicht lineare Konvertierung zwischen den Komponentenwerten Rot, Grün und Blau und der Intensität der sichtbaren Komponentenfarbe definiert.

Angenommen, Sie haben einen einfachen linearen Farbverlauf zwischen zwei Farben (wobei der Parameter spreadMethod auf SpreadMethod.REFLECT gesetzt ist). Die verschiedenen Interpolationsmethoden haben folgende Auswirkung auf die Darstellung des Farbverlaufs:

InterpolationMethod.LINEAR_RGBInterpolationMethod.RGB
LINEAR_RGB
IGraphicsPath Diese Schnittstelle wird für die Definition von Objekten verwendet, die als Pfadparameter in der flash.display.Graphics-Methode und Klassen für das Zeichnen verwendet werden können. Diese Schnittstelle wird für die Definition von Objekten verwendet, die als Pfadparameter in der flash.display.Graphics-Methode und Klassen für das Zeichnen verwendet werden können. Verwenden Sie Klassen, die diese Schnittstelle implementieren, um Pfadeigenschaftsdaten zu erstellen und zu verwalten und dieselben Daten in verschiedenen Instanzen wiederzuverwenden. flash.display.Graphics.drawGraphicsData()flash.display.Graphics.drawPath()IGraphicsFill Diese Schnittstelle wird für die Definition von Objekten verwendet, die als Füllparameter in der flash.display.Graphics-Methode und Klassen für das Zeichnen verwendet werden können. Diese Schnittstelle wird für die Definition von Objekten verwendet, die als Füllparameter in der flash.display.Graphics-Methode und Klassen für das Zeichnen verwendet werden können. Verwenden Sie Klassen, die diese Schnittstelle implementieren, um Fülleigenschaftsdaten zu erstellen und zu verwalten und dieselben Daten in verschiedenen Instanzen wiederzuverwenden. flash.display.Graphics.drawGraphicsData()flash.display.GraphicsStroke.fillLoaderInfo Die LoaderInfo-Klasse liefert Informationen zu einer geladenen SWF- oder Grafikdatei (JPEG, GIF oder PNG).flash.events:EventDispatcher Die LoaderInfo-Klasse liefert Informationen zu einer geladenen SWF- oder Grafikdatei (JPEG, GIF oder PNG). LoaderInfo-Objekte sind für jedes Anzeigeobjekt verfügbar. Die bereitgestellten Informationen sind Ladefortschritt, die URLs des Loaders und des geladenen Inhalts, Gesamtanzahl der Bytes für das Medium und die nominelle Höhe und Breite des Mediums.

Sie haben zwei Möglichkeiten, LoaderInfo-Objekte zu laden:

  • Über die contentLoaderInfo-Eigenschaft des flash.display.Loader-Objekts. Die contentLoaderInfo-Eigenschaft ist für jedes Loader-Objekt stets verfügbar. Wenn ein Loader-Objekt, das weder die load()-Methode noch die loadBytes()-Methode aufgerufen hat oder dessen Ladevorgang noch nicht weit genug vorangeschritten ist, versucht, auf Eigenschaften der contentLoaderInfo-Eigenschaft zuzugreifen, wird für viele Eigenschaften ein Fehler ausgelöst.
  • Über die loaderInfo-Eigenschaft eines Anzeigeobjekts.

Die contentLoaderInfo-Eigenschaft eines Loader-Objekts liefert Informationen zum Inhalt, der vom Loader-Objekt geladen wird, während die loaderInfo-Eigenschaft eines Anzeigeobjekts Informationen zur SWF-Stammdatei für dieses Anzeigeobjekt liefert.

Wenn Sie ein Loader-Objekt zum Laden eines Anzeigeobjekts (z. B. einer SWF-Datei oder Bitmap) verwenden, ist die loaderInfo-Eigenschaft des Anzeigeobjekts identisch mit der contentLoaderInfo-Eigenschaft des Loader-Objekts (DisplayObject.loaderInfo = Loader.contentLoaderInfo). Da die Instanz der Hauptklasse der SWF-Datei kein Loader-Objekt besitzt, besteht ihre einzige Möglichkeit, auf das LoaderInfo-Objekt zuzugreifen, in der loaderInfo-Eigenschaft.

Das folgende Diagramm zeigt die verschiedenen Einsatzmöglichkeiten des LoaderInfo-Objekts, und zwar für die Instanz der Hauptklasse der SWF-Datei, für die contentLoaderInfo-Eigenschaft eines Loader-Objekts und für die loaderInfo-Eigenschaft eines geladenen Objekts:

Ist ein Ladevorgang noch nicht abgeschlossen, sind einige Eigenschaften der contentLoaderInfo-Eigenschaft eines Loader-Objekts nicht verfügbar. Einige Eigenschaften können Sie abrufen, z. B. bytesLoaded, bytesTotal, url, loaderURL und applicationDomain. Sobald das loaderInfo-Objekt das Ereignis init auslöst, können Sie auf alle Eigenschaften des loaderInfo-Objekts sowie der geladenen Grafik- oder SWF-Datei zugreifen.

Hinweis: Alle Eigenschaften der LoaderInfo-Objekte sind schreibgeschützt.

Die EventDispatcher.dispatchEvent()-Methode gilt nicht für LoaderInfo-Objekte. Wenn Sie dispatchEvent() für ein LoaderInfo-Objekt aufrufen, wird eine IllegalOperationError-Ausnahme ausgelöst.

Im folgenden Beispiel wird die LoaderInfoExample-Klasse verwendet, um auf der Bühne ein Bild anzuzeigen. Dies wird in den folgenden Schritten erreicht:
  1. Es wird eine url-Eigenschaft erstellt, die den Speicherort und Namen der Bilddatei angibt.
  2. Der Klassenkonstruktor erstellt ein Loader-Objekt mit der Bezeichnung loader.
  3. Das loader-Objekt instanziiert einen Ereignis-Listener, um sicherzustellen, dass das Bild richtig geladen wird.
  4. Der Konstruktor erstellt eine neue Instanz eines URLRequest-Objekts, request, mit Übergabe von url, damit der Dateiname und -speicherort bekannt sind.
  5. Das request-Objekt wird an die load()-Methode des loader-Objekts übergeben, die das Bild in die Anzeigeliste lädt.

Wichtig: Zur Ausführung dieses Beispiels müssen Sie eine Datei mit dem Namen „Image.gif“ in dem Ordner ablegen, in dem sich auch die kompilierte SWF-Datei befindet. Verwenden Sie ein Bild mit einem Bereich, der in die Abmessungen der SWF-Hauptdatei passt.

package { import flash.display.Loader; import flash.display.LoaderInfo; import flash.display.Sprite; import flash.events.*; import flash.net.URLRequest; public class LoaderInfoExample extends Sprite { private var url:String = "Image.gif"; public function LoaderInfoExample() { var loader:Loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.INIT, initHandler); loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); var request:URLRequest = new URLRequest(url); loader.load(request); addChild(loader); } private function initHandler(event:Event):void { var loader:Loader = Loader(event.target.loader); var info:LoaderInfo = LoaderInfo(loader.contentLoaderInfo); trace("initHandler: loaderURL=" + info.loaderURL + " url=" + info.url); } private function ioErrorHandler(event:IOErrorEvent):void { trace("ioErrorHandler: " + event); } } }
flash.display.Loaderflash.display.Loader.contentflash.display.DisplayObjectflash.display.DisplayObject.loaderInfohttpStatus Wird ausgelöst, wenn eine Netzwerkanforderung über HTTP erfolgt und der HTTP-Statuscode erkannt werden kann.flash.events.HTTPStatusEvent.HTTP_STATUSflash.events.HTTPStatusEvent Wird ausgelöst, wenn eine Netzwerkanforderung über HTTP erfolgt und der HTTP-Statuscode erkannt werden kann. Loader.load()unload Wird von einem LoaderInfo-Objekt ausgelöst, wenn ein geladenes Objekt mit der unload()-Methode des Loader-Objekts entfernt wird oder wenn von demselben Loader-Objekt ein zweiter Ladevorgang durchgeführt und der ursprüngliche Inhalt vor dem Ladebeginn entfernt wird.flash.events.Event.UNLOADflash.events.Event Wird von einem LoaderInfo-Objekt ausgelöst, wenn ein geladenes Objekt mit der unload()-Methode des Loader-Objekts entfernt wird oder wenn von demselben Loader-Objekt ein zweiter Ladevorgang durchgeführt und der ursprüngliche Inhalt vor dem Ladebeginn entfernt wird. Loader.load()Loader.unload()progress Wird ausgelöst, wenn während des Download-Vorgangs Daten empfangen werden.flash.events.ProgressEvent.PROGRESSflash.events.ProgressEvent Wird ausgelöst, wenn während des Download-Vorgangs Daten empfangen werden. Loader.load()open Wird beim Start eines Ladevorgangs ausgelöst.flash.events.Event.OPENflash.events.Event Wird beim Start eines Ladevorgangs ausgelöst. Loader.load()ioError Wird beim Auftreten eines Eingabe- oder Ausgabefehlers ausgelöst, durch den der Ladevorgang fehlschlägt.flash.events.IOErrorEvent.IO_ERRORflash.events.IOErrorEvent Wird beim Auftreten eines Eingabe- oder Ausgabefehlers ausgelöst, durch den der Ladevorgang fehlschlägt. Loader.load()init Wird ausgelöst, wenn die Eigenschaften und Methoden einer geladenen SWF-Datei zugänglich sind und verwendet werden können.flash.events.Event.INITflash.events.Event Wird ausgelöst, wenn die Eigenschaften und Methoden einer geladenen SWF-Datei zugänglich sind und verwendet werden können. Es kann jedoch sein, dass der Inhalt noch immer heruntergeladen wird. Ein LoaderInfo-Objekt löst das init-Ereignis aus, wenn die folgenden Bedingungen erfüllt sind:
  • Alle dem geladenen Objekt und dem LoaderInfo-Objekt zugeordneten Eigenschaften und Methoden sind zugänglich.
  • Die Konstruktoren für alle untergeordneten Objekte sind abgeschlossen.
  • Der gesamte ActionScript-Code im ersten Bild der Hauptzeitleiste der geladenen SWF-Datei wurde ausgeführt.

Zum Beispiel wird ein Event.INIT-Ereignis ausgelöst, wenn das erste Bild eines Films oder einer Animation geladen wird. Der Film ist dann zugänglich und kann der Anzeigeliste hinzugefügt werden. Es kann jedoch länger dauern, bis der gesamte Film heruntergeladen wurde. Event.COMPLETE wird erst ausgelöst, wenn der gesamte Film geladen wurde.

Das Ereignis init wird immer vor dem Ereignis complete ausgelöst.

Loader.load()
complete Wird nach dem erfolgreichen Laden von Daten ausgelöst.flash.events.Event.COMPLETEflash.events.Event Wird nach dem erfolgreichen Laden von Daten ausgelöst. Anders ausgedrückt wird es ausgelöst, wenn alle Inhalte heruntergeladen wurden und das Laden beendet ist. Das Ereignis complete wird immer nach dem Ereignis init ausgelöst. Das init-Ereignis wird ausgelöst, wenn auf das Objekt zugegriffen werden kann, selbst, wenn noch Inhalte heruntergeladen werden. Loader.load()getLoaderInfoByDefinition Gibt das LoaderInfo-Objekt zurück, das mit einer als Objekt definierten SWF-Datei verknüpft ist.Der Aufrufer wird nicht in der lokalen vertrauenswürdigen Sandbox ausgeführt. SecurityErrorSecurityErrorDas zugeordnete LoaderInfo-Objekt. Gibt null zurück, wenn der Aufruf in Builds ohne Debugger erfolgt (oder wenn das Debugging nicht aktiviert ist) oder wenn dem object, auf das verwiesen wird, kein LoaderInfo-Objekt zugeordnet ist (wie dies bei einigen Objekten der Fall ist, die in der AIR-Laufzeitumgebung verwendet werden). flash.display:LoaderInfoobjectObjectDas Objekt, für das ein zugeordnetes LoaderInfo-Objekt abgerufen werden soll. Gibt das LoaderInfo-Objekt zurück, das mit einer als Objekt definierten SWF-Datei verknüpft ist. actionScriptVersion Die ActionScript-Version der geladenen SWF-Datei.uintWenn der heruntergeladene Anteil der Datei nicht ausreicht, um die angeforderten Informationen abzurufen. ErrorErrorWenn die Datei keine SWF-Datei ist. ErrorError Die ActionScript-Version der geladenen SWF-Datei. Die Sprachversion wird anhand der Zusammenfassung in der ActionScriptVersion-Klasse angegeben, z. B. ActionScriptVersion.ACTIONSCRIPT2 und ActionScriptVersion.ACTIONSCRIPT3.

Hinweis: Diese Eigenschaft besitzt immer entweder den Wert ActionScriptVersion.ACTIONSCRIPT2 oder ActionScriptVersion.ACTIONSCRIPT3. ActionScript 1.0 und 2.0 fallen beide unter den Wert ActionScriptVersion.ACTIONSCRIPT2 (Version 2.0). Diese Eigenschaft unterscheidet nur zwischen ActionScript 1.0/2.0 und ActionScript 3.0.

flash.display.ActionScriptVersion
applicationDomain Wenn eine externe SWF-Datei geladen wird, werden alle in der geladenen Klasse enthaltenen ActionScript 3.0-Definitionen in der applicationDomain-Eigenschaft gespeichert.flash.system:ApplicationDomainDieser Sicherheits-Sandbox des Aufrufers ist es nicht gestattet, auf diese Anwendungsdomäne zuzugreifen. SecurityErrorSecurityError Wenn eine externe SWF-Datei geladen wird, werden alle in der geladenen Klasse gespeicherten ActionScript 3.0-Definitionen in der Eigenschaft applicationDomain gespeichert.

Der gesamte Code in einer SWF-Datei ist so definiert, dass er sich in einer Anwendungsdomäne befindet. Die aktuelle Anwendungsdomäne ist die Domäne, in der die Hauptanwendung ausgeführt wird. Die Systemdomäne enthält alle Anwendungsdomänen, einschließlich der aktuellen Domäne, und alle Klassen, die von Flash Player oder Adobe AIR verwendet werden.

Mit Ausnahme der Systemdomäne sind alle Anwendungsdomänen mit einer übergeordneten Domäne verknüpft. Die Systemdomäne ist die übergeordnete Domäne der applicationDomain-Eigenschaft der Hauptanwendung. Geladene Klassen werden nur definiert, wenn sie in der jeweiligen Superklasse nicht bereits definiert sind. Die Definition einer geladenen Klasse kann nicht mit einer neueren Definition überschrieben werden.

Beispiele für die Verwendung von Anwendungsdomänen finden Sie im ActionScript 3.0 Entwicklerhandbuch im Kapitel „Clientsystem-Umgebung“.

flash.system.ApplicationDomain
bytesLoaded Die Anzahl der für das Medium geladenen Bytes.uint Die Anzahl der für das Medium geladenen Bytes. Wenn diese Zahl mit dem Wert von bytesTotal identisch ist, ist das Medium vollständig geladen. bytesTotal Die Anzahl der komprimierten Bytes in der gesamten Mediendatei.uint Die Anzahl der komprimierten Bytes in der gesamten Mediendatei.

Bevor das erste progress-Ereignis von dem entsprechenden Loader-Objekt dieses LoaderInfo-Objekts ausgelöst wird, hat bytesTotal den Wert 0. Nach dem ersten progress-Ereignis des Loader-Objekts entspricht bytesTotal der tatsächlich herunterzuladenden Anzahl von Bytes.

flash.events.ProgressEventflash.display.Loader
bytes Die einem LoaderInfo-Objekt zugeordneten Bytes.flash.utils:ByteArrayWenn dem Objekt, das auf diese API zugreift, der Zugriff auf das geladene Objekt aufgrund von Sicherheitsbeschränkungen verweigert wird. Dies kann beispielsweise geschehen, wenn ein Loader-Objekt auf die contentLoaderInfo.content-Eigenschaft zugreifen möchte und ihm die Sicherheitsberechtigung für den Zugriff auf den geladenen Inhalt nicht erteilt wird.

Weitere Informationen zum Thema Sicherheit finden Sie im Flash Player Developer Center im Abschnitt Sicherheit.

SecurityErrorSecurityError
Die einem LoaderInfo-Objekt zugeordneten Bytes.
childAllowsParent Drückt die Vertrauensbeziehung von Inhalt (untergeordnetes Objekt) zu Loader (übergeordnetes Objekt) aus.Boolean Wird ausgelöst, wenn der geladene Anteil der Datei nicht ausreicht, um die angeforderten Informationen abzurufen. ErrorError Drückt die Vertrauensbeziehung von Inhalt (untergeordnetes Objekt) zu Loader (übergeordnetes Objekt) aus. Hat das untergeordnete Objekt den Zugriff durch das übergeordnete Objekt erlaubt, gilt true, sonst gilt false. Diese Eigenschaft wird auf true gesetzt, wenn das untergeordnete Objekt die allowDomain()-Methode aufgerufen hat, um der übergeordneten Domäne die Berechtigung zu erteilen, oder wenn von der untergeordneten Domäne eine URL-Richtlinie geladen wird, die der übergeordneten Domäne die Berechtigung erteilt. Befinden sich das untergeordnete und das übergeordnete Objekt in derselben Domäne, wird diese Eigenschaft auf true gesetzt.

Weitere Informationen zum Thema Sicherheit finden Sie im Flash Player Developer Center im Abschnitt Sicherheit.

childSandboxBridge Ein Objekt, das über Code des geladenen Inhalts festgelegt werden kann, um Eigenschaften und Methoden bereitzustellen, auf die der Code in der Sandbox des Loader-Objekts zugreifen kann.ObjectNur Inhalt in der Sandbox des geladenen Inhalts kann diese Eigenschaft einstellen. SecurityErrorSecurityError Ein Objekt, das über Code des geladenen Inhalts festgelegt werden kann, um Eigenschaften und Methoden bereitzustellen, auf die der Code in der Sandbox des Loader-Objekts zugreifen kann. Diese Sandbox-Brücke ermöglicht Inhalt aus einer nicht zu einer Anwendung gehörigen Domäne den gesteuerten Zugriff auf Skripten in der Sandbox der AIR-Anwendung und umgekehrt. Die Sandbox-Brücke dient als Schnittstelle zwischen den Sandboxes und ermöglicht eine explizite Interaktion zwischen Sicherheits-Sandboxes der Anwendung und anderen Sicherheits-Sandboxes. parentSandboxBridgecontentType Der MIME-Typ der geladenen Datei.String Der MIME-Typ der geladenen Datei. Der Wert ist null, wenn der geladene Anteil der Datei nicht ausreicht, um den Typ zu bestimmen. In der folgenden Liste sind die möglichen Werte enthalten:
  • "application/x-shockwave-flash"
  • "image/jpeg"
  • "image/gif"
  • "image/png"
content Das diesem LoaderInfo-Objekt zugeordnete geladene Objekt.flash.display:DisplayObjectWenn dem Objekt, das auf diese API zugreift, der Zugriff auf das geladene Objekt aufgrund von Sicherheitsbeschränkungen verweigert wird. Dies kann beispielsweise geschehen, wenn ein Loader-Objekt auf die contentLoaderInfo.content-Eigenschaft zugreifen möchte und ihm die Sicherheitsberechtigung für den Zugriff auf den geladenen Inhalt nicht erteilt wird.

Weitere Informationen zum Thema Sicherheit finden Sie im Flash Player Developer Center im Abschnitt Sicherheit.

SecurityErrorSecurityError
Das diesem LoaderInfo-Objekt zugeordnete geladene Objekt.
frameRate Die nominelle Bildrate der geladenen SWF-Datei, in Bildern pro Sekunde.NumberWenn der heruntergeladene Anteil der Datei nicht ausreicht, um die angeforderten Informationen abzurufen. ErrorErrorWenn die Datei keine SWF-Datei ist. ErrorError Die nominelle Bildrate der geladenen SWF-Datei, in Bildern pro Sekunde. Diese Zahl ist häufig eine Ganzzahl, was aber nicht zwingend notwendig ist.

Dieser Wert kann von der tatsächlich verwendeten Bildrate abweichen. Flash Player oder Adobe AIR verwendet zu einem bestimmten Zeitpunkt immer nur eine einzige Bildrate für alle geladenen SWF-Dateien. Diese Bildrate wird von der nominellen Bildrate der Haupt-SWF-Datei bestimmt. Die Hauptbildrate kann möglicherweise nicht erreicht werden, je nach Hardware, Tonsynchronisierung und anderen Faktoren.

height Die nominelle Höhe der geladenen Datei.intWenn der heruntergeladene Anteil der Datei nicht ausreicht, um die angeforderten Informationen abzurufen. ErrorError Die nominelle Höhe der geladenen Datei. Dieser Wert kann von der tatsächlichen Höhe abweichen, in der der Inhalt angezeigt wird, da der geladene Inhalt oder seine übergeordneten Anzeigeobjekte auch skaliert sein können. isURLInaccessible Gibt an, ob die LoaderInfo.url-Eigenschaft gekürzt wurde.Boolean Gibt an, ob die LoaderInfo.url-Eigenschaft gekürzt wurde. Wenn isURLInaccessible den Wert true hat, ist der LoaderInfo.url-Wert nur die Domäne der endgültigen URL, von der der Inhalt geladen wird. Die Eigenschaft wird zum Beispiel gekürzt, wenn der Inhalt aus http://www.adobe.com/assets/hello.swf geladen wird und die LoaderInfo.url-Eigenschaft den Wert http://www.adobe.com hat. Der Wert von isURLInaccessible ist nur dann true, wenn auch Folgendes zutrifft:
  • Beim Laden des Inhalts ist eine HTTP-Umleitung aufgetreten.
  • Die SWF-Datei, die Loader.load() aufruft, stammt aus einer anderen Domäne als die endgültige URL des Inhalts.
  • Die SWF-Datei, die Loader.load() aufruft, hat keine Zugriffsberechtigung für den Inhalt. Zugriffsberechtigungen für den Inhalt werden auf die gleiche Weise gewährt wie für BitmapData.draw(): Rufen Sie Security.allowDomain() auf, um auf eine SWF-Datei zuzugreifen (oder, bei Nicht-SWF-Inhalten, richten Sie eine Richtliniendatei ein und verwenden Sie die LoaderContext.checkPolicyFile-Eigenschaft).

Hinweis: Die isURLInaccessible-Eigenschaft wurde für Flash Player 10.1 und AIR 2.0 hinzugefügt. Diese Eigenschaft steht jedoch SWF-Dateien aller Versionen zur Verfügung, wenn die Flash-Laufzeitumgebung dies unterstützt. Die Verwendung einiger Authoring-Tools im „strikten Modus“ führt also zu einem Kompilierungsfehler. Um diesen Fehler zu umgehen, verwenden Sie die indirekte Syntax myLoaderInfo["isURLInaccessible"] oder deaktivieren Sie den strikten Modus. Wenn Sie Flash Professional CS5 oder Flex SDK 4.1 verwenden, können Sie diese API für Laufzeitumgebungen verwenden und kompilieren, die vor Flash Player 10.1 und AIR 2 veröffentlicht wurden.

Für Anwendungsinhalte in AIR ist der Wert dieser Eigenschaft immer false.

urlBitmapData.draw()flash.system.Security.allowDomain()flash.system.LoaderContext.checkPolicyFile
loaderURL Die URL der SWF-Datei, die das Laden des von diesem LoaderInfo-Objekt beschriebenen Mediums initiiert hat.String Die URL der SWF-Datei, die das Laden des von diesem LoaderInfo-Objekt beschriebenen Mediums initiiert hat. Für die Instanz der Hauptklasse der SWF-Datei entspricht diese URL der URL der SWF-Datei selbst. loader Das diesem LoaderInfo-Objekt zugeordnete Loader-Objekt.flash.display:LoaderWenn dem Objekt, das auf diese API zugreift, der Zugriff auf das Loader-Objekt aufgrund von Sicherheitseinschränkungen verweigert wird. Dies kann beispielsweise geschehen, wenn eine geladene SWF-Datei auf seine loaderInfo.loader-Eigenschaft zugreifen möchte und ihr die Sicherheitsberechtigung für den Zugriff auf die ladende SWF-Datei nicht erteilt wird.

Weitere Informationen zum Thema Sicherheit finden Sie im Flash Player Developer Center im Abschnitt Sicherheit.

SecurityErrorSecurityError
Das diesem LoaderInfo-Objekt zugeordnete Loader-Objekt. Wenn es sich bei diesem LoaderInfo-Objekt um die loaderInfo-Eigenschaft der Instanz der SWF-Datei-Hauptklasse handelt, wird kein Loader-Objekt zugeordnet.
parameters Ein Objekt, das Name/Wert-Paare enthält, die die Parameter der geladenen SWF-Datei repräsentieren.Object Ein Objekt, das Name/Wert-Paare enthält, die die Parameter der geladenen SWF-Datei repräsentieren.

Sie können eine for-in-Schleife verwenden, um alle Namen und Werte aus dem parameters-Objekt zu extrahieren.

Die beiden Quellen für die Parameter sind: der Abfragestring in der URL der Haupt-SWF-Datei und der Wert des FlashVars-HTML-Parameters (dies betrifft nur die Haupt-SWF-Datei).

Die parameters-Eigenschaft ersetzt das in ActionScript 1.0 und 2.0 verwendete Verfahren, bei dem SWF-Dateiparameter als Eigenschaften der Hauptzeitleiste bereitgestellt wurden.

Der Wert der Eigenschaft parameters ist null für Loader-Objekte, die SWF-Dateien enthalten, die ActionScript 1.0 oder 2.0 verwenden. Der Wert ist nur für solche Loader-Objekte ungleich null, die SWF-Dateien enthalten, die ActionScript 3.0 verwenden.

parentAllowsChild Drückt die Vertrauensbeziehung von Loader (übergeordnetes Objekt) zu Inhalt (untergeordnetes Objekt) aus.Boolean Wird ausgelöst, wenn der geladene Anteil der Datei nicht ausreicht, um die angeforderten Informationen abzurufen. ErrorError Drückt die Vertrauensbeziehung von Loader (übergeordnetes Objekt) zu Inhalt (untergeordnetes Objekt) aus. Hat das übergeordnete Objekt den Zugriff durch das untergeordnete Objekt erlaubt, gilt true, sonst gilt false. Diese Eigenschaft wird auf true gesetzt, wenn das übergeordnete Objekt die allowDomain()-Methode aufgerufen hat, um der untergeordneten Domäne die Berechtigung zu erteilen, oder wenn von der übergeordneten Domäne eine URL-Richtliniendatei geladen wird, die der untergeordneten Domäne die Berechtigung erteilt. Befinden sich das untergeordnete und das übergeordnete Objekt in derselben Domäne, wird diese Eigenschaft auf true gesetzt.

Weitere Informationen zum Thema Sicherheit finden Sie im Flash Player Developer Center im Abschnitt Sicherheit.

parentSandboxBridge Ein Objekt, das in der Sandbox des Loader-Objekts über Code festgelegt werden kann, um Eigenschaften und Methoden bereitzustellen, auf die der Code des geladenen Inhalts zugreifen kann.ObjectNur Inhalt in der Sandbox des Loader-Objekts kann diese Eigenschaft einstellen. SecurityErrorSecurityError Ein Objekt, das in der Sandbox des Loader-Objekts über Code festgelegt werden kann, um Eigenschaften und Methoden bereitzustellen, auf die der Code des geladenen Inhalts zugreifen kann. Diese Sandbox-Brücke ermöglicht Inhalt aus einer nicht zu einer Anwendung gehörigen Domäne den gesteuerten Zugriff auf Skripten in der Sandbox der AIR-Anwendung und umgekehrt. Die Sandbox-Brücke dient als Schnittstelle zwischen den Sandboxes und ermöglicht eine explizite Interaktion zwischen Sicherheits-Sandboxes der Anwendung und anderen Sicherheits-Sandboxes. childSandboxBridgesameDomain Drückt die Domänenbeziehung zwischen dem Loader und dem Inhalt aus: „true“, wenn beide aus derselben Domäne stammen, sonst „false“.Boolean Wird ausgelöst, wenn der geladene Anteil der Datei nicht ausreicht, um die angeforderten Informationen abzurufen. ErrorError Drückt die Domänenbeziehung zwischen dem Loader und dem Inhalt aus: true, wenn beide aus derselben Domäne stammen, sonst false. sharedEvents Eine EventDispatcher-Instanz, die zum Austauschen von Ereignissen über Sicherheitsgrenzen hinweg verwendet werden kann.flash.events:EventDispatcher Eine EventDispatcher-Instanz, die zum Austauschen von Ereignissen über Sicherheitsgrenzen hinweg verwendet werden kann. Auch wenn das Loader-Objekt und der geladene Inhalt aus Sicherheitsdomänen stammen, die sich gegenseitig nicht vertrauen, können beide auf sharedEvents zugreifen und Ereignisse über dieses Objekt senden und empfangen. swfVersion Die Dateiformatversion der geladenen SWF-Datei.uintWenn der heruntergeladene Anteil der Datei nicht ausreicht, um die angeforderten Informationen abzurufen. ErrorErrorWenn die Datei keine SWF-Datei ist. ErrorError Die Dateiformatversion der geladenen SWF-Datei. Das Dateiformat wird anhand der Zusammenfassung in der SWFVersion-Klasse angegeben, z. B. SWFVersion.FLASH7 und SWFVersion.FLASH9. flash.display.SWFVersionuncaughtErrorEvents Ein Objekt, das ein uncaughtError-Ereignis absetzt, wenn ein nicht verarbeiteter Fehler im Code der SWF-Datei dieses LoaderInfo-Objekts auftritt.flash.events:UncaughtErrorEvents Ein Objekt, das ein uncaughtError-Ereignis absetzt, wenn ein nicht verarbeiteter Fehler im Code der SWF-Datei dieses LoaderInfo-Objekts auftritt. Fehler werden nicht erfasst, wenn sie außerhalb von try..catch-Blöcken ausgegeben werden, oder wenn ein ErrorEvent-Objekt ausgelöst wird, aber keine registrierten Listener vorhanden sind.

Diese Eigenschaft wird erstellt, wenn die mit diesem LoaderInfo-Objekt verknüpfte SWF-Datei vollständig geladen wurde. Bis dahin hat die uncaughtErrorEvents-Eigenschaft den Wert null. In einem reinen ActionScript-Projekt können Sie während oder nach der Ausführung der Konstruktorfunktion der Hauptklasse der SWF-Datei auf diese Eigenschaft zugreifen. In einem Flex-Projekt ist die uncaughtErrorEvents-Eigenschaft verfügbar, nachdem das applicationComplete-Ereignis abgesetzt wurde.

Das folgende Beispiel veranschaulicht die Verwendung einer Ereignisprozedur für nicht erfasste Fehler, um nicht erfasste Fehler in einem ActionScript-Projekt zu erkennen. Im Beispiel wird eine uncaughtError-Ereignisprozedur definiert, um nicht erfasste Fehler zu erkennen. Es stellt auch eine Schaltfläche bereit, die einen Fehler ausgibt, wenn auf sie geklickt wird. Dieser Fehler wird von der Ereignisprozedur für nicht erfasste Fehler erkannt.

Im Konstruktor registriert der Code einen Listener für das uncaughtError-Ereignis, das von der uncaughtErrorEvents-Eigenschaft des LoaderInfo-Objekts abgesetzt wird.

In der uncaughtErrorHandler()-Methode überprüft der Code den Datentyp der error-Eigenschaft und reagiert entsprechend.

package { import flash.display.Sprite; import flash.events.ErrorEvent; import flash.events.MouseEvent; import flash.events.UncaughtErrorEvent; public class UncaughtErrorEventExample extends Sprite { public function UncaughtErrorEventExample() { loaderInfo.uncaughtErrorEvents.addEventListener(UncaughtErrorEvent.UNCAUGHT_ERROR, uncaughtErrorHandler); drawUI(); } private function uncaughtErrorHandler(event:UncaughtErrorEvent):void { if (event.error is Error) { var error:Error = event.error as Error; // do something with the error } else if (event.error is ErrorEvent) { var errorEvent:ErrorEvent = event.error as ErrorEvent; // do something with the error } else { // a non-Error, non-ErrorEvent type was thrown and uncaught } } private function drawUI():void { var btn:Sprite = new Sprite(); btn.graphics.clear(); btn.graphics.beginFill(0xFFCC00); btn.graphics.drawRect(0, 0, 100, 50); btn.graphics.endFill(); addChild(btn); btn.addEventListener(MouseEvent.CLICK, clickHandler); } private function clickHandler(event:MouseEvent):void { throw new Error("Gak!"); } } }
Das folgende Beispiel ist die Flex-Entsprechung des vorstehenden Beispiels, wobei ein MXML-Dokument anstelle einer ActionScript-Klasse als Stamminhalt verwendet wird. <?xml version="1.0" encoding="utf-8"?> <s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/halo" applicationComplete="applicationCompleteHandler();"> <fx:Script> <![CDATA[ import flash.events.ErrorEvent; import flash.events.MouseEvent; import flash.events.UncaughtErrorEvent; private function applicationCompleteHandler():void { loaderInfo.uncaughtErrorEvents.addEventListener(UncaughtErrorEvent.UNCAUGHT_ERROR, uncaughtErrorHandler); } private function uncaughtErrorHandler(event:UncaughtErrorEvent):void { if (event.error is Error) { var error:Error = event.error as Error; // do something with the error } else if (event.error is ErrorEvent) { var errorEvent:ErrorEvent = event.error as ErrorEvent; // do something with the error } else { // a non-Error, non-ErrorEvent type was thrown and uncaught } } private function clickHandler(event:MouseEvent):void { throw new Error("Gak!"); } ]]> </fx:Script> <s:Button label="Cause Error" click="clickHandler(event);"/> </s:WindowedApplication>
UncaughtErrorEventLoader.uncaughtErrorEvents
url Die URL des Mediums, das gerade geladen wird.String Die URL des Mediums, das gerade geladen wird.

Bevor das erste progress-Ereignis von dem entsprechenden Loader-Objekt des LoaderInfo-Objekts ausgelöst wird, kann es sein, dass der Wert der url-Eigenschaft nur die ursprünglich in der load()-Methode des Loader-Objekts angegebene URL widerspiegelt. Nach dem ersten progress-Ereignis spiegelt die url-Eigenschaft die endgültige URL des Mediums wider, nachdem etwaige Weiterleitungen und relative URLs aufgelöst wurden.

In einigen Fällen ist der Wert der url-Eigenschaft gekürzt; weitere Informationen finden Sie im Eintrag zur isURLInaccessible-Eigenschaft.

isURLInaccessibleflash.display.Loader.load()
width Die nominelle Breite des geladenen Inhalts.intWenn der heruntergeladene Anteil der Datei nicht ausreicht, um die angeforderten Informationen abzurufen. ErrorError Die nominelle Breite des geladenen Inhalts. Dieser Wert kann von der tatsächlichen Breite abweichen, in der der Inhalt angezeigt wird, da der geladene Inhalt oder seine übergeordneten Anzeigeobjekte auch skaliert sein können.
StageQuality Die StageQuality-Klasse stellt Werte für die Stage.quality-Eigenschaft bereit.Object Die StageQuality-Klasse stellt Werte für die Stage.quality-Eigenschaft bereit. flash.display.Stage.qualityBEST Legt eine sehr hohe Wiedergabequalität fest: Bei Grafiken erfolgt ein Anti-Aliasing mithilfe eines 4 x 4 Pixel großen Rasters, und Bitmaps werden immer geglättet.bestString Legt eine sehr hohe Wiedergabequalität fest: Bei Grafiken erfolgt ein Anti-Aliasing mithilfe eines 4 x 4 Pixel großen Rasters, und Bitmaps werden immer geglättet. HIGH Legt eine hohe Wiedergabequalität fest: Bei Grafiken erfolgt ein Anti-Aliasing mithilfe eines 4 x 4 Pixel großen Rasters, und Bitmaps werden bei statischen Filmen geglättet.highString Legt eine hohe Wiedergabequalität fest: Bei Grafiken erfolgt ein Anti-Aliasing mithilfe eines 4 x 4 Pixel großen Rasters, und Bitmaps werden bei statischen Filmen geglättet. LOW Legt eine niedrige Wiedergabequalität fest: Bei Grafiken erfolgt kein Anti-Aliasing, und Bitmaps werden nicht geglättet.lowString Legt eine niedrige Wiedergabequalität fest: Bei Grafiken erfolgt kein Anti-Aliasing, und Bitmaps werden nicht geglättet. MEDIUM Legt eine mittlere Wiedergabequalität fest: Bei Grafiken erfolgt ein Anti-Aliasing mithilfe eines 2 x 2 Pixel großen Rasters, Bitmaps werden jedoch nicht geglättet.mediumString Legt eine mittlere Wiedergabequalität fest: Bei Grafiken erfolgt ein Anti-Aliasing mithilfe eines 2 x 2 Pixel großen Rasters, Bitmaps werden jedoch nicht geglättet. Diese Einstellung ist für Filme geeignet, die keinen Text enthalten. BitmapData Die BitmapData-Klasse ermöglicht Ihnen die Arbeit mit den Daten (Pixeln) des Bitmapbildes eines Bitmap-Objekts.Ermöglicht Ihnen die Arbeit mit den Bitmap-Daten eines Bitmap-Objekts. flash.display:IBitmapDrawableObject Die BitmapData-Klasse ermöglicht Ihnen die Arbeit mit den Daten (Pixeln) eines Bitmap-Objekts . Sie können die Methoden der BitmapData-Klasse verwenden, um transparente oder undurchsichtige Bitmaps mit beliebig festgelegter Größe zu erstellen und zur Laufzeit auf verschiedene Weise zu bearbeiten. Sie können auch auf die Bitmap-Daten einer Bitmap zugreifen, die Sie mit der flash.display.Loader-Klasse laden.

Mit dieser Klasse können Sie Bitmap-Wiedergabeoperationen von den internen Anzeigeaktualisierungsroutinen von Flash Player trennen. Mit einer unmittelbaren Bearbeitung der BitmapData-Objekte können Sie komplexe Bilder erstellen, ohne bei jedem Bild den Aufwand für die ständig erneuerte Darstellung der Vektordaten berücksichtigen zu müssen.

Die Methoden der BitmapData-Klasse unterstützen Effekte, die über die Filter für Nicht-Bitmap-Anzeigeobjekte nicht verfügbar sind.

Ein BitmapData-Objekt enthält eine ganze Reihe von Pixeldaten. Diese Daten repräsentieren entweder eine vollständig transparente oder eine vollständig undurchsichtige Bitmap mit Alphakanaldaten. Jeder BitmapData-Objekttyp wird als Puffer mit 32-Bit-Ganzzahlen gespeichert. Dabei bestimmt jede 32-Bit-Ganzzahl die Eigenschaften eines Pixels in der Bitmap.

Bei diesen Zahlen handelt es sich um eine Kombination von vier 8-Bit-Kanalwerten zwischen 0 und 255, mit denen die Alphatransparenz sowie die Werte für Rot, Grün und Blau (ARGB) des Pixels bezeichnet werden. (Für ARGB-Werte repräsentiert das höchstwertige Byte den Alphakanalwert, gefolgt von Rot, Grün und Blau.)

Die vier Kanäle (Alpha, Rot, Grün und Blau) werden durch Zahlen repräsentiert, wenn Sie sie mit der BitmapData.copyChannel()-Methode oder den Eigenschaften DisplacementMapFilter.componentX und DisplacementMapFilter.componentY verwenden. Diese Zahlen werden in der BitmapDataChannel-Klasse durch die folgenden Konstanten repräsentiert:

  • BitmapDataChannel.ALPHA
  • BitmapDataChannel.RED
  • BitmapDataChannel.GREEN
  • BitmapDataChannel.BLUE

Sie können BitmapData-Objekte mit einem Bitmap-Objekt verbinden, indem Sie die bitmapData-Eigenschaft des Bitmap-Objekts verwenden.

Sie können ein BitmapData-Objekt verwenden, um ein Graphics-Objekt zu füllen, indem Sie die Graphics.beginBitmapFill()-Methode verwenden.

In der AIR-Laufzeitumgebung umfassen die DockIcon-, Icon-, InteractiveIcon- und SystemTrayIcon-Klassen eine bitmaps-Eigenschaft, bei der es sich um ein Array der BitmapData-Objekte handelt, die die Bitmapbilder für ein Symbol definieren.

In AIR 1.5 und Flash Player 10 beträgt die maximale Höhe oder Breite eines BitmapData-Objekts 8.191 Pixel, die gesamte Pixelzahl darf 16.777.215 nicht übersteigen. (Wenn ein BitmapData-Objekt also 8.191 Pixel breit ist, darf es nur 2.048 Pixel hoch sein.) In Flash Player 9 und niedriger und AIR 1.1 und niedriger liegt die Grenze bei je 2.880 Pixel Höhe und Breite.

Aufrufe von Methoden oder Eigenschaften eines BitmapData-Objekts lösen einen ArgumentError-Fehler aus, wenn das BitmapData-Objekt ungültig ist (wenn z. B. height == 0 und width == 0 ist) oder wenn es mithilfe von „dispose()“ entfernt worden ist.

Im folgenden Beispiel wird die BitmapDataExample-Klasse verwendet, um die Grafik „Image.gif“ an der Standardposition (0, 0) in ein Anzeigeobjekt (DisplayObject) zu laden. Eine Kopie von „Image.gif“ wird rechts vom Original positioniert, für das neue Farben auf Pixel angewendet werden, die einen Test mit der threshold()-Methode bestanden haben. Dies wird in den folgenden Schritten erreicht:
  1. Es wird eine url-Eigenschaft erstellt, die den Speicherort und Namen der Grafikdatei angibt.
  2. Der Klassenkonstruktor erstellt ein Loader-Objekt, das dann einen Ereignis-Listener instanziiert. Der Ereignis-Listener wird ausgelöst, wenn die completeHandler()-Methode die Bildbearbeitung abgeschlossen hat.
  3. Anschließend wird das request-URLRequest-Objekt an loader.load() übergeben, um das Bild mit einem Anzeigeobjekt in den Speicher zu laden.
  4. Das Bild wird in die Anzeigeliste eingefügt, die das Bild auf dem Bildschirm bei den Koordinaten x = 0, y = 0 anzeigt.
  5. Die completeHandler()-Methode führt dann Folgendes aus:
    • Sie erstellt zusammen mit einem Bitmap-Objekt einen zweiten „Loader“, der über das Loader-Objekt initialisiert wird.
    • Sie erstellt ein zweites Bitmap-Objekt, duplicate, das wiederum die duplicateImage()-Methode aufruft, die ein Duplikat des Originalbilds erzeugt.
    • Sie erstellt ein BitmapData-Objekt, das dem BitmapData-Objekt des duplicate-Objekts zugeordnet ist.
    • Sie erstellt ein neues Rechteckobjekt, das mit denselben Werten für Koordinaten, Breite und Höhe wie das Originalbild initialisiert wird.
    • Sie erstellt ein neues Point-Objekt mit der Standardeinstellung x = 0, y = 0.
    • Sie erstellt die folgenden Variablen:
      • operation: Wendet die neue Farbe an, wenn der Schwellenwert größer oder gleich dem Original ist.
      • threshold: Der Wert, mit dem jedes Pixel verglichen wird (in diesem Beispiel Hellgrau mit einem Alphawert von 0xCC).
      • color : Die Farbe, auf die die Pixel eingestellt sind, die den Schwellentest bestehen. In diesem Fall ist dies reines Gelb.
      • mask: Die genau entgegengesetzte Farbe (durchsichtiges Blau).
      • copySource: Ist auf false gesetzt, um anzuzeigen, dass die Pixelwerte nicht kopiert werden, wenn der Schwellenwert den Test nicht besteht. Dieser Wert hat keine Bedeutung, da das Bild dupliziert wird und nur Pixel geändert werden, die den Schwellenwerttest bestehen.
    • Ruft mithilfe der vorherigen Variablen die threshold()-Methode auf. Es ergibt sich die folgende Schwellenwertgleichung: if (current pixel Value & 0x000000FF) >= (0xCCCCCCCC & 0x000000FF) then set pixel to 0xFFFFFF00.

Hinweise:

  • Für die Kompilierung der SWF-Datei müssen Sie die Option „Sicherheit bei lokaler Wiedergabe“ auf „Nur auf lokale Dateien zugreifen“ einstellen.
  • Zur Ausführung dieses Beispiels müssen Sie eine Datei mit dem Namen „Image.gif“ in dem Ordner ablegen, in dem sich die SWF-Datei befindet.
  • Es wird empfohlen, eine Grafik mit einer Breite von bis zu etwa 80 Pixel zu verwenden.

package { import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.Loader; import flash.display.Sprite; import flash.events.*; import flash.geom.Point; import flash.geom.Rectangle; import flash.net.URLRequest; public class BitmapDataExample extends Sprite { private var url:String = "Image.gif"; private var size:uint = 80; public function BitmapDataExample() { configureAssets(); } private function configureAssets():void { var loader:Loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler); loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); var request:URLRequest = new URLRequest(url); loader.x = size * numChildren; loader.load(request); addChild(loader); } private function duplicateImage(original:Bitmap):Bitmap { var image:Bitmap = new Bitmap(original.bitmapData.clone()); image.x = size * numChildren; addChild(image); return image; } private function completeHandler(event:Event):void { var loader:Loader = Loader(event.target.loader); var image:Bitmap = Bitmap(loader.content); var duplicate:Bitmap = duplicateImage(image); var bitmapData:BitmapData = duplicate.bitmapData; var sourceRect:Rectangle = new Rectangle(0, 0, bitmapData.width, bitmapData.height); var destPoint:Point = new Point(); var operation:String = ">="; var threshold:uint = 0xCCCCCCCC; var color:uint = 0xFFFFFF00; var mask:uint = 0x000000FF; var copySource:Boolean = true; bitmapData.threshold(bitmapData, sourceRect, destPoint, operation, threshold, color, mask, copySource); } private function ioErrorHandler(event:IOErrorEvent):void { trace("Unable to load image: " + url); } } }
flash.display.Bitmap.bitmapDataflash.desktop.DockIcon.bitmapsflash.display.Graphics.beginBitmapFill()flash.desktop.Icon.bitmapsflash.desktop.InteractiveIcon.bitmapsflash.display.Loaderflash.desktop.SystemTrayIcon.bitmapsBitmapData Erstellt ein neues BitmapData-Objekt mit der angegebenen Breite und Höhe.Breite und/oder Höhe übersteigen die maximalen Abmessungen. ArgumentErrorArgumentErrorwidthintDie Breite der Bitmap in Pixel. heightintDie Höhe der Bitmap in Pixel. transparentBooleantrueGibt an, ob die Bitmap Transparenz pro Pixel unterstützt. Der Standardwert lautet true (transparent). Um eine vollständig transparente Bitmap zu erstellen, setzen Sie den Wert des Parameters transparent auf true und den Wert des Parameters fillColor auf 0x00000000 (bzw. auf 0). Die Einstellung der transparent-Eigenschaft auf false kann eine leichte Verbesserung der Wiedergabe-Performance zur Folge haben. fillColoruint0xFFFFFFFFEin 32-Bit-ARGB-Farbwert, der die Füllfarbe des Bitmap-Bereichs angibt. Der Standardwert lautet 0xFFFFFF (reines Weiß). Erstellt ein neues BitmapData-Objekt mit der angegebenen Breite und Höhe. Wenn Sie einen Wert für den Parameter fillColor eingeben, wird jedes Pixel der Bitmap auf diese Farbe eingestellt.

In der Standardeinstellung wird die Bitmap als transparente Grafik erstellt, es sei denn, Sie übergeben für den Parameter false den Wert transparent. Eine als undurchsichtiges Bild erstellte Bitmap kann nicht mehr in eine transparente Bitmap umgewandelt werden. Jedes Pixel einer undurchsichtigen Bitmap verwendet nur 24 Bit der Farbkanaldaten. Wenn Sie eine Bitmap dagegen als transparent definieren, müssen für jedes Pixel, einschließlich der Alphatransparenzdaten, 32 Bit an Farbkanaldaten verwendet werden.

In AIR 1.5 und Flash Player 10 beträgt die maximale Höhe oder Breite eines BitmapData-Objekts 8.191 Pixel, die gesamte Pixelzahl darf 16.777.215 nicht übersteigen. (Wenn ein BitmapData-Objekt also 8.191 Pixel breit ist, darf es nur 2.048 Pixel hoch sein.) In Flash Player 9 und niedriger und AIR 1.1 und niedriger liegt die Grenze bei je 2.880 Pixel Höhe und Breite. Falls Sie für „width“ oder „height“ höhere Werte als 2.880 angeben, wird keine neue Instanz erstellt.

applyFilter Erstellt anhand eines Quellbilds und eines filter-Objekts das gefilterte Bild.„sourceBitmapData“, „sourceRect“, „destPoint“ oder „filter“ haben den Wert null. TypeErrorTypeErrorDie Transparenzwerte der BitmapData-Objekte sind nicht kompatibel mit der filter-Operation. IllegalOperationErrorflash.errors:IllegalOperationErrorEine Zahl, die angibt, ob der Filter erfolgreich angewendet wurde. Wird 0 (null) zurückgegeben, wurde der Filter erfolgreich angewendet. Bei Rückgabe einer negativen Zahl ist während der Anwendung des Filters ein Fehler aufgetreten. sourceBitmapDataflash.display:BitmapDataDie als Eingabe verwendete Bitmap. Das Quellbild kann ein anderes BitmapData-Objekt oder ein Verweis auf die aktuelle BitmapData-Instanz sein. sourceRectflash.geom:RectangleEin Rechteck, mit dem der Bereich des als Eingabe zu verwendenden Quellbilds definiert wird. destPointflash.geom:PointDer Punkt innerhalb des Zielbilds (die aktuelle BitmapData-Instanz), der der linken oberen Ecke des Quellrechtecks entspricht. filterflash.filters:BitmapFilterDas filter-Objekt, mit dem die Filteroperation durchgeführt wird. Jeder Filtertyp hat bestimmte Grundvoraussetzungen, und zwar:
  • BlurFilter: Dieser Filter verwendet Quell- und Zielbilder, die entweder transparent oder undurchsichtig sind. Sollten die Formate der Bilder nicht übereinstimmen, entspricht die Kopie des Quellbilds, die während der Filterung angelegt wird, dem Format des Zielbilds.
  • BevelFilter, DropShadowFilter, GlowFilter, ChromeFilter: Das Zielbild dieser Filter muss ein transparentes Bild sein. Der Aufruf von „DropShadowFilter“ bzw. „GlowFilter“ erstellt ein Bild mit den Alphakanaldaten des Schlagschattens bzw. des Glühens. Er erstellt aber nicht den Schlagschatten auf dem Zielbild selbst. Werden diese Filter bei einem undurchsichtigen Zielbild angewendet, wird eine Ausnahme ausgelöst.
  • ConvolutionFilter: Dieser Filter verwendet Quell- und Zielbilder, die entweder transparent oder undurchsichtig sind.
  • ColorMatrixFilter: Dieser Filter verwendet Quell- und Zielbilder, die entweder transparent oder undurchsichtig sind.
  • DisplacementMapFilter: Dieser Filter verwendet Quell- und Zielbilder, die entweder transparent oder undurchsichtig sind, aber die Formate der Quell- und Zielbilder müssen dabei identisch sein.
Erstellt anhand eines Quellbilds und eines filter-Objekts das gefilterte Bild.

Diese Methode greift auf das Verhalten integrierter filter-Objekte zurück, mit deren Code das Zielrechteck bestimmt werden kann, das durch ein Eingabequellrechteck geändert wird.

Nach dem Anwenden des Filters ist das Ergebnis unter Umständen größer als das Ausgangsbild. Wenn beispielsweise ein Eingabequellrechteck mit den Werten (50,50,100,100) und dem Zielpunkt (10,10) mithilfe einer BlurFilter-Klasse weichgezeichnet wird, wird der geänderte Bereich im Zielbild wegen der Weichzeichnung größer als (10,10,60,60). Dies geschieht intern während des Aufrufs von applyFilter().

Wenn der Parameter sourceRect des Parameters sourceBitmapData einen inneren Bereich wie (50,50,100,100) in einer Grafik der Größe 200 x 200 Pixel angibt, generiert der Filter das Zielrechteck anhand der Quellpixel außerhalb des Parameters sourceRect.

Wenn es sich bei dem BitmapData-Objekt und dem als sourceBitmapData-Parameter festgelegten Objekt um dasselbe Objekt handelt, verwendet die Anwendung eine temporäre Kopie des Objekts, um den Filter anzuwenden. Die beste Performance erhalten Sie jedoch, wenn Sie diese Situation vermeiden.

Aus dem folgenden Beispiel geht hervor, wie Sie einen Weichzeichnungsfilter auf eine BitmapData-Instanz anwenden: import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Point; import flash.geom.Rectangle; import flash.filters.BlurFilter; var bmd:BitmapData = new BitmapData(80, 30, false, 0xFFCC00); var rect:Rectangle = new Rectangle(10, 10, 40, 10); bmd.fillRect(rect, 0xFF0000); var pt:Point = new Point(10, 10); var filter:BlurFilter = new BlurFilter(); bmd.applyFilter(bmd, rect, pt, filter); var bm:Bitmap = new Bitmap(bmd); addChild(bm);
flash.filters.BevelFilterflash.filters.BlurFilterflash.filters.ColorMatrixFilterflash.filters.ConvolutionFilterflash.filters.DisplacementMapFilterflash.filters.DropShadowFilterflash.filters.GlowFilterflash.display.DisplayObject.filters
clone Gibt ein neues BitmapData-Objekt zurück, das ein Klon der ursprünglichen Instanz ist, mit einer exakten Kopie der enthaltenen Bitmap.Ein mit dem Original identisches neues BitmapData-Objekt. flash.display:BitmapDataGibt ein neues BitmapData-Objekt mit einer exakten Kopie der ursprünglichen Bitmap zurück. Gibt ein neues BitmapData-Objekt zurück, das ein Klon der ursprünglichen Instanz ist, mit einer exakten Kopie der enthaltenen Bitmap. Das folgende Beispiel zeigt das Klonen einer BitmapData-Instanz. Außerdem zeigt es, dass sich das Original beim Ändern der geklonten BitmapData-Instanz nicht ändert: import flash.display.Bitmap; import flash.display.BitmapData; var bmd1:BitmapData = new BitmapData(100, 80, false, 0x00000000); var bmd2:BitmapData = bmd1.clone(); bmd1.setPixel32(1, 1, 0xFFFFFFFF); trace(bmd1.getPixel32(1, 1).toString(16)); // ffffffff trace(bmd2.getPixel32(1, 1).toString(16)); // ff000000 var bm1:Bitmap = new Bitmap(bmd1); this.addChild(bm1); var bm2:Bitmap = new Bitmap(bmd2); bm2.x = 110; this.addChild(bm2); colorTransform Passt die Farbwerte in einem angegebenen Bereich einer Bitmap mithilfe eines ColorTransform-Objekts an.„rect“ oder „colorTransform“ haben den Wert null. TypeErrorTypeErrorrectflash.geom:RectangleEin Rechteckobjekt, das den Bereich des Bilds definiert, auf den das ColorTransform-Objekt angewendet wird. colorTransformflash.geom:ColorTransformEin ColorTransform-Objekt, das die anzuwendenden Werte für die Farbtransformation beschreibt. Passt die Farbwerte in einem angegebenen Bereich einer Bitmap mithilfe eines ColorTransform-Objekts an. Falls das Rechteck mit den Begrenzungen der Bitmap übereinstimmt, wandelt diese Methode die Farbwerte des gesamten Bilds um. Aus dem folgenden Beispiel geht hervor, wie Sie eine Farbtransformation auf die linke Hälfte (Rechteck) eines BitmapData-Objekts anwenden: import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Rectangle; import flash.geom.ColorTransform; var bmd:BitmapData = new BitmapData(80, 30, false, 0xFF0000); var cTransform:ColorTransform = new ColorTransform(); cTransform.alphaMultiplier = 0.5 var rect:Rectangle = new Rectangle(0, 0, 40, 30); bmd.colorTransform(rect, cTransform); var bm:Bitmap = new Bitmap(bmd); addChild(bm); flash.geom.ColorTransformflash.geom.Rectanglecompare Vergleicht zwei BitmapData-Objekte.„otherBitmapData“ hat den Wert null. TypeErrorTypeErrorBesitzen die beiden BitmapData-Objekte dieselben Abmessungen (Breite und Höhe), gibt die Methode ein neues BitmapData-Objekt zurück, das den Unterschied zwischen den beiden Objekten enthält (siehe Hauptthema). Sind die BitmapData-Objekte gleich, gibt die Methode die Zahl 0 zurück. Wenn die Breiten der BitmapData-Objekte ungleich sind, gibt die Methode die Zahl -3 zurück. Wenn die Höhen der BitmapData-Objekte ungleich sind, gibt die Methode die Zahl -4 zurück. ObjectotherBitmapDataflash.display:BitmapDataDas BitmapData-Objekt, das mit dem BitmapData-Quellobjekt verglichen werden soll. Vergleicht zwei BitmapData-Objekte. Besitzen die beiden BitmapData-Objekte dieselben Abmessungen (Breite und Höhe), gibt die Methode ein neues BitmapData-Objekt zurück, in dem jedes Pixel die „Differenz“ zwischen den Pixeln in den beiden Quellobjekten beschreibt:
  • Sind zwei Pixel gleich, hat das Differenzpixel den Wert 0x00000000.
  • Besitzen zwei Pixel unterschiedliche RGB-Werte (ohne den Alphawert zu berücksichtigen), hat das Differenzpixel den Wert 0xFFRRGGBB, wobei RR/GG/BB die einzelnen Differenzwerte zwischen den Rot-, Grün- und Blaukanälen darstellen (Pixelwert im Quellobjekt minus Pixelwert im otherBitmapData-Objekt). Alphakanaldifferenzen werden in diesem Fall ignoriert.
  • Weist nur der Alphakanal einen anderen Wert auf, ist der Pixelwert 0xZZFFFFFF, wobei ZZ den Unterschied zwischen den Alphawerten darstellt (Alphawert im Quellobjekt minus Alphawert im otherBitmapData-Objekt).

Betrachten Sie beispielsweise die folgenden beiden BitmapData-Objekte:

var bmd1:BitmapData = new BitmapData(50, 50, true, 0xFFFF8800); var bmd2:BitmapData = new BitmapData(50, 50, true, 0xCCCC6600); var diffBmpData:BitmapData = bmd1.compare(bmd2) as BitmapData; trace ("0x" + diffBmpData.getPixel(0,0).toString(16); // 0x332200

Hinweis: Die zum Füllen der beiden BitmapData-Objekte verwendeten Farben haben leicht abweichende RGB-Werte (0xFF0000 und 0xFFAA00). Das Ergebnis der compare()-Methode ist ein neues BitmapData-Objekt, in dem jedes Pixel die Abweichung zwischen den beiden Bitmaps in den RGB-Werten aufzeigt.

Betrachten Sie die folgenden beiden BitmapData-Objekte, in denen die RGB-Farben gleich sind, der Alphawert aber unterschiedlich ist:

var bmd1:BitmapData = new BitmapData(50, 50, true, 0xFFFFAA00); var bmd2:BitmapData = new BitmapData(50, 50, true, 0xCCFFAA00); var diffBmpData:BitmapData = bmd1.compare(bmd2) as BitmapData; trace ("0x" + diffBmpData.getPixel32(0,0).toString(16); // 0x33ffffff

Das Ergebnis der compare()-Methode ist ein neues BitmapData-Objekt, in dem jedes Pixel die Abweichung zwischen den beiden Bitmaps in den Alphawerten aufzeigt.

Sind die beiden BitmapData-Objekte gleich (mit derselben Breite, Höhe und identischen Pixelwerten), gibt die Methode die Zahl 0 zurück.

Wenn die Breiten der BitmapData-Objekte ungleich sind, gibt die Methode die Zahl -3 zurück.

Ist die Höhe der beiden BitmapData-Objekte nicht gleich, dafür jedoch die Breite, gibt die Methode die Zahl -4 zurück.

Das folgende Beispiel vergleicht zwei Bitmap-Objekte mit unterschiedlicher Breite (50 und 60):

var bmd1:BitmapData = new BitmapData(100, 50, false, 0xFFFF0000); var bmd2:BitmapData = new BitmapData(100, 60, false, 0xFFFFAA00); trace(bmd1.compare(bmd2)); // -4
Das folgende Beispiel zeigt den Wert eines Pixels im BitmapData-Objekt, das sich aus dem Vergleich zweier BitmapData-Objekte mit gleichen Abmessungen ergibt: import flash.display.Bitmap; import flash.display.BitmapData; var bmd1:BitmapData = new BitmapData(50, 50, true, 0xFFFFAA00); var bmd2:BitmapData = new BitmapData(50, 50, true, 0xCCFFAA00); var diffBmpData:BitmapData = BitmapData(bmd1.compare(bmd2)); var diffValue:String = diffBmpData.getPixel32(1, 1).toString(16); trace (diffValue); // 33ffffff var bm1:Bitmap = new Bitmap(bmd1); addChild(bm1); var bm2:Bitmap = new Bitmap(bmd2); addChild(bm2); bm2.x = 60;
copyChannel Überträgt Daten innerhalb des aktuellen BitmapData-Objekts aus einem Kanal in einen anderen bzw. überträgt Daten in einen Kanal des aktuellen BitmapData-Objekts, die aus einem Kanal eines anderen BitmapData-Objekts stammen.„sourceBitmapData“, „sourceRect“ oder „destPoint“ haben den Wert null. TypeErrorTypeErrorsourceBitmapDataflash.display:BitmapDataDie als Eingabe verwendete Bitmap. Das Quellbild kann ein anderes BitmapData-Objekt oder ein Verweis auf das aktuelle BitmapData-Objekt sein. sourceRectflash.geom:RectangleDas Quellrechteckobjekt. Um nur die Kanaldaten eines kleineren Bereichs innerhalb der Bitmap zu kopieren, geben Sie ein Quellrechteck an, das kleiner ist als das ganze BitmapData-Objekt. destPointflash.geom:PointDas Point-Zielobjekt, das die linke obere Ecke des Rechteckbereichs darstellt, in den die neuen Kanaldaten eingefügt werden. Um nur die Kanaldaten eines Bereichs im Zielbild in einen anderen Bereich dieses Zielbilds zu kopieren, geben Sie einen anderen Punkt als (0,0) an. sourceChanneluintDer Quellkanal. Verwenden Sie einen Wert aus der BitmapDataChannel-Klasse (BitmapDataChannel.RED, BitmapDataChannel.BLUE, BitmapDataChannel.GREEN, BitmapDataChannel.ALPHA). destChanneluintDer Zielkanal. Verwenden Sie einen Wert aus der BitmapDataChannel-Klasse (BitmapDataChannel.RED, BitmapDataChannel.BLUE, BitmapDataChannel.GREEN, BitmapDataChannel.ALPHA). Überträgt Daten innerhalb des aktuellen BitmapData-Objekts aus einem Kanal in einen anderen bzw. überträgt Daten in einen Kanal des aktuellen BitmapData-Objekts, die aus einem Kanal eines anderen BitmapData-Objekts stammen. Alle Daten der anderen Kanäle im BitmapData-Zielobjekt bleiben erhalten.

Die Einstellungen für den Quell- und Zielkanal können einen der folgenden Werte annehmen:

  • BitmapDataChannel.RED
  • BitmapDataChannel.GREEN
  • BitmapDataChannel.BLUE
  • BitmapDataChannel.ALPHA
Das folgende Beispiel zeigt, wie Sie den roten Kanal eines BitmapData-Objekts für einen Pixelbereich der Größe 20 x 20 in seinen blauen Kanal kopieren: import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Rectangle; import flash.geom.Point; var bmd:BitmapData = new BitmapData(100, 80, false, 0x00FF0000); var rect:Rectangle = new Rectangle(0, 0, 20, 20); var pt:Point = new Point(10, 10); bmd.copyChannel(bmd, rect, pt, BitmapDataChannel.RED, BitmapDataChannel.BLUE); var bm:Bitmap = new Bitmap(bmd); this.addChild(bm);
flash.geom.Rectangle
copyPixels Bietet eine schnelle Routine zur Bearbeitung von Pixeln zwischen Bildern ohne Dehnung, Drehung oder Farbeffekte.„sourceBitmapData“, „sourceRect“, „destPoint“ haben den Wert null. TypeErrorTypeErrorsourceBitmapDataflash.display:BitmapDataDie Eingabe-Bitmap, aus der die Pixel kopiert werden sollen. Das Quellbild kann eine andere BitmapData-Instanz oder ein Verweis auf die aktuelle BitmapData-Instanz sein. sourceRectflash.geom:RectangleEin Rechteck, mit dem der Bereich des als Eingabe zu verwendenden Quellbilds definiert wird. destPointflash.geom:PointDer Zielpunkt, der die linke obere Ecke des Rechteckbereichs darstellt, in den die kopierten Pixel eingefügt werden. alphaBitmapDataflash.display:BitmapDatanullEin zweites BitmapData-Objekt als Alphaquelle. alphaPointflash.geom:PointnullDer Punkt in der BitmapData-Objektquelle, der der linken oberen Ecke des sourceRect-Parameters entspricht. mergeAlphaBooleanfalseUm den Alphakanal zu verwenden, setzen Sie den Wert auf true. Um die Pixel ohne Alphadaten zu kopieren, setzen Sie den Wert auf false. Bietet eine schnelle Routine zur Bearbeitung von Pixeln zwischen Bildern ohne Dehnung, Drehung oder Farbeffekte. Diese Methode kopiert einen Rechteckbereich eines Quellbilds in einen Rechteckbereich gleicher Größe an den Zielpunkt im BitmapData-Zielobjekt.

Wenn Sie auch die Parameter alphaBitmap und alphaPoint angeben, können Sie ein zweites Bild als Alphaquelle für das Quellbild verwenden. Verfügt auch das Quellbild über Alphadaten, werden die Alphadaten beider Bilder verwendet, um die Pixel des Quellbilds in das Zielbild zu projizieren. Der Parameter alphaPoint gibt dabei den Punkt innerhalb des Zielbilds an, der der linken oberen Ecke des Quellrechtecks entspricht. Sämtliche Pixel außerhalb des Überschneidungsbereichs von Quell- und Alphabild werden nicht in das Zielbild kopiert.

Die mergeAlpha-Eigenschaft steuert, ob das Kopieren eines transparenten Bilds auf ein anderes transparentes Bild unter Berücksichtigung des Alphakanals durchgeführt wird. Um die Pixel mit Alphakanaldaten zu kopieren, setzen Sie die mergeAlpha-Eigenschaft auf true. In der Standardeinstellung hat die mergeAlpha-Eigenschaft den Wert false.

Das folgende Beispiel zeigt, wie Sie Pixel aus einem Pixelbereich der Größe 20 x 20 eines BitmapData-Objekts in ein anderes BitmapData-Objekt kopieren: import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Rectangle; import flash.geom.Point; var bmd1:BitmapData = new BitmapData(40, 40, false, 0x000000FF); var bmd2:BitmapData = new BitmapData(80, 40, false, 0x0000CC44); var rect:Rectangle = new Rectangle(0, 0, 20, 20); var pt:Point = new Point(10, 10); bmd2.copyPixels(bmd1, rect, pt); var bm1:Bitmap = new Bitmap(bmd1); this.addChild(bm1); var bm2:Bitmap = new Bitmap(bmd2); this.addChild(bm2); bm2.x = 50;
dispose Gibt Speicher frei, der zum Speichern des BitmapData-Objekts verwendet wird. Gibt Speicher frei, der zum Speichern des BitmapData-Objekts verwendet wird.

Wenn die dispose()-Methode für ein Bild aufgerufen wird, werden Breite und Höhe des Bilds auf 0 gesetzt. Alle nachfolgenden Aufrufe von Methoden und Eigenschaften für diese BitmapData-Instanz schlagen fehl, und eine Ausnahme wird ausgelöst.

BitmapData.dispose() gibt den Arbeitsspeicher, der von den tatsächlichen Bitmapdaten belegt wird, sofort frei (ein Bitmap kann bis zu 64 MB Arbeitsspeicher belegen). Nach der Verwendung von BitmapData.dispose() kann das BitmapData-Objekt nicht mehr verwendet werden und die Flash-Laufzeitumgebung gibt eine Ausnahme aus, wenn Sie Funktionen für das BitmapData-Objekt aufrufen. Mit BitmapData.dispose() wird jedoch nicht das BitmapData-Objekt (ca. 128 Byte) aus dem Speicher entfernt; der vom eigentlichen BitmapData-Objekt belegte Arbeitsspeicher wird frei, wenn das BitmapData-Objekt vom Garbage Collector aus dem Speicher entfernt wird.

Das folgende Beispiel zeigt, wie sich das Aufrufen einer Methode eines BitmapData-Objekts nach einem Aufruf der dispose()-Methode auswirkt (es wird eine Ausnahme ausgelöst): import flash.display.BitmapData; var myBitmapData:BitmapData = new BitmapData(100, 80, false, 0x000000FF); trace(myBitmapData.getPixel(1, 1)); // 255 == 0xFF myBitmapData.dispose(); try { trace(myBitmapData.getPixel(1, 1)); } catch (error:Error) { trace(error); // ArgumentError }
flash.system.System.gc()
draw Zeichnet das source-Anzeigeobjekt mithilfe des Vektorrenderers der Flash-Laufzeitumgebung auf das Bitmapbild.Beim source-Parameter handelt es sich nicht um ein BitmapData- oder DisplayObject-Objekt. ArgumentErrorArgumentErrorDas source-Objekt und (bei einem Sprite- oder MovieClip-Objekt) alle seine untergeordneten Objekte stammen nicht aus derselben Domäne wie der Aufrufer oder befinden sich nicht in Inhalt, auf den der Aufrufer über einen Aufruf der Security.allowDomain()-Methode zugreifen kann. Diese Einschränkung gilt nicht für AIR-Inhalt in der Sicherheits-Sandbox der Anwendung. SecurityErrorSecurityErrorDie Quelle ist null oder kein zulässiges IBitmapDrawable-Objekt. ArgumentErrorArgumentErrorsourceflash.display:IBitmapDrawableDas Anzeigeobjekt oder BitmapData-Objekt, das in das BitmapData-Objekt gezeichnet werden soll. (Die Klassen DisplayObject und BitmapData implementieren die IBitmapDrawable-Schnittstelle.) matrixflash.geom:MatrixnullEin Matrix-Objekt, mit dem die Koordinaten der Bitmap skaliert, gedreht oder umgesetzt werden können. Wenn Sie auf das Bild keine Matrixtransformation anwenden möchten, setzen Sie diesen Parameter auf eine Identitätsmatrix, die mit dem Standardkonstruktor new Matrix() erstellt wurde, oder übergeben Sie einen null-Wert. colorTransformflash.geom:ColorTransformnullEin ColorTransform-Objekt, mit dem die Farbwerte der Bitmap angepasst werden können. Falls kein Objekt vorhanden ist, findet keine Transformation der Bitmap-Farben statt. Wenn Sie diesen Parameter übergeben müssen, das Bild aber nicht transformieren möchten, setzen Sie diesen Parameter auf ein ColorTransform-Objekt, das mit dem Standardkonstruktor new ColorTransform() erstellt worden ist. blendModeStringnullEin String-Wert aus der flash.display.BlendMode-Klasse, der den Mischmodus festlegt, der auf die resultierende Bitmap angewendet werden soll. clipRectflash.geom:RectanglenullEin Rechteckobjekt, das den Bereich des zu zeichnenden Quellobjekts definiert. Wenn Sie diesen Wert nicht angeben, wird das Bild nicht abgeschnitten, und das gesamte Quellobjekt wird gezeichnet. smoothingBooleanfalseEin boolescher Wert, der festlegt, ob ein BitmapData-Objekt bei der Skalierung oder Drehung aufgrund einer Skalierung oder Drehung im Parameter matrix geglättet wird. Der Parameter smoothing ist nur anwendbar, wenn es sich beim Parameter source um ein BitmapData-Objekt handelt. Wenn smoothing auf false gesetzt ist, wirkt das gedrehte bzw. skalierte BitmapData-Bild grobkörnig oder ungeglättet. Die folgenden beiden Bilder verwenden z. B. beide das gleiche BitmapData-Objekt als source-Parameter, aber der Parameter smoothing ist links auf true und rechts auf false gesetzt:

Das Zeichnen einer Bitmap dauert länger, wenn smoothing auf true gesetzt ist, und geht schneller, wenn smoothing auf false gesetzt ist.

Zeichnet das source-Anzeigeobjekt mithilfe des Vektorrenderers der Flash-Laufzeitumgebung auf das Bitmapbild. Sie können matrix, colorTransform, blendMode und einen Zielparameter clipRect angeben, der steuert, wie das Rendern durchgeführt wird. Optional können Sie auch festlegen, ob die Bitmap beim Skalieren geglättet werden soll (dies funktioniert nur, wenn es sich beim Quellobjekt um ein BitmapData-Objekt handelt).

Diese Methode entspricht der Einstellung des Zeichnungsverfahrens mithilfe des Standardvektorrenderers für Objekte in der Authoring-Umgebung.

Das Quellanzeigeobjekt verwendet bei diesem Aufruf keines seiner angewendeten Transformationsverfahren. Es wird so verarbeitet, wie es in der Bibliothek oder Datei vorliegt. Dabei werden keine Matrix- oder Farbtransformationen durchgeführt und keine Mischmodi verwendet. Wenn Sie beim Zeichnen des Anzeigeobjekts (etwa eines Movieclips) seine eigenen Transformationseigenschaften verwenden möchten, können Sie das entsprechende transform-Eigenschaftsobjekt in die transform-Eigenschaft des Bitmap-Objekts kopieren, die das BitmapData-Objekt verwendet.

Diese Methode wird in Flash Player 9.0.115.0 und höher sowie in Adobe AIR über RTMP unterstützt. Sie können den Zugriff auf Streams auf Flash Media Server in einem serverseitigen Skript steuern. Weitere Informationen finden Sie in den Abschnitten zu den Eigenschaften Client.audioSampleAccess und Client.videoSampleAccess in Server-Side ActionScript Language Reference for Adobe Flash Media Server.

Wenn das source-Objekt und (bei einem Sprite- oder MovieClip-Objekt) alle seine untergeordneten Objekte nicht aus derselben Domäne wie der Aufrufer stammen oder sich nicht in Inhalt befinden, auf den der Aufrufer über einen Aufruf der Security.allowDomain()-Methode zugreifen kann, tritt bei einem Aufruf von draw() eine SecurityError-Ausnahme auf. Diese Einschränkung gilt nicht für AIR-Inhalt in der Sicherheits-Sandbox der Anwendung.

Es gibt auch Beschränkungen für die Verwendung eines geladenen Bitmapbilds als source. Das Aufrufen der draw()-Methode ist erfolgreich, wenn das geladene Bild aus derselben Domäne stammt wie der Aufrufer. Des Weiteren kann eine domänenübergreifende Richtliniendatei auf dem Server des Bilds der Domäne des SWF-Inhalts, der die draw()-Methode aufruft, die Berechtigung erteilen. In diesem Fall setzen Sie die checkPolicyFile-Eigenschaft eines LoaderContext-Objekts und verwenden dieses Objekt als context-Parameter beim Aufrufen der load()-Methode des Loader-Objekts, das für das Laden des Bilds verwendet wird. Diese Sicherheitseinschränkungen gelten nicht für AIR-Inhalte in der Sicherheitssandbox der Anwendung.

Unter Windows kann die draw()-Methode keinen SWF-Inhalt erfassen, der in einer HTML-Seite in einem HTMLLoader-Objekt in Adobe AIR eingebettet ist.

Die draw()-Methode kann keinen PDF-Inhalt in Adobe AIR erfassen. Sie kann auch keinen in HTML eingebetteten SWF-Inhalt erfassen, bei dem das wmode-Attribut auf "window" gesetzt ist in Adobe AIR.

Aus dem folgenden Beispiel geht hervor, wie Sie ein TextField-Objekt für ein BitmapData-Objekt zeichnen: import flash.display.Bitmap; import flash.display.BitmapData; import flash.text.TextField; var tf:TextField = new TextField(); tf.text = "bitmap text"; var myBitmapData:BitmapData = new BitmapData(80, 20); myBitmapData.draw(tf); var bmp:Bitmap = new Bitmap(myBitmapData); this.addChild(bmp);
flash.display.BlendModeflash.geom.ColorTransformflash.geom.Matrixflash.system.JPEGLoaderContext
fillRect Füllt einen rechteckigen Pixelbereich mit der angegebenen ARGB-Farbe.„rect“ hat den Wert null. TypeErrorTypeErrorrectflash.geom:RectangleDer zu füllende rechteckige Bereich. coloruintDer ARGB-Farbwert, mit dem der Bereich gefüllt werden soll. ARGB-Farben werden häufig in einem hexadezimalen Format dargestellt, z. B. 0xFF336699. Füllt einen rechteckigen Pixelbereich mit der angegebenen ARGB-Farbe. Aus dem folgenden Beispiel geht hervor, wie Sie einen rechteckigen Bereich eines BitmapData-Objekts blau füllen: import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Rectangle; var myBitmapData:BitmapData = new BitmapData(40, 40, false, 0x0000FF00); var rect:Rectangle = new Rectangle(0, 0, 20, 20); myBitmapData.fillRect(rect, 0x0000FF); var bm:Bitmap = new Bitmap(myBitmapData); addChild(bm); flash.geom.RectanglefloodFill Führt für ein Bild ausgehend von einer (x, y)-Koordinate einen Flood-Fill-Vorgang mit einer bestimmten Farbe durch.xintDie x-Koordinate des Bilds. yintDie y-Koordinate des Bilds. coloruintDie ARGB-Farbe, die zum Füllen verwendet wird. Führt für ein Bild ausgehend von einer (x, y)-Koordinate einen Flood-Fill-Vorgang durch. Führt für ein Bild ausgehend von einer (x, y)-Koordinate einen Flood-Fill-Vorgang mit einer bestimmten Farbe durch. Die floodFill()-Methode ist mit dem Farbeimerwerkzeug verschiedener Mal- und Zeichenprogramme vergleichbar. Als Farbe wird eine ARGB-Farbe einschließlich Alpha- und Farbdaten angegeben. Das folgende Beispiel zeigt, wie ein Bereich eines BitmapData-Objekts - also der Bereich, der die durch den Punkt (10, 10) definierten Pixel umgibt, in dem alle Farben mit der Farbe an diesem Punkt übereinstimmen - mit Rot gefüllt wird import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Rectangle; var myBitmapData:BitmapData = new BitmapData(40, 40, false, 0x0000FF00); var rect:Rectangle = new Rectangle(0, 0, 20, 20); myBitmapData.fillRect(rect, 0x000000FF); rect = new Rectangle(15, 15, 25, 25); myBitmapData.fillRect(rect, 0x000000FF); myBitmapData.floodFill(10, 10, 0x00FF0000); var bm:Bitmap = new Bitmap(myBitmapData); addChild(bm); generateFilterRect Bestimmt das Zielrechteck, auf das sich der Aufruf der applyFilter()-Methode auswirkt. Die Angaben beziehen sich auf ein BitmapData-Objekt, ein Quellrechteck und ein filter-Objekt.„sourceRect“ oder „filter“ haben den Wert null. TypeErrorTypeErrorEin Zielrechteck, das aus einem Bild, dem Parameter sourceRect und einem Filter berechnet wird. flash.geom:RectanglesourceRectflash.geom:RectangleEin Rechteck, mit dem der Bereich des als Eingabe zu verwendenden Quellbilds definiert wird. filterflash.filters:BitmapFilterEin filter-Objekt, das zur Berechnung des Zielrechtecks verwendet wird. Legt das Zielrechteck fest, auf das sich der applyFilter()-Aufruf auswirkt. Bestimmt das Zielrechteck, auf das sich der Aufruf der applyFilter()-Methode auswirkt. Die Angaben beziehen sich auf ein BitmapData-Objekt, ein Quellrechteck und ein filter-Objekt.

So bezieht sich ein Weichzeichnungsfilter normalerweise auf einen Bereich, der größer als das ursprüngliche Bild ist. Ein 100 x 200 Pixel großes Bild, das mit einer normalen BlurFilter-Instanz mit dem Wert blurX = blurY = 4 gefiltert wird, erzeugt ein Zielrechteck von (-2,-2,104,204). Mit der generateFilterRect()-Methode können Sie die Größe des Zielrechtecks vorherbestimmen und die Größe des Zielbilds vor der Filterung entsprechend anpassen.

Einige Filter schneiden das Zielrechteck entsprechend der Größe des Zielbilds aus. So wird beispielsweise bei einem inneren DropShadow-Objekt kein größeres Bild als das Quellbild erzeugt. In dieser API wird das BitmapData-Objekt als Quellbegrenzung und nicht als rect-Quellparameter verwendet.

Aus diesem Beispiel geht die Verwendung der generateFilterRect()-Methode hervor, mit der Sie den rechteckigen Bereich bestimmen, auf den sich ein Weichzeichnungsfilter auswirkt. Die Ergebnisse der generateFilterRect()-Methode werden über die trace()-Funktion ausgegeben: import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Point; import flash.geom.Rectangle; import flash.filters.BlurFilter; var bmd:BitmapData = new BitmapData(80, 30, false, 0xFFCC00); var rect:Rectangle = new Rectangle(10, 10, 40, 10); bmd.fillRect(rect, 0xFF0000); var pt:Point = new Point(10, 10); var filter:BlurFilter = new BlurFilter(); trace(bmd.generateFilterRect(rect, filter)); // (x=8, y=8, w=44, h=14) bmd.applyFilter(bmd, rect, pt, filter); var bm:Bitmap = new Bitmap(bmd); addChild(bm); Beachten Sie, dass die generateFilterRect()-Methode den Filter nicht anwendet. Rufen Sie die applyFilter()-Methode auf, um den Filter anzuwenden.
getColorBoundsRect Legt einen rechteckigen Bereich fest, der entweder innerhalb der Bitmap alle Pixel einer bestimmten Farbe vollständig umschließt (wenn der findColor-Parameter auf „true“ gesetzt ist) oder alle Pixel vollständig umschließt, die die angegebene Farbe nicht enthalten (wenn der findColor-Parameter auf „false“ gesetzt ist).Der Bereich des Bilds, der die angegebene Farbe enthält. flash.geom:RectanglemaskuintEin Hexadezimalwert, der die Bits der zu berücksichtigenden ARGB-Farbe festlegt. Der Farbwert wird durch Verwendung des & (bitweises AND) mit diesem Hexadezimalwert kombiniert. coloruintEin Hexadezimalwert, der die ARGB-Farbe festlegt, die übereinstimmen soll (wenn findColor auf true gesetzt ist) bzw. nicht übereinstimmen soll (wenn findColor auf false gesetzt ist). findColorBooleantrueWenn der Wert auf true gesetzt ist, werden die Begrenzungen eines bestimmten Farbwerts in einem Bild zurückgegeben. Wenn der Wert auf false gesetzt ist, werden die Begrenzungen der Bereiche zurückgegeben, in denen der betreffende Farbwert im Bild nicht vorkommt. Legt einen rechteckigen Bereich fest, der entweder innerhalb der Bitmap alle Pixel einer bestimmten Farbe vollständig umschließt (wenn der Parameter findColor auf true gesetzt ist) oder alle Pixel vollständig umschließt, die die angegebene Farbe nicht enthalten (wenn der Parameter findColor auf false gesetzt ist).

Wenn Sie beispielsweise mit einem Quellbild arbeiten und das Rechteck des Bilds bestimmen möchten, das Alphakanaldaten ungleich 0 (null) enthält, übergeben Sie {mask: 0xFF000000, color: 0x00000000} als Parameter. Ist der Parameter findColor auf true gesetzt, wird das gesamte Bild nach den Begrenzungen der Pixel durchsucht, für die (value & mask) == color gilt (wobei value dem Farbwert der Pixel entspricht). Ist der Parameter findColor auf false gesetzt, wird das gesamte Bild nach den Begrenzungen der Pixel durchsucht, für die (value & mask) != color gilt (wobei value dem Farbwert der Pixel entspricht). Wenn Sie also den weißen Bereich ermitteln möchten, der um ein Bild angeordnet ist, übergeben Sie {mask: 0xFFFFFFFF, color: 0xFFFFFFFF}, um nach der Begrenzung aller nicht-weißen Pixel zu suchen.

Im folgenden Beispiel wird ein BitmapData-Objekt erstellt, dessen Pixel in der oberen Hälfte rot sind. Als Nächstes wird die getColorBoundsRect()-Methode aufgerufen, um das Rechteck zu bestimmen, dessen Pixel rot sind (0xFF0000). Im nächsten Schritt wird dieselbe Methode aufgerufen, um das Rechteck zu bestimmen, dessen Pixel nicht rot sind (indem der Parameter findColor auf false gesetzt wird): import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Rectangle; var bmd:BitmapData = new BitmapData(80, 40, false, 0xFFFFFF); var rect:Rectangle = new Rectangle(0, 0, 80, 20); bmd.fillRect(rect, 0xFF0000); var maskColor:uint = 0xFFFFFF; var color:uint = 0xFF0000; var redBounds:Rectangle = bmd.getColorBoundsRect(maskColor, color, true); trace(redBounds); // (x=0, y=0, w=80, h=20) var notRedBounds:Rectangle = bmd.getColorBoundsRect(maskColor, color, false); trace(notRedBounds); // (x=0, y=20, w=80, h=20) var bm:Bitmap = new Bitmap(bmd); addChild(bm);
getPixel32 Gibt einen ARGB-Farbwert zurück, der Alphakanal- und RGB-Daten enthält.Eine Zahl, die einen ARGB-Pixelwert darstellt. Falls die x- und y-Koordinaten außerhalb der Bildbegrenzung liegen, wird 0 (null) zurückgegeben. uintxintDie x-Position eines Pixels. yintDie y-Position eines Pixels. Gibt einen ARGB-Farbwert zurück, der Alphakanal- und RGB-Daten enthält. Diese Methode ähnelt der getPixel()-Methode, die einen RGB-Farbwert ohne Alphakanaldaten zurückgibt.

Sämtliche Pixel eines BitmapData-Objekts werden als vormultiplizierte Farbwerte gespeichert. Bei diesen vormultiplizierten Bildpixeln sind die Farbkanalwerte für Rot, Grün und Blau bereits mit den Alphadaten multipliziert worden. Wenn also beispielsweise der Alphawert 0 (null) ist, lauten die Werte der RGB-Kanäle, unabhängig von ihren ursprünglichen Werten, ebenfalls 0 (null). Bei bestimmten Vorgängen kann dieser Datenverlust zu Problemen führen. Alle BitmapData-Methoden akzeptieren nicht multiplizierte Werte und geben diese auch zurück. Vor der Rückgabe der Werte wird die interne Pixeldarstellung von vormultipliziert in nicht multipliziert konvertiert. Vor dem Einstellen der Pixelrohdaten des Bilds wird der Pixelwert im Verlauf einer set-Operation vormultipliziert.

Im folgenden Beispiel wird ein BitmapData-Objekt mit Farbfüllung erstellt und anschließend die getPixel32()-Methode verwendet, um den Farbwert des linken oberen Pixels zu bestimmen. Danach werden die hexadezimalen Werte für die einzelnen Farbkomponenten (Alpha, Rot, Grün und Blau) bestimmt: import flash.display.BitmapData; var bmd:BitmapData = new BitmapData(80, 40, true, 0xFF44AACC); var pixelValue:uint = bmd.getPixel32(0, 0); var alphaValue:uint = pixelValue >> 24 & 0xFF; var red:uint = pixelValue >> 16 & 0xFF; var green:uint = pixelValue >> 8 & 0xFF; var blue:uint = pixelValue & 0xFF; trace(alphaValue.toString(16)); // ff trace(red.toString(16)); // 44 trace(green.toString(16)); // aa trace(blue.toString(16)); // cc
getPixel()setPixel32()
getPixel Gibt eine Ganzzahl zurück, die einen RGB-Pixelwert eines BitmapData-Objekts an einem bestimmten Punkt (x, y) darstellt.Eine Zahl, die für den RGB-Pixelwert steht. Falls die x- und y-Koordinaten außerhalb der Bildbegrenzung liegen, gibt die Methode 0 (null) zurück. uintxintDie x-Position eines Pixels. yintDie y-Position eines Pixels. Gibt eine Ganzzahl zurück, die einen RGB-Pixelwert eines BitmapData-Objekts an einem bestimmten Punkt darstellt. Gibt eine Ganzzahl zurück, die einen RGB-Pixelwert eines BitmapData-Objekts an einem bestimmten Punkt (x, y) darstellt. Die getPixel()-Methode gibt einen nicht multiplizierten Pixelwert zurück. Es werden keine Alphadaten zurückgegeben.

Sämtliche Pixel eines BitmapData-Objekts werden als vormultiplizierte Farbwerte gespeichert. Bei diesen vormultiplizierten Bildpixeln sind die Farbkanalwerte für Rot, Grün und Blau bereits mit den Alphadaten multipliziert worden. Wenn also beispielsweise der Alphawert 0 (null) ist, lauten die Werte der RGB-Kanäle, unabhängig von ihren ursprünglichen Werten, ebenfalls 0 (null). Bei bestimmten Vorgängen kann dieser Datenverlust zu Problemen führen. Alle BitmapData-Methoden akzeptieren nicht multiplizierte Werte und geben diese auch zurück. Vor der Rückgabe der Werte wird die interne Pixeldarstellung von vormultipliziert in nicht multipliziert konvertiert. Vor dem Einstellen der Pixelrohdaten des Bilds wird der Pixelwert im Verlauf einer set-Operation vormultipliziert.

Im folgenden Beispiel wird ein BitmapData-Objekt mit roter Füllung erstellt und anschließend die getPixel()-Methode verwendet, um den Farbwert des linken oberen Pixels zu bestimmen. import flash.display.BitmapData; var bmd:BitmapData = new BitmapData(80, 40, false, 0xFF0000); var pixelValue:uint = bmd.getPixel(0, 0); trace(pixelValue.toString(16)); // ff0000;
getPixel32()setPixel()
getPixels Erzeugt ein Byte-Array aus einem rechteckigen Bereich mit Pixeldaten.„rect“ hat den Wert null. TypeErrorTypeErrorEin Byte-Array, das die Pixel im gegebenen Rechteck repräsentiert. flash.utils:ByteArrayrectflash.geom:RectangleEin rechteckiger Bereich im aktuellen BitmapData-Objekt. Erzeugt ein Byte-Array aus einem rechteckigen Bereich mit Pixeldaten. Schreibt eine vorzeichenlose Ganzzahl (ein nicht multiplizierter 32-Bit-Pixelwert) für jedes Pixel in das Byte-Array. Im folgenden Beispiel wird ein BitmapData-Objekt mit zufälligen Störungspixeln erstellt und anschließend die getPixels()-Methode verwendet, um ein ByteArray-Objekt mit den Pixelwerten des BitmapData-Objekts zu füllen. import flash.display.BitmapData; import flash.geom.Rectangle; import flash.utils.ByteArray; var bmd:BitmapData = new BitmapData(80, 40, true); var seed:int = int(Math.random() * int.MAX_VALUE); bmd.noise(seed); var bounds:Rectangle = new Rectangle(0, 0, bmd.width, bmd.height); var pixels:ByteArray = bmd.getPixels(bounds); flash.utils.ByteArraygetVector Erzeugt ein Vektorarray aus einem rechteckigen Bereich mit Pixeldaten.„rect“ hat den Wert null. TypeErrorTypeErrorEin Vektor, der das Rechteck darstellt. rectflash.geom:RectangleEin rechteckiger Bereich im aktuellen BitmapData-Objekt. Erzeugt ein Vektor-Array aus einem rechteckigen Bereich mit Pixeldaten. Gibt ein Vector-Objekt aus vorzeichenlosen Ganzzahlen (ein nicht multiplizierter 32-Bit-Pixelwert) für das angegebene Rechteck zurück. histogram Berechnet ein Histogramm mit 256 Binärzahlwerten für ein BitmapData-Objekt.hRectflash.geom:RectanglenullDer Bereich des BitmapData-Objekts, der verwendet wird. Berechnet ein Histogramm mit 256 Binärzahlwerten für ein BitmapData-Objekt. Diese Methode gibt ein Vector-Objekt zurück, das vier Vector.<Number>-Instanzen enthält (vier Vector-Objekte, die Number-Objekte enthalten). Die vier Vector-Instanzen stellen die rote, grüne, blaue und Alphakomponente in dieser Reihenfolge dar. Jede Vector-Instanz enthält 256 Werte, die die Zählung eines einzelnen Komponentenwerts zwischen 0 und 255 enthalten. hitTest Führt zwischen einer Bitmap und einem Punkt, einem Rechteck oder einer anderen Bitmap eine Kollisionserkennung auf Pixelebene durch.Der Parameter secondObject ist kein Point-, Rectangle-, Bitmap- oder BitmapData-Objekt. ArgumentErrorArgumentError„firstPoint“ hat den Wert null. TypeErrorTypeErrorEs gilt true, wenn eine Kollisionserkennung stattfindet, andernfalls gilt false. BooleanfirstPointflash.geom:Point Eine Position in der linken oberen Ecke des BitmapData-Bilds in einem beliebigen Koordinatenraum. Derselbe Koordinatenraum wird beim Definieren des Parameters secondBitmapPoint verwendet. firstAlphaThresholduintDer niedrigste Alphakanalwert, der für diese Kollisionserkennung als undurchsichtig gewertet wird. secondObjectObjectEin Rectangle-, Point-, Bitmap- oder BitmapData-Objekt. secondBitmapDataPointflash.geom:PointnullEin Punkt, der die Position eines Pixels im zweiten BitmapData-Objekt angibt. Sie sollten diesen Parameter nur verwenden, wenn der Wert von secondObject ein BitmapData-Objekt ist. secondAlphaThresholduint1Der niedrigste Alphakanalwert, der im zweiten BitmapData-Objekt als undurchsichtig gewertet wird. Sie sollten diesen Parameter nur verwenden, wenn der Wert von secondObject ein BitmapData-Objekt ist und beide BitmapData-Objekte transparent sind. Führt zwischen einer Bitmap und einem Punkt, einem Rechteck oder einer anderen Bitmap eine Kollisionserkennung auf Pixelebene durch. Eine Kollision ist als Überlappung eines Punkts oder Rechtecks mit einem undurchsichtigen Pixel oder als Überlappung zweier undurchsichtiger Pixel definiert. Bei dieser Kollisionserkennung werden keine Dehnungen, Drehungen oder anderen Transformationen der Objekte berücksichtigt.

Handelt es sich bei einem Bild um ein undurchsichtiges Bild, wird es bei dieser Methode als vollständig undurchsichtiges Rechteck betrachtet. Beide Bilder müssen transparent sein, damit eine Kollisionserkennung auf Pixelebene durchgeführt werden kann, bei der die Transparenz berücksichtigt wird. Wenn Sie zwei transparente Bilder testen, steuern die Parameter für die Alphaschwellen, welche Alphakanalwerte zwischen 0 und 255 als undurchsichtig betrachtet werden.

Im folgenden Beispiel wird ein BitmapData-Objekt erstellt, das nur in einem rechteckigen Bereich (20, 20, 40, 40) undurchsichtig ist und die hitTest()-Methode mit einem Point-Objekt als secondObject aufruft. Beim ersten Aufruf definiert das Point-Objekt die obere linke Ecke des BitmapData-Objekts, die nicht undurchsichtig ist, und im zweiten Aufruf definiert das Point-Objekt den Mittelpunkt des BitmapData-Objekts, der undurchsichtig ist. import flash.display.BitmapData; import flash.geom.Rectangle; import flash.geom.Point; var bmd1:BitmapData = new BitmapData(80, 80, true, 0x00000000); var rect:Rectangle = new Rectangle(20, 20, 40, 40); bmd1.fillRect(rect, 0xFF0000FF); var pt1:Point = new Point(1, 1); trace(bmd1.hitTest(pt1, 0xFF, pt1)); // false var pt2:Point = new Point(40, 40); trace(bmd1.hitTest(pt1, 0xFF, pt2)); // true
lock Sperrt ein Bild, sodass Objekte, die auf das BitmapData-Objekt verweisen, z. B. Bitmap-Objekte, nicht aktualisiert werden, wenn sich dieses BitmapData-Objekt ändert. Sperrt ein Bild, sodass Objekte, die auf das BitmapData-Objekt verweisen, z. B. Bitmap-Objekte, nicht aktualisiert werden, wenn sich dieses BitmapData-Objekt ändert. Um die Performance zu verbessern, verwenden Sie diese Methode zusammen mit der unlock()-Methode vor und nach mehreren Aufrufen der Methode setPixel() oder setPixel32(). Im folgenden Beispiel wird ein BitmapData-Objekt basierend auf der bitmapData-Eigenschaft eines Bitmap-Objekts (picture) erstellt. Das Objekt ruft dann die lock()-Methode auf, bevor eine komplizierte benutzerdefinierte Funktion (complexTransformation()) aufgerufen wird, die das BitmapData-Objekt ändert. (Das picture-Objekt und die complexTransformation()-Funktion sind in diesem Beispiel nicht definiert.) Auch wenn die complexTransformation()-Funktion die bitmapData-Eigenschaft des picture-Objekts aktualisiert, werden die Änderungen erst wirksam, wenn der Code die unlock()-Methode des bitmapData-Objekts aufruft: import flash.display.BitmapData; var bitmapData:BitmapData = picture.bitmapData; bitmapData.lock(); bitmapData = complexTransformation(bitmapData); bitmapData.unlock(); picture.bitmapData = bitmapData; setPixel()setPixel32()unlock()merge Führt von einem Quellbild zu einem Zielbild eine Mischung pro Kanal durch.„sourceBitmapData“, „sourceRect“ oder „destPoint“ haben den Wert null. TypeErrorTypeErrorsourceBitmapDataflash.display:BitmapDataDie als Eingabe verwendete Bitmap. Das Quellbild kann ein anderes BitmapData-Objekt oder ein Verweis auf das aktuelle BitmapData-Objekt sein. sourceRectflash.geom:RectangleEin Rechteck, mit dem der Bereich des als Eingabe zu verwendenden Quellbilds definiert wird. destPointflash.geom:PointDer Punkt innerhalb des Zielbilds (die aktuelle BitmapData-Instanz), der der linken oberen Ecke des Quellrechtecks entspricht. redMultiplieruintEin Hexadezimalwert, mit dem der Wert des Farbkanals Rot multipliziert wird. greenMultiplieruintEin Hexadezimalwert, mit dem der Wert des Farbkanals Grün multipliziert wird. blueMultiplieruintEin Hexadezimalwert, mit dem der Wert des Farbkanals Blau multipliziert wird. alphaMultiplieruintEin Hexadezimalwert, mit dem der Alphatransparenzwert multipliziert wird. Führt von einem Quellbild zu einem Zielbild eine Mischung pro Kanal durch. Für jeden Kanal und jedes Pixel wird ein neuer Wert berechnet. Dieser basiert auf den Kanalwerten der Quell- und Zielpixel. Im roten Kanal wird der neue Wert zum Beispiel wie folgt berechnet (wobei redSrc der Wert des roten Kanals für ein Pixel im Quellbild ist und redDest der Wert des roten Kanals für das entsprechende Pixel im Zielbild):

new redDest = [(redSrc * redMultiplier) + (redDest * (256 - redMultiplier))] / 256;

Die Werte redMultiplier, greenMultiplier, blueMultiplier und alphaMultiplier sind die für die einzelnen Farbkanäle verwendeten Multiplikatoren. Verwenden Sie einen Hexadezimalwert zwischen 0 und 0x100 (256), wobei 0 festlegt, dass der volle Wert aus dem Ziel im Ergebnis verwendet wird, 0x100 festlegt, dass der volle Wert aus der Quelle verwendet wird, und Zahlen dazwischen festlegen, dass eine Mischung verwendet wird (zum Beispiel 0x80 für 50 %).

Im folgenden Beispiel werden zwei neue BitmapData-Objekte erstellt. Beide haben eine Größe von 100 x 80 Pixel. Das erste Objekt ist grün gefüllt, und das zweite Objekt ist rot gefüllt. Der Code ruft die merge()-Methode auf und führt die Pixel des zweiten BitmapData-Objekts mit den Pixeln des ersten BitmapData-Objekts zusammen. Dieser Schritt wird jedoch nur für einen angegebenen rechteckigen Bereich durchgeführt: import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Rectangle; import flash.geom.Point; var bmd1:BitmapData = new BitmapData(100, 80, true, 0xFF00FF00); var bmd2:BitmapData = new BitmapData(100, 80, true, 0xFFFF0000); var rect:Rectangle = new Rectangle(0, 0, 20, 20); var pt:Point = new Point(20, 20); var mult:uint = 0x80; // 50% bmd1.merge(bmd2, rect, pt, mult, mult, mult, mult); var bm1:Bitmap = new Bitmap(bmd1); addChild(bm1); var bm2:Bitmap = new Bitmap(bmd2); addChild(bm2); bm2.x = 110;
noise Füllt ein Bild mit Pixeln, die zufällige Störungen darstellen.randomSeedintDer zu verwendende Anfangswert für den Zufallsgenerator. Wenn Sie alle anderen Parameter beibehalten, können Sie nur durch Änderung dieses Anfangswerts unterschiedliche pseudo-zufällige Ergebnisse erzielen. Bei der Störungsfunktion handelt es sich nicht um einen echten Zufallszahlengenerator, sondern eher um eine Zuordnungsfunktion, die mit gleich bleibendem Anfangswert immer dasselbe Ergebnis liefert. lowuint0Der niedrigste zu erzeugende Wert für jeden Kanal (0 bis 255). highuint255Der höchste zu erzeugende Wert für jeden Kanal (0 bis 255). channelOptionsuint7Eine Zahl als beliebige Kombination der vier Farbkanalwerte (BitmapDataChannel.RED, BitmapDataChannel.BLUE, BitmapDataChannel.GREEN und BitmapDataChannel.ALPHA). Sie können die Kanalwerte auch mithilfe des logischen OR-Operators (|) kombinieren. grayScaleBooleanfalseEin boolescher Wert. Ist der Wert true, wird durch die Einstellung aller Farbkanäle auf den gleichen Wert ein Graustufenbild erstellt. Der Wert des Alphakanals ist von der Einstellung dieses Parameters auf true nicht betroffen. Füllt ein Bild mit Pixeln, die zufällige Störungen darstellen. Im folgenden Beispiel werden zwei BitmapData-Objekte erstellt, für die jeweils die noise()-Methode aufgerufen wird. Der Parameter grayscale wird jedoch auf false gesetzt, um den Aufruf der noise()-Methode des ersten Objekts durchzuführen, und er wird auf true gesetzt, um den Aufruf der noise()-Methode des zweiten Objekts durchzuführen: import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.BitmapDataChannel; var bmd1:BitmapData = new BitmapData(80, 80); var bmd2:BitmapData = new BitmapData(80, 80); var seed:int = int(Math.random() * int.MAX_VALUE); bmd1.noise(seed, 0, 0xFF, BitmapDataChannel.RED, false); bmd2.noise(seed, 0, 0xFF, BitmapDataChannel.RED, true); var bm1:Bitmap = new Bitmap(bmd1); this.addChild(bm1); var bm2:Bitmap = new Bitmap(bmd2); this.addChild(bm2); bm2.x = 90; flash.display.BitmapDataChannel.REDflash.display.BitmapDataChannel.BLUEflash.display.BitmapDataChannel.GREENflash.display.BitmapDataChannel.ALPHApaletteMap Ordnet die Farbkanalwerte in einem Bild mit maximal vier Arrays von Farbpalettendaten neu zu, wobei die einzelnen Arrays jeweils einen Kanal darstellen.„sourceBitmapData“, „sourceRect“ oder „destPoint“ haben den Wert null. TypeErrorTypeErrorsourceBitmapDataflash.display:BitmapDataDie als Eingabe verwendete Bitmap. Das Quellbild kann ein anderes BitmapData-Objekt oder ein Verweis auf die aktuelle BitmapData-Instanz sein. sourceRectflash.geom:RectangleEin Rechteck, mit dem der Bereich des als Eingabe zu verwendenden Quellbilds definiert wird. destPointflash.geom:PointDer Punkt innerhalb des Zielbilds (das aktuelle BitmapData-Objekt), der der linken oberen Ecke des Quellrechtecks entspricht. redArrayArraynullWenn redArray nicht null ist, gilt red = redArray[source red value] else red = source rect value. greenArrayArraynullWenn greenArray nicht null ist, gilt green = greenArray[source green value] else green = source green value. blueArrayArraynullWenn blueArray nicht null ist, gilt blue = blueArray[source blue value] else blue = source blue value. alphaArrayArraynullWenn alphaArray nicht null ist, gilt alpha = alphaArray[source alpha value] else alpha = source alpha value. Ordnet die Farbkanalwerte in einem Bild mit maximal vier Arrays von Farbpalettendaten neu zu, wobei die einzelnen Arrays jeweils einen Kanal darstellen.

Flash-Laufzeitumgebungen verwenden die folgenden Schritte, um das resultierende Bild zu erzeugen:

  1. Nach der Berechnung der einzelnen Werte für Rot, Grün, Blau und Alpha werden diese mithilfe einer standardisierten 32-Bit-Ganzzahlarithmetik addiert.
  2. Die Kanalwerte jedes Pixels für Rot, Grün, Blau und Alpha werden in einzelne Werte zwischen 0 und 255 extrahiert. Mithilfe dieser Werte werden dann die neuen Farbwerte im entsprechenden Array ermittelt: redArray, greenArray, blueArray und alphaArray. Jedes dieser vier Arrays sollte 256 Werte enthalten.
  3. Nach der Ermittlung der neuen Kanalwerte werden diese in einem ARGB-Standardwert zusammengefasst, der auf das Pixel angewendet wird.

Mit dieser Methode können auch kanalübergreifende Effekte unterstützt werden. Jedes Eingabe-Array kann dabei vollständige 32-Bit-Werte enthalten, und beim Addieren der Werte treten keine Verschiebungen auf. Allerdings unterstützt diese Routine keine Festsetzung pro Kanal.

Wird für einen Kanal kein Array angegeben, wird der Farbkanal vom Quellbild in das Zielbild kopiert.

Diese Methode kann für eine ganze Reihe von Effekten genutzt werden, wie zum Beispiel eine allgemeine Palettenzuordnung (Auswählen einzelner Kanäle und deren Umwandlung in ein Falschfarbenbild). Sie können diese Methode auch für eine Reihe von komplexen Farbänderungsalgorithmen verwenden, z. B. Gamma, Kurven, Ebenen und Quantisierung.

Im folgenden Beispiel wird ein grünes BitmapData-Objekt mit rotem Mittelquadrat erstellt und anschließend die paletteMap()-Methode verwendet, um in der unteren rechteckigen Hälfte des BitmapData-Objekts Rot durch Grün zu ersetzen: import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Rectangle; import flash.geom.Point; var myBitmapData:BitmapData = new BitmapData(80, 80, false, 0x00FF0000); myBitmapData.fillRect(new Rectangle(20, 20, 40, 40), 0x0000FF00); var redArray:Array = new Array(256); var greenArray:Array = new Array(256); for(var i:uint = 0; i < 255; i++) { redArray[i] = 0x00000000; greenArray[i] = 0x00000000; } redArray[0xFF] = 0x0000FF00; greenArray[0xFF] = 0x00FF0000; var bottomHalf:Rectangle = new Rectangle(0, 0, 100, 40); var pt:Point = new Point(0, 0); myBitmapData.paletteMap(myBitmapData, bottomHalf, pt, redArray, greenArray); var bm1:Bitmap = new Bitmap(myBitmapData); addChild(bm1);
perlinNoise Erstellt ein Perlin-Störungsbild.baseXNumberHäufigkeit der Verwendung in x-Richtung. Übergeben Sie zur Erstellung einer Störung für ein Bild der Größe 64 x 128 Pixel als baseX-Wert beispielsweise die Zahl 64. baseYNumberHäufigkeit der Verwendung in y-Richtung. Übergeben Sie zur Erstellung einer Störung für ein Bild der Größe 64 x 128 Pixel als baseY-Wert beispielsweise die Zahl 128. numOctavesuintAnzahl der Oktaven bzw. einzelnen Störungsfunktionen die zur Erstellung der Störung kombiniert werden. Größere Anzahlen führen zur Erstellung von detaillierteren Bildern. Allerdings benötigen größere Oktavenanzahlen auch mehr Verarbeitungszeit. randomSeedintDer zu verwendende Anfangswert für den Zufallsgenerator. Wenn Sie alle anderen Parameter beibehalten, können Sie nur durch Änderung dieses Anfangswerts unterschiedliche pseudo-zufällige Ergebnisse erzielen. Bei der Perlin-Störungsfunktion handelt es sich nicht um einen echten Zufallszahlengenerator, sondern eher um eine Zuordnungsfunktion, die mit gleich bleibendem Anfangswert immer dasselbe Ergebnis liefert. stitchBooleanEin boolescher Wert. Ist der Wert true, werden die Übergänge des Bilds geglättet, um einen nahtlosen Texturenübergang für Füllmuster zu erstellen, mit denen Bitmaps gefüllt werden können. fractalNoiseBooleanEin boolescher Wert. Ist der Wert true, wird eine fraktale Störung erzeugt, ansonsten eine Turbulenz. In einem Bild mit Turbulenzen gibt es sichtbare Bruchstellen in den Farbverläufen, die sich gut für scharf abgegrenzte visuelle Effekte eignen, wie Flammen oder Wellen. channelOptionsuint7 Eine Zahl als beliebige Kombination der vier Farbkanalwerte (BitmapDataChannel.RED, BitmapDataChannel.BLUE, BitmapDataChannel.GREEN und BitmapDataChannel.ALPHA). Sie können die Kanalwerte auch mithilfe des logischen OR-Operators (|) kombinieren. grayScaleBooleanfalseEin boolescher Wert. Ist der Wert true, wird durch die Einstellung aller Werte für Rot, Grün und Blau auf den gleichen Wert ein Graustufenbild erstellt. Der Wert von Alpha ist nicht betroffen, wenn dieser Wert auf true gesetzt ist. offsetsArraynullEin Array von Punkten, die dem x- und y-Offset jeder einzelnen Oktave entsprechen. Durch Änderung der Offset-Werte können Sie bei perlinNoise-Bildern glatte Ebenenübergänge erzielen. Jeder Punkt im Offset-Array bezieht sich auf eine bestimmte Oktavenstörfunktion. Erstellt ein Perlin-Störungsbild.

Der Perlin-Störungsalgorithmus interpoliert und kombiniert mehrere zufällige als Oktaven bezeichnete Störungsfunktionen in einer Funktion, die natürlicher wirkende Zufallsstörungen erzeugt. Genau wie in der Musik weist auch hier jede Oktavenfunktion die doppelte Frequenz der jeweils untergeordneten Oktave auf. Die Perlin-Störungen werden als „Fraktalsumme der Störungen“ bezeichnet, da sie mehrere Arten von Störungsdaten unterschiedlicher Detailstufen zusammenfassen.

Durch Anwendung von Perlin-Störungsfunktionen können Naturphänomene und Landschaften simuliert werden, wie Holzmaserung, Wolken oder Bergketten. Zumeist werden die Ergebnisse einer Perlin-Störungsfunktion nicht direkt angezeigt, sondern dienen zur Optimierung anderer Bilder sowie zum Erzeugen von pseudo-zufälligen Variationen.

Einfache digital-zufällige Störungsfunktionen produzieren häufig Bilder mit scharfen Kontrasten, die in der Natur aber nicht allzu häufig vorkommen. Der Perlin-Störungsalgorithmus arbeitet mit einer Überlagerung von mehreren Störungsfunktionen mit unterschiedlicher Detailstufe und erzielt damit glattere Werteänderungen bei benachbarten Pixeln.

Im folgenden Beispiel wird ein BitmapData-Objekt der Größe 200 x 200 Pixel erstellt, das die perlinNoise()-Methode aufruft, um einen roten und blauen Wasserfarbeneffekt zu erzielen: import flash.display.Bitmap; import flash.display.BitmapData; var bmd:BitmapData = new BitmapData(200, 200, false, 0x00CCCCCC); var seed:Number = Math.floor(Math.random() * 10); var channels:uint = BitmapDataChannel.RED | BitmapDataChannel.BLUE; bmd.perlinNoise(100, 80, 6, seed, false, true, channels, false, null); var bm:Bitmap = new Bitmap(bmd); addChild(bm);
pixelDissolve Führt eine Pixelauflösung von einem Quellbild zu einem Zielbild oder anhand desselben Bilds durch.„sourceBitmapData“, „sourceRect“ oder „destPoint“ haben den Wert null. TypeErrorTypeErrorDer Wert von „numPixels“ ist negativ. TypeErrorTypeErrorDer neue Anfangswert für den Zufallsgenerator für nachfolgende Aufrufe. intsourceBitmapDataflash.display:BitmapDataDie als Eingabe verwendete Bitmap. Das Quellbild kann ein anderes BitmapData-Objekt oder ein Verweis auf die aktuelle BitmapData-Instanz sein. sourceRectflash.geom:RectangleEin Rechteck, mit dem der Bereich des als Eingabe zu verwendenden Quellbilds definiert wird. destPointflash.geom:PointDer Punkt innerhalb des Zielbilds (die aktuelle BitmapData-Instanz), der der linken oberen Ecke des Quellrechtecks entspricht. randomSeedint0Der Anfangswert des Zufallsgenerators für die Pixelauflösung. numPixelsint0Der Standardwert beträgt 1/30 des Quellbereichs (Breite x Höhe). fillColoruint0Ein ARGB-Farbwert, mit dem Sie die Pixel anfüllen können, deren Quellwerte mit den Zielwerten übereinstimmen. Führt eine Pixelauflösung von einem Quellbild zu einem Zielbild oder anhand desselben Bilds durch. Flash-Laufzeitumgebungen verwenden einen randomSeed-Wert, um eine zufällige Pixelauflösung zu erzeugen. Der Rückgabewert dieser Funktion muss bei nachfolgenden Aufrufen übergeben werden, um die Pixelauflösung bis zum Ende beizubehalten.

Stimmen Quell- und Zielbild nicht überein, werden die Pixel vom Quellbild mit all ihren Eigenschaften in das Zielbild kopiert. Dieser Vorgang ermöglicht das Anfüllen mit Pixeln von einem leeren Bild zu einem vollständig ausgefüllten Bild.

Falls das Quell- und das Zielbild identisch sind, werden die Pixel mit dem Parameter color gefüllt. Dieser Vorgang ermöglicht ein Auflösen eines vollständig angefüllten Bilds. In diesem Modus wird der Zielparameter point ignoriert.

Im folgenden Beispiel wird mithilfe der pixelDissolve()-Methode ein graues BitmapData-Objekt durch Auflösung in Schritten von je 40 Pixeln in ein rotes Objekt umgewandelt, bis die Farbe aller Pixel geändert wurde: import flash.display.BitmapData; import flash.display.Bitmap; import flash.geom.Point; import flash.geom.Rectangle; import flash.utils.Timer; import flash.events.TimerEvent; var bmd:BitmapData = new BitmapData(100, 80, false, 0x00CCCCCC); var bitmap:Bitmap = new Bitmap(bmd); addChild(bitmap); var tim:Timer = new Timer(20); tim.start(); tim.addEventListener(TimerEvent.TIMER, timerHandler); function timerHandler(event:TimerEvent):void { var randomNum:Number = Math.floor(Math.random() * int.MAX_VALUE); dissolve(randomNum); } function dissolve(randomNum:Number):void { var rect:Rectangle = bmd.rect; var pt:Point = new Point(0, 0); var numberOfPixels:uint = 100; var red:uint = 0x00FF0000; bmd.pixelDissolve(bmd, rect, pt, randomNum, numberOfPixels, red); var grayRegion:Rectangle = bmd.getColorBoundsRect(0xFFFFFFFF, 0x00CCCCCC, true); if(grayRegion.width == 0 && grayRegion.height == 0 ) { tim.stop(); } }
scroll Führt für ein Bild einen Bildlauf anhand eines bestimmten Pixelbetrags (x, y) durch.xintDer Betrag, um den ein horizontaler Bildlauf durchgeführt werden soll. yintDer Betrag, um den ein vertikaler Bildlauf durchgeführt werden soll. Führt für ein Bild einen Bildlauf anhand eines bestimmten Pixelbetrags (x, y) durch. Die Randzonen außerhalb des Bildlaufbereichs bleiben unverändert. Das folgende Beispiel zeigt die Auswirkung eines Bildlaufs für ein BitmapData-Objekt um 40 Pixel nach rechts: import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Rectangle; var bmd:BitmapData = new BitmapData(80, 80, true, 0xFFCCCCCC); var rect:Rectangle = new Rectangle(0, 0, 40, 40); bmd.fillRect(rect, 0xFFFF0000); var bm:Bitmap = new Bitmap(bmd); addChild(bm); trace (bmd.getPixel32(50, 20).toString(16)); // ffcccccccc bmd.scroll(30, 0); trace (bmd.getPixel32(50, 20).toString(16)); // ffff0000 setPixel32 Legt den Farb- und Alphatransparenzwert eines einzelnen Pixels eines BitmapData-Objekts fest.xintDie x-Position des Pixels, dessen Wert geändert wird. yintDie y-Position des Pixels, dessen Wert geändert wird. coloruintDie resultierende ARGB-Farbe für das Pixel. Ist die Bitmap undurchsichtig (also nicht transparent), wird der Alphatransparenzwert in diesem Farbwert ignoriert. Legt den Farb- und Alphatransparenzwert eines einzelnen Pixels eines BitmapData-Objekts fest. Diese Methode ähnelt der setPixel()-Methode. Der Hauptunterschied besteht darin, dass die setPixel32()-Methode einen ARGB-Farbwert mit Alphakanaldaten als Eingabe benötigt.

Sämtliche Pixel eines BitmapData-Objekts werden als vormultiplizierte Farbwerte gespeichert. Bei diesen vormultiplizierten Bildpixeln sind die Farbkanalwerte für Rot, Grün und Blau bereits mit den Alphadaten multipliziert worden. Wenn also beispielsweise der Alphawert 0 (null) ist, lauten die Werte der RGB-Kanäle, unabhängig von ihren ursprünglichen Werten, ebenfalls 0 (null). Bei bestimmten Vorgängen kann dieser Datenverlust zu Problemen führen. Alle BitmapData-Methoden akzeptieren nicht multiplizierte Werte und geben diese auch zurück. Vor der Rückgabe der Werte wird die interne Pixeldarstellung von vormultipliziert in nicht multipliziert konvertiert. Vor dem Einstellen der Pixelrohdaten des Bilds wird der Pixelwert im Verlauf einer set-Operation vormultipliziert.

Hinweis: Um die Performance zu verbessern, wenn Sie die Methode setPixel() oder setPixel32() wiederholt verwenden, rufen Sie die lock()-Methode auf, bevor Sie die Methode setPixel() oder setPixel32() aufrufen. Rufen Sie anschließend die unlock()-Methode auf, nachdem Sie alle Pixeländerungen vorgenommen haben. Dieser Vorgang verhindert, dass Objekte, die auf diese BitmapData-Instanz verweisen, erst aktualisiert werden, wenn Sie die Pixeländerungen abgeschlossen haben.

Im folgenden Beispiel wird mithilfe der setPixel32()-Methode in einem BitmapData-Objekt eine transparente rote Linie gezeichnet (alpha == 0x60): import flash.display.Bitmap; import flash.display.BitmapData; var bmd:BitmapData = new BitmapData(80, 80, true, 0xFFCCCCCC); for (var i:uint = 0; i < 80; i++) { var red:uint = 0x60FF0000; bmd.setPixel32(i, 40, red); } var bm:Bitmap = new Bitmap(bmd); addChild(bm);
setPixel()getPixel32()lock()unlock()
setPixel Legt den Farbwert eines einzelnen Pixels eines BitmapData-Objekts fest.xintDie x-Position des Pixels, dessen Wert geändert wird. yintDie y-Position des Pixels, dessen Wert geändert wird. coloruintDie resultierende RGB-Farbe für das Pixel. Legt den Farbwert eines einzelnen Pixels eines BitmapData-Objekts fest. Der aktuelle Alphakanalwert des Bildpixels bleibt während dieses Vorgangs erhalten. Der Wert des RGB-Farbparameters wird als nicht multiplizierter Farbwert angesehen.

Hinweis: Um die Performance zu verbessern, wenn Sie die Methode setPixel() oder setPixel32() wiederholt verwenden, rufen Sie die lock()-Methode auf, bevor Sie die Methode setPixel() oder setPixel32() aufrufen. Rufen Sie anschließend die unlock()-Methode auf, nachdem Sie alle Pixeländerungen vorgenommen haben. Dieser Vorgang verhindert, dass Objekte, die auf diese BitmapData-Instanz verweisen, erst aktualisiert werden, wenn Sie die Pixeländerungen abgeschlossen haben.

Im folgenden Beispiel wird mithilfe der setPixel()-Methode in einem BitmapData-Objekt eine rote Linie gezeichnet: import flash.display.Bitmap; import flash.display.BitmapData; var bmd:BitmapData = new BitmapData(80, 80, false, 0xCCCCCC); for (var i:uint = 0; i < 80; i++) { var red:uint = 0xFF0000; bmd.setPixel(i, 40, red); } var bm:Bitmap = new Bitmap(bmd); addChild(bm);
getPixel()setPixel32()lock()unlock()
setPixels Erzeugt ein Byte-Array aus einem rechteckigen Bereich mit Pixeldaten.Das inputByteArray-Objekt enthält nicht genügend Daten, um den Bereich des rect-Rechtecks zu füllen. Die Methode füllt so viele Pixel wie möglich, bevor die Ausnahme ausgelöst wird. EOFErrorflash.errors:EOFError„rect“ oder „inputByteArray“ haben den Wert null. TypeErrorTypeErrorrectflash.geom:RectangleLegt den rechteckigen Bereich des BitmapData-Objekts fest. inputByteArrayflash.utils:ByteArrayEin ByteArray-Objekt, das aus nicht multiplizierten 32-Bit-Pixelwerten besteht, die im rechteckigen Bereich verwendet werden sollen. Erzeugt ein Byte-Array aus einem rechteckigen Bereich mit Pixeldaten. Für jedes Pixel wird die ByteArray.readUnsignedInt()-Methode aufgerufen, und der Rückgabewert wird in das Pixel geschrieben. Endet das Byte-Array, bevor das gesamte Rechteck geschrieben ist, gibt die Funktion den Wert zurück. Im Byte-Array werden als Daten 32-Bit-ARGB-Pixelwerte erwartet. Bevor oder nachdem die Pixel gelesen werden, wird im Byte-Array keine Suche durchgeführt. Im folgenden Beispiel werden mit den Methoden getPixels() und setPixels() Pixel aus einem BitmapData-Objekt in ein anderes kopiert: import flash.display.Bitmap; import flash.display.BitmapData; import flash.utils.ByteArray; import flash.geom.Rectangle; var bmd1:BitmapData = new BitmapData(100, 100, true, 0xFFCCCCCC); var bmd2:BitmapData = new BitmapData(100, 100, true, 0xFFFF0000); var rect:Rectangle = new Rectangle(0, 0, 100, 100); var bytes:ByteArray = bmd1.getPixels(rect); bytes.position = 0; bmd2.setPixels(rect, bytes); var bm1:Bitmap = new Bitmap(bmd1); addChild(bm1); var bm2:Bitmap = new Bitmap(bmd2); addChild(bm2); bm2.x = 110; flash.utils.ByteArray.readUnsignedInt()setVector Konvertiert einen Vektor in einen rechteckigen Bereich mit Pixeldaten.Das Vectorarray ist nicht groß genug, um alle Pixeldaten zu lesen. RangeErrorRangeErrorrectflash.geom:RectangleLegt den rechteckigen Bereich des BitmapData-Objekts fest. inputVectorEin Vector-Objekt, das aus nicht multiplizierten 32-Bit-Pixelwerten besteht, die im rechteckigen Bereich verwendet werden. Konvertiert einen Vektor in einen rechteckigen Bereich mit Pixeldaten. Pro Pixel wird ein Vector-Element gelesen und in das BitmapData-Pixel geschrieben. Im Vector werden als Daten 32-Bit-ARGB-Pixelwerte erwartet. threshold Prüft die Pixelwerte eines Bilds für einen angegebenen Schwellenwert und weist den Pixeln, die die Bedingung des Tests erfüllen, neue Farbwerte zu.„sourceBitmapData“, „sourceRect“, „destPoint“ oder „operation“ haben den Wert null. TypeErrorTypeErrorDer operation-String ist keine zulässige Operation. ArgumentErrorArgumentErrorDie Anzahl der geänderten Pixel. uintsourceBitmapDataflash.display:BitmapDataDie als Eingabe verwendete Bitmap. Das Quellbild kann ein anderes BitmapData-Objekt oder ein Verweis auf die aktuelle BitmapData-Instanz sein. sourceRectflash.geom:RectangleEin Rechteck, mit dem der Bereich des als Eingabe zu verwendenden Quellbilds definiert wird. destPointflash.geom:PointDer Punkt innerhalb des Zielbilds (die aktuelle BitmapData-Instanz), der der linken oberen Ecke des Quellrechtecks entspricht. operationStringEiner der folgenden Vergleichsoperatoren, der als String übergeben wird: „<“, „<=“, „>“, „>=“, „==“, „!=“ thresholduintDer Wert, auf den jedes Pixel geprüft wird, um festzustellen, ob der Schwellenwert eingehalten oder überschritten wird. coloruint0Der Farbwert, auf den ein Pixel gesetzt wird, falls der Schwellentest erfolgreich ist. Der Standardwert lautet 0x00000000. maskuint0xFFFFFFFFDie Maske, die zum Isolieren einer Farbkomponente verwendet wird. copySourceBooleanfalseLautet der Wert true, werden Pixelwerte aus dem Quellbild auch in das Zielobjekt kopiert, wenn der Schwellentest fehlschlägt. Lautet der Wert false, wird das Quellbild nicht kopiert, wenn der Schwellentest fehlschlägt. Prüft die Pixelwerte eines Bilds für einen angegebenen Schwellenwert und weist den Pixeln, die die Bedingung des Tests erfüllen, neue Farbwerte zu. Mithilfe der threshold()-Methode können Sie in einem Bild ganze Farbbereiche isolieren und ersetzen sowie andere logische Operationen auf Bildpixel anwenden.

Die Testlogik der threshold()-Methode lautet wie folgt:

  1. Wenn ((pixelValue & mask) operation (threshold & mask)) gilt, wird das Pixel auf color gesetzt.
  2. Wenn hingegen copySource == true gilt, wird das Pixel auf den entsprechenden Pixelwert aus sourceBitmap gesetzt.

Der Parameter operation gibt den Vergleichsoperator für den Schwellentest an. Wenn Sie beispielsweise „==“ als operation-Parameter eingeben, können Sie in einem Bild eine Farbe mit einem bestimmten Wert isolieren. Oder wenn Sie {operation: "<", mask: 0xFF000000, threshold: 0x7F000000, color: 0x00000000} verwenden, können Sie alle Pixel im Zielbild auf vollständig transparent einstellen, wenn der Alphawert des Quellbildpixels kleiner als 0x7F ist. Sie können dieses Verfahren für animierte Übergänge und andere Effekte verwenden.

Im folgenden Beispiel wird mithilfe der perlinNoise()-Methode einem BitmapData-Objekt ein blaues und rotes Muster hinzugefügt und anschließend die threshold()-Methode verwendet, um die entsprechenden Pixel aus dem ersten BitmapData-Objekt in ein zweites Objekt zu kopieren. Dabei werden die Pixel, bei denen der Rotwert größer als 0x80 (50 %) ist, durch ein Pixel mit transparentem Rot (0x20FF0000) ersetzt: import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.BitmapDataChannel; import flash.geom.Point; import flash.geom.Rectangle; var bmd1:BitmapData = new BitmapData(200, 200, true, 0xFFCCCCCC); var seed:int = int(Math.random() * int.MAX_VALUE); var channels:uint = BitmapDataChannel.RED | BitmapDataChannel.BLUE; bmd1.perlinNoise(100, 80, 12, seed, false, true, channels, false, null); var bitmap1:Bitmap = new Bitmap(bmd1); addChild(bitmap1); var bmd2:BitmapData = new BitmapData(200, 200, true, 0xFFCCCCCC); var pt:Point = new Point(0, 0); var rect:Rectangle = new Rectangle(0, 0, 200, 200); var threshold:uint = 0x00800000; var color:uint = 0x20FF0000; var maskColor:uint = 0x00FF0000; bmd2.threshold(bmd1, rect, pt, ">", threshold, color, maskColor, true); var bitmap2:Bitmap = new Bitmap(bmd2); bitmap2.x = bitmap1.x + bitmap1.width + 10; addChild(bitmap2);
unlock Entsperrt ein Bild, sodass Objekte, die auf das BitmapData-Objekt verweisen, z. B. Bitmap-Objekte, aktualisiert werden, wenn sich dieses BitmapData-Objekt ändert.changeRectflash.geom:RectanglenullDer Bereich des BitmapData-Objekts, der sich geändert hat. Wenn Sie für diesen Parameter keinen Wert angeben, wird der gesamte Bereich des BitmapData-Objekts als geändert betrachtet. Dieser Parameter erfordert Flash Player 9.0.115.0 oder höher. Entsperrt ein Bild, sodass Objekte, die auf das BitmapData-Objekt verweisen, z. B. Bitmap-Objekte, aktualisiert werden, wenn sich dieses BitmapData-Objekt ändert. Um die Performance zu verbessern, verwenden Sie diese Methode zusammen mit der lock()-Methode vor und nach mehreren Aufrufen der Methode setPixel() oder setPixel32(). Im folgenden Beispiel wird ein BitmapData-Objekt basierend auf der bitmapData-Eigenschaft eines Bitmap-Objekts (picture) erstellt. Das Objekt ruft dann die lock()-Methode auf, bevor eine komplizierte benutzerdefinierte Funktion (complexTransformation()) aufgerufen wird, die das BitmapData-Objekt ändert. (Das picture-Objekt und die complexTransformation()-Funktion sind in diesem Beispiel nicht definiert.) Auch wenn die complexTransformation()-Funktion die bitmapData-Eigenschaft des picture-Objekts aktualisiert, werden die Änderungen erst wirksam, wenn der Code die unlock()-Methode des bitmapData-Objekts aufruft: import flash.display.BitmapData; var bitmapData:BitmapData = picture.bitmapData; bitmapData.lock(); bitmapData = complexTransformation(bitmapData); bitmapData.unlock(); picture.bitmapData = bitmapData; lock()setPixel()setPixel32()height Die Höhe der Bitmap in Pixel.int Die Höhe der Bitmap in Pixel. rect Das Rechteck, das die Größe und Lage der Bitmap definiert.flash.geom:Rectangle Das Rechteck, das die Größe und Lage der Bitmap definiert. Der obere und linke Rand des Rechtecks liegen jeweils an der Position 0 (null). Die Werte für Breite und Höhe sind mit der Breite und Höhe des BitmapData-Objekts identisch. transparent Gibt an, ob die Bitmap Transparenz pro Pixel unterstützt.Boolean Gibt an, ob die Bitmap Transparenz pro Pixel unterstützt. Sie können diesen Wert nur dann einstellen, wenn Sie beim Erstellen des BitmapData-Objekts den Wert true für den Parameter transparent des Konstruktors übergeben. Nachdem Sie ein BitmapData-Objekt erstellt haben, können Sie dieses Objekt auf die Unterstützung der Transparenz pro Pixel prüfen, indem Sie feststellen, ob die transparent-Eigenschaft auf true gesetzt ist. width Die Breite der Bitmap in Pixel.int Die Breite der Bitmap in Pixel.
JointStyle Die JointStyle-Klasse ist eine Zusammenfassung von Konstantenwerten, die den beim Zeichnen von Linien zu verwendenden Verbindungstyp festlegen.Object Die JointStyle-Klasse ist eine Zusammenfassung von Konstantenwerten, die den beim Zeichnen von Linien zu verwendenden Verbindungstyp festlegen. Diese Konstanten werden als Werte im Parameter joints der flash.display.Graphics.lineStyle()-Methode verwendet. Die Methode unterstützt drei Verbindungstypen: Winkel, Rund und Geschliffen (vgl. die folgenden Beispiele):

Im folgenden Beispiel wird die JointStyleExample-Klasse verwendet, um das Ergebnis von drei verschiedenen Verbindungsstilen zu verdeutlichen, die auf die drei verbundenen Linien angewendet werden. Dies wird in den folgenden Schritten erreicht:
  1. Die Eigenschaften der Linien sind wie folgt festgelegt:
    • Die Linienlänge ist auf 80 Pixel festgelegt.
    • Die Rahmenfarbe ist auf Orange gesetzt.
    • Die Rahmenbreite ist auf 30 Pixel festgelegt.
    • Die Hervorhebungsfarbe ist auf Grau gesetzt.
    • Die Hervorhebungsgröße ist auf 0 Pixel festgelegt.
    • Alpha ist auf 1 (also vollständige Füllung) gesetzt.
    • Die Funktion „pixelHinting“ ist auf „false“ gesetzt (Striche werden nicht als ganze Pixel angezeigt).
    • Als Modus für die Linienskalierung ist „normal“ angegeben, sodass die Stärke skaliert wird.
    • Die Rahmenabschlüsse und Winkelgrenze sind deklariert, jedoch nicht gesetzt, sodass die Standardwerte verwendet werden.
  2. Der Klassenkonstruktor erstellt drei Gruppen von jeweils zwei verbundenen Liniensegmenten. Die Segmente beginnen bei x = 0, y = 0, indem für die drei Verbindungsstile (Winkel, Rund und Abgeflacht) jeweils die doDrawCorner()-Methode aufgerufen wird. Bei jedem der drei Aufrufe der doDrawCorner()-Methode werden die vorher aufgeführten Verbindungsstile und Eigenschaften verwendet, um zwei verbundene Liniensegmente und die dazugehörigen Linienhervorhebungen zu zeichnen. Dazu wird zuerst ein neues child-Shape-Objekt erstellt, und dann werden die Methoden der Graphics-Klasse verwendet, um den Linienstil festzulegen und die Linien und Hervorhebungen zu zeichnen. Jede Instanz von child wird der Anzeigeliste hinzugefügt und sofort auf der Bühne gezeichnet.
  3. Die verbundenen Liniensegmente werden erneut gezeichnet, indem die refreshLayout()-Methode mit dem Wert y = 80 Pixel und dem Anfangspunkt bei x = 80 Pixel mit einem Abstand von 25 Pixel zwischen den Liniensegmenten verwendet wird.
package { import flash.display.DisplayObject; import flash.display.Graphics; import flash.display.JointStyle; import flash.display.LineScaleMode; import flash.display.Shape; import flash.display.Sprite; public class JointStyleExample extends Sprite { private var size:uint = 80; private var borderColor:uint = 0xFFCC00; private var borderSize:uint = 30; private var highlightColor:uint = 0x666666; private var highlightSize:uint = 0; private var gutter:uint = 25; private var borderAlpha:uint = 1; private var borderPixelHinting:Boolean = false; private var borderScaleMode:String = LineScaleMode.NORMAL; private var borderCaps:String; private var borderMiterLimit:uint; public function JointStyleExample() { doDrawCorner(JointStyle.MITER); doDrawCorner(JointStyle.ROUND); doDrawCorner(JointStyle.BEVEL); refreshLayout(); } private function doDrawCorner(jointStyle:String):void { var halfSize:uint = Math.round(size / 2); var child:Shape = new Shape(); child.graphics.lineStyle(borderSize, borderColor, borderAlpha, borderPixelHinting, borderScaleMode, borderCaps, jointStyle, borderMiterLimit); child.graphics.lineTo(0, 0); child.graphics.lineTo(size, 0); child.graphics.lineTo(halfSize, size); child.graphics.endFill(); child.graphics.moveTo(0, 0); child.graphics.lineStyle(highlightSize, highlightColor); child.graphics.lineTo(0, 0); child.graphics.lineTo(size, 0); child.graphics.lineTo(halfSize, size); addChild(child); } private function refreshLayout():void { var ln:uint = numChildren; var child:DisplayObject; var lastChild:DisplayObject = getChildAt(0); lastChild.x = size; lastChild.y = size; for (var i:uint = 1; i < ln; i++) { child = getChildAt(i); child.x = gutter + lastChild.x + lastChild.width; child.y = size; lastChild = child; } } } }
flash.display.Graphics.lineStyle()BEVEL Legt im Parameter „joints“ der flash.display.Graphics.lineStyle()-Methode abgeschrägte Verbindungen fest.bevelString Legt im Parameter joints der flash.display.Graphics.lineStyle()-Methode abgeflachte Verbindungen fest. MITER Legt im Parameter „joints“ der flash.display.Graphics.lineStyle()-Methode spitzwinklige Verbindungen fest.miterString Legt im Parameter joints der flash.display.Graphics.lineStyle()-Methode spitzwinklige Verbindungen fest. ROUND Legt im Parameter „joints“ der flash.display.Graphics.lineStyle()-Methode runde Verbindungen fest.roundString Legt im Parameter joints der flash.display.Graphics.lineStyle()-Methode runde Verbindungen fest.
AVM1Movie „AVM1Movie“ ist eine einfache Klasse, die AVM1-Movieclips repräsentiert, die noch ActionScript 1.0 oder 2.0 verwenden.flash.display:DisplayObject „AVM1Movie“ ist eine einfache Klasse, die AVM1-Movieclips repräsentiert, die noch ActionScript 1.0 oder 2.0 verwenden. (AVM1 ist die ActionScript-Virtual-Machine zum Ausführen von ActionScript 1.0 und 2.0. AVM2 ist die ActionScript-Virtual-Machine zum Ausführen von ActionScript 3.0). Wenn von einem Loader-Objekt eine SWF-Datei für Flash Player 8 oder eine frühere Version geladen wird, wird ein AVM1Movie-Objekt erstellt. Das AVM1Movie-Objekt kann aus der DisplayObject-Klasse übernommene Methoden und Eigenschaften verwenden (wie x, y, width usw.). Allerdings ist zwischen dem AVM1Movie-Objekt und AVM2-Objekten keine Interoperabilität (wie etwa das Aufrufen von Methoden oder Verwenden von Parametern) zulässig.

Es gibt verschiedene Einschränkungen für eine von einer AVM2-SWF-Datei geladene AVM1-SWF-Datei:

  • Das geladene AVM1Movie-Objekt betreibt ein Pseudo-Stammobjekt für die AVM1-SWF-Datei und alle darüber geladenen AVM1-SWF-Dateien (als ob die ActionScript 1.0-Eigenschaft lockroot auf true gesetzt worden wäre). Der AVM1-Film befindet sich immer über einer etwaigen ActionScript 1.0- oder 2.0-Codeausführung in untergeordneten Objekten. Der Wert der _root-Eigenschaft ist für geladene untergeordnete Objekte immer diese AVM1-SWF-Datei, es sei denn, in einer geladenen AVM1-SWF-Datei ist die lockroot-Eigenschaft gesetzt worden.
  • AVM1-Inhalte können Dateien nicht in Ebenen laden. Beispielsweise ist dies nicht möglich, indem loadMovieNum("url", levelNum) aufgerufen wird.
  • Die AVM1-SWF-Datei, die von einer AVM2-SWF-Datei geladen worden ist, kann in this keine weitere SWF-Datei mehr laden. D. h., sie kann keine andere SWF-Datei auf sich selbst laden. Allerdings ist es für Sprite- oder MovieClip-Objekte und andere AVM1-SWF-Dateien, die von dieser SWF-Datei geladen worden sind, durchaus möglich, andere Dateien in this zu laden.
DisplayObjectLoader
ShaderInput Eine ShaderInput-Instanz stellt ein einzelnes Eingabebild für ein Shaderkernel dar.Object Eine ShaderInput-Instanz stellt ein einzelnes Eingabebild für ein Shaderkernel dar. Ein Kernel kann so definiert sein, dass es null, ein oder mehrere Quellbilder akzeptiert, die bei der Kernelausführung verwendet werden. Eine ShaderInput-Instanz stellt einen Mechanismus für das Festlegen des Eingabebilds, das bei der Shaderausführung verwendet wird, bereit. Zum Festlegen eines Eingabewerts erstellen Sie eine BitmapData-, ByteArray- oder Vector.<Number>-Instanz, die die Bilddaten enthält, und weisen sie der input-Eigenschaft zu.

Auf eine ShaderInput-Instanz, die ein Eingabebild für eine Shader-Instanz darstellt, wird als Eigenschaft der data-Eigenschaft der Shader-Instanz zugegriffen. Die ShaderInput-Eigenschaft hat denselben Namen wie die Eingabe im Shadercode. Wenn ein Shader z. B. eine Eingabe namens src festlegt, ist die ShaderInput-Instanz, die die src-Eingabe darstellt, als src-Eigenschaft verfügbar, wie im Beispiel zu sehen ist:

myShader.data.src.image = new BitmapData(50, 50, true, 0xFF990000);

Bei manchen Verwendungen einer Shader-Instanz müssen Sie kein Eingabebild festlegen, weil es durch den Vorgang automatisch festgelegt wird. Sie müssen nur dann eine Eingabe festlegen, wenn der Shader wie folgt wird:

  • Shaderfüllung
  • ShaderFilter, nur für die zweite oder weitere Eingaben, wenn festgelegt ist, dass der Shader mehr als eine Eingabe verwendet. (Das Objekt, auf das der Filter angewendet wird, wird automatisch als erste Eingabe verwendet.)
  • Shadermischmodus, nur für die dritte oder weitere Eingaben, wenn festgelegt ist, dass der Shader mehr als zwei Eingaben verwendet. (Die Objekte, die gemischt werden, werden automatisch als erste und zweite Eingabe verwendet.)
  • Ausführung eines ShaderJobs im Hintergrund

Wenn der Shader bei der Ausführung eine ShaderJob-Instanz zur Verarbeitung eines ByteArrays verwendet, das eine lineare Anordnung von Daten enthält, setzen Sie height der ShaderInput-Instanz auf 1 und width auf die Anzahl der 32-Bit-Gleitkommawerte im ByteArray. In diesem Fall muss die Shadereingabe mithilfe des image1-Datentyps definiert werden.

Im Allgemeinen wird eine ShaderParameter-Instanz nicht direkt durch Entwicklercode erstellt. Bei der Erstellung der Shader-Instanz wird für jede Shadereingabe eine ShaderInput-Instanz erstellt.

flash.display.ShaderDataflash.display.Shader.dataflash.display.ShaderJobShaderInput Erstellt eine ShaderInput-Instanz. Erstellt eine ShaderInput-Instanz. Der ShaderInput-Konstruktor wird nicht direkt durch den Entwicklercode aufgerufen. Bei der Erstellung der Shader-Instanz wird für jede Shadereingabe eine ShaderInput-Instanz erstellt. channels Die Anzahl der Kanäle, die eine Shadereingabe erwartet.int Die Anzahl der Kanäle, die eine Shadereingabe erwartet. Diese Eigenschaft muss berücksichtigt werden, wenn es sich bei den Eingabedaten um eine ByteArray- oder Vector.<Number>-Instanz handelt. height Die Höhe der Shadereingabe.int Die Höhe der Shadereingabe. Diese Eigenschaft wird nur verwendet, wenn es sich bei den Eingabedaten eine ByteArray- oder Vector.<Number>-Instanz handelt. Wenn es sich bei der Eingabe um eine BitmapData-Instanz handelt, wird die Höhe automatisch festgelegt. index Die auf null basierende Indexposition der Eingabe im Shader, die die Reihenfolge der Eingabedefinitionen im Shader angibt.int Die auf null basierende Indexposition der Eingabe im Shader, die die Reihenfolge der Eingabedefinitionen im Shader angibt. input Die Eingabedaten, die bei der Ausführung des Shaders verwendet werden.Object Die Eingabedaten, die bei der Ausführung des Shaders verwendet werden. Diese Eigenschaft kann eine BitmapData-Instanz, eine ByteArray-Instanz oder eine Vector.<Number>-Instanz sein.

Wenn der input-Eigenschaft ein ByteArray-Wert zugewiesen wird, müssen die folgenden Bedingungen erfüllt sein:

  • Die height- und width-Eigenschaft muss gesetzt sein.
  • Der Inhalt des Bytearrays darf nur aus 32-Bit-Gleitkommawerten bestehen. Diese Werte können mit der ByteArray.writeFloat()-Methode geschrieben werden.
  • Die Gesamtlänge des ByteArrays in Byte muss genau width x height x channels x 4 sein.
  • Die endian-Eigenschaft des Bytearrays muss Endian.LITTLE_ENDIAN sein.

Wenn der input-Eigenschaft eine Vector.<Number>-Instanz zugewiesen wird, muss die Länge des Vektors gleich width x height x channels sein.

width Die Breite der Shadereingabe.int Die Breite der Shadereingabe. Diese Eigenschaft wird nur verwendet, wenn es sich bei den Eingabedaten eine ByteArray- oder Vector.<Number>-Instanz handelt. Wenn es sich bei der Eingabe um eine BitmapData-Instanz handelt, wird die Breite automatisch festgelegt.
ColorCorrection Die ColorCorrection-Klasse stellt Werte für die flash.displayStage.colorCorrection-Eigenschaft bereit.Object Die ColorCorrection-Klasse stellt Werte für die flash.displayStage.colorCorrection-Eigenschaft bereit. flash.display.Stage.colorCorrectionDEFAULT Verwendet die Standardfarbkorrektur des Hosts.defaultString Verwendet die Standardfarbkorrektur des Hosts. Beim Webplayer ist der Host meist ein Browser und Flash Player versucht, dieselbe Farbkorrektur wie die Webseite zu verwenden, die die SWF-Datei hostet. OFF Schaltet die Farbkorrektur unabhängig von der Player-Hostumgebung aus.offString Schaltet die Farbkorrektur unabhängig von der Player-Hostumgebung aus. Diese Einstellung erhöht die Leistung. ON Schaltet die Farbkorrektur unabhängig von der Player-Hostumgebung ein.onString Schaltet die Farbkorrektur unabhängig von der Player-Hostumgebung ein. Shader Eine Shader-Instanz stellt ein Pixel Bender-Shaderkernel in ActionScript dar.Object Eine Shader-Instanz stellt ein Pixel Bender-Shaderkernel in ActionScript dar. Um in Ihrer Anwendung einen Shader zu verwenden, erstellen Sie dafür eine Shader-Instanz. Dann verwenden Sie diese Shader-Instanz entsprechend dem Effekt, den Sie erstellen möchten. Um den Shader beispielsweise als Filter zu verwenden, weisen Sie die Shader-Instanz der shader-Eigenschaft eines ShaderFilter-Objekts zu.

Ein Shader definiert eine Funktion, die für alle Pixel in einem Bild ausgeführt wird, jeweils ein Pixel nach dem anderen. Das Ergebnis eines jeden Aufrufs der Funktion ist die Ausgabefarbe an der jeweiligen Pixelkoordinate im Bild. Ein Shader kann ein oder mehrere Eingabebilder festlegen, deren Inhalt zum Bestimmen der Ausgabe der Funktion verwendet wird. Ein Shader kann auch einen oder mehrere Parameter festlegen, die als Eingabewerte für die Berechnung der Funktionsausgabe verwendet werden können. Bei einer einzelnen Shaderausführung sind Eingabe- und Parameterwerte konstant. Es ändert sich lediglich die Koordinate des Pixels, dessen Farbe das Ergebnis der Funktion ist. Shaderfunktionsaufrufe für mehrere Ausgabepixelkoordinaten werden gleichzeitig ausgeführt, damit die Shaderausgabeleistung verbessert wird.

Der Shaderbytecode kann zur Laufzeit mit einer URLLoader-Instanz geladen werden. Das folgende Beispiel zeigt, wie eine Bytecode-Datei für einen Shader zur Laufzeit geladen und mit einer Shader-Instanz verknüpft wird.

var loader:URLLoader = new URLLoader(); loader.dataFormat = URLLoaderDataFormat.BINARY; loader.addEventListener(Event.COMPLETE, onLoadComplete); loader.load(new URLRequest("myShader.pbj")); var shader:Shader; function onLoadComplete(event:Event):void { // Create a new shader and set the loaded data as its bytecode shader = new Shader(); shader.byteCode = loader.data; // You can also pass the bytecode to the Shader() constructor like this: // shader = new Shader(loader.data); // do something with the shader }

Sie können den Shader auch beim Kompilieren in die SWF einbetten, indem sie das [Embed]-Metadaten-Tag verwenden. Das [Embed]-Metadaten-Tag ist nur verfügbar, wenn Sie die SWF-Datei mit Flex SDK kompilieren. Der source-Parameter des [Embed]-Tags verweist auf die Shaderdatei und der mimeType-Parameter lautet "application/octet-stream", wie im Beispiel gezeigt wird:

[Embed(source="myShader.pbj", mimeType="application/octet-stream)] var MyShaderClass:Class; // ... // create a new shader and set the embedded shader as its bytecode var shaderShader = new Shader(); shader.byteCode = new MyShaderClass(); // You can also pass the bytecode to the Shader() constructor like this: // var shader:Shader = new Shader(new MyShaderClass()); // do something with the shader

In beiden Fällen verknüpfen Sie den unformatierten Shaderbytecode (die URLLoader.data-Eigenschaft oder eine Instanz der [Embed]-Datenklasse) mit der Shader-Instanz. Wie im Beispiel oben gezeigt wird, können Sie das auf zwei Arten tun. Sie können den Shaderbytecode als Argument an den Shader()-Konstruktor übergeben. Oder Sie legen ihn als byteCode-Eigenschaft der Shader-Instanz fest.

Sobald eine Shader-Instanz erstellt wurde, kann Sie auf mehrere Arten verwendet werden:

  • Als Shaderfüllung: Die Ausgabe des Shaders wird als Füllung für Inhalte verwendet, die mit der Zeichnungs-API gezeichnet wurden. Übergeben Sie die Shader-Instanz als Argument an die Graphics.beginShaderFill()-Methode.
  • Als Shaderfilter: Die Ausgabe des Shaders wird als Grafikfilter auf ein Anzeigeobjekt angewendet. Weisen Sie die Shader-Instanz der shader-Eigenschaft einer ShaderFilter-Instanz zu.
  • Als Mischmodus: Die Ausgabe des Shaders wird als Mischung zwischen zwei überlappenden Anzeigeobjekten dargestellt. Weisen Sie die Shader-Instanz der blendShader-Eigenschaft des oberen der beiden Anzeigeobjekte zu.
  • Shaderverarbeitung im Hintergrund: Der Shader wird im Hintergrund ausgeführt, wodurch ein mögliches Hängenbleiben der Bildschirmanzeige verhindert wird, und löst nach Beenden der Verarbeitung ein Ereignis aus. Weisen Sie die Shader-Instanz der shader-Eigenschaft einer ShaderJob-Instanz zu.

Shader-Füllungen, Filter und Mischmodi werden mit GPU-Rendering nicht unterstützt.

Unterstützung für mobile Browser: Diese Funktion wird in mobilen Browsern nicht unterstützt.

Unterstützung von AIR-Profilen: Diese Funktion wird auf allen Desktopbetriebssystemen unterstützt, jedoch nicht auf allen mobilen Geräten. Bei Geräten mit AIR für TV wird sie nicht unterstützt. Weitere Informationen zum AIR-Support über mehrere Profile finden Sie unter Unterstützung von AIR-Profilen.

Im folgenden Beispiel wird zur Laufzeit eine Shaderbytecodedatei geladen und eine Shader-Instanz damit verknüpft.

Beachten Sie, dass im Beispiel davon ausgegangen wird, dass im selben Ordner wie dem Ausgabeordner der Anwendung eine Shaderbytecodedatei mit dem Namen „donothing.pbj“ vorhanden ist. Der Pixel Bender-Quellcode for den DoNothing-Shader ist im Beispiel zur ShaderData-Klasse verfügbar.

package { import flash.display.Shader; import flash.display.Sprite; import flash.events.Event; import flash.net.URLLoader; import flash.net.URLLoaderDataFormat; import flash.net.URLRequest; public class LoadedShaderExample extends Sprite { private var loader:URLLoader; public function LoadedShaderExample() { loader = new URLLoader(); loader.dataFormat = URLLoaderDataFormat.BINARY; loader.addEventListener(Event.COMPLETE, loadCompleteHandler); loader.load(new URLRequest("donothing.pbj")); } private function loadCompleteHandler(event:Event):void { var shader:Shader = new Shader(); shader.byteCode = loader.data; // do something with the Shader instance } } }
Im folgenden Beispiel wird eine Shaderbytecodedatei durch Kompilieren in die SWF eingebettet und eine Shader-Instanz damit verknüpft.

Bei diesem Beispiel wird davon ausgegangen, dass im selben Ordner, in dem der Quellcode für die Anwendung liegt, eine Shaderbytecodedatei namens „donothing.pbj“ vorhanden ist und dass Flex SDK für das Kompilieren der SWF verwendet wird. Der Pixel Bender-Quellcode for den DoNothing-Shader ist im Beispiel zur ShaderData-Klasse verfügbar.

package { import flash.display.Shader; import flash.display.Sprite; public class EmbeddedShaderExample extends Sprite { [Embed(source="donothing.pbj", mimeType="application/octet-stream")] private static var DoNothingShader:Class; public function EmbeddedShaderExample() { var shader:Shader = new Shader(); shader.byteCode = new DoNothingShader(); // do something with the Shader instance } } }
flash.display.DisplayObject.blendShaderflash.display.Graphics.beginShaderFill()flash.display.ShaderJobflash.filters.ShaderFilterflash.net.URLLoaderShader Erstellt eine neue Shader-Instanz.codeflash.utils:ByteArraynullDer unformatierte Bytecode, der mit dem Shader verknüpft wird. Erstellt eine neue Shader-Instanz. data Gewährt Zugriff auf Parameter, Eingabebilder und Metadaten für die Shader-Instanz.flash.display:ShaderData Gewährt Zugriff auf Parameter, Eingabebilder und Metadaten für die Shader-Instanz. ShaderParameter-Objekte stellen Parameter für den Shader dar, Shaderinput-Objekte stellen die Eingabebilder für den Shader dar und andere Werte stellen die Metadaten des Shaders dar, die beim Erstellen der Shaderinstanz als Eigenschaften des data-Eigenschaftsobjekts dynamisch hinzugefügt werden. Diese Eigenschaften können zum Untersuchen des Shaders und zum Setzen von Parametern und Eingabewerten verwendet werden.

Informationen über den Zugriff auf und die Änderung der dynamischen Eigenschaften des data-Objekts finden Sie in der Beschreibung der ShaderData-Klasse.

flash.display.ShaderDataflash.display.ShaderInputflash.display.ShaderParameter
precisionHint Die Präzision der vom Shader ausgeführten mathematischen Operationen.String Die Präzision der vom Shader ausgeführten mathematischen Operationen.

Der Satz der möglichen Werte für die precisionHint-Eigenschaft wird durch die Konstanten in der ShaderPrecision-Klasse definiert.

Der Standartwert ist ShaderPrecision.FULL. Mathematische Operationen können zulasten der Präzision beschleunigt werden, indem Sie die Präzision auf ShaderPrecision.FAST setzen.

Im vollen Präzisionsmodus (ShaderPrecision.FULL) werden alle mathematischen Operationen basierend auf dem 32-Bit-Gleitkommastandard des IEEE berechnet. Dieser Modus gewährleistet konsistentes Verhalten über alle Plattformen hinweg. In diesem Modus können einige mathematische Operationen, wie beispielsweise trigonometrische und Exponentialfunktionen, langsam sein.

Der schnelle Präzisionsmodus (ShaderPrecision.FAST) gewährleistet maximale Leistung, funktioniert aber nicht konsistent über alle Plattformen und individuellen CPU-Konfigurationen hinweg. Diese Präzisionsebene reicht aus, um Grafikeffekte ohne sichtbare Artefakte zu erstellen.

Die Auswahl des Präzisionsmodus wirkt sich auf die folgenden Shadervorgänge aus. Diese Vorgänge sind auf einem Intel-Prozessor schneller, wenn die SSE-Anweisung wie folgt eingestellt ist:

  • sin(x)
  • cos(x)
  • tan(x)
  • asin(x)
  • acos(x)
  • atan(x)
  • atan(x, y)
  • exp(x)
  • exp2(x)
  • log(x)
  • log2(x)
  • pow(x, y)
  • reciprocal(x)
  • sqrt(x)
flash.display.ShaderPrecision
byteCode Der unformatierte Shaderbytecode für die Shader-Instanz.flash.utils:ByteArray Der unformatierte Shaderbytecode für die Shader-Instanz.
LineScaleMode Die LineScaleMode-Klasse stellt Werte für den Parameter „scaleMode“ in der Graphics.lineStyle()-Methode bereit.Object Die LineScaleMode-Klasse stellt Werte für den Parameter scaleMode in der Graphics.lineStyle()-Methode bereit. flash.display.Graphics.lineStyle()HORIZONTAL Mit dieser Einstellung, die als Parameter „scaleMode“ der lineStyle()-Methode verwendet wird, wird die Stärke der Linie nur vertikal skaliert.horizontalString Mit dieser Einstellung, die als Parameter scaleMode der lineStyle()-Methode verwendet wird, wird die Stärke der Linie nur vertikal skaliert. Betrachten Sie beispielsweise die folgenden Kreise, die mit einer 1 Pixel starken Linie gezeichnet wurden und bei denen der Parameter scaleMode jeweils auf LineScaleMode.VERTICAL gesetzt wurde. Der Kreis links wurde nur vertikal skaliert, und der Kreis rechts wurde sowohl vertikal als auch horizontal skaliert.

NONE Mit dieser Einstellung, die als Parameter „scaleMode“ der lineStyle()-Methode verwendet wird, wird die Stärke der Linie niemals skaliert.noneString Mit dieser Einstellung, die als scaleMode-Parameter der lineStyle()-Methode verwendet wird, wird die Stärke der Linie niemals skaliert. NORMAL Mit dieser Einstellung, die als Parameter „scaleMode“ der lineStyle()-Methode verwendet wird, wird die Stärke der Linie immer skaliert, wenn das Objekt skaliert wird (Standardeinstellung).normalString Mit dieser Einstellung, die als Parameter scaleMode der lineStyle()-Methode verwendet wird, wird die Stärke der Linie immer skaliert, wenn das Objekt skaliert wird (Standardeinstellung). VERTICAL Mit dieser Einstellung, die als Parameter „scaleMode“ der lineStyle()-Methode verwendet wird, wird die Stärke der Linie nur horizontal skaliert.verticalString Mit dieser Einstellung, die als Parameter scaleMode der lineStyle()-Methode verwendet wird, wird die Stärke der Linie nur horizontal skaliert. Betrachten Sie beispielsweise die folgenden Kreise, die mit einer 1 Pixel starken Linie gezeichnet wurden und bei denen der Parameter scaleMode jeweils auf LineScaleMode.HORIZONTAL gesetzt wurde. Der Kreis links wurde nur horizontal skaliert, und der Kreis rechts wurde sowohl horizontal als auch vertikal skaliert.

IGraphicsData Diese Schnittstelle wird für die Definition von Objekten verwendet, die als Parameter in der flash.display.Graphics-Methode verwendet werden können, einschließlich Füllungen, Striche und Pfade. Diese Schnittstelle wird für die Definition von Objekten verwendet, die als Parameter in der flash.display.Graphics-Methode verwendet werden können, einschließlich Füllungen, Striche und Pfade. Verwenden Sie Klassen, die diese Schnittstelle implementieren, um Zeichnungseigenschaftsdaten zu erstellen und zu verwalten und diese Daten in verschiedenen Instanzen wiederzuverwenden. Verwenden Sie anschließend die Methoden der Graphics-Klasse zum Darstellen der gezeichneten Objekte. flash.display.Graphics.drawGraphicsData()MovieClip Die MovieClip-Klasse erbt von folgenden Klassen: Sprite, DisplayObjectContainer, InteractiveObject, DisplayObject und EventDispatcher.Das grundlegende Anzeigeobjekt für mit ActionScript erstellte Objekte. flash.display:Sprite Die MovieClip-Klasse erbt von folgenden Klassen: Sprite, DisplayObjectContainer, InteractiveObject, DisplayObject und EventDispatcher.

Im Gegensatz zum Sprite-Objekt besitzt ein MovieClip-Objekt eine Zeitleiste.

>In Flash Professional bieten die Methoden für die MovieClip-Klasse dieselbe Funktionalität wie Aktionen für Movieclips. Für einige zusätzliche Methoden liegen in der Werkzeugleiste für Aktionen der Flash-Authoring-Umgebung keine entsprechenden Aktionen vor.

Auf untergeordnete Instanzen, die in Flash Professional auf der Bühne platziert werden, kann nicht durch Code von einem Konstruktor einer übergeordneten Instanz aus zugegriffen werden, da sie an diesem Punkt der Codeausführung nicht erstellt wurden. Vor dem Zugriff auf die untergeordnete Instanz muss die übergeordnete Instanz die untergeordnete entweder mithilfe von Code erstellen oder den Zugriff auf eine Callback-Funktion verzögern, die überwacht, wann die untergeordnete Instanz ihr Ereignis Event.ADDED_TO_STAGE auslöst.

Wenn Sie eine der folgenden Eigenschaften eines MovieClip-Objekts mit einem Bewegungs-Tween ändern, wird der Abspielkopf in diesem MovieClip-Objekt gestoppt: alpha, blendMode, filters, height, opaqueBackground, rotation, scaleX, scaleY, scale9Grid, scrollRect, transform, visible, width, x oder y. Der Abspielkopf wird in untergeordneten MovieClip-Objekten des betreffenden MovieClip-Objekts jedoch nicht angehalten.

Hinweis:Flash Lite 4 unterstützt die MovieClip.opaqueBackground-Eigenschaft nur, wenn FEATURE_BITMAPCACHE definiert ist. Die Standardkonfiguration von Flash Lite 4 definiert FEATURE_BITMAPCACHE nicht. Um die MovieClip.opaqueBackground-Eigenschaft für ein geeignetes Gerät zu aktivieren, definieren Sie FEATURE_BITMAPCACHE in Ihrem Projekt.

Im folgenden Beispiel wird die MovieClipExample-Klasse verwendet, um zu zeigen, wie verschiedene Eigenschaften eines MovieClip-Objekts überwacht werden. Dies wird in den folgenden Schritten erreicht:
  1. Die Konstruktorfunktion definiert ein Textfeld, das verwendet wird, um die Werte der Eigenschaften des MovieClipExample-Objekts anzuzeigen (das „MovieClip“ erweitert).
  2. Der Rückgabewert der getPropertiesString()-Methode wird als Text für das outputText-Textfeld verwendet. Die getPropertiesString()-Methode gibt einen String zurück, der mit Werten der folgenden Eigenschaften des Movieclips gefüllt wird: currentFrame, currentLabel, currentScene, framesLoaded, totalFrames und trackAsMenu.
  3. Zwei Codezeilen in der Konstruktorfunktion passen die Eigenschaften width und height des Textfelds outputText an.
  4. Die letzte Zeile der Konstruktorfunktion fügt das Textfeld outputText der Anzeigeliste hinzu.
package { import flash.display.MovieClip; import flash.text.TextField; public class MovieClipExample extends MovieClip { public function MovieClipExample() { var outputText:TextField = new TextField(); outputText.text = getPropertiesString(); outputText.width = stage.stageWidth; outputText.height = outputText.textHeight; addChild(outputText); } private function getPropertiesString():String { var str:String = "" + "currentFrame: " + currentFrame + "\n" + "currentLabel: " + currentLabel + "\n" + "currentScene: " + currentScene + "\n" + "framesLoaded: " + framesLoaded + "\n" + "totalFrames: " + totalFrames + "\n" + "trackAsMenu: " + trackAsMenu + "\n"; return str; } } }
MovieClip Erstellt eine neue MovieClip-Instanz. Erstellt eine neue MovieClip-Instanz. Nachdem Sie den Movieclip erstellt haben, rufen Sie für einen Anzeigeobjekt-Container, der sich auf der Bühne befindet, die Methode addChild() oder addChildAt() auf. gotoAndPlay Startet die Wiedergabe der SWF-Datei beim angegebenen Bild.frameObjectEine Zahl für die Bildnummer oder ein String zur Bezeichnung des Bilds, zu dem der Abspielkopf springen soll. Wenn Sie eine Zahl angeben, ist diese relativ zur angegebenen Szene zu verstehen. Wenn Sie keine Szene angeben, bestimmt die aktuelle Szene die globale Nummer des abzuspielenden Bildes. Haben Sie eine Szene angegeben, springt der Abspielkopf in dieser Szene zum Bild mit der angegebenen Nummer. sceneStringnullDer Name der abzuspielenden Szene. Dieser Parameter ist optional. Startet die Wiedergabe der SWF-Datei beim angegebenen Bild. Dies passiert, nachdem alle im Bild verbleibenden Aktionen ganz ausgeführt worden sind. Um eine Szene und ein Bild anzugeben, geben Sie einen Wert für den Parameter scene an. Im folgenden Code wird der Abspielkopf des Movieclips gotoAndPlay() mithilfe der mc1-Methode angewiesen, um fünf Bilder weiter zu springen als das aktuelle Bild: mc1.gotoAndPlay(mc1.currentFrame + 5); Im folgenden Code wird mithilfe der gotoAndPlay()-Methode der Abspielkopf des Movieclips mc1 angewiesen, zum Bild mit der Bezeichnung "intro" in der Szene "Scene 12" weiter zu springen: mc1.gotoAndPlay("intro", "Scene 12"); gotoAndStop Verschiebt den Abspielkopf zum angegebenen Bild im Movieclip und hält ihn dort an.Dies gilt, wenn für den betreffenden Movieclip der scene- oder frame-Wert nicht gefunden werden kann. ArgumentErrorArgumentErrorframeObjectEine Zahl für die Bildnummer oder ein String zur Bezeichnung des Bilds, zu dem der Abspielkopf springen soll. Wenn Sie eine Zahl angeben, ist diese relativ zur angegebenen Szene zu verstehen. Wenn Sie keine Szene angeben, bestimmt die aktuelle Szene die globale Nummer des Bildes, an das der Abspielkopf springen und bei dem er anhalten soll. Haben Sie eine Szene angegeben, springt der Abspielkopf in dieser Szene zum Bild mit der angegebenen Nummer und hält an. sceneStringnullDer Name der Szene. Dieser Parameter ist optional. Verschiebt den Abspielkopf zum angegebenen Bild im Movieclip und hält ihn dort an. Dies passiert, nachdem alle im Bild verbleibenden Aktionen ganz ausgeführt worden sind. Wenn Sie eine Szene zusätzlich zu einem Bild angeben möchten, verwenden Sie den Parameter scene. Im folgenden Code wird der Abspielkopf des Movieclips gotoAndStop() mithilfe der currentFrame-Methode und der mc1-Eigenschaft angewiesen, um fünf Bilder über das aktuelle Bild hinaus zu springen und dort anzuhalten: mc1.gotoAndStop(mc1.currentFrame + 5); Im folgenden Code wird mithilfe der gotoAndStop()-Methode der Abspielkopf des Movieclips mc1 angewiesen, zum Bild mit der Bezeichnung "finale" in der Szene "Scene 12" zu springen und dort anzuhalten: mc1.gotoAndStop("finale", "Scene 12"); nextFrame Verschiebt den Abspielkopf zum nächsten Bild und stoppt die Wiedergabe. Verschiebt den Abspielkopf zum nächsten Bild und stoppt die Wiedergabe. Dies passiert, nachdem alle im Bild verbleibenden Aktionen ganz ausgeführt worden sind. Im folgenden Beispiel wird die Zeitleiste über zwei SimpleButton-Objekte gesteuert. Die Schaltfläche prev verschiebt den Abspielkopf in das vorige Bild, und die Schaltfläche nextBtn verschiebt den Abspielkopf in das nächste Bild: import flash.events.MouseEvent; mc1.stop(); prevBtn.addEventListener(MouseEvent.CLICK, goBack); nextBtn.addEventListener(MouseEvent.CLICK, goForward); function goBack(event:MouseEvent):void { mc1.prevFrame(); } function goForward(event:MouseEvent):void { mc1.nextFrame(); } prevFrame()nextScene Verschiebt den Abspielkopf in die nächste Szene der Movieclip-Instanz. Verschiebt den Abspielkopf in die nächste Szene der Movieclip-Instanz. Dies passiert, nachdem alle im Bild verbleibenden Aktionen ganz ausgeführt worden sind. Im folgenden Beispiel wird die Zeitleiste über zwei SimpleButton-Objekte gesteuert. Die Schaltfläche prevBtn verschiebt den Abspielkopf in die vorige Szene, und die Schaltfläche nextBtn verschiebt den Abspielkopf in die nächste Szene: import flash.events.MouseEvent; mc1.stop(); prevBtn.addEventListener(MouseEvent.CLICK, goBack); nextBtn.addEventListener(MouseEvent.CLICK, goForward); function goBack(event:MouseEvent):void { mc1.prevScene(); } function goForward(event:MouseEvent):void { mc1.nextScene(); } play Verschiebt den Abspielkopf in der Zeitleiste des Movieclips. Verschiebt den Abspielkopf in der Zeitleiste des Movieclips. Der folgende Code verwendet die stop()-Methode, um einen Movieclip mit dem Namen mc1 zu stoppen und die Wiedergabe wieder zu starten, wenn Benutzer auf das Textfeld mit dem Namen continueText klicken: import flash.text.TextField; import flash.events.MouseEvent; var continueText:TextField = new TextField(); continueText.text = "Play movie..."; addChild(continueText); mc1.stop(); continueText.addEventListener(MouseEvent.CLICK, resumeMovie); function resumeMovie(event:MouseEvent):void { mc1.play(); } gotoAndPlay()prevFrame Verschiebt den Abspielkopf zum vorigen Bild und stoppt die Wiedergabe. Verschiebt den Abspielkopf zum vorigen Bild und stoppt die Wiedergabe. Dies passiert, nachdem alle im Bild verbleibenden Aktionen ganz ausgeführt worden sind. Im folgenden Beispiel wird die Zeitleiste über zwei SimpleButton-Objekte gesteuert. Die Schaltfläche prev verschiebt den Abspielkopf in das vorige Bild, und die Schaltfläche nextBtn verschiebt den Abspielkopf in das nächste Bild: import flash.events.MouseEvent; mc1.stop(); prevBtn.addEventListener(MouseEvent.CLICK, goBack); nextBtn.addEventListener(MouseEvent.CLICK, goForward); function goBack(event:MouseEvent):void { mc1.prevFrame(); } function goForward(event:MouseEvent):void { mc1.nextFrame(); } prevScene Verschiebt den Abspielkopf in die vorige Szene der MovieClip-Instanz. Verschiebt den Abspielkopf in die vorige Szene der MovieClip-Instanz. Dies passiert, nachdem alle im Bild verbleibenden Aktionen ganz ausgeführt worden sind. Im folgenden Beispiel wird die Zeitleiste über zwei SimpleButton-Objekte gesteuert. Die Schaltfläche prevBtn verschiebt den Abspielkopf in die vorige Szene, und die Schaltfläche nextBtn verschiebt den Abspielkopf in die nächste Szene: import flash.events.MouseEvent; mc1.stop(); prevBtn.addEventListener(MouseEvent.CLICK, goBack); nextBtn.addEventListener(MouseEvent.CLICK, goForward); function goBack(event:MouseEvent):void { mc1.prevScene(); } function goForward(event:MouseEvent):void { mc1.nextScene(); } stop Stoppt den Abspielkopf im Movieclip. Stoppt den Abspielkopf im Movieclip. currentFrameLabel Die Beschriftung des aktuellen Bilds in der Zeitleiste der MovieClip-Instanz.String Die Beschriftung des aktuellen Bilds in der Zeitleiste der MovieClip-Instanz. Wenn das aktuelle Bild keine Beschriftung hat, hat currentLabel den Wert null. currentFrame Gibt die Nummer des Bilds in der Zeitleiste der MovieClip-Instanz zurück, bei dem sich der Abspielkopf gerade befindet.int Gibt die Nummer des Bilds in der Zeitleiste der MovieClip-Instanz zurück, bei dem sich der Abspielkopf gerade befindet. Umfasst der Movieclip mehrere Szenen, bezeichnet dieser Wert die Bildnummer in der aktuellen Szene. Im folgenden Code wird der Abspielkopf des Movieclips gotoAndStop() mithilfe der currentFrame-Methode und der mc1-Eigenschaft angewiesen, um fünf Bilder über das aktuelle Bild hinaus zu springen und dort anzuhalten: mc1.gotoAndStop(mc1.currentFrame + 5); currentLabel Die aktuelle Bezeichnung der Szene in der Zeitleiste der MovieClip-Instanz, in der sich der Abspielkopf gerade befindet.String Die aktuelle Bezeichnung der Szene in der Zeitleiste der MovieClip-Instanz, in der sich der Abspielkopf gerade befindet. Wenn das aktuelle Bild keine Bezeichnung aufweist, wird currentLabel auf den Namen eines vorherigen Bilds gesetzt, das über eine Bezeichnung verfügt. Wenn das aktuelle Bild und die vorherigen Bilder keine Bezeichnung enthalten, wird für currentLabel der Wert null zurückgegeben. Der folgende Code zeigt den Zugriff auf die currentLabel-Eigenschaft eines MovieClip-Objekts mit dem Namen mc1: trace(mc1.currentLabel); currentLabels Gibt ein Array an FrameLabel-Objekten aus der aktuellen Szene zurück.Array Gibt ein Array an FrameLabel-Objekten aus der aktuellen Szene zurück. Verwendet die MovieClip-Instanz keine Szenen, enthält das Array alle Bildbezeichnungen aus der gesamten MovieClip-Instanz. Der folgende Code zeigt die Verwendung der currentLabels-Eigenschaft eines MovieClip-Objekts mit dem Namen mc1: import flash.display.FrameLabel; var labels:Array = mc1.currentLabels; for (var i:uint = 0; i < labels.length; i++) { var label:FrameLabel = labels[i]; trace("frame " + label.frame + ": " + label.name); } flash.display.FrameLabelcurrentScene Die aktuelle Szene in der Zeitleiste der MovieClip-Instanz, in der sich der Abspielkopf gerade befindet.flash.display:Scene Die aktuelle Szene in der Zeitleiste der MovieClip-Instanz, in der sich der Abspielkopf gerade befindet. Der folgende Code zeigt die Verwendung der currentScene-Eigenschaft eines MovieClip-Objekts mit dem Namen mc1: import flash.display.Scene; var scene:Scene = mc1.currentScene; trace(scene.name + ": " + scene.numFrames + " frames"); Sceneenabled Ein boolescher Wert, der angibt, ob ein Movieclip aktiviert ist.Boolean Ein boolescher Wert, der angibt, ob ein Movieclip aktiviert ist. Der Standardwert von enabled lautet true. Wenn enabled auf false gesetzt ist, werden die Bilder „Over“, „Down“ und „Up“ des Movieclips deaktiviert. Der Movieclip empfängt auch weiterhin Ereignisse (beispielsweise mouseDown, mouseUp, keyDown und keyUp).

Die enabled-Eigenschaft steuert nur die schaltflächenähnlichen Eigenschaften eines Movieclips. Sie können die enabled-Eigenschaft jederzeit ändern. Der geänderte Movieclip wird dann sofort aktiviert oder deaktiviert. Wenn enabled auf false gesetzt ist, wird das Objekt bei der automatischen Tabulatorreihenfolge nicht berücksichtigt.

Der folgende Code zeigt die Verwendung der enabled-Eigenschaft zum Deaktivieren der schaltflächenähnlichen Eigenschaften eines MovieClip-Objekts mit dem Namen mc1: mc1.enabled = false;
framesLoaded Die Anzahl der Bilder, die aus einer SWF-Streaming-Datei geladen werden.int Die Anzahl der Bilder, die aus einer SWF-Streaming-Datei geladen werden. Mithilfe der framesLoaded-Eigenschaft können Sie feststellen, ob die Inhalte eines bestimmten Bildes und aller vorausgehenden Bilder geladen wurden und im Browser lokal zur Verfügung stehen. Außerdem kann damit der Download großer SWF-Dateien überwacht werden. Beispielsweise können Sie eine Meldung anzeigen lassen, die dem Benutzer mitteilt, dass die SWF-Datei geladen wird, bis ein bestimmtes Bild in der SWF-Datei vollständig geladen ist.

Umfasst der Movieclip mehrere Szenen, gibt die framesLoaded-Eigenschaft die Anzahl der für alle Szenen im Movieclip geladenen Bilder zurück.

Der folgende Code zeigt, wie Sie die framesLoaded-Eigenschaft und die totalFrames-Eigenschaft verwenden, um zu bestimmen, ob ein Streaming-MovieClip-Objekt mit dem Namen mc1 vollständig geladen wurde: if (mc1.framesLoaded == mc1.totalFrames) { trace("OK."); }
Loader-Klasse
scenes Ein Array an Scene-Objekten, von denen jedes den Namen, die Anzahl der Bilder und die Bildbezeichnungen für eine Szene in der MovieClip-Instanz auflistet.Array Ein Array an Scene-Objekten, von denen jedes den Namen, die Anzahl der Bilder und die Bildbezeichnungen für eine Szene in der MovieClip-Instanz auflistet. Der folgende Code zeigt die Verwendung der scenes-Eigenschaft eines MovieClip-Objekts mit dem Namen mc1: import flash.display.Scene; for (var i:uint = 0; i < mc1.scenes.length; i++) { var scene:Scene = mc1.scenes[i]; trace("scene " + scene.name + ": " + scene.numFrames + " frames"); } ScenetotalFrames Die Anzahl aller Bilder in der MovieClip-Instanz.int Die Anzahl aller Bilder in der MovieClip-Instanz.

Umfasst der Movieclip mehrere Szenen, gibt die totalFrames-Eigenschaft die Anzahl der Bilder in allen Szenen im Movieclip zurück.

Der folgende Code zeigt die Verwendung der totalFrames-Eigenschaft eines MovieClip-Objekts mit dem Namen mc1: trace(mc1.totalFrames);
trackAsMenu Gibt an, ob andere Anzeigeobjekte, die SimpleButton- oder MovieClip-Objekte sind, Mouse-Release-Ereignisse oder Release-Ereignisse von anderen Benutzereingaben empfangen können.Boolean Gibt an, ob andere Anzeigeobjekte, die SimpleButton- oder MovieClip-Objekte sind, Mouse-Release-Ereignisse oder Release-Ereignisse von anderen Benutzereingaben empfangen können. Die trackAsMenu-Eigenschaft dient zum Erstellen von Menüs. Sie können die trackAsMenu-Eigenschaft für jedes SimpleButton- oder MovieClip-Objekt setzen. Der Standardwert der trackAsMenu-Eigenschaft lautet false.

Sie können die trackAsMenu-Eigenschaft jederzeit ändern. Der geänderte Movieclip übernimmt sofort das neue Verhalten.

Der folgende Code zeigt die Verwendung der trackAsMenu-Eigenschaft, um durch das Loslassen der Maustaste erzeugte Ereignisse für ein MovieClip-Objekt mit dem Namen mc1 zu aktivieren: mc1.trackAsMenu = true;
SWFVersion Die SWFVersion-Klasse ist eine Zusammenfassung von Konstantenwerten, die die Dateiformatversion einer geladenen SWF-Datei anzeigen.Object Die SWFVersion-Klasse ist eine Zusammenfassung von Konstantenwerten, die die Dateiformatversion einer geladenen SWF-Datei anzeigen. Die verfügbaren SWFVersion-Konstanten erhalten Sie, indem Sie die swfVersion-Eigenschaft eines flash.display.LoaderInfo-Objekts prüfen. flash.display.LoaderInfo.swfVersionFLASH10 SWF-Dateiformatversion 10.0.10uint SWF-Dateiformatversion 10.0. FLASH11 SWF-Dateiformatversion 11.0.11uint SWF-Dateiformatversion 11.0. FLASH1 SWF-Dateiformatversion 1.0.1uint SWF-Dateiformatversion 1.0. FLASH2 SWF-Dateiformatversion 2.0.2uint SWF-Dateiformatversion 2.0. FLASH3 SWF-Dateiformatversion 3.0.3uint SWF-Dateiformatversion 3.0. FLASH4 SWF-Dateiformatversion 4.0.4uint SWF-Dateiformatversion 4.0. FLASH5 SWF-Dateiformatversion 5.0.5uint SWF-Dateiformatversion 5.0. FLASH6 SWF-Dateiformatversion 6.0.6uint SWF-Dateiformatversion 6.0. FLASH7 SWF-Dateiformatversion 7.0.7uint SWF-Dateiformatversion 7.0. FLASH8 SWF-Dateiformatversion 8.0.8uint SWF-Dateiformatversion 8.0. FLASH9 SWF-Dateiformatversion 9.0.9uint SWF-Dateiformatversion 9.0. NativeWindowResize Die NativeWindowsResize-Klasse definiert Konstanten für die möglichen Werte des edgeOrCorner-Parameters der startResize()-Methode von NativeWindow.Definiert Konstanten, die bei der Größenänderung eines Fensters als Reaktion auf eine Benutzeraktion verwendet werden. Object Die NativeWindowsResize-Klasse definiert Konstanten für die möglichen Werte des edgeOrCorner-Parameters der startResize()-Methode von NativeWindow.

Eine Konstante ist zur Benennung von jeder Kante und Ecke eines Fensters definiert.

flash.display.NativeWindow.startResize()BOTTOM_LEFT Die untere linke Ecke des Fensters.BLString Die untere linke Ecke des Fensters. BOTTOM_RIGHT Die untere rechte Ecke des Fensters.BRString Die untere rechte Ecke des Fensters. BOTTOM Die untere Kante des Fensters.BString Die untere Kante des Fensters. LEFT Die linke Kante des Fensters.LString Die linke Kante des Fensters. NONE Wird bei Systemen, die diese Funktion unterstützen (zum Beispiel Windows) für die Größenänderung über die Tastatur verwendet.String Wird bei Systemen, die diese Funktion unterstützen (zum Beispiel Windows) für die Größenänderung über die Tastatur verwendet. Unter Windows ähnelt dies der Auswahl des Befehls „Größe ändern“ aus dem mit Alt+Leertaste angezeigten Menü. Wenn NativeWindow.startResize(NativeWindowResize.NONE) aufgerufen wird, kann ein Windows-Benutzer die Größe des Fensters mithilfe der Pfeiltasten auf der Tastatur ändern. RIGHT Die rechte Kante des Fensters.RString Die rechte Kante des Fensters. TOP_LEFT Die obere linke Ecke des Fensters.TLString Die obere linke Ecke des Fensters. TOP_RIGHT Die obere rechte Ecke des Fensters.TRString Die obere rechte Ecke des Fensters. TOP Die obere Kante des Fensters.TString Die obere Kante des Fensters.
BitmapDataChannel Die BitmapDataChannel-Klasse ist eine Zusammenfassung von Konstantenwerten, die angeben, welcher Kanal zu verwenden ist: Rot, Grün, Blau oder Alphatransparenz.Object Die BitmapDataChannel-Klasse ist eine Zusammenfassung von Konstantenwerten, die angeben, welcher Kanal zu verwenden ist: Rot, Grün, Blau oder Alphatransparenz.

Wenn Sie mehrere Methoden aufrufen, können Sie den Bit-für-Bit-Operator OR (|) verwenden, um BitmapDataChannel-Konstanten zu kombinieren und so mehrere Farbkanäle anzugeben.

Die BitmapDataChannel-Konstanten werden bereitgestellt, um sie als Werte in den folgenden Methoden und Eigenschaften zu verwenden:

  • Parameter sourceChannel und destChannel der flash.display.BitmapData.copyChannel()-Methode
  • Parameter channelOptions der flash.display.BitmapData.noise()-Methode
  • Eigenschaften flash.filters.DisplacementMapFilter.componentX und flash.filters.DisplacementMapFilter.componentY
flash.display.BitmapData.copyChannel()flash.display.BitmapData.noise()flash.filters.DisplacementMapFilter.componentXflash.filters.DisplacementMapFilter.componentYALPHA Der Alphakanal.8uint Der Alphakanal. BLUE Der blaue Kanal.4uint Der blaue Kanal. GREEN Der grüne Kanal.2uint Der grüne Kanal. RED Der rote Kanal.1uint Der rote Kanal.
GraphicsSolidFill Legt eine einfarbige Füllung fest.flash.display:IGraphicsFillflash.display:IGraphicsDataObject Legt eine einfarbige Füllung fest.

Verwenden Sie ein GraphicsSolidFill-Objekt mit der Graphics.drawGraphicsData()-Methode. Das Zeichnen eines GraphicsSolidFill-Objekts entspricht dem Aufrufen der Graphics.beginFill()-Methode.

flash.display.Graphics.beginFill()flash.display.Graphics.drawGraphicsData()GraphicsSolidFill Erstellt ein neues GraphicsSolidFill-Objekt.coloruint0Der Farbwert. Die zulässigen Werte werden im Hexadezimalformat 0xRRGGBB angegeben. alphaNumber1.0Der Alphatransparenzwert. Die zulässigen Werte liegen zwischen 0 (völlig transparent) und 1 (völlig undurchsichtig). Erstellt ein neues GraphicsSolidFill-Objekt. alpha Gibt den Alphatransparenzwert der Füllung an.1.0Number Gibt den Alphatransparenzwert der Füllung an. Die zulässigen Werte liegen zwischen 0 (völlig transparent) und 1 (völlig undurchsichtig). Der Standardwert ist 1. Anzeigeobjekte mit dem alpha-Wert 0 sind aktiv, auch wenn sie nicht sichtbar sind. color Die Farbe der Füllung.0uint Die Farbe der Füllung. GültigeWerte werden im Hexadezimalformat 0xRRGGBB angegeben. Der Standardwert ist 0xFF0000 (oder uint 0).
IBitmapDrawable Die IBitmapDrawable-Schnittstelle wird von Objekten implementiert, die als source-Parameter der draw()-Methode der BitmapData-Klasse übergeben werden können. Die IBitmapDrawable-Schnittstelle wird von Objekten implementiert, die als source-Parameter der draw()-Methode der BitmapData-Klasse übergeben werden können. Diese Objekt sind vom Typ „BitmapData“ oder „DisplayObject“. flash.display.BitmapData.draw()flash.display.BitmapDataflash.display.DisplayObjectCapsStyle Die CapsStyle-Klasse ist eine Zusammenfassung von Konstantenwerten, die den beim Zeichnen von Linien zu verwendenden Abschlussstil festlegen.Object Die CapsStyle-Klasse ist eine Zusammenfassung von Konstantenwerten, die den beim Zeichnen von Linien zu verwendenden Abschlussstil festlegen. Diese Konstanten werden als Werte im Parameter caps der flash.display.Graphics.lineStyle()-Methode verwendet. Sie können die folgenden drei Abschlussstile verwenden:

Im folgenden Beispiel werden mit der Klasse CapsStyleExample drei parallele Linien gezeichnet, die alle über einen anderen Abschlussstil verfügen.
  1. Die Eigenschaften der Linien sind wie folgt festgelegt:
    • Die Linienlänge ist auf 80 Pixel festgelegt.
    • Die Rahmenfarbe ist auf Orange gesetzt.
    • Die Rahmenbreite ist auf 30 Pixel festgelegt.
    • Die Hervorhebungsfarbe ist auf Grau gesetzt.
    • Die Hervorhebungsgröße ist auf 0 Pixel festgelegt.
    • Alpha ist auf 1 (also vollständige Füllung) gesetzt.
    • Die Funktion „pixelHinting“ ist auf „false“ gesetzt (Striche werden nicht als ganze Pixel angezeigt).
    • Als Modus für die Linienskalierung ist „normal“ angegeben, sodass die Stärke skaliert wird.
    • Der Verbindungsstil der Rahmenabschlüsse ist auf MITER gesetzt.
    • Der Wert für die Winkelgrenze ist auf 1 gesetzt. Dies bedeutet, das der Winkel nah an der Linie abgeschnitten wird.
  2. Der Klassenkonstruktor erstellt drei vertikale Linien, die an der Position x = 0, y = 0 beginnen, indem er dreimal die drawLine()-Methode aufruft und drei verschiedene Linienabschlussstile verwendet („none“, „round“ und „square“ – keiner, abgerundet und eckig). Bei jedem der drei Aufrufe der drawLine()-Methode werden die vorher aufgeführten Abschlussstile und Eigenschaften verwendet, um eine vertikale Linie und die zugehörige Linienhervorhebung zu zeichnen. Durch die Aufrufe wird zuerst ein neues child-Shape-Objekt erstellt, und dann werden die Methoden der Graphics-Klasse verwendet, um den Linienstil festzulegen und die Linien und Hervorhebungen zu zeichnen. Jede Instanz von child wird der Anzeigeliste hinzugefügt und auf der Bühne gezeichnet.
  3. Die verbundenen Liniensegmente werden erneut gezeichnet, indem die refreshLayout()-Methode mit dem Wert y = 80 Pixel und dem Anfangspunkt bei x = 80 Pixel mit einem Abstand von 25 Pixel zwischen den Liniensegmenten verwendet wird.
package { import flash.display.CapsStyle; import flash.display.DisplayObject; import flash.display.Graphics; import flash.display.JointStyle; import flash.display.LineScaleMode; import flash.display.Shape; import flash.display.Sprite; public class CapsStyleExample extends Sprite { private var lineLength:uint = 80; private var borderColor:uint = 0xFFCC00; private var borderSize:uint = 30; private var highlightColor:uint = 0x666666; private var highlightSize:uint = 0; private var gutter:uint = 25; private var borderAlpha:uint = 1; private var borderPixelHinting:Boolean = false; private var borderScaleMode:String = LineScaleMode.NORMAL; private var borderJointStyle:String = JointStyle.MITER; private var borderMiterLimit:uint = 1; public function CapsStyleExample() { drawLine(CapsStyle.NONE); drawLine(CapsStyle.ROUND); drawLine(CapsStyle.SQUARE); refreshLayout(); } private function drawLine(capsStyle:String):void { var child:Shape = new Shape(); child.graphics.lineStyle(borderSize, borderColor, borderAlpha, borderPixelHinting, borderScaleMode, capsStyle, borderJointStyle, borderMiterLimit); child.graphics.lineTo(0, 0); child.graphics.lineTo(0, lineLength); child.graphics.endFill(); child.graphics.moveTo(0, 0); child.graphics.lineStyle(highlightSize, highlightColor); child.graphics.lineTo(0, 0); child.graphics.lineTo(0, lineLength); addChild(child); } private function refreshLayout():void { var ln:uint = numChildren; var child:DisplayObject; var lastChild:DisplayObject = getChildAt(0); lastChild.x = lineLength; lastChild.y = lineLength; for (var i:uint = 1; i < ln; i++) { child = getChildAt(i); child.x = gutter + lastChild.x + lastChild.width; child.y = lineLength; lastChild = child; } } } }
flash.display.Graphics.lineStyle()NONE Wird verwendet, um im Parameter „caps“ der flash.display.Graphics.lineStyle()-Methode keine Abschlüsse festzulegen.noneString Wird verwendet, um im Parameter caps der flash.display.Graphics.lineStyle()-Methode keine Abschlüsse festzulegen. ROUND Wird verwendet, um im Parameter „caps“ der flash.display.Graphics.lineStyle()-Methode runde Abschlüsse festzulegen.roundString Wird verwendet, um im Parameter caps der flash.display.Graphics.lineStyle()-Methode runde Abschlüsse festzulegen. SQUARE Wird verwendet, um im Parameter „caps“ der flash.display.Graphics.lineStyle()-Methode eckige Abschlüsse festzulegen.squareString Wird verwendet, um im Parameter caps der flash.display.Graphics.lineStyle()-Methode eckige Abschlüsse festzulegen.
StageScaleMode Die StageScaleMode-Klasse stellt Werte für die Stage.scaleMode-Eigenschaft bereit.Object Die StageScaleMode-Klasse stellt Werte für die Stage.scaleMode-Eigenschaft bereit. flash.display.Stage.scaleModeEXACT_FIT Legt fest, dass die gesamte Anwendung im angegebenen Bereich sichtbar ist, wobei nicht versucht wird, das ursprüngliche Seitenverhältnis beizubehalten.exactFitString Legt fest, dass die gesamte Anwendung im angegebenen Bereich sichtbar ist, wobei nicht versucht wird, das ursprüngliche Seitenverhältnis beizubehalten. Dadurch kann es zu Verzerrungen kommen. NO_BORDER Legt fest, dass die gesamte Anwendung den angegebenen Bereich so füllt, dass sie ohne Verzerrung in den angegebenen Bereich passt. Bei Bedarf wird jedoch zugeschnitten. Das ursprüngliche Seitenverhältnis der Anwendung bleibt erhalten.noBorderString Legt fest, dass die gesamte Anwendung den angegebenen Bereich so füllt, dass sie ohne Verzerrung in den angegebenen Bereich passt. Bei Bedarf wird jedoch zugeschnitten. Das ursprüngliche Seitenverhältnis der Anwendung bleibt erhalten. NO_SCALE Legt fest, dass die Größe der Anwendung fixiert wird und auch dann unverändert bleibt, wenn sich die Größe des Player-Fensters ändert.noScaleString Legt fest, dass die Größe der Anwendung festgelegt wird und auch dann unverändert bleibt, wenn sich die Größe des Player-Fensters ändert. Ist das Player-Fenster kleiner als der Flash-Inhalt, wird der Inhalt zugeschnitten. SHOW_ALL Legt fest, dass die gesamte Anwendung im angegebenen Bereich verzerrungsfrei sichtbar ist. Dabei bleibt das ursprüngliche Seitenverhältnis der Anwendung erhalten.showAllString Legt fest, dass die gesamte Anwendung im angegebenen Bereich verzerrungsfrei sichtbar ist. Dabei bleibt das ursprüngliche Seitenverhältnis der Anwendung erhalten. Unter Umständen werden an zwei Seiten der Anwendung Ränder angezeigt. SpreadMethod Die SpreadMethod-Klasse stellt Werte für den Parameter „spreadMethod“ in den Methoden „beginGradientFill()“ und „lineGradientStyle()“ der Graphics-Klasse bereit.Object Die SpreadMethod-Klasse stellt Werte für den Parameter spreadMethod in den Methoden beginGradientFill() und lineGradientStyle() der Graphics-Klasse bereit.

Das folgende Beispiel zeigt dieselbe Farbverlaufsfüllung bei Verwendung verschiedener Auftragstärken:

SpreadMethod.PADSpreadMethod.REFLECTSpreadMethod.REPEAT
flash.display.Graphics.beginGradientFill()flash.display.Graphics.lineGradientStyle()PAD Legt fest, dass der Farbverlauf die Auftragstärke „pad“ verwendet.padString Legt fest, dass der Farbverlauf die Auftragstärke pad verwendet. REFLECT Legt fest, dass der Farbverlauf die Auftragstärke „reflect“ verwendet.reflectString Legt fest, dass der Farbverlauf die Auftragstärke reflect verwendet. REPEAT Legt fest, dass der Farbverlauf die Auftragstärke „repeat“ verwendet.repeatString Legt fest, dass der Farbverlauf die Auftragstärke repeat verwendet.
FocusDirection In der FocusDirection-Klasse werden Werte aufgelistet, die für den direction-Parameter der assignFocus()-Methode eines Stage-Objekts und für die direction-Eigenschaft eines FocusEvent-Objekts verwendet werden können.Object In der FocusDirection-Klasse werden Werte aufgelistet, die für den direction-Parameter der assignFocus()-Methode eines Stage-Objekts und für die direction-Eigenschaft eines FocusEvent-Objekts verwendet werden können. flash.events.FocusEvent.directionflash.display.Stage.assignFocus()BOTTOM Gibt an, dass das Objekt am Ende der Lesereihenfolge den Fokus erhalten soll.bottomString Gibt an, dass das Objekt am Ende der Lesereihenfolge den Fokus erhalten soll. NONE Gibt an, sich das Fokusobjekt innerhalb des interaktiven Objekts nicht ändern soll.noneString Gibt an, sich das Fokusobjekt innerhalb des interaktiven Objekts nicht ändern soll. TOP Gibt an, dass das Objekt zu Beginn der Lesereihenfolge den Fokus erhalten soll.topString Gibt an, dass das Objekt zu Beginn der Lesereihenfolge den Fokus erhalten soll. StageAlign Die StageAlign-Klasse stellt Konstantenwerte für die Stage.align-Eigenschaft bereit.Object Die StageAlign-Klasse stellt Konstantenwerte für die Stage.align-Eigenschaft bereit. flash.display.Stage.alignBOTTOM_LEFT Legt fest, dass die Bühne unten links ausgerichtet wird.BLString Legt fest, dass die Bühne unten links ausgerichtet wird. BOTTOM_RIGHT Legt fest, dass die Bühne unten rechts ausgerichtet wird.BRString Legt fest, dass die Bühne unten rechts ausgerichtet wird. BOTTOM Legt fest, dass die Bühne unten ausgerichtet wird.BString Legt fest, dass die Bühne unten ausgerichtet wird. LEFT Legt fest, dass die Bühne links ausgerichtet wird.LString Legt fest, dass die Bühne links ausgerichtet wird. RIGHT Legt fest, dass die Bühne rechts ausgerichtet wird.RString Legt fest, dass die Bühne rechts ausgerichtet wird. TOP_LEFT Legt fest, dass die Bühne oben links ausgerichtet wird.TLString Legt fest, dass die Bühne oben links ausgerichtet wird. TOP_RIGHT Legt fest, dass die Bühne oben rechts ausgerichtet wird.TRString Legt fest, dass die Bühne oben rechts ausgerichtet wird. TOP Legt fest, dass die Bühne oben ausgerichtet wird.TString Legt fest, dass die Bühne oben ausgerichtet wird. ColorCorrectionSupport Die ColorCorrectionSupport-Klasse stellt Werte für die flash.display.Stage.colorCorrectionSupport-Eigenschaft bereit.Object Die ColorCorrectionSupport-Klasse stellt Werte für die flash.display.Stage.colorCorrectionSupport-Eigenschaft bereit. flash.display.Stage.colorCorrectionSupportDEFAULT_OFF Farbkorrektur wird unterstützt, ist aber standardmäßig deaktiviert.defaultOffString Farbkorrektur wird unterstützt, ist aber standardmäßig deaktiviert. DEFAULT_ON Farbkorrektur wird unterstützt und ist standardmäßig aktiviert.defaultOnString Farbkorrektur wird unterstützt und ist standardmäßig aktiviert. UNSUPPORTED Farbkorrektur wird von der Hostumgebung nicht unterstützt.unsupportedString Farbkorrektur wird von der Hostumgebung nicht unterstützt. GraphicsShaderFill Legt eine Shaderfüllung fest.flash.display:IGraphicsFillflash.display:IGraphicsDataObject Legt eine Shaderfüllung fest.

Verwenden Sie ein GraphicsShaderFill-Objekt mit der Graphics.drawGraphicsData()-Methode. Das Zeichnen eines GraphicsShaderFill-Objekts entspricht dem Aufrufen der Graphics.beginShaderFill()-Methode.

flash.display.Graphics.beginShaderFill()flash.display.Graphics.drawGraphicsData()GraphicsShaderFill Erstellt ein neues GraphicsShaderFill-Objekt.shaderflash.display:ShadernullDer für die Füllung zu verwendende Shader. In dieser Shader-Instanz muss keine Bildeingabe festgelegt werden. Wenn jedoch im Shader eine Bildeingabe festgelegt ist, muss die Eingabe manuell bereitgestellt werden, indem die input-Eigenschaft der entsprechenden ShaderInput-Eigenschaft der Shader.data-Eigenschaft gesetzt wird. matrixflash.geom:MatrixnullEin Matrixobjekt (der flash.geom.Matrix-Klasse), mit dem Sie Transformationen am Shader definieren können. Erstellt ein neues GraphicsShaderFill-Objekt. flash.geom.Matrixflash.display.Shadermatrix Ein Matrixobjekt (der flash.geom.Matrix-Klasse), mit dem Sie Transformationen am Shader definieren können.flash.geom:Matrix Ein Matrixobjekt (der flash.geom.Matrix-Klasse), mit dem Sie Transformationen am Shader definieren können. Die folgende Matrix können Sie beispielsweise verwenden, um einen Shader um 45 Grad (pi/4 rad) zu drehen: matrix = new flash.geom.Matrix(); matrix.rotate(Math.PI / 4);

Die vom Shader entgegengenommenen Koordinaten basieren auf der im matrix-Parameter festgelegten Matrix. Bei der Standardmatrix (null) sind die Koordinaten im Shader lokale Pixelkoordinaten, die für das Sampling einer Eingabe verwendet werden können.

flash.geom.Matrix
shader Der für die Füllung zu verwendende Shader.flash.display:Shader Der für die Füllung zu verwendende Shader. In dieser Shader-Instanz muss keine Bildeingabe festgelegt werden. Wenn jedoch im Shader eine Bildeingabe festgelegt ist, muss die Eingabe manuell bereitgestellt werden, indem die input-Eigenschaft der entsprechenden ShaderInput-Eigenschaft der Shader.data-Eigenschaft gesetzt wird.

Wenn Sie eine Shader-Instanz als Argument übergeben, wird der Shader intern kopiert und der Zeichnungsfüllvorgang verwendet anstatt eines Verweises auf den ursprünglichen Shader die interne Kopie. Änderungen am Shader, beispielsweise die Änderung eines Parameterwerts, einer Eingabe, oder des Bytecode, werden nicht auf die Kopie des Shaders angewendet, die für die Füllung verwendet wird.

flash.display.Shader
Shape Diese Klasse dient zur Erstellung von Lightweight-Formen mit der ActionScript-Zeichen-API (Application Programming Interface).Ein für Formen verwendetes Anzeigeobjekt. flash.display:DisplayObject Diese Klasse dient zur Erstellung von Lightweight-Formen mit der ActionScript-Zeichen-API (Application Programming Interface). Die Shape-Klasse enthält eine graphics-Eigenschaft, mit der Sie auf Methoden der Graphics-Klasse zugreifen können.

Die Sprite-Klasse umfasst ebenfalls eine graphics-Eigenschaft sowie weitere Funktionen, die in der Shape-Klasse nicht verfügbar sind. Ein Sprite-Objekt ist beispielsweise ein Anzeigeobjekt-Container, ein Shape-Objekt hingegen nicht (und kann auch keine untergeordneten Anzeigeobjekte enthalten). Aus diesem Grund verbrauchen Shape-Objekte weniger Speicherplatz als Sprite-Objekte, die dieselben Grafiken enthalten. Ein Sprite-Objekt unterstützt jedoch im Gegensatz zu einem Shape-Objekt Benutzereingabeereignisse.

Im folgenden Beispiel werden mit der Klasse ShapeExample ein Kreis, ein abgerundetes Rechteck und ein Quadrat gezeichnet. Dies wird in den folgenden Schritten erreicht:
  1. Deklarieren Sie eine size-Eigenschaft zur späteren Verwendung beim Bestimmen der Größe der einzelnen Formen.
  2. Deklarieren Sie Eigenschaften, die die Hintergrundfarbe auf Orange, die Rahmenfarbe auf Dunkelgrau, die Rahmenbreite auf 0 Pixel und den Eckradius auf 9 Pixel setzen, und setzen Sie den Abstand zwischen Bühnenrand und anderen Objekten auf 5 Pixel.
  3. Verwenden Sie die in den vorherigen Schritten deklarierten Eigenschaften zusammen mit den vorhandenen Methoden der Graphics-Klasse, um an den Koordinaten x = 0, y = 0 einen Kreis, ein abgerundetes Rechteck und ein Quadrat zu zeichnen.
  4. Zeichnen Sie die einzelnen Formen am oberen Rand der Bühne neu, indem Sie an der Position x = 5, y = 5 beginnen und zwischen den Formen einen Abstand von jeweils 5 Pixel einhalten, indem Sie die refreshLayout()-Methode verwenden.
package { import flash.display.DisplayObject; import flash.display.Graphics; import flash.display.JointStyle; import flash.display.LineScaleMode; import flash.display.Shape; import flash.display.Sprite; public class ShapeExample extends Sprite { private var size:uint = 80; private var bgColor:uint = 0xFFCC00; private var borderColor:uint = 0x666666; private var borderSize:uint = 0; private var cornerRadius:uint = 9; private var gutter:uint = 5; public function ShapeExample() { doDrawCircle(); doDrawRoundRect(); doDrawRect(); refreshLayout(); } private function refreshLayout():void { var ln:uint = numChildren; var child:DisplayObject; var lastChild:DisplayObject = getChildAt(0); lastChild.x = gutter; lastChild.y = gutter; for (var i:uint = 1; i < ln; i++) { child = getChildAt(i); child.x = gutter + lastChild.x + lastChild.width; child.y = gutter; lastChild = child; } } private function doDrawCircle():void { var child:Shape = new Shape(); var halfSize:uint = Math.round(size/2); child.graphics.beginFill(bgColor); child.graphics.lineStyle(borderSize, borderColor); child.graphics.drawCircle(halfSize, halfSize, halfSize); child.graphics.endFill(); addChild(child); } private function doDrawRoundRect():void { var child:Shape = new Shape(); child.graphics.beginFill(bgColor); child.graphics.lineStyle(borderSize, borderColor); child.graphics.drawRoundRect(0, 0, size, size, cornerRadius); child.graphics.endFill(); addChild(child); } private function doDrawRect():void { var child:Shape = new Shape(); child.graphics.beginFill(bgColor); child.graphics.lineStyle(borderSize, borderColor); child.graphics.drawRect(0, 0, size, size); child.graphics.endFill(); addChild(child); } } }
flash.display.Graphicsflash.display.SpriteShape Erstellt ein neues Shape-Objekt. Erstellt ein neues Shape-Objekt. graphics Legt das Graphics-Objekt fest, das zu diesem Shape-Objekt gehört und für das Vektorzeichnungsbefehle zulässig sind.flash.display:GraphicsLegt das Graphics-Objekt für das Shape-Objekt fest. Legt das Graphics-Objekt fest, das zu diesem Shape-Objekt gehört und für das Vektorzeichnungsbefehle zulässig sind.
ShaderParameterType Diese Klasse definiert die Konstanten, die die möglichen Werte der type-Eigenschaft der ShaderParameter-Klasse darstellen.Object Diese Klasse definiert die Konstanten, die die möglichen Werte der type-Eigenschaft der ShaderParameter-Klasse darstellen. Jede Konstante stellt einen Datentyp dar, der in Flash Player für Parameter in der Pixel Bender-Shadersprache verfügbar ist. flash.display.ShaderParameter.typeBOOL2 Gibt an, dass der Shaderparameter als bool2-Wert definiert ist, der in ActionScript einem Array von zwei Boolean-Instanzen entspricht.bool2String Gibt an, dass der Shaderparameter als bool2-Wert definiert ist, der in ActionScript einem Array von zwei Boolean-Instanzen entspricht. BOOL3 Gibt an, dass der Shaderparameter als bool3-Wert definiert ist, der in ActionScript einem Array von drei Boolean-Instanzen entspricht.bool3String Gibt an, dass der Shaderparameter als bool3-Wert definiert ist, der in ActionScript einem Array von drei Boolean-Instanzen entspricht. BOOL4 Gibt an, dass der Shaderparameter als bool4-Wert definiert ist, der in ActionScript einem Array von vier Boolean-Instanzen entspricht.bool4String Gibt an, dass der Shaderparameter als bool4-Wert definiert ist, der in ActionScript einem Array von vier Boolean-Instanzen entspricht. BOOL Gibt an, dass der Shaderparameter als bool-Wert definiert ist, der in ActionScript einer einzelnen Boolean-Instanz entspricht.boolString Gibt an, dass der Shaderparameter als bool-Wert definiert ist, der in ActionScript einer einzelnen Boolean-Instanz entspricht.

Beachten Sie: Obwohl der Parameter nur einen einzelnen Wert erwartet, ist die ShaderParameter.value-Eigenschaft ein Array. Deshalb muss der einzelne Wert das einzige Element in dem der value-Eigenschaft zugewiesenen Array sein. Siehe folgendes Beispiel:

// assumes the shader has a parameter named "param" // whose data type is bool myShader.data.param.value = [true];
FLOAT2 Gibt an, dass der Shaderparameter als float2-Wert definiert ist, der in ActionScript einem Array von zwei Number-Instanzen entspricht.float2String Gibt an, dass der Shaderparameter als float2-Wert definiert ist, der in ActionScript einem Array von 2 Number-Instanzen entspricht. flash.display.ShaderParameter.typeFLOAT3 Gibt an, dass der Shaderparameter als float3-Wert definiert ist, der in ActionScript einem Array von drei Number-Instanzen entspricht.float3String Gibt an, dass der Shaderparameter als float3-Wert definiert ist, der in ActionScript einem Array von drei Number-Instanzen entspricht. FLOAT4 Gibt an, dass der Shaderparameter als float4-Wert definiert ist, der in ActionScript einem Array von vier Number-Instanzen entspricht.float4String Gibt an, dass der Shaderparameter als float4-Wert definiert ist, der in ActionScript einem Array von vier Number-Instanzen entspricht. FLOAT Gibt an, dass der Shaderparameter als float-Wert definiert ist, der in ActionScript einer einzelnen Number-Instanz entspricht.floatString Gibt an, dass der Shaderparameter als float-Wert definiert ist, der in ActionScript einer einzelnen Number-Instanz entspricht.

Beachten Sie: Obwohl der Parameter nur einen einzelnen Wert erwartet, ist die ShaderParameter.value-Eigenschaft ein Array. Deshalb muss der einzelne Wert das einzige Element in dem der value-Eigenschaft zugewiesenen Array sein. Siehe folgendes Beispiel:

// assumes the shader has a parameter named "param" // whose data type is float myShader.data.param.value = [22.5];
flash.display.ShaderParameter.type
INT2 Gibt an, dass der Shaderparameter als int2-Wert definiert ist, der in ActionScript einem Array von zwei int- oder uint-Instanzen entspricht.int2String Gibt an, dass der Shaderparameter als int2-Wert definiert ist, der in ActionScript einem Array von zwei int- oder uint-Instanzen entspricht. INT3 Gibt an, dass der Shaderparameter als int3-Wert definiert ist, der in ActionScript einem Array von drei int- oder uint-Instanzen entspricht.int3String Gibt an, dass der Shaderparameter als int3 -Wert definiert ist, der in ActionScript einem Array von drei int- oder uint-Instanzen entspricht. INT4 Gibt an, dass der Shaderparameter als int4-Wert definiert ist, der in ActionScript einem Array von vier int- oder uint-Instanzen entspricht.int4String Gibt an, dass der Shaderparameter als int4-Wert definiert ist, der in ActionScript einem Array von vier int- oder uint-Instanzen entspricht. INT Gibt an, dass der Shaderparameter als int-Wert definiert ist, der in ActionScript einer einzelnen int- oder uint-Instanz entspricht.intString Gibt an, dass der Shaderparameter als int-Wert definiert ist, der in ActionScript einer einzelnen int- oder uint-Instanz entspricht.

Beachten Sie: Obwohl der Parameter nur einen einzelnen Wert erwartet, ist die ShaderParameter.value-Eigenschaft ein Array. Deshalb muss der einzelne Wert das einzige Element in dem der value-Eigenschaft zugewiesenen Array sein. Siehe folgendes Beispiel:

// assumes the shader has a parameter named "param" // whose data type is int myShader.data.param.value = [275];
MATRIX2X2 Gibt an, dass der Shaderparameter als float2x2-Wert definiert ist, der einer 2x2-Matrix entspricht.matrix2x2String Gibt an, dass der Shaderparameter als float2x2-Wert definiert ist, der einer 2x2-Matrix entspricht. Diese Matrix wird in ActionScript als Array von vier Number-Instanzen dargestellt. MATRIX3X3 Gibt an, dass der Shaderparameter als float3x3-Wert definiert ist, der einer 3x3-Matrix entspricht.matrix3x3String Gibt an, dass der Shaderparameter als float3x3-Wert definiert ist, der einer 3x3-Matrix entspricht. Diese Matrix wird in ActionScript als Array von neun Number-Instanzen dargestellt. MATRIX4X4 Gibt an, dass der Shaderparameter als float4x4-Wert definiert ist, der einer 4x4-Matrix entspricht.matrix4x4String Gibt an, dass der Shaderparameter als float4x4-Wert definiert ist, der einer 4x4-Matrix entspricht. Diese Matrix wird in ActionScript als Array von 16 Number-Instanzen dargestellt.
GraphicsPathWinding Die GraphicsPathWinding-Klasse stellt Werte für die flash.display.GraphicsPath.winding-Eigenschaft und die flash.display.Graphics.drawPath()-Methode zur Ermittlung der Richtung bereit, in die ein Pfad gezeichnet werden soll.Object Die GraphicsPathWinding-Klasse stellt Werte für die flash.display.GraphicsPath.winding-Eigenschaft und die flash.display.Graphics.drawPath()-Methode zur Ermittlung der Richtung bereit, in die ein Pfad gezeichnet werden soll. Ein Pfad im Uhrzeigersinn ist positiv gewunden, ein Pfad gegen den Uhrzeigersinn ist negativ gewunden:

Wenn sich Pfade schneiden oder überlappen, bestimmt die Windungsrichtung die Regeln für das Füllen der Bereiche, die durch die Überschneidung bzw. Überlappung entstanden sind.

flash.display.GraphicsPath.windingflash.display.Graphics.drawPath()EVEN_ODD Legt den Windungstyp „Gerade-Ungerade“ fest.evenOddString Legt den Windungstyp „Gerade-Ungerade“ fest. Der Windungstyp „Gerade-Ungerade“ ist der Regelfall bei allen ursprünglichen Zeichnungs-APIs und ist der Standardwert für die flash.display.Graphics.drawPath()-Methode. Überlappende Pfade wechseln zwischen offenen und geschlossenen Füllungen. Wenn sich zwei Quadrate mit derselben Füllung überschneiden, wird der Bereich der Überschneidung nicht gefüllt. Angrenzende Bereiche sind unterschiedlich (weder beide gefüllt noch nicht gefüllt). NON_ZERO Legt den Windungstyp „Nicht null“ fest.nonZeroString Legt den Windungstyp „Nicht null“ fest. Der Windungstyp „Nicht null“ legt fest, dass, wenn sich zwei Pfade mit entgegengesetzter Windung überschneiden, der Überschneidungsbereich nicht gefüllt wird (wie beim Windungstyp „Gerade-Ungerade“. Bei Pfaden mit derselben Windung wird der Überschneidungsbereich gefüllt.
ActionScriptVersion Die ActionScriptVersion-Klasse ist eine Zusammenfassung von Konstantenwerten, die die Sprachversion einer geladenen SWF-Datei anzeigen.Object Die ActionScriptVersion-Klasse ist eine Zusammenfassung von Konstantenwerten, die die Sprachversion einer geladenen SWF-Datei anzeigen. Die verfügbaren Sprachversionkonstanten erhalten Sie, indem Sie die actionScriptVersion-Eigenschaft eines flash.display.LoaderInfo-Objekts prüfen. flash.display.LoaderInfo.actionScriptVersionACTIONSCRIPT2 ActionScript-Sprachversion 2.0 und frühere Versionen.2uint ActionScript-Sprachversion 2.0 und frühere Versionen. ACTIONSCRIPT3 ActionScript-Sprachversion 3.0.3uint ActionScript-Sprachversion 3.0. GraphicsPath Eine Sammlung von Befehlen für das Zeichnen und die Koordinatenparameter für diese Befehle.flash.display:IGraphicsPathflash.display:IGraphicsDataObject Eine Sammlung von Befehlen für das Zeichnen und die Koordinatenparameter für diese Befehle.

Verwenden Sie ein GraphicsPath-Objekt mit der Graphics.drawGraphicsData()-Methode. Das Zeichnen eines GraphicsPath-Objekts entspricht dem Aufrufen der Graphics.drawPath()-Methode.

Die GraphicsPath-Klasse verfügt über einen eigenen Satz an Methoden (curveTo(), lineTo(), moveTo(), wideLineTo() und wideMoveTo()), die ähnlich sind wie die Methoden der Graphics-Klasse zum Anpassen der GraphicsPath.commands- und GraphicsPath.data-Vektorarrays.

flash.display.Graphics.drawGraphicsData()flash.display.Graphics.drawPath()GraphicsPath Erstellt ein neues GraphicsPath-Objekt.commandsnullEin Ganzzahlvektor, der Befehle darstellt, die in der GraphicsPathCommand-Klasse definiert sind. datanullEin Zahlenvektor, bei dem jedes Zahlenpaar als Punkt behandelt wird (ein Paar bestehend aus x und y). windingStringevenOddLegt die Windungsregel mithilfe eines in der GraphicsPathWinding-Klasse definierten Werts fest. Erstellt ein neues GraphicsPath-Objekt. flash.display.GraphicsPathCommandflash.display.GraphicsPathWindingcurveTo Fügt dem commands-Vektor einen neuen curveTo-Befehl und dem data-Vektor neue Koordinaten hinzu.controlXNumberEine Zahl, die eine horizontale Position relativ zum Registrierungspunkt des übergeordneten Anzeigeobjekts angibt. controlYNumberEine Zahl, die eine vertikale Position relativ zum Registrierungspunkt des übergeordneten Anzeigeobjekts angibt. anchorXNumberEine Zahl, die eine horizontale Position des nächsten Ankerpunkts relativ zum Registrierungspunkt des übergeordneten Anzeigeobjekts angibt. anchorYNumberEine Zahl, die eine vertikale Position des nächsten Ankerpunkts relativ zum Registrierungspunkt des übergeordneten Anzeigeobjekts angibt. Fügt dem commands-Vektor einen neuen curveTo-Befehl und dem data-Vektor neue Koordinaten hinzu. flash.display.GraphicsPathCommand.CURVE_TOflash.display.Graphics.curveTo()lineTo Fügt dem commands-Vektor einen neuen lineTo-Befehl und dem data-Vektor neue Koordinaten hinzu.xNumberDie x-Koordinate des Zielpunkts der Linie. yNumberDie y-Koordinate des Zielpunkts der Linie. Fügt dem commands-Vektor einen neuen lineTo-Befehl und dem data-Vektor neue Koordinaten hinzu. flash.display.GraphicsPathCommand.LINE_TOflash.display.Graphics.lineTo()moveTo Fügt dem commands-Vektor einen neuen moveTo-Befehl und dem data-Vektor neue Koordinaten hinzu.xNumberDie x-Koordinate des Zielpunkts. yNumberDie y-Koordinate des Zielpunkts. Fügt dem commands-Vektor einen neuen moveTo-Befehl und dem data-Vektor neue Koordinaten hinzu. flash.display.GraphicsPathCommand.MOVE_TOflash.display.Graphics.moveTo()wideLineTo Fügt dem commands-Vektor einen neuen wideLineTo-Befehl und dem data-Vektor neue Koordinaten hinzu.xNumberDie x-Koordinate des Zielpunkts der Linie. yNumberDie y-Koordinate des Zielpunkts der Linie. Fügt dem commands-Vektor einen neuen wideLineTo-Befehl und dem data-Vektor neue Koordinaten hinzu. flash.display.GraphicsPathCommand.WIDE_LINE_TOwideMoveTo Fügt dem commands-Vektor einen neuen wideMoveTo-Befehl und dem data-Vektor neue Koordinaten hinzu.xNumberDie x-Koordinate des Zielpunkts. yNumberDie y-Koordinate des Zielpunkts. Fügt dem commands-Vektor einen neuen wideMoveTo-Befehl und dem data-Vektor neue Koordinaten hinzu. flash.display.GraphicsPathCommand.WIDE_MOVE_TOcommands Ein Ganzzahlvektor von Zeichenbefehlen, die den Pfad darstellen. Ein Ganzzahlvektor von Zeichenbefehlen, die den Pfad darstellen. Jeder Befehl kann einen der in der GraphicsPathCommand-Klasse definierten Werte haben. flash.display.GraphicsPathCommanddata Ein Zahlenvektor mit den Parametern, die für die Zeichenbefehle verwendet werden. Ein Zahlenvektor mit den Parametern, die für die Zeichenbefehle verwendet werden. winding Legt die Windungsregel mithilfe eines in der GraphicsPathWinding-Klasse definierten Werts fest.String Legt die Windungsregel mithilfe eines in der GraphicsPathWinding-Klasse definierten Werts fest. flash.display.GraphicsPathWinding
MorphShape Die Klasse „MorphShape“ steht für MorphShape-Objekte in der Anzeigeliste.flash.display:DisplayObject Die Klasse „MorphShape“ steht für MorphShape-Objekte in der Anzeigeliste. MorphShape-Objekte lassen sich nicht direkt in ActionScript erstellen. Sie werden angelegt, wenn Sie in der Flash-Authoring-Umgebung einen Form-Tween erstellen. PixelSnapping Die PixelSnapping-Klasse ist eine Zusammenfassung von Konstantenwerten für die Ausrichtung an Pixeln mithilfe der pixelSnapping-Eigenschaft eines Bitmap-Objekts.Object Die PixelSnapping-Klasse ist eine Zusammenfassung von Konstantenwerten für die Ausrichtung an Pixeln mithilfe der pixelSnapping-Eigenschaft eines Bitmap-Objekts. flash.display.Bitmap.pixelSnappingALWAYS Ein in der pixelSnapping-Eigenschaft verwendeter Konstantenwert für ein Bitmap-Objekt. Mit diesem Wert wird festgelegt, dass die Bitmap immer am nächsten Pixel ausgerichtet wird, und zwar unabhängig von etwaigen Transformationen.alwaysString Ein in der Eigenschaft pixelSnapping verwendeter Konstantenwert für ein Bitmap-Objekt. Mit diesem Wert wird festgelegt, dass die Bitmap immer am nächsten Pixel ausgerichtet wird, und zwar unabhängig von etwaigen Transformationen. AUTO Ein in der pixelSnapping-Eigenschaft verwendeter Konstantenwert für ein Bitmap-Objekt. Mit diesem Wert wird festgelegt, dass die Bitmap am nächsten Pixel ausgerichtet wird, wenn es ohne Drehung oder Neigung und mit einem Skalierungsfaktor zwischen 99,9 % und 100,1 % gezeichnet wird.autoString Ein in der pixelSnapping-Eigenschaft verwendeter Konstantenwert für ein Bitmap-Objekt. Mit diesem Wert wird festgelegt, dass die Bitmap am nächsten Pixel ausgerichtet wird, wenn es ohne Drehung oder Neigung und mit einem Skalierungsfaktor zwischen 99,9 % und 100,1 % gezeichnet wird. Sind diese Bedingungen erfüllt, wird das Bild bei 100 %-iger Skalierung gezeichnet und am nächstgelegenen Pixel ausgerichtet. Intern ermöglicht es diese Einstellung, dass das Bild so schnell wie möglich gezeichnet wird, indem der Vektorrenderer verwendet wird. NEVER Ein in der pixelSnapping-Eigenschaft verwendeter Konstantenwert für ein Bitmap-Objekt. Mit diesem Wert wird festgelegt, dass keine Ausrichtung an Pixeln erfolgt.neverString Ein in der pixelSnapping-Eigenschaft verwendeter Konstantenwert für ein Bitmap-Objekt. Mit diesem Wert wird festgelegt, dass keine Ausrichtung an Pixeln erfolgt. GraphicsPathCommand Definiert die Werte, die Zeichenbefehle für Pfade festlegen.Object Definiert die Werte, die Zeichenbefehle für Pfade festlegen.

Die Werte in dieser Klasse werden von der Graphics.drawPath()Methode verwendet oder im commands-Vektor eines GraphicsPath-Objekts gespeichert.

flash.display.Graphics.drawPath()flash.display.GraphicsPath.commandsCURVE_TO Legt einen Zeichenbefehl fest, der mithilfe eines Steuerpunkts eine Kurve von der aktuellen Zeichenposition zu den im Datenvektor festgelegten x- und y-Koordinaten zeichnet.3int Legt einen Zeichenbefehl fest, der mithilfe eines Steuerpunkts eine Kurve von der aktuellen Zeichenposition zu den im Datenvektor festgelegten x- und y-Koordinaten zeichnet. Dieser Befehl hat denselben Effekt wie die GraphicslineTo()-Methode und verwendet zwei Punkte im data-Vektor-Steuerelement und -Anker: (cx, cy, ax, ay). flash.display.Graphics.curveTo()LINE_TO Legt einen Zeichenbefehl fest, der eine Linie von der aktuellen Zeichenposition zu den im Datenvektor festgelegten x- und y-Koordinaten zeichnet.2int Legt einen Zeichenbefehl fest, der eine Linie von der aktuellen Zeichenposition zu den im Datenvektor festgelegten x- und y-Koordinaten zeichnet. Dieser Befehl hat denselben Effekt wie die Graphics.lineTo()-Methode und verwendet einen Punkt im data-Vektor: (x,y). flash.display.Graphics.lineTo()MOVE_TO Legt einen Zeichenbefehl fest, der die aktuelle Zeichenposition auf die im Datenvektor festgelegten x- und y-Koordinaten verschiebt.1int Legt einen Zeichenbefehl fest, der die aktuelle Zeichenposition auf die im Datenvektor festgelegten x- und y-Koordinaten verschiebt. Dieser Befehl hat denselben Effekt wie die Graphics.moveTo()-Methode und verwendet einen Punkt im data-Vektor: (x,y). flash.display.Graphics.moveTo()NO_OP Stellt den standardmäßigen „do nothing“-Befehl dar.0int Stellt den standardmäßigen „do nothing“-Befehl dar. WIDE_LINE_TO Legt einen „line to“-Zeichenbefehl fest, verwendet aber zwei Koordinatensätze (vier Werte) statt einem.5int Legt einen „line to“-Zeichenbefehl fest, verwendet aber zwei Koordinatensätze (vier Werte) statt einem. Mit diesem Befehl können Sie zwischen „line to“- und „curve to“-Befehlen umschalten, ohne die Anzahl der pro Befehl verwendeten Datenwerte zu ändern. Dieser Befehl verwendet im Datenvektor zwei Sätze: eine Dummy-Position und eine (x, y)-Position.

Die Befehlsvarianten WIDE_LINE_TO und WIDE_MOVE_TO verwenden dieselbe Parameterzahl wie der CURVE_TO-Befehl.

LINE_TOflash.display.Graphics.lineTo()
WIDE_MOVE_TO Legt einen „move to“-Zeichenbefehl fest, verwendet aber zwei Koordinatensätze (vier Werte) statt einem.4int Legt einen „move to“-Zeichenbefehl fest, verwendet aber zwei Koordinatensätze (vier Werte) statt einem. Mit diesem Befehl können Sie zwischen „move to“- und „curve to“-Befehlen umschalten, ohne die Anzahl der pro Befehl verwendeten Datenwerte zu ändern. Dieser Befehl verwendet im Datenvektor zwei Sätze: eine Dummy-Position und eine (x, y)-Position.

Die Befehlsvarianten WIDE_LINE_TO und WIDE_MOVE_TO verwenden dieselbe Parameterzahl wie der CURVE_TO-Befehl.

MOVE_TOflash.display.Graphics.moveTo()