Pakiet | flash.display |
Klasa | public final class Screen |
Dziedziczenie | Screen EventDispatcher Object |
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0 |
Ekrany to niezależne obszary pulpitu wewnątrz większego "wirtualnego pulpitu". Źródłem wirtualnego pulpitu jest górny lewy róg głównego ekranu systemu operacyjnego. W związku z tym współrzędne granic pojedynczego ekranu wyświetlania mogą być ujemne. Mogą również istnieć obszary wirtualnego pulpitu, które nie znajdują się wewnątrz żadnego z ekranów wyświetlania.
Klasa Screen zawiera statycznych członków klasy umożliwiających uzyskiwanie dostępu do obiektów ekranowych oraz członków instancji umożliwiających uzyskiwanie dostępu do właściwości pojedynczego ekranu. Informacje z klasy Screen nie powinny być buforowane, ponieważ mogą zostać zmienione przez użytkownika w dowolnym momencie.
Należy zauważyć, iż nie koniecznie musi występować korespondencja jeden do jednego pomiędzy ekranami oraz fizycznymi monitorami podłączonymi do komputera. Przykładowo dwa monitory mogą wyświetlać ten sam ekran.
Nie można bezpośrednio utworzyć instancji klasy Screen. Wywołania konstruktora new Screen()
powodują wyjątek ArgumentError
.
Właściwość | Zdefiniowane przez | ||
---|---|---|---|
bounds : Rectangle [tylko do odczytu]
Ograniczenia tego ekranu. | Screen | ||
colorDepth : int [tylko do odczytu]
Głębia barw ekranu (wyrażona jako liczba bitów). | Screen | ||
constructor : Object
Odwołanie do obiektu klasy lub funkcji konstruktora, dotyczące danej instancji obiektu. | Object | ||
mainScreen : Screen [statyczny] [tylko do odczytu]
Główny wyświetlacz. | Screen | ||
mode : ScreenMode
Bieżący tryb ekranu obiektu Screen. | Screen | ||
modes : Array [tylko do odczytu]
Tablica obiektów ScreenMode obiektu Screen. | Screen | ||
screens : Array [statyczny] [tylko do odczytu]
Tablica aktualnie dostępnych ekranów. | Screen | ||
visibleBounds : Rectangle [tylko do odczytu]
Granice obszaru ekranu, w którym mogą być widoczne okna. | Screen |
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 | ||
[statyczny]
Zwraca (prawdopodobnie pusty) zestaw ekranów, które przecinają udostępniony prostokąt. | Screen | ||
Sprawdza, czy obiekt EventDispatcher zawiera jakiekolwiek detektory zarejestrowane dla konkretnego typu zdarzeń. | EventDispatcher | ||
Wskazuje, czy dla obiektu zdefiniowano określoną właściwość. | Object | ||
Wskazuje, czy instancja klasy Object należy do łańcucha prototypów obiektu określonego jako parametr. | Object | ||
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 |
bounds | właściwość |
bounds:Rectangle
[tylko do odczytu] Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0 |
Ograniczenia tego ekranu.
Lokalizacja ekranu jest określana względem pulpitu wirtualnego.
W systemach Linux, w których stosowane są pewne specyficzne menedżery okien, ta właściwość zwraca granice pulpitu, a nie widoczne granice ekranu.
Implementacja
public function get bounds():Rectangle
Przykład ( Sposób korzystania z tego przykładu )
import flash.display.Screen; import flash.geom.Rectangle; var mainScreen:Screen = Screen.mainScreen; var screenBounds:Rectangle = mainScreen.bounds;
colorDepth | właściwość |
colorDepth:int
[tylko do odczytu] Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0 |
Głębia barw ekranu (wyrażona jako liczba bitów).
Implementacja
public function get colorDepth():int
Przykład ( Sposób korzystania z tego przykładu )
var mainScreen:Screen = Screen.mainScreen; var colors:uint = mainScreen.colorDepth;
mainScreen | właściwość |
mainScreen:Screen
[tylko do odczytu] Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0 |
Główny wyświetlacz.
Implementacja
public static function get mainScreen():Screen
Przykład ( Sposób korzystania z tego przykładu )
var primaryScreen:Screen = Screen.mainScreen;
mode | właściwość |
mode:ScreenMode
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 29.0 |
Bieżący tryb ekranu obiektu Screen. Właściwość mode
wskazuje bieżący tryb ekranu określonego urządzenia Screen.
Implementacja
public function get mode():ScreenMode
public function set mode(value:ScreenMode):void
modes | właściwość |
screens | właściwość |
screens:Array
[tylko do odczytu] Wersja języka: | ActionScript 3. |
Wersje środowiska wykonawczego: | AIR 1.0 |
Tablica aktualnie dostępnych ekranów.
Modyfikowanie zwracanej tablicy nie ma wpływu na dostępne ekrany.
Implementacja
public static function get screens():Array
Przykład ( Sposób korzystania z tego przykładu )
var screenArray:Array = Screen.screens;
visibleBounds | właściwość |
visibleBounds:Rectangle
[tylko do odczytu] Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0 |
Granice obszaru ekranu, w którym mogą być widoczne okna.
Obszar ekranu określony przez właściwość visibleBounds
nie obejmuje paska zadań (i innych zadokowanych pasków pulpitu) w systemie Windows ani paska menu i — w zależności od ustawień systemowych — Docku w systemie Mac OS X. W niektórych konfiguracjach systemu Linux nie jest możliwe określenie granic obszaru widoczności okna. W takich przypadkach we właściwości visibleBounds
zwracana jest ta sama wartość, co we właściwości screenBounds
.
Implementacja
public function get visibleBounds():Rectangle
Przykład ( Sposób korzystania z tego przykładu )
import flash.display.Screen; import flash.geom.Rectangle; var mainScreen:Screen = Screen.mainScreen; var screenBounds:Rectangle = mainScreen.visibleBounds;
getScreensForRectangle | () | metoda |
public static function getScreensForRectangle(rect:Rectangle):Array
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0 |
Zwraca (prawdopodobnie pusty) zestaw ekranów, które przecinają udostępniony prostokąt.
Parametry
rect:Rectangle — Prostokąt o współrzędnych względem początku wirtualnego pulpitu, który jest lewym górnym rogiem ekranu głównego.
|
Array — Tablica obiektów Screen zawierająca ekrany, które zawierają wszystkie części obszaru zdefiniowanego przez parametr rect .
|
Przykład ( Sposób korzystania z tego przykładu )
import flash.display.Screen; import flash.geom.Rectangle; var rect:Rectangle = new Rectangle(-200, 100, 1000, 600); var intersectedScreens:Array = Screen.getScreensForRectangle(rect);
- Reagowanie na zdarzenia klawiatury w celu określenia strony ekranu, do której należy zadokować okno.
- Odczyt statycznej metody
getScreensForRectangle()
klasy Screen w celu pobrania obiektu Screen reprezentującego ekran, na którym obecnie jest wyświetlane okno. - Ustawienie granic okna na podstawie wymiarów ekranu.
- Ponowne narysowanie zawartości okna z uwzględnieniem jego nowych wymiarów.
Należy zwrócić uwagę, że ta klasa jest przeznaczona do wykorzystania w charakterze klasy głównej aplikacji AIR z ustawieniami SystemChrome="none"
i transparent="true"
. Aby użyć tej klasy w oknie z karnacją systemową, należy przy obliczaniu położenia i rozmiaru okna uwzględnić grubość karnacji i minimalną szerokość okna.
package { import flash.display.Screen; import flash.display.Sprite; import flash.display.StageAlign; import flash.display.StageScaleMode; import flash.events.KeyboardEvent; import flash.geom.Rectangle; import flash.ui.Keyboard; public class DockingWindow extends Sprite { private const dockedWidth:uint = 80; private const dockedHeight:uint = 80; public function DockingWindow():void{ stage.align = StageAlign.TOP_LEFT; stage.scaleMode = StageScaleMode.NO_SCALE; stage.addEventListener(KeyboardEvent.KEY_DOWN,onKey); dockLeft(); } private function onKey(event:KeyboardEvent):void{ switch(event.keyCode){ case Keyboard.LEFT : dockLeft(); break; case Keyboard.RIGHT : dockRight(); break; case Keyboard.UP : dockTop(); break; case Keyboard.DOWN : dockBottom(); break; case Keyboard.SPACE : stage.nativeWindow.close(); } } public function dockLeft():void{ var screen:Screen = getCurrentScreen(); stage.nativeWindow.x = screen.visibleBounds.left; stage.nativeWindow.y = screen.visibleBounds.top; stage.nativeWindow.height = screen.visibleBounds.height; stage.stageWidth = dockedWidth; drawContent(); } public function dockRight():void{ var screen:Screen = getCurrentScreen(); stage.nativeWindow.x = screen.visibleBounds.width - dockedWidth; stage.nativeWindow.y = screen.visibleBounds.top; stage.stageWidth = dockedWidth; stage.nativeWindow.height = screen.visibleBounds.height; drawContent(); } public function dockTop():void{ var screen:Screen = getCurrentScreen(); stage.nativeWindow.x = screen.visibleBounds.left; stage.nativeWindow.y = screen.visibleBounds.top; stage.nativeWindow.width = screen.visibleBounds.width; stage.stageHeight = dockedHeight; drawContent(); } public function dockBottom():void{ var screen:Screen = getCurrentScreen(); stage.nativeWindow.x = screen.visibleBounds.left; stage.nativeWindow.y = screen.visibleBounds.height - dockedHeight; stage.nativeWindow.width = screen.visibleBounds.width; stage.stageHeight = dockedHeight; drawContent(); } private function getCurrentScreen():Screen{ return Screen.getScreensForRectangle(stage.nativeWindow.bounds)[0]; } private function drawContent():void{ const size:int = 60; const pad:int = 10; var numHSquares:int = Math.floor(stage.stageWidth/(size + pad)); var numVSquares:int = Math.floor(stage.stageHeight/(size + pad)); with (graphics){ clear(); lineStyle(1); beginFill(0x3462d5,.7); for(var i:int = 0; i < numHSquares; i++){ for(var j:int = 0; j < numVSquares; j++){ drawRect((i * (size + pad)) + pad, (j * (size + pad)) + pad, size, size); } } endFill(); } } } }
Tue Jun 12 2018, 12:06 PM Z