to get the file
Transkrypt
to get the file
Systemy multimedialne Instrukcja 2 Komponenty do tworzenia interfejsu użytkownika w środowisku Flash Opracował: mgr inż. Karol Wieczorek 1. Wprowadzenie Środowisko Flasha oprócz przybornika z narzędziami udostępnia wiele gotowych do wykorzystania komponentów, które programista może wykorzystać przy tworzeniu interfejsu użytkownika. Postaram się omówić kilka z nich. Aby otworzyć zakładkę z komponentami, musimy w menu wybrać opcje: Window->Components, lub użyć skrótu klawiszowego Ctrl+F7. Do zarządzania parametrami komponentu warto korzystać z tzw. Inspektora komponentów. Uaktywniamy go przez wybranie: Window -> Component Inspektor, lub skrót Alt+F7. Mamy do wyboru kilka pakietów z komponentami, ale nas będzie najbardziej interesował pakiet User Interface. Kiedy rozwiniemy listę widzimy następujące pole: Z tej zakładki możemy już metodą Drag&Drop tworzyć elementy na scenie. Każdej instancji komponentu należy nadać odrębną nazwę (zakładka Properties, pole Instance Name), aby móc ją później oprogramować w języku Action Script. 2. Słów kilka o najważniejszych komponentach a) Button Jest to komponent spełniający rolę przycisku. Jego głównym zadaniem jest reagować na wciśnięcie go. Wtedy ten komponent generuje zdarzenie on_Press. Wiedząc o tym możemy odpowiednio zaprogramować generowane zdarzenie przycisku. Zdarzeń na które reaguje Button jest więcej (puszczenie przycisku, przeciąganie, zdarzenie kiedy kursor jest nad przyciskiem itd.), ale można o nich poczytać w dokumentacji lub w zakładce Help. Najważniejszym z parametrów, jakie można nadać temu komponentowi jest etykieta, którą pojawia się na danym przycisku. Daną etykietę można programowo zmieniać, co pokaże przykład podany w dalszej części instrukcji. b) CheckBox Ten komponent również generuje zdarzenia, które można oprogramować, ale jego główną funkcją jest umożliwianie użytkownikowi dokonywania tzw. wielokrotnego wyboru. Sprawdzanie pól które zostały wybrane może być wykonane po np.: wciśnięciu jakiegoś przycisku. W parametrach możemy ustawić: etykietę, umiejscowienie etykiety względem pola, oraz domyślny stan komponentu (pole selected). Sprawdzanie dokonujemy za pomocą następującej instrukcji: if (nazwa.selected==true){ Instrukcje; } c) RadioButton Komponent ten jest odpowiednikiem pola jednokrotnego wyboru. Posiada następujące parametry: Data – wartość, jaką zwraca parametr RadioGroup, po wybraniu danego pola, groupName – nazwa grupy, do której dane pole należy kolejne są analogiczne do pól CheckBox Przy sprawdzaniu można szukać które pole jest wciśnięte, albo badać dane, jakie zwraca grupa zrzeszająca dane pola RadioButton: nazwaGrupy.selectedData; d) ComboBox Komponent ten jest listą rozwijalną. Korzystamy z niego w taki sposób, że w parametrze data wprowadzamy dane, jakie będą zwracane po wybraniu z listy odpowiedniej etykiety label, które również należy wprowadzić. Najwygodniej uczynić to za pomocą inspektora komponentów. Aby sprawdzić programowo które dane zostaną zwrócone po wyborze użytkownika, używamy instrukcji: nazwa.value; Pozostałe parametry to opcja editable, która pozwala użytkownikowi wpisywać dane do listy, lub tego zabrania. Ostatni z parametrów to rowCount, który określa ile max wierszy ma być widoczne po rozwinięciu listy. e) Label Komponent ten jest etykietą, którą można edytować programowo w różnych sytuacjach. Jako parametry możemy włączyć lub wyłączyć obsługę znaczników HTML, wpisać domyślny napis, oraz włączyć lub wyłączyć opcję automatycznego doboru rozmiaru. f) TextInput Jest to pole tekstowe z ramką, służące do pobierania danych od użytkownika, lub do wyświetlania tekstów1. W parametrach dostępne są opcje włączenia lub wyłączenia edycji pola przez użytkownika, wybór tekstu, czy ma być wyświetlany jawnie, czy tez ma być to pole tajne z hasłem (zamiast liter mamy gwiazdki), oraz możemy wpisać domyślnie wyświetlany tekst. Pobieranie danych z pola realizuje instrukcja: nazwa.text; g) TextArea Jest to „większy” brat komponentu TextInput, z tą różnicą, że może przyjmować wiele linijek tekstu (opcja ustawiana w parametrach), oraz może wyświetlać tekst formatowany za pomocą znaczników HTML co również można włączyć, bądź wyłączyć. 3. Podstawy języka ActionScript W niniejszym podpunkcie opiszę wyłącznie potrzebne konstrukcje i wskazówki, aby móc wykonać zadanie zawarte w niniejszej instrukcji. Kod języka Action Script wpisujemy najlepiej w osobnej, pustej wartwie na listwie czasowej, która jest umieszczona najwyżej. Kod wpisujemy zaznaczając pustą klatkę na podanej warstwie w zakładce Actions. Aby oprogramować zdarzenie generowane przez komponent, należy skorzystać z następującego wzoru: Nazwa.onEvent = function(){ kod instrukcji; } 1 Można do tego celu również wykorzystać pole tekstowe dostępne w przyborniku Gdzie nazwa jest nazwą instancji obiektu, a onEvent jest zdarzeniem, które chcemy oprogramować np.: onPress, czy onChange. Listę obsługiwanych zdarzeń, metod, oraz parametrów można znaleźć w dokumentacji danego komponentu w zakładce Actions. Instrukcje warunkowe, pętle itp. wyglądają podobnie jak w języku C. Do pól obiektów odwołujemy się za pomocą operatora: „.” (kropki). Przykładowy kod w języku Action Script może wyglądać tak: guzik_btn.onRelease = function(){ if(check_chb.selected==true){ guzik_btn.label=pole_txt.text; } else { guzik_btn.label=”Nie wybrano”; } } Aby zobaczyć działanie powyższego kodu należy: Na scenie utworzyć instancje komponentów Button oraz CheckBox, oraz TextInput. Następnie należy nadać instancjom nazwy (zakładka Properties) odpowiednio guzik_btn, oraz check_chb i pole_txt. Następnie dodajemy na listwie czasowej nową warstwę i nadajemy jej nazwę np.: Action. Należy się upewnić, że dana warstwa jest na samej górze! Następnie zaznaczamy 1 klatkę warstwy Action, i w zakładce Actions wpisujemy powyższy kod. Możemy już uruchomić plik swf, poprzez skrót Ctrl+Enter i cieszyć się z działania programu ;) . 4. Zadania samodzielne a) Należy wykonać interfejs pobierający od użytkownika dane osobowe, a następnie po zatwierdzeniu danych przyciskiem, wyświetlimy je w komponencie TextArea. Założenia: Imię, nazwisko, datę urodzenia pobieramy za pomocą komponentów TextInput, Płeć użytkownik wybiera za pomocą komponentów RadioButton, Zainteresowania użytkownik wybiera za pomocą pól CheckBox, Zawód użytkownik wybiera spośród elementów listy ComboBox, Dane użytkownik zatwierdza przyciskiem, a następnie dane te pojawiają się wewnątrz komponentu TextArea. b) Należy zmodyfikować poprzedni projekt, aby zatwierdzanie danych było automatyczne (poprzez zdarzenia komponentów), a przez to dane w komponencie TextArea powinny być uzupełniane „na bieżąco”.