Pakiet | flash.display |
Klasa | public class DisplayObject |
Dziedziczenie | DisplayObject EventDispatcher Object |
Implementuje | IBitmapDrawable |
Podklasy | AVM1Movie, Bitmap, InteractiveObject, MorphShape, Shape, StaticText, Video |
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Klasa DisplayObject obsługuje podstawową funkcjonalność jak na przykład położenie x i y obiektu, ale również bardziej zaawansowane właściwości obiektu, jak chociażby matrycę transformacyjną.
Klasa DisplayObject jest klasą abstrakcyjną, dlatego nie jest możliwe jej bezpośrednie wywołanie. Wywoływanie metody new DisplayObject()
powoduje zgłoszenie wyjątku ArgumentError
.
Wszystkie obiekty wyświetlane dziedziczą z klasy DisplayObject.
Klasa DisplayObject nie zawiera żadnych API do renderowania zawartości na ekranie. Z tego powodu, jeżeli pożądane jest stworzenie własnej podklasy z klasy DisplayObject doradza się rozszerzenie jednej z podklas, która posiada API do renderowania zawartości na ekranie, jak na przykład klasy Shape, Sprite, Bitmap, SimpleButton, TextField lub MovieClip.
Klasa DisplayObject zawiera kilka zdarzeń broadcast. Zwykle obiektem docelowym określonego zdarzenia jest konkretna instancja DisplayObject. Na przykład: obiekt docelowy zdarzenia added
jest określoną instancją DisplayObject, która została dodana do listy wyświetlania. Korzystanie z pojedynczego obiektu docelowego uniemożliwia umieszczanie wielu detektorów zdarzeń w tym obiekcie docelowym, a w niektórych przypadkach w przodkach tego obiektu na liście wyświetlania. W przypadku zdarzeń broadcast obiekt docelowy nie jest określoną instancją DisplayObject — stanowi raczej wszystkie instancje DisplayObject, łącznie z tymi, które nie znajdują się na liście wyświetlania. Oznacza to, że można dodać detektor do dowolnej instancji DisplayObject w celu wykrywania zdarzeń broadcast. Oprócz zdarzeń broadcast (wymienionych w tabeli zdarzeń klasy DisplayObject) klasa DisplayObject dziedziczy również dwa zdarzenia broadcast z klasy EventDispatcher: activate
i deactivate
.
Niektóre właściwości wcześniej użyte w klasach ActionScript 1.0 i 2.0 MovieClip, TextField oraz Button (jak na przykład _alpha
, _height
, _name
, _width
, _x
, _y
i inne) posiadają odpowiedniki klasach Display Object ActionScript 3.0, których nazwy zostały zmienione tak aby nie rozpoczynały się od podkreślnika.
Więcej informacji na ten temat zawiera rozdział dotyczący programowania wyświetlania w publikacji ActionScript 3.0 — Podręcznik dla programistów.
Powiązane elementy interfejsu API
Właściwość | Zdefiniowane przez | ||
---|---|---|---|
accessibilityProperties : AccessibilityProperties
Bieżące opcje dostępności tego obiektu wyświetlanego. | DisplayObject | ||
alpha : Number
Wartość przezroczystości alfa określonego obiektu. | DisplayObject | ||
blendMode : String
Wartość z klasy BlendMode określająca, jakiego trybu mieszania należy użyć. | DisplayObject | ||
blendShader : Shader [tylko do zapisu]
Ustawia moduł cieniujący, który jest używany do mieszania pierwszego planu oraz tła. | DisplayObject | ||
cacheAsBitmap : Boolean
Jeśli ustawiono wartość true, środowisko wykonawcze Flash buforuje wewnętrzną reprezentację bitmapy obiektu wyświetlanego. | DisplayObject | ||
cacheAsBitmapMatrix : Matrix
W przypadku wartości innej niż null ten obiekt Matrix definiuje sposób renderowania obiektu wyświetlanego, gdy cacheAsBitmap jest ustawione na true. | DisplayObject | ||
constructor : Object
Odwołanie do obiektu klasy lub funkcji konstruktora, dotyczące danej instancji obiektu. | Object | ||
filters : Array
Indeksowana tablica zawierająca wszystkie filtry aktualnie skojarzone z obiektem wyświetlanym. | DisplayObject | ||
height : Number
Wysokość obiektu ekranowego w pikselach. | DisplayObject | ||
loaderInfo : LoaderInfo [tylko do odczytu]
Zwraca obiekt LoaderInfo zawierający informacje o ładowaniu pliku, do którego należy ten obiekt wyświetlany. | DisplayObject | ||
mask : DisplayObject
Wywoływany obiekt wyświetlany jest maskowany przez określony obiekt maski. | DisplayObject | ||
metaData : Object
Pobiera obiekt metadanych wystąpienia klasy DisplayObject, jeśli metadane są przechowywane razem z tym wystąpieniem klasy DisplayObject w pliku SWF, korzystając ze znacznika PlaceObject4. | DisplayObject | ||
mouseX : Number [tylko do odczytu]
Określa współrzędną x myszy lub urządzenia wejściowego użytkownika w pikselach. | DisplayObject | ||
mouseY : Number [tylko do odczytu]
Określa współrzędną y myszy lub urządzenia wejściowego użytkownika w pikselach. | DisplayObject | ||
name : String
Nazwa instancji obiektu DisplayObject. | DisplayObject | ||
opaqueBackground : Object
Określa, czy przy konkretnym kolorze tła obiekt wyświetlany jest nieprzejrzysty. | DisplayObject | ||
parent : DisplayObjectContainer [tylko do odczytu]
Odnosi się do obiektu DisplayObjectContainer, który zawiera obiekt wyświetlany. | DisplayObject | ||
root : DisplayObject [tylko do odczytu]
Dla obiektu wyświetlanego w załadowanym pliku SWF główną właściwość stanowi obiekt wyświetlany na samym szczycie na liście wyświetlania w postaci struktury drzewa, którą reprezentuje plik SWF. | DisplayObject | ||
rotation : Number
Określa wielkość obrotu instancji obiektu DisplayObject (w kątach). | DisplayObject | ||
rotationX : Number
Wskazuje kąt obrotu (w stopniach) instancji DisplayObject wokół osi x — od pozycji początkowej względem nadrzędnego kontenera 3D. | DisplayObject | ||
rotationY : Number
Wskazuje kąt obrotu (w stopniach) instancji DisplayObject wokół osi y — od pozycji początkowej względem nadrzędnego kontenera 3D. | DisplayObject | ||
rotationZ : Number
Wskazuje kąt obrotu (w stopniach) instancji DisplayObject wokół osi z — od pozycji początkowej względem nadrzędnego kontenera 3D. | DisplayObject | ||
scale9Grid : Rectangle
Aktualnie stosowana siatka skalowania. | DisplayObject | ||
scaleX : Number
Wskazuje skalę poziomą (procent) obiektu względem punktu odniesienia. | DisplayObject | ||
scaleY : Number
Wskazuje skalę pionową (procent) obiektu względem punktu odniesienia. | DisplayObject | ||
scaleZ : Number
Wskazuje skalę głębokości (procent) obiektu względem punktu odniesienia. | DisplayObject | ||
scrollRect : Rectangle
Granice obszaru przewijania obiektu wyświetlanego. | DisplayObject | ||
stage : Stage [tylko do odczytu]
Stół montażowy obiektu wyświetlanego. | DisplayObject | ||
transform : flash.geom:Transform
Obiekt z właściwościami dotyczącymi matrycy obiektu wyświetlanego, transformacji kolorów oraz granic pikseli. | DisplayObject | ||
visible : Boolean
Decyduje, czy obiekt wyświetlany jest widoczny, czy nie. | DisplayObject | ||
width : Number
Szerokość obiektu ekranowego w pikselach. | DisplayObject | ||
x : Number
Oznacza współrzędną x instancji obiektu DisplayObject w lokalnym układzie współrzędnych nadrzędnego obiektu DisplayObjectContainer. | DisplayObject | ||
y : Number
Oznacza współrzędną y instancji obiektu DisplayObject w lokalnym układzie współrzędnych nadrzędnego obiektu DisplayObjectContainer. | DisplayObject | ||
z : Number
Wskazuje współrzędną wzdłuż osi Z instancji DisplayObject względem nadrzędnego kontenera 3D. | DisplayObject |
Metoda | Zdefiniowane przez | ||
---|---|---|---|
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Rejestruje obiekt detektora zdarzeń w obiekcie EventDispatcher, dzięki czemu detektor będzie otrzymywał powiadomienia o zdarzeniu. | EventDispatcher | ||
Wywołuje zdarzenie, tj. kieruje je do przepływu zdarzeń. | EventDispatcher | ||
Zwraca prostokąt definiujący obszar obiektu wyświetlanego (w układzie współrzędnych obiektu targetCoordinateSpace). | DisplayObject | ||
Zwraca prostokąt definiujący granice obiektu wyświetlanego w układzie współrzędnych określonych przez parametr targetCoordinateSpace (z wyłączeniem konturów kształtów). | DisplayObject | ||
Konwertuje obiekt punktowy ze współrzędnych obiektu Stage (globalne) do współrzędnych obiektu wyświetlanego (lokalne). | DisplayObject | ||
Konwertuje punkt dwuwymiarowy ze współrzędnych stołu wymiarowego (globalnych) na współrzędne trójwymiarowego obiektu wyświetlanego (lokalne). | DisplayObject | ||
Sprawdza, czy obiekt EventDispatcher zawiera jakiekolwiek detektory zarejestrowane dla konkretnego typu zdarzeń. | EventDispatcher | ||
Wskazuje, czy dla obiektu zdefiniowano określoną właściwość. | Object | ||
Wyznacza prostokąt ograniczający obiekt wyświetlany w celu sprawdzenia, czy zachodzi on lub przecina się z prostokątem ograniczającym obiektu wyświetlanego obj. | DisplayObject | ||
Analizuje obiekt wyświetlany w celu ustalenia czy nakłada się on lub przecina punkt określony przez parametry x i y. | DisplayObject | ||
Wskazuje, czy instancja klasy Object należy do łańcucha prototypów obiektu określonego jako parametr. | Object | ||
Konwertuje punkt trójwymiarowy trójwymiarowego obiektu wyświetlanego (lokalnego) na punkt dwuwymiarowy we współrzędnych stołu montażowego (globalnych). | DisplayObject | ||
Konwertuje obiekt punktowy ze współrzędnych obiektu wyświetlanego (lokalne) do współrzędnych obiektu Stage (globalne). | DisplayObject | ||
Wskazuje, czy określona właściwość istnieje i jest przeliczalna. | Object | ||
Usuwa detektor z obiektu EventDispatcher. | EventDispatcher | ||
Ustawia dostępność właściwości dynamicznej używanej w pętlach. | Object | ||
Zwraca ciąg reprezentujący obiekt — sformatowany zgodnie z konwencjami właściwymi dla ustawień regionalnych. | Object | ||
Zwraca ciąg reprezentujący określony obiekt. | Object | ||
Zwraca pierwotną wartość dla określonego obiektu. | Object | ||
Sprawdza, czy detektor zdarzeń określonego typu jest zarejestrowany w tym obiekcie EventDispatcher lub jego elementach macierzystych. | EventDispatcher |
Zdarzenie | Podsumowanie | Zdefiniowane przez | ||
---|---|---|---|---|
[zdarzenie broadcast] Wywoływane, gdy program Flash Player lub aplikacja środowiska wykonawczego AIR uzyskuje fokus w systemie operacyjnym i przechodzi w stan aktywny. | EventDispatcher | |||
Wywoływane, gdy obiekt wyświetlany jest dodawany do listy wyświetlania. | DisplayObject | |||
Wywoływane, gdy obiekt wyświetlany jest dodawany do listy wyświetlania na scenie — albo bezpośrednio, albo wskutek dodania poddrzewa zawierającego obiekt wyświetlany. | DisplayObject | |||
[zdarzenie broadcast] Wywoływane, gdy program Flash Player lub aplikacja AIR traci fokus w systemie operacyjnym i przechodzi w stan nieaktywny. | EventDispatcher | |||
[zdarzenie broadcast] Wywoływane, gdy głowica odtwarzania przechodzi do nowej klatki. | DisplayObject | |||
[zdarzenie broadcast] Wywoływane, gdy głowica odtwarzania kończy odtwarzanie bieżącej klatki. | DisplayObject | |||
[zdarzenie broadcast] Wywoływane po zadziałaniu konstruktorów obiektów wyświetlanych klatek, ale przed działaniem skryptów klatek. | DisplayObject | |||
Dysponowana, gdy obiekt ekranowy ma być usunięty z listy wyświetlania. | DisplayObject | |||
Dysponowana, gdy obiekt ekranowy ma być usunięty z listy wyświetlania na scenie — albo bezpośrednio, albo wskutek usunięcia poddrzewa zawierającego obiekt ekranowy. | DisplayObject | |||
[zdarzenie broadcast] Wywoływane, gdy lista wyświetlania ma być aktualizowana lub renderowana. | DisplayObject |
accessibilityProperties | właściwość |
accessibilityProperties:AccessibilityProperties
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9 |
Bieżące opcje dostępności tego obiektu ekranowego. W przypadku modyfikacji właściwości accessibilityProperties
lub jakichkolwiek pól wewnątrz właściwości accessibilityProperties
konieczne jest wywołanie metody Accessibility.updateProperties()
aby zmiany odniosły efekt.
Uwaga: Dla obiektu stworzonego w środowisku Flash wartość właściwości accessibilityProperties
jest wstępnie zapełniana informacjami wprowadzonymi w panelu Dostępności dla tego obiektu.
Implementacja
public function get accessibilityProperties():AccessibilityProperties
public function set accessibilityProperties(value:AccessibilityProperties):void
Powiązane elementy interfejsu API
Przykład ( Sposób korzystania z tego przykładu )
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
alpha | właściwość |
alpha:Number
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Wartość przezroczystości alfa określonego obiektu. Wartości poprawne mają zakres od 0 (zupełnie przezroczyste) do 1 (zupełnie nieprzezroczyste). Wartością domyślną jest 1. Obiekty wyświetlane z właściwością alpha
ustawioną na 0są aktywne, mimo iż są niewidoczne.
Implementacja
public function get alpha():Number
public function set alpha(value:Number):void
Przykład ( Sposób korzystania z tego przykładu )
alpha
ikonki na 50% gdy kursor myszy znajduje się nad ikonką:
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 | właściwość |
blendMode:String
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9 |
Wartość z klasy BlendMode określająca, jakiego trybu mieszania należy użyć. Bitmapa może być wewnętrznie rysowana na dwa sposoby. Przy włączonym trybie mieszania lub zewnętrznej masce przycinania bitmapa jest rysowana poprzez dodawanie kwadratowej figury wypełnionej bitmapą do wektora renderowania. Przy próbie ustawienia niepoprawnej wartości dla tej właściwości środowisko wykonawcze Flash ustawi wartość BlendMode.NORMAL
.
Właściwość blendMode
wpływa na wszystkie piksele obiektu wyświetlanego. Każdy piksel jest złożony z trzech kolorów składowych (czerwony, zielony i niebieski), a każdy z nich ma wartość z zakresu od 0x00 do 0xFF. Program Flash Player lub środowisko AIR porównuje każdy kolor składowy jednego piksela w klipie filmowym z odpowiadającym mu kolorem piksela tła. Na przykład, jeżeli dla właściwości blendMode
ustawiono wartość BlendMode.LIGHTEN
, wówczas program Flash Player lub środowisko AIR porównuje wartość koloru czerwonego obiektu wyświetlanego z wartością koloru czerwonego tła, a następnie wykorzystuje wartość koloru jaśniejszego jako wartość czerwonego składnika wyświetlanego koloru.
Poniższa tablica opisuje ustawienia właściwości blendMode
. Klasa BlendMode definiuje wartości ciągów znaków możliwych do wykorzystania. Ilustracje w tabeli ukazują wartości właściwości blendMode
zastosowane do okrągłego obiektu wyświetlanego (2) nałożonego na inny obiekt wyświetlany (1).
Stała BlendMode | Ilustracja | Opis |
---|---|---|
BlendMode.NORMAL | Obiekt ekranowy pojawia się przed tłem. Wartości pikseli obiektu wyświetlanego nadpisują wartości tła. W miejscu, gdzie obiekt ekranowy jest przezroczysty, widoczne jest tło. | |
BlendMode.LAYER | Wymusza utworzenie grupy przezroczystości obiektu ekranowego. Oznacza to, iż obiekt wyświetlany jest wstępnie składany w tymczasowym buforze przed dalszym przetwarzaniem. Jest to wykonywane automatycznie, jeżeli obiekt wyświetlany jest wstępnie buforowany z zastosowaniem buforowania bitmapowego lub jeśli jest to kontener obiektów wyświetlanych z co najmniej jednym obiektem podrzędnym z ustawieniem właściwości blendMode innym niż BlendMode.NORMAL . To działanie nie jest obsługiwane w przypadku renderowania przy użyciu GPU.
| |
BlendMode.MULTIPLY | Przemnaża wartości kolorów składowych obiektów wyświetlanych przez wartości kolorów tła, a następnie normalizuje je, dzieląc przez 0xFF, czego wynikiem są ciemniejsze kolory. Ustawienie to jest typowo stosowane dla cieni i efektów głębi.
Na przykład jeżeli kolor składowy (na przykład czerwony) jednego piksela obiektu wyświetlanego i odpowiadający kolor piksela tła mają tą samą wartość 0x88, wówczas przemnożony wynik wynosi 0x4840. Dzielenie przez 0xFF daje wartość 0x48 koloru składowego, który jest ciemniejszy od koloru obiektu wyświetlanego i tła. | |
BlendMode.SCREEN | Mnoży dopełnienie (odwrotność) koloru wyświetlanego obiektu przez dopełnienie koloru tła, co daje efekt rozjaśnienia. Ustawienie to jest typowo stosowane do podświetlania lub usuwania czarnych obszarów obiektu wyświetlanego. | |
BlendMode.LIGHTEN | Wybiera barwę jaśniejszą kolorów składowych obiektu wyświetlanego oraz koloru tła (kolory o większych wartościach). Ustawienie to jest często stosowane dla typu superimposing.
Jeśli na przykład obiekt wyświetlany ma piksel o wartości RGB 0xFFCC33, natomiast tło piksela o wartości RGB 0xDDF800, to wynikowa wartość wyświetlanego piksela wynosi 0xFFF833 (ponieważ 0xFF > 0xDD, 0xCC < 0xF8 oraz 0x33 > 0x00 = 33). To działanie nie jest obsługiwane w przypadku renderowania przy użyciu GPU. | |
BlendMode.DARKEN | Wybiera ciemniejsze spośród kolorów składowych obiektu wyświetlanego oraz tła (kolory o niższych wartościach). Ustawienie to jest często stosowane dla typu superimposing.
Jeśli na przykład obiekt wyświetlany ma piksel o wartości RGB 0xFFCC33, natomiast tło piksela o wartości RGB 0xDDF800, to wynikowa wartość wyświetlanego piksela wynosi 0xDDCC00 (ponieważ 0xFF > 0xDD, 0xCC < 0xF8 oraz 0x33 > 0x00 = 33). To działanie nie jest obsługiwane w przypadku renderowania przy użyciu GPU. | |
BlendMode.DIFFERENCE | Porównuje kolory składowe obiektu wyświetlanego z kolorami tła. Wartość ciemniejszego z dwóch odpowiadających sobie kolorów składowych jest odejmowana od wartości koloru jaśniejszego. Ustawienie to jest typowo stosowane w przypadku bardziej migoczącej barwy.
Na przykład jeśli obiekt wyświetlany ma piksel o wartości RGB 0xFFCC33, natomiast tło piksela o wartości RGB 0xDDF800, wówczas wynikowa wartość wyświetlanego piksela wynosi 0x222C33 (ponieważ 0xFF - 0xDD = 0x22, 0xF8 - 0xCC = 0x2C oraz 0x33 - 0x00 = 0x33). | |
BlendMode.ADD | Dodaje wartości kolorów składowych obiektu wyświetlanego do wartości kolorów tła (jest stosowane zaokrąglenie do wartości 0xFF). Ustawienie to jest szczególnie często używane do animowania rozpraszania światła między dwoma obiektami.
Na przykład jeśli obiekt wyświetlany ma piksel o wartości RGB 0xAAA633, natomiast tło piksela o wartości RGB 0xDD2200, wówczas wynikowa wartość wyświetlanego piksela wynosi 0xFFC833 (ponieważ 0xAA + 0xDD > 0xFF, 0xA6 + 0x22 = 0xC8 oraz 0x33 + 0x00 = 0x33). | |
BlendMode.SUBTRACT | Odejmuje wartości kolorów składowych obiektu wyświetlanego od wartości kolorów tła, stosując zaokrąglenie wartości do 0. Ustawienie to jest typowo stosowane do animacji rozpraszania cieni między dwoma obiektami.
Na przykład jeśli obiekt wyświetlany ma piksel o wartości RGB 0xAA2233, natomiast tło piksela o wartości RGB 0xDDA600, wówczas wynikowa wartość wyświetlanego piksela wynosi 0x338400 (ponieważ 0xDD - 0xAA = 0x33, 0xA6 - 0x22 = 0x84 oraz 0x00 - 0x33 < 0x00). | |
BlendMode.INVERT | Odwraca kolory tła. | |
BlendMode.ALPHA | Stosuje wartość alfa poszczególnych pikseli obiektu ekranowego do tła. W tym przypadku konieczne jest ustawienie właściwości blendMode nadrzędnego obiektu wyświetlanego na wartość BlendMode.LAYER . Na ilustracji przedstawiono przykładowy nadrzędny obiekt wyświetlany, którym jest białe tło. Ma on właściwość blendMode = BlendMode.LAYER . To działanie nie jest obsługiwane w przypadku renderowania przy użyciu GPU. | |
BlendMode.ERASE | Wymazuje tło na podstawie wartości alfa obiektu ekranowego. W tym przypadku konieczne jest ustawienie właściwości blendMode nadrzędnego obiektu wyświetlanego na wartość BlendMode.LAYER . Na ilustracji przedstawiono przykładowy nadrzędny obiekt wyświetlany, którym jest białe tło. Ma on właściwość blendMode = BlendMode.LAYER . To działanie nie jest obsługiwane w przypadku renderowania przy użyciu GPU. | |
BlendMode.OVERLAY | Dopasowuje kolory poszczególnych pikseli na podstawie jasności tła. Jeżeli tło ma barwę jaśniejszą niż 50% szarości, wówczas kolory obiektu wyświetlanego i tła są regulowane rastrem, co daje w efekcie rozjaśnienie koloru. Jeżeli tło ma barwę ciemniejszą niż 50% szarości, wówczas wartości kolorów są mnożone, co daje kolor ciemniejszy. Ustawienie to jest często stosowane do efektów cieniowania. To działanie nie jest obsługiwane w przypadku renderowania przy użyciu GPU. | |
BlendMode.HARDLIGHT | Dopasowuje kolory poszczególnych pikseli na podstawie jasności obiektu wyświetlanego. Jeżeli obiekt wyświetlany ma barwę jaśniejszą niż 50% szarości, wówczas kolory obiektu wyświetlanego i tła są regulowane rastrem, co daje w efekcie rozjaśnienie koloru. Jeżeli obiekt wyświetlany jest ciemniejszy niż 50% szarości, wówczas kolory obiektu wyświetlanego są regulowane rastrem, co daje w efekcie przyciemnienie koloru. Ustawienie to jest często stosowane do efektów cieniowania. To działanie nie jest obsługiwane w przypadku renderowania przy użyciu GPU. | |
BlendMode.SHADER | N/D | Dostosowuje kolor przy użyciu niestandardowej operacji modułu cieniującego. Stosowany moduł cieniujący jest określony jako instancja modułu cieniującego przypisana do właściwości blendShader . Ustawienie właściwości blendShader obiektu wyświetlanego dla instancji modułu cieniującego powoduje automatyczne ustawienie właściwości blendMode obiektu wyświetlanego na wartość BlendMode.SHADER . Jeśli dla właściwości blendMode ustawiono wartość BlendMode.SHADER bez wcześniejszego ustawienia właściwości blendShader , to dla właściwości blendMode zostanie ustawiona wartość BlendMode.NORMAL . To działanie nie jest obsługiwane w przypadku renderowania przy użyciu GPU. |
Implementacja
public function get blendMode():String
public function set blendMode(value:String):void
Powiązane elementy interfejsu API
Przykład ( Sposób korzystania z tego przykładu )
BlendMode.SUBTRACT
w momencie przesunięcia wskaźnika myszy nad okrąg:
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; }
blendShader | właściwość |
blendShader:Shader
[tylko do zapisu] Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | Flash Player 10, AIR 1.5 |
Ustawia moduł cieniujący, który jest używany do mieszania pierwszego planu oraz tła. Jeśli dla właściwości blendMode
ustawiono wartość BlendMode.SHADER
, określony moduł cieniujący jest wykorzystywany do utworzenia wyniku działania trybu mieszania dla obiektu wyświetlanego.
Ustawienie właściwości blendShader
obiektu ekranowego dla wystąpienia klasy Shader powoduje automatyczne ustawienie właściwości blendMode
obiektu ekranowego na wartość BlendMode.SHADER
. Jeśli ustawiona jest właściwość blendShader
(która ustawia BlendMode.SHADER
dla właściwości blendMode
), wówczas wartość właściwości blendMode
zostanie zmieniona; tryb mieszania można zresetować, aby korzystać z modułu cieniującego mieszania poprzez ustawienie wartości BlendMode.SHADER
dla właściwości blendMode
. Właściwość blendShader
nie musi być ustawiana ponownie z wyjątkiem konieczności zmiany modułu cieniującego, jaki jest używany dla trybu mieszania.
moduł cieniujący przypisany do właściwości blendShader
musi określać co najmniej dwa obiekty wejściowe image4
. Obiekty wejściowe nie muszą być określane w kodzie za pomocą właściwości input
skojarzonych obiektów ShaderInput. Obiekt wyświetlany w tle jest automatycznie używany jako pierwszy obiekt wejściowy (obiekt wejściowy z wartością index
0). Obiekt wyświetlany na pierwszym planie jest używany jako drugi obiekt wejściowy (obiekt z wartością index
1). Moduł cieniujący określony jako moduł cieniujący mieszania może określać więcej niż dwa obiekty wejściowe. W takim przypadku wszelkie dodatkowe dane wejściowe należy określać przez ustawianie właściwości input
wystąpienia klasy ShaderInput.
W przypadku przypisania instancji modułu cieniującego do tej właściwości moduł cieniujący jest kopiowany wewnętrznie. Podczas operacji mieszania używana jest kopia wewnętrzna, a nie odwołanie do oryginalnego modułu cieniującego. Wszelkie zmiany modułu cieniującego, takie jak zmiana wartości parametru, obiektu wejściowego lub kodu bajtowego, nie są stosowane do skopiowanego modułu cieniującego, który jest używany dla trybu mieszania.
Implementacja
public function set blendShader(value:Shader):void
Zgłasza
ArgumentError — Gdy typ wyjścia modułu cieniującego nie jest zgodny z tą operacją (moduł cieniujący musi określać wyjście pixel4 ).
| |
ArgumentError — Gdy moduł cieniujący określa mniej niż dwa obrazy wejściowe lub pierwsze dwa obrazy wejściowe są inne niż image4 .
| |
ArgumentError — Gdy moduł cieniujący określa obraz wejściowy, które nie został udostępniony.
| |
ArgumentError — W przypadku filtrów ByteArray lub Vector.Instancja <Number> jest używana jako obiekt wejściowy, a właściwości width i height nie zostały określone dla ShaderInput, lub określone wartości nie są zgodne z ilością danych w obiekcie wejściowym. Więcej informacji można znaleźć w opisie właściwości ShaderInput.input .
|
Powiązane elementy interfejsu API
cacheAsBitmap | właściwość |
cacheAsBitmap:Boolean
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Jeśli ustawiono wartość true
, środowisko wykonawcze Flash buforuje reprezentację bitmapy obiektu wyświetlanego. Buforowanie może zwiększyć wydajność w przypadku obiektów wyświetlanych posiadających złożoną zawartość wektorową.
Wszelkie dane wektorowe dla obiektu wyświetlanego, który ma buforowaną bitmapę, są pobierane do bitmapy zamiast na główny ekran. Jeśli właściwość cacheAsBitmapMatrix
ma wartość NULL lub nie jest obsługiwana, bitmapa zostanie skopiowana do głównego ekranu bez rozciągania i obracania, a jej piksele zostaną przyciągnięte do najbliższych granic pikseli. Piksele są mapowane 1 do 1 względem obiektu nadrzędnego. Jeżeli granice bitmapy ulegną zmianie, wówczas bitmapa jest odtwarzana zamiast ulec rozciągnięciu.
Jeśli właściwość cacheAsBitmapMatrix
ma wartość różną od NULL i jest obsługiwana, obiekt zostanie narysowany na bitmapie znajdującej się poza ekranem za pomocą tej macierzy, a do wyrysowania obiektu na ekranie głównym zostaną użyte rozciągnięte i/lub obrócone wyniki tego renderowania.
Wewnętrzna bitmapa nie jest tworzona, chyba że właściwość cacheAsBitmap
jest ustawiona na wartośćtrue
.
Po ustawieniu właściwości cacheAsBitmap
na wartość true
renderowanie pozostaje bez zmian, jednakże obiekt wyświetlany automatycznie przeprowadza przyciąganie pikseli. Szybkość animacji może być znacznie wyższa w zależności od stopnia złożoności zawartości wektorowej.
Właściwość cacheAsBitmap
jest automatycznie ustawiana na wartość true
zawsze, gdy stosowany jest filtr dla obiektu wyświetlanego (gdy tablica filter
nie jest pusta); natomiast w przypadku włączenia filtru dla obiektu wyświetlanego właściwość cacheAsBitmap
dla tego obiektu wyświetlanego jest zgłaszana jako true
, nawet w przypadku ustawienia właściwości na wartość false
. Po wyczyszczeniu wszystkich filtrów dla obiektu wyświetlanego ustawienie cacheAsBitmap
zmienia się na ostatnią wartość.
Obiekt wyświetlany nie stosuje bitmapy nawet jeśli właściwość cacheAsBitmap
jest ustawiona na wartość true
, a zamiast tego renderuje z danych wektorowych w następujących przypadkach:
- Bitmapa jest za duża. W środowisku AIR 1.5 i programie Flash Player 10 maksymalna szerokość i wysokość obrazu bitmapowego wynosi 8191 pikseli, a łączna liczba pikseli nie może przekroczyć 16 777 215. (A zatem, jeśli obraz bitmapowy ma szerokość 8,191 pikseli, nie może być wyższy niż 2048 pikseli). W programie Flash Player 9 i wcześniejszych wersjach ograniczenie szerokości i wysokości wynosi 2880 pikseli.
- Niepowodzenie przy alokacji pamięci dla bitmapy (błąd braku pamięci).
Właściwość cacheAsBitmap
najlepiej jest stosować względem klipów filmowych, których zawartość jest w większości statyczna oraz nie jest często skalowana lub obracana. W przypadku takich klipów właściwość cacheAsBitmap
może prowadzić do zwiększenia wydajności przy translacji klipu filmowego (gdy pozycje x i y ulegają zmianie).
Implementacja
public function get cacheAsBitmap():Boolean
public function set cacheAsBitmap(value:Boolean):void
Powiązane elementy interfejsu API
Przykład ( Sposób korzystania z tego przykładu )
cacheAsBitmap
, która ma wartość true
gdy stosowany jest filtr:
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
cacheAsBitmapMatrix | właściwość |
cacheAsBitmapMatrix:Matrix
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 2.0 |
W przypadku wartości innej niż null ten obiekt Matrix definiuje sposób renderowania obiektu wyświetlanego, gdy cacheAsBitmap
jest ustawione na true
. Aplikacja wykorzystuje te macierze jako macierze transformacji, które są stosowane podczas renderowania wersji bitmapy tego obiektu wyświetlanego.
Obsługa profilów aplikacji AIR: Ta funkcja jest obsługiwana na urządzeniach mobilnych, ale nie jest obsługiwana w stacjonarnych systemach operacyjnych. Jest obsługiwana w ograniczonym zakresie w środowisku AIR dla urządzeń telewizyjnych. W środowisku AIR dla urządzeń telewizyjnych są obsługiwane przekształcenia takie jak skalowanie i przesuwanie, ale nie można korzystać z obracania ani pochylania. Więcej informacji o obsłudze elementów interfejsu API w różnych profilach można znaleźć w sekcji Obsługa profilów aplikacji AIR.
W przypadku cacheAsBitmapMatrix
aplikacja zachowuje buforowany obraz bitmapowy podczas różnych transformacji 2D — między innymi podczas translacji, rotacji i skalowania. Jeśli aplikacja korzysta z przyspieszania sprzętowego, obiekt zostanie zapisany w pamięci wideo jako tekstura. Umożliwi to GPU zastosowanie na obiekcie obsługiwanych transformacji. GPU może wykonywać te transformacje szybciej niż CPU.
W celu wykorzystania przyspieszania sprzętowego należy ustawić renderowanie na GPU na karcie Ogólne, w oknie dialogowym ustawień iPhone, w programie Flash Professional CS5. Można też ustawić właściwość renderMode
na wartość gpu
w pliku deskryptora aplikacji. Urządzenia telewizyjne ze środowiskiem AIR automatycznie korzystają z przyspieszania sprzętowego, jeżeli jest dostępne.
Na przykład: poniższy kod powoduje wysyłanie nieprzekształconej reprezentacji bitmapy obiektu wyświetlanego do GPU:
matrix:Matrix = new Matrix(); // creates an identity matrix mySprite.cacheAsBitmapMatrix = matrix; mySprite.cacheAsBitmap = true;
Zwykle wystarczająca jest macierz tożsamościowa (new Matrix()
). W celu załadowania innej bitmapy do GPU można jednak użyć innej macierzy, np. macierzy o zmniejszonej skali. Na przykład: poniższy przykład prezentuje zastosowanie macierzycacheAsBitmapMatrix
o skali 0,5 na osiach x i y. Obiekt bitmapy, z którego korzysta GPU jest mniejszy, jednak GPU dostosowuje jego wielkość w celu zachowania zgodności z właściwością transform.matrix obiektu wyświetlanego.
matrix:Matrix = new Matrix(); // creates an identity matrix matrix.scale(0.5, 0.5); // scales the matrix mySprite.cacheAsBitmapMatrix = matrix; mySprite.cacheAsBitmap = true;
Zwykle należy stosować taką macierz, która przekształca obiekt wyświetlany w celu uzyskania rozmiaru, jaki będzie widoczny w aplikacji. Na przykład: jeśli aplikacja wyświetla wersję bitmapy ikonki o skali zmniejszonej o połowę, należy użyć macierzy, która zmniejsza skalę o połowę. Jeśli aplikacja będzie wyświetlała ikonkę większą niż jej aktualny rozmiar, należy użyć macierzy, która będzie zwiększać skalę o odpowiedni współczynnik.
Uwaga: Właściwość cacheAsBitmapMatrix
można stosować w transformacjach 2D. Jeśli konieczne jest zastosowanie transformacji w przestrzeni 3D, można to zrobić poprzez ustawienie właściwości 3D obiektu i dostosowanie właściwości transform.matrix3D
. Jeśli aplikacja jest spakowana w trybie GPU, możliwe będzie zastosowanie transformacji 3D do obiektu za pomocą procesora GPU. Właściwość cacheAsBitmapMatrix
jest ignorowana w przypadku obiektów 3D.
Implementacja
public function get cacheAsBitmapMatrix():Matrix
public function set cacheAsBitmapMatrix(value:Matrix):void
Powiązane elementy interfejsu API
Przykład ( Sposób korzystania z tego przykładu )
cacheAsBitmapMatrix
w celu zastosowania transformacji do wersji bitmapy klipu filmowego my_shape
.
import flash.geom.Matrix; import flash.display.*; import flash.utils.Timer; var my_shape:MovieClip = new MovieClip(); my_shape.graphics.beginFill(0xCCFF00); my_shape.graphics.drawRect(200, 0, 100, 100); addChild(my_shape); var my_timer:Timer = new Timer(250); my_timer.start(); my_timer.addEventListener(TimerEvent.TIMER, timerHandler); // make sure this Display Object remains cached for all 2D transforms my_shape.cacheAsBitmap = true; my_shape.cacheAsBitmapMatrix = new Matrix(); // rotation variables const initAngle:Number = 0; const pi:Number = 3.142; const incrAngle:Number = pi/10; // scaling variables const initScale:Number = 0.25; const incrScale: Number = 1.1; var initHeight : Number = my_shape.height; var initWidth : Number = my_shape.width; // translation variables var incrX : Number = root.width / 20; var incrY : Number = root.height / 10; // do some initial transforms var tempMat : Matrix = my_shape.transform.matrix; tempMat.rotate(initAngle); tempMat.scale(initScale, initScale); my_shape.transform.matrix = tempMat; function timerHandler(evt:TimerEvent):void { tempMat = my_shape.transform.matrix; tempMat.rotate(incrAngle); tempMat.translate(incrX, incrY); tempMat.scale(incrScale, incrScale); my_shape.transform.matrix = tempMat; // ensure we are still in a reasonable state or reset if(my_shape.height > stage.stageHeight/2) { my_shape.height = initHeight; } if(my_shape.width > stage.stageWidth/2) { my_shape.width = initWidth; } if(my_shape.x > stage.stageWidth) { my_shape.x = 0; } else if (my_shape.x < 0) { my_shape.x = stage.stageWidth; } if(my_shape.y > stage.stageHeight) { my_shape.y = 0; } else if (my_shape.y < 0) { my_shape.y = stage.stageHeight; } }
filters | właściwość |
filters:Array
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9 |
Indeksowana tablica zawierająca wszystkie filtry aktualnie skojarzone z obiektem wyświetlanym. Pakiet flash.filters zawiera wiele klas definiujących zastosowanie określonych filtrów.
Filtry mogą być zastosowane w programie Flash Professional w czasie projektowania lub w trakcie wykonywania kodu ActionScript. W celu zastosowania filtra przy użyciu kodu ActionScript konieczne jest tymczasowe skopiowanie całej tablicy filters
, modyfikacja tej tablicy a następnie przypisanie wartości tablicy tymczasowej z powrotem do tablicy filters
. Nie jest możliwe bezpośrednie dodanie nowego obiektu filtra do tablicy filters
.
W celu dodania filtra poprzez zastosowanie kodu ActionScript należy przeprowadzić poniższe operacje (przy założeniu, że docelowy obiekt wyświetlany nosi nazwę myDisplayObject
):
- Należy utworzyć nowy obiekt filtra poprzez wykorzystanie metody konstruktora wybranej klasy filtra.
- Następnie należy przypisać wartość tablicy
myDisplayObject.filters
do tablicy tymczasowej, przykładowo nazwanejmyFilters
. - Należy dodać nowy obiekt filtra do tymczasowej tablicy
myFilters
. - Następnie należy przypisać wartość tymczasowej tablicy do tablicy
myDisplayObject.filters
.
Jeżeli tablica filters
nie jest zdefiniowana, wówczas nie jest konieczne wykorzystywanie tablicy tymczasowej. Zamiast tego możliwe jest bezpośrednie przypisanie literału tablicy, który zawiera jeden lub więcej obiektów filtra do utworzenia. Pierwszy przykład w rozdziale Przykłady dodaje filtr cienia poprzez wykorzystanie kodu obsługującego zdefiniowane i niezdefiniowane tablice filters
.
W celu modyfikacji istniejącego obiektu filtra konieczne jest zastosowanie techniki modyfikacji kopii tablicy filters
:
- Należy przypisać wartość tablicy
filters
do tablicy tymczasowej, przykładowo nazwanejmyFilters
. - Należy zmodyfikować właściwość przez wykorzystanie tablicy tymczasowej
myFilters
. Na przykład w celu ustawienia właściwości pierwszego filtra w tablicy można wykorzystać następujący kod:myFilters[0].quality = 1;
. - Następnie należy przypisać wartość tymczasowej tablicy do tablicy
filters
.
W trakcie ładowania, jeżeli obiekt wyświetlany ma skojarzony filtr, jest oznaczony do buforowania samego siebie jako przezroczystej bitmapy. Od tego momentu, jeśli tylko obiekt wyświetlany posiada prawidłową listę filtrów, odtwarzacz buforuje obiekt wyświetlany jako bitmapę. Bitmapa źródłowa jest wykorzystywana jako obraz źródłowy dla efektów filtra. Każdy obiekt wyświetlany ma z reguły dwie bitmapy: jedną z oryginalnym niefiltrowanym źródłowym obiektem wyświetlanym oraz drugą z końcowym obrazem po filtrowaniu. Przy renderowaniu wykorzystywany jest obraz końcowy. Jeżeli obiekt wyświetlany nie ulega zmianie nie ma potrzeby aktualizacji obrazu końcowego.
Pakiet flash.filters zawiera klasy dla filtrów. Przykładowo w celu utworzenia filtra DropShadow należy napisać:
import flash.filters.DropShadowFilter var myFilter:DropShadowFilter = new DropShadowFilter (distance, angle, color, alpha, blurX, blurY, quality, inner, knockout)
Można wykorzystać operator is
w celu określenia typu filtra przypisanego do każdego indeksu w tablicy filter
. Na przykład poniższy kod pokazuje sposób określenia położenia pierwszego filtra w tablicy filters
, którym jest DropShadowFilter:
import flash.text.TextField; import flash.filters.*; var tf:TextField = new TextField(); var filter1:DropShadowFilter = new DropShadowFilter(); var filter2:GradientGlowFilter = new GradientGlowFilter(); tf.filters = [filter1, filter2]; tf.text = "DropShadow index: " + filterPosition(tf, DropShadowFilter).toString(); // 0 addChild(tf) function filterPosition(displayObject:DisplayObject, filterClass:Class):int { for (var i:uint = 0; i < displayObject.filters.length; i++) { if (displayObject.filters[i] is filterClass) { return i; } } return -1; }
Uwaga: Ponieważ nie jest możliwe bezpośrednie dodanie nowego obiektu filtra do tablicy DisplayObject.filters
, dlatego poniższy kod nie ma efektu względem docelowego obiektu wyświetlanego o nazwie myDisplayObject
:
myDisplayObject.filters.push(myDropShadow);
Implementacja
public function get filters():Array
public function set filters(value:Array):void
Zgłasza
ArgumentError — Jeśli do tablicy filters należy filtr ShaderFilter, a typ wyjścia modułu cieniującego nie jest zgodny z tą operacją (moduł cieniujący musi określać dane wyjściowe pixel4 ).
| |
ArgumentError — Jeśli tablica filters zawiera filtr ShaderFilter, a dla modułu cieniującego nie określono obrazu wejściowego lub pierwszy obiekt wejściowy jest inny niż image4 .
| |
ArgumentError — Jeśli do tablicy filters należy filtr ShaderFilter, a dla modułu cieniującego określono obraz wejściowy, który nie został udostępniony.
| |
ArgumentError — Jeśli do tablicy filters należy filtr ShaderFilter, ByteArray lub Vector.Instancja <Number> jest używana jako obiekt wejściowy dla modułu cieniującego, a właściwości width i height nie zostały określone dla obiektu ShaderInput, lub określone wartości nie są zgodne z ilością danych wejściowych. Więcej informacji można znaleźć w opisie właściwości ShaderInput.input .
|
Powiązane elementy interfejsu API
height | właściwość |
height:Number
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Wysokość obiektu wyświetlanego w pikselach. Wysokość jest obliczana na podstawie granic zawartości obiektu wyświetlanego. W przypadku ustawienia właściwości height
właściwość scaleY
jest odpowiednio dostosowywana, jak widać w poniższym kodzie:
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;
Z wyjątkiem obiektów TextField i Video obiekt wyświetlany bez zawartości (jak na przykład pusta ikonka) ma wysokość 0, nawet w przypadku próby ustawienia właściwości height
na inną wartość.
Implementacja
public function get height():Number
public function set height(value:Number):void
Przykład ( Sposób korzystania z tego przykładu )
height
każdego z nich w oparciu o właściwość textHeight
; oprócz tego ustawia drugie pole tekstowe poprzez ustawienie jego właściwości y
:
import flash.text.TextField; var tf1:TextField = new TextField(); tf1.text = "Text Field 1"; tf1.border = true; tf1.wordWrap = true; tf1.width = 40; tf1.height = tf1.textHeight + 5; addChild(tf1); var tf2:TextField = new TextField(); tf2.text = "Text Field 2"; tf2.border = true; tf2.wordWrap = true; tf2.width = 40; tf2.height = tf2.textHeight + 5; tf2.y = tf1.y + tf1.height + 5; addChild(tf2);
loaderInfo | właściwość |
loaderInfo:LoaderInfo
[tylko do odczytu] Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Zwraca obiekt LoaderInfo zawierający informacje o ładowaniu pliku, do którego należy ten obiekt wyświetlany. Właściwość loaderInfo
jest definiowana tylko dla głównego obiektu wyświetlanego pliku SWF lub załadowanego obiektu Bitmap (ale nie obiektu Bitmap narysowanego przy pomocy skryptu ActionScript). W celu odnalezienia obiektu loaderInfo
skojarzonego z plikiem SWF zawierającym obiekt wyświetlany o nazwie myDisplayObject
należy wykorzystać właściwość myDisplayObject.root.loaderInfo
.
Duży plik SWF może monitorować własną operację pobierania poprzez wywołanie funkcji this.root.loaderInfo.addEventListener(Event.COMPLETE, func)
.
Implementacja
public function get loaderInfo():LoaderInfo
Powiązane elementy interfejsu API
Przykład ( Sposób korzystania z tego przykładu )
this
odwołuje się do obiektu wyświetlanego. Ten kod generuje adres URL głównego pliku SWF dla tego obiektu wyświetlanego.
trace (this.loaderInfo.url);
mask | właściwość |
mask:DisplayObject
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Wywoływanie obiektu wyświetlanego jest zamaskowane przez określony obiekt mask
. W celu zapewnienia działania maskowania w momencie skalowania obiektu Stage obiekt wyświetlany mask
musi znajdować się w aktywnej części listy wyświetlania. Sam obiekt mask
nie jest rysowany. Należy ustawić właściwość mask
na wartość null
w celu usunięcia maski.
Aby możliwe było skalowanie obiektu maski, musi on znajdować się na liście wyświetlania. Aby możliwe było przeciąganie obiektu Sprite maski (poprzez wywołanie metody startDrag()
), musi on znajdować się na liście wyświetlania. W celu wywołania metody startDrag()
dla ikonki maski opartej na wywoływanym przez nią zdarzeniu mouseDown
należy ustawić właściwość ikonki buttonMode
na wartość true
.
Gdy obiekty ekranowe są buforowane przez ustawienie właściwości cacheAsBitmap
na wartość true
oraz właściwości cacheAsBitmapMatrix
na obiekt Matrix, maska oraz maskowany obiekt ekranowy muszą być częściami tej samej buforowanej bitmapy. Oznacza to, że jeśli obiekt ekranowy jest buforowany, to maska musi być elementem potomnym tego obiektu ekranowego. Jeśli element macierzysty obiektu ekranowego na liście wyświetlania jest buforowany, to maska musi być elementem potomnym tego elementu lub jednego z jego elementów potomnych. Jeśli buforowany jest więcej niż jeden przodek maskowanego obiektu, to maska musi być elementem potomnym buforowanego kontenera znajdującego się najbliżej maskowanego obiektu na liście wyświetlania.
Uwaga: Pojedynczy obiekt mask
nie może być używany do maskowania więcej niż jednego wywołującego obiektu wyświetlanego. Po skojarzeniu obiektu mask
z drugim obiektem wyświetlanym jest on usuwany jako maska pierwszego obiektu, a właściwość mask
tego obiektu przyjmuje wartość null
.
Implementacja
public function get mask():DisplayObject
public function set mask(value:DisplayObject):void
Przykład ( Sposób korzystania z tego przykładu )
drag()
detektora zdarzeń wywołuje metodę startDrag()
obiektu maski Sprite.
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(); }
metaData | właściwość |
metaData:Object
Pobiera obiekt metadanych wystąpienia klasy DisplayObject, jeśli metadane są przechowywane razem z tym wystąpieniem klasy DisplayObject w pliku SWF, korzystając ze znacznika PlaceObject4.
Implementacja
public function get metaData():Object
public function set metaData(value:Object):void
mouseX | właściwość |
mouseX:Number
[tylko do odczytu] Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Określa współrzędną x myszy lub urządzenia wejściowego użytkownika, w pikselach.
Uwaga: Dla obiektów DisplayObject, które zostały obrócone, zwrócona współrzędna x będzie wskazywała obiekt nieobrócony.
Implementacja
public function get mouseX():Number
Przykład ( Sposób korzystania z tego przykładu )
mouseX
i mouseY
w momencie kliknięcia ikonki przez użytkownika:
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 | właściwość |
mouseY:Number
[tylko do odczytu] Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Określa współrzędną y myszy lub urządzenia wejściowego użytkownika, w pikselach.
Uwaga: Dla obiektów DisplayObject, które zostały obrócone, zwrócona współrzędna y będzie wskazywała obiekt nieobrócony.
Implementacja
public function get mouseY():Number
Przykład ( Sposób korzystania z tego przykładu )
mouseX
i mouseY
w momencie kliknięcia ikonki przez użytkownika.
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 | właściwość |
name:String
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Nazwa instancji obiektu DisplayObject. Obiekt może być zidentyfikowany na liście obiektów podrzędnych kontenera nadrzędnych obiektów wyświetlanych poprzez wywołanie metody getChildByName()
kontenera obiektów wyświetlanych.
Implementacja
public function get name():String
public function set name(value:String):void
Zgłasza
IllegalOperationError — W przypadku próby ustawienia tej właściwości w obiekcie położonym na osi czasu narzędzia autoryzacyjnego Flash.
|
Przykład ( Sposób korzystania z tego przykładu )
name
w momencie kliknięcia dowolnego obiektu przez użytkownika:
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 | właściwość |
opaqueBackground:Object
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Określa, czy przy konkretnym kolorze tła obiekt wyświetlany jest nieprzejrzysty. Przezroczysta bitmapa zawiera dane kanału alpha i jest rysowana w sposób przezroczysty. Bitmapa nieprzezroczysta nie posiada kanału alpha (oraz jest renderowana szybciej niż bitmapa przezroczysta). Jeżeli bitmapa jest nieprzezroczysta należy określić kolor wykorzystywanego tła.
W przypadku ustawienia na wartość liczbową powierzchnia jest nieprzezroczysta z tłem w barwie RGB określonej przez tą liczbę. W przypadku ustawienia na wartość null
(wartość domyślna) obiekt wyświetlany ma przezroczyste tło.
Właściwość opaqueBackground
powinna być stosowana głównie z właściwością cacheAsBitmap
w celu optymalizacji renderowania. Dla obiektów wyświetlanych w których właściwość cacheAsBitmap
jest ustawiona na wartość true, ustawienie opaqueBackground
może podwyższyć wydajność renderowania.
Obszar tła nieprzezroczystego nie jest dopasowywany w przypadku wywołania metody hitTestPoint()
przy parametrze shapeFlag
ustawionym na wartość true
.
Obszar tła nieprzezroczystego nie odpowiada na zdarzenia myszy.
Implementacja
public function get opaqueBackground():Object
public function set opaqueBackground(value:Object):void
Powiązane elementy interfejsu API
Przykład ( Sposób korzystania z tego przykładu )
opaqueBackground
na czerwień (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);
parent | właściwość |
parent:DisplayObjectContainer
[tylko do odczytu] Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Odnosi się do obiektu DisplayObjectContainer, który zawiera obiekt wyświetlany. Należy wykorzystać właściwość parent
w celu określenia względnej ścieżki do obiektów wyświetlanych, które znajdują się ponad obecnym obiektem wyświetlanym w hierarchii listy wyświetlania.
Możliwe jest wykorzystanie właściwości parent
w celu przejścia wielu poziomów w górę listy wyświetlania w następujący sposób:
this.parent.parent.alpha = 20;
Implementacja
public function get parent():DisplayObjectContainer
Zgłasza
SecurityError — Nadrzędny obiekt wyświetlany należy do obszaru izolowanego, do którego użytkownik nie ma dostępu. Można ominąć tą sytuację poprzez wywołanie metody Security.allowDomain() przez film nadrzędny.
|
Przykład ( Sposób korzystania z tego przykładu )
parent
odzwierciedla hierarchię listy wyświetlania:
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 | właściwość |
root:DisplayObject
[tylko do odczytu] Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Dla obiektu wyświetlanego w załadowanym pliku SWF właściwością root
jest szczytowy obiekt wyświetlany w sekcji drzewa listy wyświetlania reprezentowanej przez ten plik SWF. Dla obiektu Bitmap reprezentującego załadowany plik obrazu właściwością root
jest sam obiekt Bitmap. Dla instancji głównej klasy pierwszego załadowanego pliku SWF właściwością root
jest sam obiekt wyświetlany. Właściwością root
obiektu Stage jest sam obiekt Stage. Właściwość root
jest ustawiona na wartość null
dla każdego obiektu wyświetlanego, który nie został dodany do listy wyświetlania, chyba że został dodany do kontenera obiektów wyświetlanych, który nie znajduje się na liście, ale który jest obiektem podrzędnym szczytowego obiektu wyświetlanego w załadowanym pliku SWF.
Na przykład przy utworzeniu nowego obiektu Sprite poprzez wywołanie metody konstruktora Sprite()
jego właściwość root
ma wartość null
do momentu dodania go do listy wyświetlania (lub kontenera obiektów wyświetlanych, który nie znajduje się na liście, ale który jest obiektem podrzędnym szczytowego obiektu wyświetlanego w załadowanym pliku SWF).
Dla załadowanego pliku SWF szczytowy obiekt wyświetlany w pliku SWF ma właściwość root
ustawioną na wartość własną, mimo iż obiekt Loader wykorzystywany do załadowania pliku nie znajduje się na liście wyświetlania. Obiekt Loader nie ma ustawionej właściwości root
do momentu dodania go jako obiektu podrzędnego obiektu wyświetlanego, dla którego ustawiono właściwość root
.
Implementacja
public function get root():DisplayObject
Przykład ( Sposób korzystania z tego przykładu )
root
obiektu Stage, obiektu wyświetlanego (obiekt Loader), który nie jest załadowany (zarówno przed jak i po dodaniu do listy wyświetlania) oraz obiektu załadowanego (załadowany obiekt Bitmap):
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] }
rotation | właściwość |
rotation:Number
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Określa wielkość obrotu instancji obiektu DisplayObject (w kątach). Wartości od 0 do 180 reprezentują obrót zgodnie z kierunkiem ruchu wskazówek zegara. Wartości od 0 do –180 reprezentują obrót w kierunku przeciwnym. Wartości znajdujące się poza tymi granicami są dodawane lub odejmowane od 360 w celu osiągnięcia wartości w tym zakresie. Przykładowo instrukcja my_video.rotation = 450
funkcjonuje tak samo jak my_video.rotation = 90
.
Implementacja
public function get rotation():Number
public function set rotation(value:Number):void
Przykład ( Sposób korzystania z tego przykładu )
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; }
rotationX | właściwość |
rotationX:Number
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Wskazuje kąt obrotu (w stopniach) instancji DisplayObject wokół osi x — od pozycji początkowej względem nadrzędnego kontenera 3D. Wartości od 0 do 180 reprezentują obrót zgodnie z kierunkiem ruchu wskazówek zegara; wartości od 0 do -180 reprezentują obrót w kierunku przeciwnym. Wartości znajdujące się poza tymi granicami są dodawane lub odejmowane od 360 w celu osiągnięcia wartości w tym zakresie.
Implementacja
public function get rotationX():Number
public function set rotationX(value:Number):void
Przykład ( Sposób korzystania z tego przykładu )
rotationX
i rotationY
. Punkt odniesienia pierwszej elipsy jest ustawiony w jej środku. Obraca się wokół swojej osi. Druga elipsa obraca się wokół punktu zewnętrznego.
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; } } }
//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 | właściwość |
rotationY:Number
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Wskazuje kąt obrotu (w stopniach) instancji DisplayObject wokół osi y — od pozycji początkowej względem nadrzędnego kontenera 3D. Wartości od 0 do 180 reprezentują obrót zgodnie z kierunkiem ruchu wskazówek zegara; wartości od 0 do -180 reprezentują obrót w kierunku przeciwnym. Wartości znajdujące się poza tymi granicami są dodawane lub odejmowane od 360 w celu osiągnięcia wartości w tym zakresie.
Implementacja
public function get rotationY():Number
public function set rotationY(value:Number):void
Przykład ( Sposób korzystania z tego przykładu )
rotationX
i rotationY
. Punkt odniesienia pierwszej elipsy jest ustawiony w jej środku. Obraca się wokół swojej osi. Druga elipsa obraca się wokół punktu zewnętrznego.
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 | właściwość |
rotationZ:Number
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Wskazuje kąt obrotu (w stopniach) instancji DisplayObject wokół osi z — od pozycji początkowej względem nadrzędnego kontenera 3D. Wartości od 0 do 180 reprezentują obrót zgodnie z kierunkiem ruchu wskazówek zegara; wartości od 0 do -180 reprezentują obrót w kierunku przeciwnym. Wartości znajdujące się poza tymi granicami są dodawane lub odejmowane od 360 w celu osiągnięcia wartości w tym zakresie.
Implementacja
public function get rotationZ():Number
public function set rotationZ(value:Number):void
scale9Grid | właściwość |
scale9Grid:Rectangle
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Aktualnie stosowana siatka skalowania. Jeżeli ustawione na wartość null
, wówczas cały obiekt wyświetlany jest skalowany normalnie gdy stosowana jest dowolna transformacja skali.
Przy definiowaniu właściwości scale9Grid
obiekt wyświetlany jest dzielony na siatkę dziewięciu regionów opartych na prostokącie scale9Grid
, który definiuje region centralny siatki. Pozostałe 8 regionów to następujące obszary:
- Górny lewy narożnik poza prostokątem
- Obszar ponad prostokątem
- Górny prawy narożnik poza prostokątem
- Obszar po lewej stronie prostokąta
- Obszar po prawej stronie prostokąta
- Dolny lewy narożnik poza prostokątem
- Obszar poniżej prostokąta
- Dolny prawy narożnik poza prostokątem
Można wyobrazić sobie te 8 regionów poza centrum (zdefiniowanym przez prostokąt) jako ramę obrazu, do której stosowane są specjalne zasady w trakcie skalowania.
Gdy ustawiona zostaje właściwość scale9grid
i obiekt wyświetlany jest skalowany, wówczas cały tekst oraz gradienty są skalowane normalnie, jednak dla innych typów obiektów stosowane są następujące zasady:
- Zawartość regionu centralnego jest skalowana normalnie.
- Zawartość w narożnikach nie jest skalowana.
- Zawartość górnego i dolnego regionu jest skalowana tylko w poziomie. Zawartość w regionach lewym i prawym jest skalowana tylko pionowo.
- Wszelkie wypełnienia (włącznie z bitmapami, filmami wideo oraz gradientami) są rozciągane w celu dopasowania do danych kształtów.
Jeżeli obiekt wyświetlany jest obrócony wszystkie kolejne skalowania są normalne (właściwość scale9Grid
jest ignorowana).
Można na przykład przeanalizować następujący obiekt wyświetlany oraz prostokąt zastosowany jako właściwość scale9grid
obiektu:
Wyświetlany obiekt. |
Czerwony prostokąt przedstawia właściwość |
Gdy obiekt wyświetlany jest skalowany lub rozciągany obiekty wewnątrz prostokąta są skalowane normalnie, zaś obiekty poza prostokątem są skalowane zgodnie z zasadami właściwości scale9Grid
:
Skalowane do 75%: | |
Skalowane do 50%: | |
Skalowane do 25%: | |
Rozciągnięte poziomo 150%: |
Typowym zastosowaniem ustawienia scale9Grid
jest ustawienie obiektu wyświetlanego jako składnika, w którym regiony skrajne utrzymują tą samą szerokość gdy składnik jest skalowany.
Implementacja
public function get scale9Grid():Rectangle
public function set scale9Grid(value:Rectangle):void
Zgłasza
ArgumentError — W przypadku podania nieprawidłowego argumentu dla metody.
|
Powiązane elementy interfejsu API
Przykład ( Sposób korzystania z tego przykładu )
graphics
). Prostokąt ma linię grubości 20 pikseli jako obramowanie i jest ona wypełniona gradientem. Zdarzenie timer wywołuje funkcję scale()
, która skaluje obiekt Shape poprzez dostosowanie właściwości scaleX
i scaleY
. Właściwość scale9Grid
stosowana dla obiektu Shape zapobiega skalowaniu linii obramowania prostokąta — skalowaniu ulega tylko wypełnienie gradientowe:
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; } }
scaleX | właściwość |
scaleX:Number
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Wskazuje skalę poziomą (procent) obiektu względem punktu odniesienia. Domyślny punkt rejestracji wynosi (0,0). Wartość 1.0 oznacza 100% skali.
Skalowanie lokalnego układu współrzędnych ma wpływ na wartości właściwości x
i y
, które są zdefiniowane w całych pikselach.
Implementacja
public function get scaleX():Number
public function set scaleX(value:Number):void
Przykład ( Sposób korzystania z tego przykładu )
graphics
). W momencie kliknięcia ikonki przez użytkownika jest ona skalowana o 10%.
import flash.display.Sprite; import flash.events.MouseEvent; var square:Sprite = new Sprite(); square.graphics.beginFill(0xFFCC00); square.graphics.drawRect(0, 0, 100, 100); addChild(square); square.addEventListener(MouseEvent.CLICK, scale); function scale(event:MouseEvent):void { square.scaleX *= 1.10; square.scaleY *= 1.10; }
scaleY | właściwość |
scaleY:Number
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Wskazuje skalę pionową (procent) obiektu względem punktu odniesienia. Domyślny punkt pasowania ma współrzędne (0,0). Wartość 1.0 oznacza 100% skali.
Skalowanie lokalnego układu współrzędnych ma wpływ na wartości właściwości x
i y
, które są zdefiniowane w całych pikselach.
Implementacja
public function get scaleY():Number
public function set scaleY(value:Number):void
Przykład ( Sposób korzystania z tego przykładu )
graphics
). W momencie kliknięcia ikonki przez użytkownika jest ona skalowana o 10%.
import flash.display.Sprite; import flash.events.MouseEvent; var square:Sprite = new Sprite(); square.graphics.beginFill(0xFFCC00); square.graphics.drawRect(0, 0, 100, 100); addChild(square); square.addEventListener(MouseEvent.CLICK, scale); function scale(event:MouseEvent):void { square.scaleX *= 1.10; square.scaleY *= 1.10; }
scaleZ | właściwość |
scaleZ:Number
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | Flash Player 10, AIR 1.5 |
Wskazuje skalę głębokości (procent) obiektu względem punktu odniesienia. Domyślny punkt pasowania ma współrzędne (0,0). Wartość 1.0 oznacza 100% skali.
Skalowanie lokalnego układu współrzędnych ma wpływ na wartości właściwości x
, y
oraz z
, które są zdefiniowane w całych pikselach.
Implementacja
public function get scaleZ():Number
public function set scaleZ(value:Number):void
Powiązane elementy interfejsu API
scrollRect | właściwość |
scrollRect:Rectangle
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9 |
Granice obszaru przewijania obiektu wyświetlanego. Obiekt wyświetlany jest kadrowany do rozmiaru określonego przez prostokąt i przewija się wewnątrz prostokąta przy zmianie właściwości x
i y
obiektu scrollRect
.
Właściwości scrollRect
obiektu Rectangle wykorzystują układ współrzędnych obiektu wyświetlanego i są skalowane tak jak ogólny obiekt wyświetlany. Granice narożników kadrowanego okna na przewijającym się obiekcie są źródłem obiektu wyświetlanego (0,0) oraz punktu zdefiniowanego przez szerokość i wysokość prostokąta. Nie są one centrowane wokół źródła, ale wykorzystują je do zdefiniowania górnego lewego narożnika obszaru. Przewijany obiekt wyświetlany jest zawsze przewijany o przyrosty pełnych pikseli.
Możliwe jest przewijanie obiektu w lewą i w prawą stronę poprzez ustawienie właściwości x
obiektu Rectangle scrollRect
. Możliwe jest przewijanie obiektu w górę i w dół poprzez ustawienie właściwości y
obiektu Rectangle scrollRect
. Jeżeli obiekt wyświetlany jest obrócony o 90 stopni i będzie on przewijany w lewo i w prawo, wówczas obiekt wyświetlany jest tak naprawdę przewijany w górę i w dół.
Zmiany właściwości scrollRect
są przetwarzane tylko w czasie renderowania obiektu. Z tego powodu metody takie jak localToGlobal
mogą nie dawać oczekiwanych wyników, jeśli zostaną wywołane natychmiast po zmodyfikowaniu właściwości scrollRect
.
Uwaga: Począwszy od wersji Flash Player 11.4/AIR 3.4, ujemne wartości szerokości i wysokości prostokątów są zmieniane na 0.
Implementacja
public function get scrollRect():Rectangle
public function set scrollRect(value:Rectangle):void
Powiązane elementy interfejsu API
Przykład ( Sposób korzystania z tego przykładu )
circle
poprzez właściwość scrollRect
. W przypadku kliknięcia obiektu circle
metoda clicked()
modułu obsługi zdarzeń dostosowuje właściwość y
właściwości scrollRect
obiektu circle
, powodując przewijanie obiektu w dół:
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; }
stage | właściwość |
stage:Stage
[tylko do odczytu] Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Stół montażowy obiektu wyświetlanego. Aplikacja działająca w środowisku wykonawczym Flash ma tylko jeden obiekt Stage. Na przykład możliwe jest utworzenie i załadowanie wielu obiektów wyświetlanych do listy wyświetlania, zaś właściwość stage
każdego obiektu wyświetlanego odwołuje się do tego samego obiektu Stage (nawet jeśli obiekt wyświetlany należy do załadowanego pliku SWF).
Jeżeli obiekt wyświetlany nie jest dodany do listy wyświetlania, wówczas jego właściwość stage
ma wartość null
.
Implementacja
public function get stage():Stage
Przykład ( Sposób korzystania z tego przykładu )
width
obiektu Stage w celu umiejscowienia pól tekstowych:
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 | właściwość |
transform:flash.geom:Transform
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Obiekt z właściwościami dotyczącymi matrycy obiektu wyświetlanego, transformacji kolorów oraz granic pikseli. Określone właściwości — matrix, colorTransform oraz trzy właściwości tylko do odczytu (concatenatedMatrix
, concatenatedColorTransform
oraz pixelBounds
) — są opisane we wpisie dla klasy Transform.
Każda z właściwości obiektu transform jest również obiektem. Koncepcja ta jest konieczna, ponieważ jedynym sposobem ustawienia nowych wartości matrycy lub obiektów colorTransform jest utworzenie nowego obiektu oraz skopiowanie tego obiektu do właściwości transform.matrix lub transform.colorTransform.
Na przykład w celu zwiększenia wartości tx
matrycy obiektu wyświetlanego konieczne jest skopiowanie całego obiektu matrycy, a następnie skopiowanie nowego obiektu do właściwości matrycy obiektu transform:
var myMatrix:Matrix = myDisplayObject.transform.matrix;
myMatrix.tx += 10;
myDisplayObject.transform.matrix = myMatrix;
Nie jest możliwe bezpośrednie ustawienie właściwości tx
. Poniższy kod nie ma efektu na właściwość myDisplayObject
:
myDisplayObject.transform.matrix.tx += 10;
Możliwe jest również skopiowanie całego obiektu transform oraz przypisanie go do innej właściwości transform obiektu wyświetlanego. Na przykład poniższy kod kopiuje cały obiekt transform z obiektu myOldDisplayObj
do myNewDisplayObj
:
myNewDisplayObj.transform = myOldDisplayObj.transform;
Końcowy obiekt wyświetlany myNewDisplayObj
, ma wówczas te same wartości matrycy, transformacji kolorów oraz granice pikseli jak stary obiekt wyświetlany myOldDisplayObj
.
Jeśli przyspieszanie sprzętowe jest dostępne, urządzenia telewizyjne ze środowiskiem AIR używają go na potrzeby przekształceń kolorów.
Implementacja
public function get transform():flash.geom:Transform
public function set transform(value:flash.geom:Transform):void
Powiązane elementy interfejsu API
Przykład ( Sposób korzystania z tego przykładu )
square
. W momencie kliknięcia ikonki przez użytkownika metoda transformer()
dostosowuje właściwości colorTransform
i matrix
właściwości transform
ikonki:
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; }
visible | właściwość |
visible:Boolean
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Decyduje, czy obiekt wyświetlany jest widoczny, czy nie. Obiekty wyświetlane, które nie są widoczne, zostaną wyłączone. Na przykład jeżeli właściwość visible=false
dla instancji InteractiveObject, wówczas kliknięcie go nie jest możliwe.
Implementacja
public function get visible():Boolean
public function set visible(value:Boolean):void
Przykład ( Sposób korzystania z tego przykładu )
visible
obiektu wyświetlanego, czego wynikiem jest efekt migania.
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 | właściwość |
width:Number
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Szerokość obiektu wyświetlanego w pikselach. Szerokość jest obliczana na podstawie granic zawartości obiektu wyświetlanego. W przypadku ustawienia właściwości width
właściwość scaleX
jest odpowiednio dostosowywana, jak widać w poniższym kodzie:
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;
Z wyjątkiem obiektów TextField i Video obiekt wyświetlany bez zawartości (jak na przykład pusta ikonka) ma szerokość 0, nawet w przypadku próby ustawienia właściwości width
na inną wartość.
Implementacja
public function get width():Number
public function set width(value:Number):void
Przykład ( Sposób korzystania z tego przykładu )
square
. W przypadku kliknięcia ikonki przez użytkownika metoda widen()
zwiększa właściwość width
ikonki:
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 | właściwość |
x:Number
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Wskazuje współrzędną x instancji DisplayObject względem lokalnych współrzędnych nadrzędnego obiektu DisplayObjectContainer. Jeżeli obiekt znajduje się wewnątrz obiektu DisplayObjectContainer, który posiada transformacje, wówczas jest wyrażony w lokalnym układzie współrzędnych otaczającego obiektu DisplayObjectContainer. W związku z tym, dla obiektu DisplayObjectContainer obróconego o 90 stopni w kierunku przeciwnym do ruchu wskazówek zegara, obiekty podrzędne dziedziczą układ współrzędnych obrócony w ten sam sposób. Współrzędne obiektu odnoszą się do położenia punktu rejestracji.
Implementacja
public function get x():Number
public function set x(value:Number):void
Przykład ( Sposób korzystania z tego przykładu )
circle
. Obiekt Timer jest wykorzystywany do zmiany właściwości x
ikonki w odstępach czasu równych 50 milisekund.
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 | właściwość |
y:Number
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Wskazuje współrzędną x instancji DisplayObject względem lokalnych współrzędnych nadrzędnego obiektu DisplayObjectContainer. Jeżeli obiekt znajduje się wewnątrz obiektu DisplayObjectContainer, który posiada transformacje, wówczas jest wyrażony w lokalnym układzie współrzędnych otaczającego obiektu DisplayObjectContainer. W związku z tym, dla obiektu DisplayObjectContainer obróconego o 90 stopni w kierunku przeciwnym do ruchu wskazówek zegara, obiekty podrzędne dziedziczą układ współrzędnych obrócony w ten sam sposób. Współrzędne obiektu odnoszą się do położenia punktu rejestracji.
Implementacja
public function get y():Number
public function set y(value:Number):void
Przykład ( Sposób korzystania z tego przykładu )
height
każdego z nich w oparciu o właściwość textHeight
. Oprócz tego ustawia drugie pole tekstowe przez ustawienie jego właściwości y
.
import flash.text.TextField; var tf1:TextField = new TextField(); tf1.text = "Text Field 1"; tf1.border = true; tf1.wordWrap = true; tf1.width = 40; tf1.height = tf1.textHeight + 5; addChild(tf1); var tf2:TextField = new TextField(); tf2.text = "Text Field 2"; tf2.border = true; tf2.wordWrap = true; tf2.width = 40; tf2.height = tf2.textHeight + 5; tf2.y = tf1.y + tf1.height + 5; addChild(tf2);
z | właściwość |
z:Number
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | Flash Player 10, AIR 1.5 |
Wskazuje współrzędną wzdłuż osi Z instancji DisplayObject względem nadrzędnego kontenera 3D. Właściwość z jest przeznaczona do pracy ze współrzędnymi 3D, a nie ze współrzędnymi ekranowymi lub pikselowymi.
Po ustawieniu właściwości z
obiektu wyświetlanego na wartość inną niż domyślna wartość 0
, automatycznie tworzony jest obiekt Matrix3D, który służy do dostosowania pozycji i orientacji obiektu trójwymiarowego w trzech wymiarach. W przypadku pracy z osią Z istniejące działanie właściwości x i y zmienia się ze współrzędnych ekranowych lub pikselowych na pozycje względem nadrzędnego kontenera 3D.
Na przykład: element podrzędny elementu _root
w pozycji x = 100, y = 100, z = 200 nie jest rysowany w lokalizacji pikselowej (100,100). Ten element podrzędny jest rysowany w miejscu, w którym zostanie umieszczony przez obliczenie projekcji 3D. Obliczenie jest następujące:
(x*cameraFocalLength/cameraRelativeZPosition, y*cameraFocalLength/cameraRelativeZPosition)
Implementacja
public function get z():Number
public function set z(value:Number):void
Powiązane elementy interfejsu API
Przykład ( Sposób korzystania z tego przykładu )
z
) do znikającego punktu i z powrotem. Jedna elipsa porusza się szybciej niż druga.
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; } } }
getBounds | () | metoda |
public function getBounds(targetCoordinateSpace:DisplayObject):Rectangle
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Zwraca prostokąt definiujący obszar obiektu wyświetlanego względem układu współrzędnych obiektu targetCoordinateSpace
. Należy rozważyć poniższy kod, ukazujący jak zwracany prostokąt może się zmieniać w zależności od parametru targetCoordinateSpace
podawanego do metody:
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)
Uwaga: W celu konwersji współrzędnych lokalnych obiektu wyświetlanego do współrzędnych wyświetlania lub na odwrót należy zastosować odpowiednio metody localToGlobal()
i globalToLocal()
.
Metoda getBounds()
jest podobna do metody getRect()
, jednakże obiekt Rectangle zwrócony przez metodę getBounds()
zawiera wszelkie obrysy na figurach, zaś obiekt Rectangle zwrócony przez getRect()
pomija obrysy. W celu obejrzenia przykładu zobacz opis metody getRect()
.
Parametry
targetCoordinateSpace:DisplayObject — Obiekt wyświetlany definiujący układ współrzędnych, który zostanie wykorzystany.
|
Rectangle — Prostokąt definiujący obszar obiektu wyświetlanego względem układu współrzędnych obiektu targetCoordinateSpace .
|
Powiązane elementy interfejsu API
getRect | () | metoda |
public function getRect(targetCoordinateSpace:DisplayObject):Rectangle
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Zwraca prostokąt definiujący granice obiektu wyświetlanego, oparte na układzie współrzędnych zdefiniowanym przez parametr targetCoordinateSpace
, wyłączając obrysy figur. Wartości zwracane przez metodę getRect()
są takie same lub mniejsze niż zwracane przez metodę getBounds()
.
Uwaga: W celu konwersji współrzędnych lokalnych obiektu wyświetlanego do współrzędnych obiektu Stage lub na odwrót należy zastosować odpowiednio metody localToGlobal()
i globalToLocal()
.
Parametry
targetCoordinateSpace:DisplayObject — Obiekt wyświetlany definiujący układ współrzędnych, który zostanie wykorzystany.
|
Rectangle — Prostokąt definiujący obszar obiektu wyświetlanego względem układu współrzędnych obiektu targetCoordinateSpace .
|
Powiązane elementy interfejsu API
Przykład ( Sposób korzystania z tego przykładu )
getBounds()
może zwrócić prostokąt większy niż metoda getRect()
, ze względu na dodatkową przestrzeń zajętą przez obrysy. W tym przypadku obiekt triangle
zawiera dodatkowe obrysy ze względu na parametry width
i jointStyle
metody lineStyle()
. Wynik wyjściowy (w ostatnich dwóch liniach) metody trace()
przedstawia różnicę pomiędzy prostokątami metod getRect()
i getBounds()
:
import flash.display.CapsStyle; import flash.display.JointStyle; import flash.display.LineScaleMode; import flash.display.Sprite; import flash.geom.Rectangle; var triangle:Sprite = new Sprite(); var color:uint = 0xFF0044; var width:Number = 20; var alpha:Number = 1.0; var pixelHinting:Boolean = true; var scaleMode:String = LineScaleMode.NORMAL; var caps:String = CapsStyle.SQUARE; var joints:String = JointStyle.MITER; triangle.graphics.lineStyle(width, color, alpha, pixelHinting, scaleMode, caps, joints); var triangleSide:Number = 100; triangle.graphics.moveTo(0, 0); triangle.graphics.lineTo(0, triangleSide); triangle.graphics.lineTo(triangleSide, triangleSide); triangle.graphics.lineTo(0, 0); addChild(triangle); trace(triangle.getBounds(this)); // (x=-10, y=-24.1, w=134.10000000000002, h=134.1) trace(triangle.getRect(this)); // (x=0, y=0, w=100, h=100)
globalToLocal | () | metoda |
public function globalToLocal(point:Point):Point
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Konwertuje obiekt point
ze współrzędnych obiektu Stage (globalne) do współrzędnych obiektu wyświetlanego (lokalne).
W celu użycia tej metody najpierw należy utworzyć wystąpienie klasy Point. Wartości x i y, które przypisuje użytkownik, reprezentują współrzędne globalne, gdyż są one względne do punktu źródłowego (0,0) głównego obszaru wyświetlania. Następnie należy przekazać instancję Point jako parametr metody globalToLocal()
. Metoda zwraca nowy obiekt Point z wartościami x i y, które są względne wobec źródła obiektu wyświetlanego, a nie obiektu Stage.
Parametry
point:Point — Obiekt utworzony przy użyciu klasy Point. Obiekt Point określa współrzędne x i y jako właściwości.
|
Point — Obiekt Point o współrzędnych względem obiektu wyświetlanego.
|
Powiązane elementy interfejsu API
Przykład ( Sposób korzystania z tego przykładu )
hitTestPoint()
przy wykorzystaniu różnych punktów jako parametrów. Metoda globalToLocal()
konwertuje punkt ze współrzędnych obiektu Stage do układu współrzędnych figury:
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]
globalToLocal3D | () | metoda |
public function globalToLocal3D(point:Point):Vector3D
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Konwertuje punkt dwuwymiarowy ze współrzędnych stołu wymiarowego (globalnych) na współrzędne trójwymiarowego obiektu ekranowego (lokalne).
W celu wykorzystania tej metody najpierw należy utworzyć instancję klasy Point. Wartości x i y, które przypisuje użytkownik, do obiektu Point, reprezentują współrzędne globalne, gdyż są one określone względem punktu źródłowego (0,0) głównego obszaru wyświetlania. Następnie należy przekazać obiekt Point do metody globalToLocal3D()
jako parametr point
. Ta metoda zwraca współrzędne trójwymiarowe jako obiekt Vector3D zawierający wartości x
, y
i z
określone względem początku trójwymiarowego obiektu wyświetlanego.
Parametry
point:Point — Dwuwymiarowy obiekt Point reprezentujący globalne współrzędne x i y.
|
Vector3D — Obiekt Vector3D ze współrzędnymi określonymi względem trójwymiarowego obiektu wyświetlanego.
|
hitTestObject | () | metoda |
public function hitTestObject(obj:DisplayObject):Boolean
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Wyznacza prostokąt ograniczający obiekt wyświetlany w celu sprawdzenia, czy zachodzi on lub przecina się z prostokątem ograniczającym obiektu wyświetlanego obj
.
Parametry
obj:DisplayObject — Obiekt wyświetlany przeznaczony do porównania.
|
Boolean — true , jeśli prostokąty ograniczające obiektów wyświetlanych przecinają się; false w przeciwnym razie.
|
Przykład ( Sposób korzystania z tego przykładu )
hitTestObject()
. Należy zwrócić uwagę, że choć obiekty circle2 i circle3 nie nakładają się, ich prostokąty ograniczające się przecinają. A zatem test obiektu circle2 względem obiektu circle3 da w wyniku true
.
import flash.display.Shape; var circle1:Shape = new Shape(); circle1.graphics.beginFill(0x0000FF); circle1.graphics.drawCircle(40, 40, 40); addChild(circle1); var circle2:Shape = new Shape(); circle2.graphics.beginFill(0x00FF00); circle2.graphics.drawCircle(40, 40, 40); circle2.x = 50; addChild(circle2); var circle3:Shape = new Shape(); circle3.graphics.beginFill(0xFF0000); circle3.graphics.drawCircle(40, 40, 40); circle3.x = 100; circle3.y = 67; addChild(circle3); trace(circle1.hitTestObject(circle2)); // true trace(circle1.hitTestObject(circle3)); // false trace(circle2.hitTestObject(circle3)); // true
hitTestPoint | () | metoda |
public function hitTestPoint(x:Number, y:Number, shapeFlag:Boolean = false):Boolean
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Analizuje obiekt wyświetlany w celu sprawdzenia, czy nachodzi on lub czy się on przecina z punktem określonym współrzędnymi x
i y
. Parametry x
i y
określają punkt w układzie współrzędnych obiektu Stage, a nie kontener obiektów wyświetlanych zawierający obiekt wyświetlany (chyba że kontenerem jest obiekt Stage).
Parametry
x:Number — Testowa współrzędna x dla tego obiektu.
| |
y:Number — Testowa współrzędna y dla tego obiektu.
| |
shapeFlag:Boolean (default = false ) — Informuje, czy sprawdzenie zostanie wykonane względem rzeczywistych pikseli obiektu (wartość true ) czy obwiedni (wartość false ).
|
Boolean — Wartość true jeśli obiekt wyświetlany nakłada lub przecina się z określonym punktem; w przeciwnym wypadku wartość false .
|
Powiązane elementy interfejsu API
Przykład ( Sposób korzystania z tego przykładu )
hitTestPoint()
przy wykorzystaniu różnych punktów jako parametrów. Metoda globalToLocal()
konwertuje punkt ze współrzędnych obiektu Stage do układu współrzędnych figury:
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]
local3DToGlobal | () | metoda |
public function local3DToGlobal(point3d:Vector3D):Point
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Konwertuje punkt trójwymiarowy trójwymiarowego obiektu ekranowego (lokalnego) na punkt dwuwymiarowy we współrzędnych stołu montażowego (globalnych).
Przykład: współrzędne dwuwymiarowe (x,y) mogą być używane wyłącznie do rysowania za pomocą metod display.Graphics
. W celu narysowania obiektu trójwymiarowego należy odwzorować współrzędne trójwymiarowe obiektu wyświetlanego na współrzędne dwuwymiarowe. Najpierw należy utworzyć instancję klasy Vector3D, która zawiera współrzędne x, y i z trójwymiarowego obiektu wyświetlanego. Następnie należy przekazać obiekt Vector3D do metody local3DToGlobal()
jako parametr point3d
. Metoda zwraca dwuwymiarowy obiekt Point, który może być używany z interfejsem API Graphics w celu rysowania obiektów trójwymiarowych.
Parametry
point3d:Vector3D — Obiekt Vector3D zawierający punkt trójwymiarowy lub współrzędne trójwymiarowego obiektu wyświetlanego.
|
Point — Punkt dwuwymiarowy, który reprezentuje punkt trójwymiarowy w przestrzeni dwuwymiarowej.
|
Przykład ( Sposób korzystania z tego przykładu )
display.Graphics
. Obiekt wyświetlany (wskazywany przez słowo kluczowethis
) jest przesunięty, dlatego punkt rejestracji sześcianu znajduje się w jego środku. Wektor obiektów Vector3D zawiera współrzędne trójwymiarowe sześcianu. Górna część sześcianu jest rysowana jako pierwsza, następnie rysowana jest dolna, a na końcu następuje połączenie narożników górnych z dolnymi. W celu użycia metody local3DToGlobal()
należy dodać sześcian do kontenera obiektu wyświetlanego przed narysowaniem sześcianu.
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 | () | metoda |
public function localToGlobal(point:Point):Point
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Konwertuje obiekt point
ze współrzędnych obiektu wyświetlanego (lokalne) do współrzędnych obiektu Stage (globalne).
Metoda ta pozwala na konwersje dowolnych współrzędnych x i y z wartości względnych wobec źródła (0,0) określonego obiektu wyświetlanego (współrzędne lokalne) do wartości względnych wobec źródła obiektu Stage (współrzędne globalne).
W celu użycia tej metody najpierw należy utworzyć wystąpienie klasy Point. Wartości x i y, przypisywane przez użytkownika, reprezentują współrzędne lokalne, gdyż dotyczą one pochodzenia obiektu wyświetlanego.
Następnie należy przekazać utworzoną instancję Point jako parametr metody localToGlobal()
. Metoda zwraca nowy obiekt Point z wartościami x i y, które są względne wobec źródła obiektu Stage, a nie obiektu wyświetlanego.
Parametry
point:Point — Nazwa lub identyfikator punktu utworzonego przy pomocy klasy Point, określający współrzędne x i y jako właściwości.
|
Point — Obiekt Point o współrzędnych względem obiektu Stage.
|
Powiązane elementy interfejsu API
Przykład ( Sposób korzystania z tego przykładu )
mouseX
oraz mouseY
ikonki znajdują się w układzie współrzędnych obiektu wyświetlanego. Kod ten wykorzystuje metodę localToGlobal()
do przetłumaczenia tych właściwości na współrzędne globalne (obiektu Stage):
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)); }
added | Zdarzenie |
flash.events.Event
właściwość Event.type =
flash.events.Event.ADDED
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Dysponowana, gdy obiekt ekranowy jest dodawany do listy wyświetlania. Poniższe zdarzenie jest wyzwalane przez następujące metody: DisplayObjectContainer.addChild()
oraz DisplayObjectContainer.addChildAt()
.
Event.ADDED
definiuje wartość właściwości type
obiektu zdarzenia added
.
To zdarzenie ma następujące właściwości:
Właściwość | Wartość |
---|---|
bubbles | true |
cancelable | false ; nie ma domyślnego zachowania, które można byłoby anulować. |
currentTarget | Obiekt przetwarzający aktywnie obiekt Event za pomocą detektora zdarzeń. |
target | Instancja klasy DisplayObject dodawana do listy wyświetlania. Obiekt target nie zawsze jest obiektem na liście wyświetlania, która zarejestrowała detektor zdarzeń. Właściwość currentTarget umożliwia uzyskanie dostępu do obiektu na liście wyświetlania, który obecnie przetwarza zdarzenie. |
Powiązane elementy interfejsu API
addedToStage | Zdarzenie |
flash.events.Event
właściwość Event.type =
flash.events.Event.ADDED_TO_STAGE
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9.0.28.0, Flash Lite 4 |
Dysponowana, gdy obiekt ekranowy jest dodawany do listy wyświetlania na scenie — albo bezpośrednio, albo wskutek dodania poddrzewa zawierającego obiekt ekranowy. Poniższe zdarzenie jest wyzwalane przez następujące metody: DisplayObjectContainer.addChild()
oraz DisplayObjectContainer.addChildAt()
.
Event.ADDED_TO_STAGE
definiuje wartość właściwości type
obiektu zdarzenia addedToStage
.
To zdarzenie ma następujące właściwości:
Właściwość | Wartość |
---|---|
bubbles | false |
cancelable | false ; nie ma domyślnego zachowania, które można byłoby anulować. |
currentTarget | Obiekt przetwarzający aktywnie obiekt Event za pomocą detektora zdarzeń. |
target | Wystąpienie klasy DisplayObject dodawane do listy wyświetlania stołu montażowego — bezpośrednio lub przez dodanie poddrzewa zawierającego wystąpienie klasy DisplayObject. W przypadku bezpośredniego dodawania instancji klasy DisplayObject opisywane zdarzenie jest poprzedzone zdarzeniem added . |
Powiązane elementy interfejsu API
enterFrame | Zdarzenie |
flash.events.Event
właściwość Event.type =
flash.events.Event.ENTER_FRAME
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
[zdarzenie broadcast] Wywoływane, gdy głowica odtwarzania przechodzi do nowej klatki. Jeśli głowica się nie porusza lub jeśli jest tylko jedna klatka, zdarzenie to jest wywoływane w trybie ciągłym odpowiednio do liczby klatek na sekundę. Jest to zdarzenie broadcast, co oznacza, że zostanie ono wywołane przez wszystkie obiekty wyświetlane, których detektor jest zarejestrowany dla tego zdarzenia.
StałaEvent.ENTER_FRAME
definiuje wartość właściwości type
obiektu zdarzenia enterFrame
.
Uwaga: To zdarzenie nie zawiera fazy „przechwytywania” ani „propagacji”, co oznacza, że detektory zdarzeń muszą być dodawane bezpośrednio do każdego potencjalnego obiektu docelowego, niezależnie od tego, czy obiekt znajduje się na liście wyświetlania.
To zdarzenie ma następujące właściwości:
Właściwość | Wartość |
---|---|
bubbles | false |
cancelable | false ; nie ma domyślnego zachowania, które można byłoby anulować. |
currentTarget | Obiekt przetwarzający aktywnie obiekt Event za pomocą detektora zdarzeń. |
target | Dowolna instancja klasy DisplayObject z detektorem zarejestrowanym dla zdarzenia enterFrame . |
exitFrame | Zdarzenie |
flash.events.Event
właściwość Event.type =
flash.events.Event.EXIT_FRAME
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | Flash Player 10, AIR 2, Flash Lite 4 |
[zdarzenie broadcast] Wywoływane, gdy głowica odtwarzania kończy odtwarzanie bieżącej klatki. Wszystkie skrypty klatek zostały uruchomione. Jeśli głowica się nie porusza lub jeśli jest tylko jedna klatka, zdarzenie to jest wywoływane w trybie ciągłym odpowiednio do liczby klatek na sekundę. Jest to zdarzenie broadcast, co oznacza, że zostanie ono wywołane przez wszystkie obiekty wyświetlane, których detektor jest zarejestrowany dla tego zdarzenia.
StałaEvent.EXIT_FRAME
definiuje wartość właściwości type
obiektu zdarzenia exitFrame
.
Uwaga: To zdarzenie nie zawiera fazy „przechwytywania” ani „propagacji”, co oznacza, że detektory zdarzeń muszą być dodawane bezpośrednio do każdego potencjalnego obiektu docelowego, niezależnie od tego, czy obiekt znajduje się na liście wyświetlania.
To zdarzenie ma następujące właściwości:
Właściwość | Wartość |
---|---|
bubbles | false |
cancelable | false ; nie ma domyślnego zachowania, które można byłoby anulować. |
currentTarget | Obiekt przetwarzający aktywnie obiekt Event za pomocą detektora zdarzeń. |
target | Dowolna instancja klasy DisplayObject z detektorem zarejestrowanym dla zdarzenia enterFrame . |
frameConstructed | Zdarzenie |
flash.events.Event
właściwość Event.type =
flash.events.Event.FRAME_CONSTRUCTED
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | Flash Player 10, AIR 2, Flash Lite 4 |
[zdarzenie broadcast] Wywoływane po zadziałaniu konstruktorów obiektów wyświetlanych klatek, ale przed działaniem skryptów klatek. Jeśli głowica się nie porusza lub jeśli jest tylko jedna klatka, zdarzenie to jest wywoływane w trybie ciągłym odpowiednio do liczby klatek na sekundę. Jest to zdarzenie broadcast, co oznacza, że zostanie ono wywołane przez wszystkie obiekty wyświetlane, których detektor jest zarejestrowany dla tego zdarzenia.
StałaEvent.FRAME_CONSTRUCTED
definiuje wartość właściwości type
obiektu zdarzenia frameConstructed
.
Uwaga: To zdarzenie nie zawiera fazy „przechwytywania” ani „propagacji”, co oznacza, że detektory zdarzeń muszą być dodawane bezpośrednio do każdego potencjalnego obiektu docelowego, niezależnie od tego, czy obiekt znajduje się na liście wyświetlania.
To zdarzenie ma następujące właściwości:
Właściwość | Wartość |
---|---|
bubbles | false |
cancelable | false ; nie ma domyślnego zachowania, które można byłoby anulować. |
currentTarget | Obiekt przetwarzający aktywnie obiekt Event za pomocą detektora zdarzeń. |
target | Dowolna instancja klasy DisplayObject z detektorem zarejestrowanym dla zdarzenia frameConstructed . |
removed | Zdarzenie |
flash.events.Event
właściwość Event.type =
flash.events.Event.REMOVED
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Dysponowana, gdy obiekt ekranowy ma być usunięty z listy wyświetlania. Zdarzenie to jest renderowane przez dwie metody klasy DisplayObjectContainer: removeChild()
oraz removeChildAt()
.
Zdarzenie to jest również generowane, gdy obiekt musi zostać usunięty w celu udostępnienia miejsca dla nowego obiektu, przez metody: addChild()
addChildAt()
oraz setChildIndex()
.
Event.REMOVED
definiuje wartość właściwości type
obiektu zdarzenia removed
.
To zdarzenie ma następujące właściwości:
Właściwość | Wartość |
---|---|
bubbles | true |
cancelable | false ; nie ma domyślnego zachowania, które można byłoby anulować. |
currentTarget | Obiekt przetwarzający aktywnie obiekt Event za pomocą detektora zdarzeń. |
target | Instancja klasy DisplayObject, która ma zostać usunięta z listy wyświetlania. Obiekt target nie zawsze jest obiektem na liście wyświetlania, która zarejestrowała detektor zdarzeń. Właściwość currentTarget umożliwia uzyskanie dostępu do obiektu na liście wyświetlania, który obecnie przetwarza zdarzenie. |
removedFromStage | Zdarzenie |
flash.events.Event
właściwość Event.type =
flash.events.Event.REMOVED_FROM_STAGE
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9.0.28.0, Flash Lite 4 |
Dysponowana, gdy obiekt ekranowy ma być usunięty z listy wyświetlania na scenie — albo bezpośrednio, albo wskutek usunięcia poddrzewa zawierającego obiekt ekranowy. Zdarzenie to jest renderowane przez dwie metody klasy DisplayObjectContainer: removeChild()
oraz removeChildAt()
.
Zdarzenie to jest również generowane, gdy obiekt musi zostać usunięty w celu udostępnienia miejsca dla nowego obiektu, przez metody: addChild()
addChildAt()
oraz setChildIndex()
.
Event.REMOVED_FROM_STAGE
definiuje wartość właściwości type
obiektu zdarzenia removedFromStage
.
To zdarzenie ma następujące właściwości:
Właściwość | Wartość |
---|---|
bubbles | false |
cancelable | false ; nie ma domyślnego zachowania, które można byłoby anulować. |
currentTarget | Obiekt przetwarzający aktywnie obiekt Event za pomocą detektora zdarzeń. |
target | Wystąpienie klasy DisplayObject usuwane z listy wyświetlania stołu montażowego — bezpośrednio lub przez usunięcie poddrzewa zawierającego wystąpienie klasy DisplayObject. W przypadku bezpośredniego usuwania instancji klasy DisplayObject opisywane zdarzenie jest poprzedzone zdarzeniem removed . |
render | Zdarzenie |
flash.events.Event
właściwość Event.type =
flash.events.Event.RENDER
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
[zdarzenie broadcast] Wywoływane, gdy lista wyświetlania ma być aktualizowana lub renderowana. Zdarzenie to jest ostatnią okazją dla obiektów nasłuchujących to zdarzenie w celu dokonania zmian przed renderowaniem listy wyświetlania. Za każdym razem, gdy ma być wywołane zdarzenie render
, należy wywołać metodę invalidate()
. Zdarzenia render
są wywoływane do obiektu tylko przy obustronnym zaufaniu między tym obiektem, a obiektem wywołującym metodę Stage.invalidate()
. Jest to zdarzenie broadcast, co oznacza, że jest ono wywoływane przez wszystkie obiekty ekranowe, których detektor jest zarejestrowany dla tego zdarzenia.
Uwaga: To zdarzenie nie jest wywoływane, gdy treść nie jest renderowana. Taka sytuacja występuje, gdy treść jest zminimalizowana lub zasłonięta.
StałaEvent.RENDER
definiuje wartość właściwości type
obiektu zdarzenia render
.
Uwaga: To zdarzenie nie zawiera fazy „przechwytywania” ani „propagacji”, co oznacza, że detektory zdarzeń muszą być dodawane bezpośrednio do każdego potencjalnego obiektu docelowego, niezależnie od tego, czy obiekt znajduje się na liście wyświetlania.
To zdarzenie ma następujące właściwości:
Właściwość | Wartość |
---|---|
bubbles | false |
cancelable | false ; nie można anulować zachowania domyślnego. |
currentTarget | Obiekt przetwarzający aktywnie obiekt Event za pomocą detektora zdarzeń. |
target | Dowolna instancja klasy DisplayObject z detektorem zarejestrowanym dla zdarzenia render . |
DisplayObjectExample
w celu rysowania pomarańczowego kwadratu w rogu obiektu Stage a następnie odpowiedzi na zdarzenia przez wyświetlanie tekstu informacyjnego dla każdego zdarzenia. Zadanie to jest realizowane przez wykonanie następujących kroków:
- Właściwości klasy są zadeklarowane dla koloru i rozmiaru kwadratu.
- Konstruktor wywołuje metodę
draw()
, która rysuje pomarańczowy kwadrat na obiekcie Stage na domyślnych współrzędnych x = 0, y = 0. - Poniższe metody detektora zdarzeń są dołączone do kwadratu:
- Metoda
addedHandler()
nasłuchuje zdarzeniaadded
, wywołane w momencie dodania kwadratu do listy wyświetlania. - Metoda
enterFrameHandler()
nasłuchuje zdarzeniaenterFrame
, które nie mają znaczenia w tym przykładzie. - Metoda
removedHandler()
nasłuchuje zdarzeniaremoved
, wywołane w momencie usunięcia kwadratu z listy wyświetlania, co dzieje się przy kliknięciu kwadratu. - Metoda
clickHandler()
nasłuchuje zdarzeniaclick
, wywoływane gdy pomarańczowy kwadrat jest kliknięty. - Metoda
renderHandler()
nasłuchuje zdarzeniarender
po zaktualizowaniu listy wyświetlania.
- Metoda
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); } }
Tue Jun 12 2018, 12:06 PM Z