Pierwsza aplikacja we Flex

background image

FLEX

12

ADOBE FLEX

www.sdjournal.org

O

bszar zastosowań Flash zaskoczył sa-
mych producentów. Narzędzie prze-
znaczone do tworzenia multimedial-

nej animacji opartej na wektorach stało się jednym
z wiodących rozwiązań wykorzystywanych do
projektowania witryn internetowych.

Model budowy projektów w oparciu o listwę

czasową i sceny, stworzony z myślą o animacji, zo-
stał zaadaptowany na potrzeby WWW. Często-
kroć budowa witryny wykonanej we Flash skła-
dała się ze scen umieszczonych na listwie czaso-
wej, po których użytkownik przesuwał się nawi-
gując po menu. W późniejszych wersjach Flash
wykorzystywano kilka niezależnych dokumen-
tów SWF ładowanych dynamicznie do główne-
go pliku SWF.

Tworzenie bardziej zaawansowanych aplikacji

w środowisku przeznaczonym pierwotnie do two-
rzenia animacji zaczęło być coraz trudniejsze i co-
raz mniej wydajne. Problem dostrzegli projektan-
ci z firmy Marcomedia (obecnie Adobe) i posta-
nowili, że należy postawić jasną granicę pomię-
dzy rozwiązaniami wspomagającymi tworzenie
dynamicznych aplikacji WWW, a rozwiązaniami
wspomagającymi pracę grafików. Owocem tej de-
cyzji stał się Flex.

Czy Flex jest następcą Flash? Odpowiedź brzmi:

nie. Jest to osobny produkt z rodziny Adobe, umoż-
liwiający budowę nowoczesnych projektów webo-

wych, wykorzystujących dynamicznie generowany
jednoekranowy interfejs użytkownika. Debiut pro-
duktu został poprzedzony wprowadzeniem nowe-
go terminu dla projektów Internetowych – RIA
(Rich Internet Application), co w dosłownym tłu-
maczeniu brzmi bogata aplikacja internetowa. Po-
jęcie oznacza nowoczesne dynamiczne aplikacje in-
ternetowe, w których wyeliminowano uciążliwość
standardowych technologii opartych o HTML.
Aplikacje wykonane w oparciu o założenia RIA
charakteryzują się jednoekranową prezentacją da-
nych (znaną z rozwiązań desktopowych), brakiem
konieczności przeładowywania zawartości ekranu
podczas pracy oraz przyjaznym, zawierającym ele-
menty multimedialne interfejsem.

Wprowadzenie

do technologii Flex

Obszarem zastosowania Flex jest wspomaganie
budowy aplikacji w zakresie tworzenia warstwy
prezentacji. Flex skoncentrowany jest na dostar-
czaniu rozwiązań wspierających budowę graficz-
nego interfejsu użytkownika. Pisząc o Flexie sto-
suję pewne uogólnienie dla kompleksowego roz-
wiązania, w skład którego wchodzi Flex Software
Development Kit (Flex SDK) oraz zaawansowa-
ne środowisko developerskie Flex Builder. SDK to
rozwiązanie darmowe, oferujące m.in. kompilator
działający z linii poleceń. Siłą SDK jest wykorzy-
stanie tandemu: języka MXML wraz z obiektowo
zorientowanym językiem ActionScript 3, dobrze
znanym wszystkim użytkownikom Flash.

MXML jest opartym o XML językiem cha-

rakteryzującym się stosunkowo prostą składnią.
Znacznikowa budowa szczególnie przypadnie do
gustu tradycyjnym webmasterom oraz początku-
jącym programistom. MXML umożliwia łatwe
generowanie i zarządzanie komponentami wizu-
alnymi, które można następnie wywoływać, zmie-
niać właściwości i dodawać efekty.

Pierwsza
aplikacja we Flex

Przełom w budowie dynamicznych witryn WWW to wprowadzenie technologii

Flash, która zniosła wiele ograniczeń i pozwoliła na rozwój prawdziwych

multimedialnych projektów Internetowych. Po jednorazowym załadowaniu

wykonanej witryny, użytkownik korzystał z pełni funkcjonalnego GUI

niewymagającego ponawiania zapytań do serwera i wysyłania odpowiedzi.

Dowiesz się...

• O technologii Flex i środowisku Flex Builder 3;
• Nauczysz się korzystać z klasy HttpService

oraz komponentu Datagrid.

• Samodzielnie wykonasz program wyświetlają-

cy dane z pliku XML.

Powinieneś wiedzieć...

• Wymagana jest podstawowa wiedza z zakresu

programowania oraz języka XML.

• Wiedza na temat aplikacji internetowych.

Poziom trudności

Rysunek 1. Zrzut ekranu po uruchomieniu Flex Builder 3

background image

FLEX

12

ADOBE FLEX

www.sdjournal.org

Język znacznikowy ma jednak pewne ograniczenia np. brak możliwo-

ści przetwarzania wprowadzonych danych, zapętlania, stosowania instruk-
cji warunkowych. Wszystkie wymienione braki wypełnia ActionScript, któ-
ry umożliwia stosowane dynamicznych interakcji pomiędzy komponenta-

Listing 1. Dzięki klasie HTTPService otrzymujemy dane z pliku XML
w postaci odpowiedzi HTTP

<

?xml version=

"1.0"

encoding=

"utf-8"

?

>

<

mx:Application xmlns:mx=

"http://www.adobe.com/2006/mxml"

ayout=

"absolute"

>

<

mx:HTTPService id=

"adresyDane"

url=”adresy.xml”

/

>

<

/mx:Application

>

Listing 2. Wywołanie przez creatioComplete funkcji send()

<

?xml version=

"1.0"

encoding

="utf-8"

?

>

<

mx:Application xmlns:mx=

"http://www.adobe.com/2006/mxml"

layout=

"absolute"

creationComplete=

"adr

esyDane.send()"

>

<

mx:HTTPService id=

"adresyDane"

url=

"adresy.xml"

/>

<

/mx:Application>

Listing 3. Kompontent DataGrid wyświetla dane znajdujące się
w obiekcie w tabeli

<

?xml version=

"1.0"

encoding=

"utf-8"

?

>

<

mx:Application xmlns:mx=

"http://www.adobe.com/2006/mxml"

layout=

"absolute"

creationComplete=

"adr

esyDane.send()"

>

<

mx:HTTPService id=

"adresy"

url=

"adresy.xml"

/

>

<

mx:DataGrid x=”50” y=”50” width=”850”/

>

<

/mx:Applicat

ion

>

Listing 4. Aby wyświetlić dane, musimy odwołać się do obiektu
lastResult

<

?xml version=

"1.0"

encoding=

"utf-8"

?

>

<

mx:Application xmlns:mx=

"http://www.adobe.com/2006/mxml”

layout="

absolute

" creationComplete="

adr

esyDane.send()"

>

<

mx:HTTPService id=

"adresyDane"

url=

"adresy.xml"

/

>

<

mx:DataGrid x=”50” y=”50” width=”850”

"{adresyDane.lastRes

ult.adresy.stock}"

/

>

<

/mx:Application

>

Listing 5. Dodajemy nagłówki w kolumnach

<

?xml version=

"1.0"

encoding=

"utf-8"

?

>

<

mx:Application xmlns:mx=

"http://www.adobe.com/2006/mxml"

layout=

"absolute"

creationComplete=

"adr

esyDane.send()"

>

<

mx:HTTPService id=

"adresyDane"

url=

" adresy.xml"

/

>

<

mx:DataGrid x=

"21"

y=

"10"

width=

"850” dataProvider="

{adresy

Dane.lastResult.adresy.osoba}"

>

<

mx:columns

>

<

mx:DataGridColumn dataField=

"imie"

headerText=

"Imię"

/

>

<

mx:DataGridColumn dataField=

"nazwisko"

headerText=

"Nazwisko"

/

>

<

mx:DataGridColumn dataField=

"adres"

headerText=

"Adres zamieszkania"

/>

<

mx:DataGridColumn dataField=

"tel"

headerText=

"Telefon kontaktowy"

/

>

<

/mx:columns

>

<

/mx:DataGrid

>

<

/mx:Application

>

background image

FLEX

14

ADOBE FLEX

mi, np. możemy przetworzyć dane wprowadzo-
ne przez użytkownika w polach tekstowych, wy-
konać obliczenia itd. Budowa Flex pozwala na bar-
dzo intuicyjne łączenie obu języków, dlatego praca
z dokumentem jest łatwa, a budowa projektu spój-
na. Kod źródłowy aplikacji wykonanych we Flex
przetwarzany jest do postaci kodu ActionScript,
a następnie kompilowany do postaci pliku SWF.
W skład SDK wchodzą również: biblioteka goto-
wych klas -

Flex Class Library

oraz

Flex Data

Service

umożliwiający łączenie warstwy prezen-

tacji z warstwą biznesową.

Flex Data Sevice

nie umożliwia bezpośred-

niego dostępu do baz danych. Pełni rolę pośredni-
ka umożliwiającego np. wywołanie na serwerze
kodu Java, .Net, PHP, ASP czy ColdFusion, powo-
dującego pobranie danych z bazy, a następnie ich
przekazanie do warstwy prezentacji.

Wraz z pojawieniem się technologii Flex, Adobe

zaoferowało dedykowane rozwiązanie wspomaga-
jące pracę developerów - Flex Builder. Produkt jest
zaawansowanym graficznym środowiskiem typu
RAD opartym o dobrze znany programistom Ja-
va - Eclipse.

Oprócz znanych z Eclipse narzędzi wspoma-

gających tworzenie aplikacji, Flex Builder oferu-
je graficzny edytor pozwalający na wizualną kre-
ację projektu. Wszystkie niezbędne komponenty
jak przyciski, pola tekstowe, elementy menu, moż-
na w prosty sposób przeciągnąć myszką i umieścić
w oknie projektu. Celowo pomijam opis samego
środowiska Flex Builder oraz opis procesu insta-
lacji. W poniższym opisie wykorzystałem najnow-
szą, trzecią odsłonę Flex Buildera. Do dzieła! Za-
czynamy przygodę z Flex!

Pierwszy projekt

Wspólnie wykonamy projekt prostej aplikacji, któ-
ra w przystępny sposób wyświetli nam zawartość
pliku adresy.xml. Celem wykonania projektu jest
zaprezentowanie składni języka MXML oraz pro-
stoty tworzenia aplikacji we Flex.

Aby utworzyć aplikację, musimy stworzyć no-

wy projekt, w którym Flex utworzy niezbędną
strukturę katalogów i plików. W tym celu wybie-
ramy menu File>New>Flex Project. W polu Pro-
jectname
wpisujemy nazwę naszego projektu np.
PierwszaAplikacjaFlex. Inne opcje pozostawiamy
z domyślnymi wartościami i klikamy przycisk Fi-
nish
. Po chwili nasz projekt zostanie załadowa-
ny. Jak widać na Rysunku 1. w panelu Flex Na-
vigator
, stworzona została odpowiednia struktu-
ra. W głównym oknie projektu znajdują się dwie
zakładki: Source, w której możemy edytować kod
źródłowy naszej aplikacji oraz Design, z której do-
stęp mamy do edytora graficznego. Skupimy się na
edycji kodu źródłowego, dlatego przejdźmy do za-
kładki Source.

Jak widać, po stworzeniu projektu, utworzony

został szkielet dokumentu z otwierającym i zamy-
kającym znacznikiem

Application

.

Istnieje kilka możliwości uzyskana dostępu

do zawartości pliku XML. Wykorzystamy kla-

HTTPService

, dzięki której Flex otrzyma da-

ne z pliku XML w postaci odpowiedzi HTTP.
W tym miejscu warto przypomnieć, że progra-
mowanie we Flex jest zorientowane obiektowo
i każdemu zdarzeniu przyporządkowana jest
odpowiednia akcja. Zdarzeniem może być np.
załadowanie aplikacji, kliknięcie przycisku lub
wpisanie tekstu.

Pomiędzy głównymi znacznikami aplikacji

wprowadzamy znacznik

<HTTPService>

opa-

trzony wymaganym atrybutem

id

, przyjmij-

my

id=”adresy”

. Kolejny atrybut

URL

definiu-

je ścieżkę dostępu do pliku oraz jego nazwę, po-
dajmy ścieżkę do katalogu gdzie umieściliśmy
nasz plik adresy.xml. Nasz kod powinien wyglą-
dać jak na Listingu 1.

Jak wspomniałem wcześniej, aby nastąpi-

ła akcja, musi wystąpić zdarzenie, które ją wy-
woła. Samo użycie klasy

HTTPService

do po-

łączenia z plikiem XML nie jest rozpoznawa-
ne jako zdarzenie, dlatego musimy zdefinio-
wać inne zdarzenie. Użycie

creatioComplete

w głównym znaczniku

Application

spowo-

duje, że fakt ukończenia ładowania aplikacji
zwrócony zostanie jako zdarzenie mogące wy-
wołać odpowiednią funkcję. W naszym przy-
padku użyjemy funkcji

send()

, która zosta-

nie wywołana w momencie załadowania apli-
kacji. Brzmi to nieco zawile, ale w istocie jest

bardzo proste i logiczne. Uzupełniamy nasz
kod źródłowy tak jak na Listingu 2. Wywołanie
funkcji

send()

przekazuje dane z pliku XML

do Flex w postaci obiektu, który zostaje ob-
służony przez klasę

HTTPService

. Po otrzyma-

niu danych

HTTPService

umieszcza je w obiek-

cie

lastResult

. Za każdym razem, kiedy dane

zostaną zmienione obiekt

lastResult

zostanie

zaktualizowany.

Nadszedł czas, aby wyświetlić pobrane da-

ne. W tym miejscu skorzystamy z komponen-
tu

DataGrid

, który wyświetla dane znajdują-

ce się w obiekcie w tabeli. Uzupełnijmy zatem
nasz kod, dodając komponent wraz z atrybuta-
mi definiującymi szerokość pola (

width

) oraz

pozycje w poziomie (

x

) i pionie (

y

) (Listing 3.).

Następnie musimy przekazać dane, które zo-
stały przechwycone przez

HTTPService

do pola

DataGrid

, w tym przypadku

HTTPService

peł-

ni rolę dostawcy danych, które chcemy wyświe-
tlić. Aby wyświetlić dane, musimy odwołać się
do obiektu

lastResult

(Listing 4.).

W zasadzie nasza aplikacja jest już gotowa,

dodajmy jednak przyjazne użytkownikowi na-
główki poszczególnych kolumn w tabeli wg Li-
stingu 5.

Nasz projekt jest gotowy. Pozostaje jedynie

skompilować i uruchomić program. W tym ce-
lu z menu wybieramy Run>Run PierwszaApli-
kacjaFlex
lub wciskamy skrót klawiszowy [Ctrl]
+
[F11]. Po chwili w oknie domyślnej przeglą-
darki ukaże się nasz program wyświetlający da-
ne adresowe z pliku adresy.xml (na DVD).

Podsumowanie

Tworzenie aplikacji we Flex nie jest trudne. Jak
łatwo zauważyć, ilość linii kodu potrzebnych
do wyświetlenia pliku XML jest minimalna.

Poznaliśmy składnię języka MXML, a samo-

dzielne wykonanie projektu przybliżyło moż-
liwości klasy

HTTPService

oraz komponent

DataGrid

.

Mam nadzieję, że ten artykuł stanie się dla

Was początkiem dalszej przygody z Flex, tech-
nologią, która zmienia oblicze Internetu.

Propozycja dalszej literatury
Niestety brakuje polskojęzycznych podręczni-
ków do nauki Flex, dlatego konieczne jest sko-
rzystanie z anglojęzycznej literatury. Szczegól-
nie dwie pozycje warte są polecenia:

• Flex 3: A Beginner's Guide By Michele E. Da-

vis, Jon A. Phillips;

• The Essential Guide to Flex 3 By Charles E

Brown.

Rysunek 3. Widok gotowego projektu

KRYSTIAN RAJSKI

Autor na co dzień pracuje jako Software Test Engi-
neer w firmie ADVA Optical Networking.
Prywatnie interesuje się programowaniem aplikacji
webowych. Związany z grupą ProgInn.
Kontakt: krajski@p-innovations.com

Rysunek 2. Widok panelu Flex Navigator


Wyszukiwarka

Podobne podstrony:
Facebook tworzenie aplikacji pierwsza aplikacja id 167486
3 Pierwsza aplikacja
Odkryto pierwsze cząsteczki we wszechświecie
Słowianie we wczesnym średniowieczu i ich pierwsze państwa, socjologia, Socjologia sporo potrzebnych
Finanse Publiczne barabara szlabowska, Wykład pierwszy, zmiany w nowej ustawie o finansach publiczny
Słowianie we wczesnym średniowieczu i ich pierwsze państwa 2
Pierwsza w Polsce i Europie bezpłatna aplikacja nt udaru mózgu
Tworzenie aplikacji dla iOS we Flashu Receptury 2
Tworzenie aplikacji dla iOS we Flashu Receptury

więcej podobnych podstron