|
Składnik ScrollPane umożliwia wyświetlanie treści zbyt dużej, by zmieściła się w obszarze, do którego jest ładowana. Przykład: jeśli istnieje duży obraz i dostępna jest tylko mała ilość miejsca w aplikacji, można załadować obraz do składnika ScrollPane. Składnik ScrollPane akceptuje klipy filmowe oraz pliki w formatach JPEG, PNG, GIF i SWF.
Składniki, takie jak ScrollPane i UILoader zawierają zdarzenia
complete
, dzięki którym możliwe jest określenie, kiedy treść została załadowana. Jeśli wymagane jest ustawienie właściwości treści składnika ScrollPane lub UILoader, należy wykryć zdarzenie
complete
i ustawić właściwość w module obsługi zdarzeń. Przykład: poniższy kod tworzy detektor zdarzeń dla zdarzenia Event.Zdarzenie
COMPLETE
oraz moduł obsługi zdarzeń, który ustawia dla właściwości
alpha
treści składnika ScrollPane wartość .5:
function spComplete(event:Event):void{
aSp.content.alpha = .5;
}
aSp.addEventListener(Event.COMPLETE, spComplete);
Jeśli położenie zostanie określone podczas ładowania treści do składnika ScrollPane, należy określić je (współrzędne X i Y) jako 0, 0. Przykład: poniższy kod ładuje składnik ScrollPane poprawnie, ponieważ pole zostaje narysowane w położeniu 0, 0:
var box:MovieClip = new MovieClip();
box.graphics.beginFill(0xFF0000, 1);
box.graphics.drawRect(0, 0, 150, 300);
box.graphics.endFill();
aSp.source = box; //load ScrollPane
Więcej informacji zawiera opis klasy ScrollPane w
Skorowidzu języka ActionScript 3.0
dla programu Flash Professional
.
Posługiwanie się składnikiem ScrollPane
Składnik ScrollPane może być włączony lub wyłączony. W stanie disabled składnik ScrollPane nie odbiera danych wprowadzanych za pomocą klawiatury lub myszy. Użytkownik może korzystać z następujących klawiszy w celu sterowania aktywnym składnikiem ScrollPane:
|
Klucz
|
Opis
|
|
Strzałka w dół
|
Treść przesuwa się w górę o jedną linię przewijania w pionie.
|
|
Strzałka w górę
|
Treść przesuwa się w dół o jedną linię przewijania w pionie.
|
|
End
|
Treść przesuwa się do dołu składnika ScrollPane.
|
|
Strzałka w lewo
|
Treść przesuwa się w prawo o jedną linię przewijania w poziomie.
|
|
Strzałka w prawo
|
Treść przesuwa się w lewo o jedną linię przewijania w poziomie.
|
|
Home
|
Treść przesuwa się do góry składnika ScrollPane.
|
|
End
|
Treść przesuwa się do dołu składnika ScrollPane.
|
|
PageDown
|
Treść przesuwa się w górę o jedną stronę przewijania w pionie.
|
|
PageUp
|
Treść przesuwa się w dół o jedną stronę przewijania w pionie.
|
Użytkownik może użyć myszy w celu posługiwania się składnikiem ScrollPane w zakresie jego treści oraz w obszarze pasków przewijania w poziomie i w pionie. Użytkownik może przeciągać treść za pomocą myszy, gdy dla właściwości
scrollDrag
ustawiona jest wartość
true
. Jeśli na obszarze treści widoczny jest wskaźnik w postaci dłoni, oznacza to, że użytkownik może przeciągać treść. W tym przypadku — inaczej niż w większości elementów sterowania — operacja rozpoczyna się po naciśnięciu przycisku myszy i jest kontynuowana do jego zwolnienia. Jeśli treść zawiera poprawne punkty tabulacji, dla
scrollDrag
należy ustawić wartość false. W przeciwnym wypadku każde naciśnięcie przycisku myszy w obrębie treści będzie powodowało przeciąganie z przewijaniem.
Parametry składnika ScrollPane
Dla każdej instancji składnika ScrollPane można w Inspektorze właściwości lub w Inspektorze składników ustawić następujące parametry:
horizontalLineScrollSize
,
horizontalPageScrollSize
,
horizontalScrollPolicy, scrollDrag, source, verticalLineScrollSize, verticalPageScrollSize
i
verticalScrollPolicy
. Dla każdego z tych parametrów istnieje odpowiednia właściwość ActionScript o takiej samej nazwie. Więcej informacji na temat możliwych wartości tych parametrów zawiera opis klasy ScrollPane w
Skorowidzu języka ActionScript 3.0
dla programu Flash Professional
.
Istnieje możliwość napisania kodu ActionScript w celu kontrolowania tych i innych opcji dla składnika ScrollPane z wykorzystaniem jego właściwości, metod i zdarzeń.
Tworzenie aplikacji ze składnikiem ScrollPane
Poniższa procedura wyjaśnia jak podczas tworzenia dodać składnik ScrollPane do aplikacji. W tym przykładzie składnik ScrollPane ładuje obraz ze ścieżki określonej przez właściwość
source
.
-
Utwórz nowy dokument Flash (ActionScript 3.0).
-
Przeciągnij składnik ScrollPane z panelu Składniki na stół montażowy i nadaj nazwę instancji
aSp
.
-
Otwórz panel Operacje, zaznacz klatkę nr 1 na głównej osi czasu i wprowadź następujący kod ActionScript:
import fl.events.ScrollEvent;
aSp.setSize(300, 200);
function scrollListener(event:ScrollEvent):void {
trace("horizontalScPosition: " + aSp.horizontalScrollPosition +
", verticalScrollPosition = " + aSp.verticalScrollPosition);
};
aSp.addEventListener(ScrollEvent.SCROLL, scrollListener);
function completeListener(event:Event):void {
trace(event.target.source + " has completed loading.");
};
// Add listener.
aSp.addEventListener(Event.COMPLETE, completeListener);
aSp.source = "http://www.helpexamples.com/flash/images/image1.jpg";
-
Wybierz polecenia Sterowanie > Testuj film, aby uruchomić aplikację.
Tworzenie instancji składnika ScrollPane przy użyciu kodu ActionScript
Przykład prezentuje tworzenie instancji ScrollPane, określanie jej rozmiaru oraz ładowanie do niej obrazu za pomocą właściwości
source
. W przykładzie tworzone są również dwa detektory. Pierwszy z nich wykrywa zdarzenie
scroll
i wyświetla położenie obrazu, gdy użytkownik przewija w poziomie i w pionie. Drugi wykrywa zdarzenie
complete
, a po wykryciu wyświetla na panelu Wyjście komunikat z informacją o zakończeniu ładowania obrazu.
W tym przykładzie przedstawiono tworzenie instancji ScrollPane za pomocą kodu ActionScript oraz umieszczanie w instancji obiektu MovieClip (czerwone pole) o szerokości 150 pikseli i wysokości 300 pikseli.
-
Utwórz nowy dokument Flash (ActionScript 3.0).
-
Przeciągnij składnik ScrollPane z panelu Składniki do panelu Biblioteka.
-
Przeciągnij składnik DataGrid z panelu Składniki do panelu Biblioteka.
-
Otwórz panel Operacje, zaznacz klatkę nr 1 na głównej osi czasu i wprowadź następujący kod ActionScript:
import fl.containers.ScrollPane;
import fl.controls.ScrollPolicy;
import fl.controls.DataGrid;
import fl.data.DataProvider;
var aSp:ScrollPane = new ScrollPane();
var aBox:MovieClip = new MovieClip();
drawBox(aBox, 0xFF0000); //draw a red box
aSp.source = aBox;
aSp.setSize(150, 200);
aSp.move(100, 100);
addChild(aSp);
function drawBox(box:MovieClip,color:uint):void {
box.graphics.beginFill(color, 1);
box.graphics.drawRect(0, 0, 150, 300);
box.graphics.endFill();
}
-
Wybierz polecenia Sterowanie > Testuj film, aby uruchomić aplikację.
|
|
|