Escolar Documentos
Profissional Documentos
Cultura Documentos
Apostila Curso Basico Adobe Flex 2
Apostila Curso Basico Adobe Flex 2
Adobe Flex 2
Sumrio
Introduo ...........................................................................................................................3
RIA (Rich Internet Application - Aplicaes Ricas para Internet) ........................3
A tecnologia Adobe Flex ...................................................................................................3
Eclipse e Adobe Flex Builder ...........................................................................................3
Instalando o Flex Builder 2..............................................................................................3
Fundamentos do Flex ..................................................................................................11
MXML ...................................................................................................................................11
ActionScript 3.0 ................................................................................................................11
Flex Class Library .............................................................................................................12
Flex Data Services ............................................................................................................12
Criando nosso primeiro projeto e aplicao de teste..............................................12
Usando o help do Flex Builder ......................................................................................13
Eventos ................................................................................................................................13
O que so Eventos? ..........................................................................................................13
Disparando Eventos .........................................................................................................13
Container ............................................................................................................................14
O que um container? ....................................................................................................14
Application .........................................................................................................................14
Containers de Layout...................................................................................................14
Canvas .................................................................................................................................14
HBox ....................................................................................................................................14
VBox.....................................................................................................................................15
Form.....................................................................................................................................15
Panel ....................................................................................................................................15
Containers de Navegao .........................................................................................15
ViewStack ...........................................................................................................................15
Accordion............................................................................................................................17
TabNavigator .....................................................................................................................18
Controles.............................................................................................................................19
Button..................................................................................................................................20
LinkBar ................................................................................................................................20
CheckBox ............................................................................................................................21
DateChooser e DateField ................................................................................................21
DataChooser ......................................................................................................................21
DateField ............................................................................................................................22
Label ....................................................................................................................................22
TextInput............................................................................................................................23
Text ......................................................................................................................................23
ComboBox ..........................................................................................................................23
DataGrid ..............................................................................................................................24
View States........................................................................................................................26
Elementos de um View State .........................................................................................28
Criando um View State em ActionScript.....................................................................28
Estilos ...................................................................................................................................29
Folha de Estilo Externa ...................................................................................................29
Folha de Estilo Local ........................................................................................................29
Gerenciando Classes de Estilo ......................................................................................30
___________________________________________________________________________
Curso Bsico Adobe Flex 2
O Mtodo setStyle().........................................................................................................30
Folha de Estilo Interna ...................................................................................................31
___________________________________________________________________________
Curso Bsico Adobe Flex 2
Introduo
RIA (Rich Internet Application - Aplicaes Ricas para Internet)
RIA uma Aplicao Web que contm caractersticas e funcionalidades de uma aplicao
desktop tradicional. Tipicamente uma aplicao RIA transfere a necessidade de
processamento do cliente (numa arquitetura cliente-servidor) para o navegador, mas
mantm o processamento mais pesado no servidor de aplicao.
A tecnologia Adobe Flex
O Adobe Flex 2 a soluo de desenvolvimento de aplicativos mais completa e
potente para se criar e fornecer aplicativos avanados de Internet (RIAs) no ambiente
empresarial e na Web. Ele permite que as empresas criem aplicativos multimdia
personalizados que melhorem significativamente a experincia do usurio,
revolucionando o modo como as pessoas interagem com a Web.
Fonte: Adobe
um framework multi-plataforma para desenvolvimento de aplicaes RIA, levando um
modelo de programao padro e conhecido por profissionais e desenvolvedores. Nele
usamos uma linguagem de marcao (MXML) que baseada no XML para definir a
interface da aplicao e o Actionscript 3.0 para a parte lgica. As aplicaes Flex levam a
extenso .mxml e podem ser criadas em qualquer editor de texto comum, como por
exemplo o Bloco de Notas.
Fonte: E-genial
Eclipse e Adobe Flex Builder
Eclipse
uma IDE de cdigo aberto para a construo de programas de computador. O projeto
Eclipse foi iniciado na IBM que desenvolveu a primeira verso do produto e doou-o como
software livre para a comunidade. O gasto inicial da IBM no produto foi de mais de 40
milhes de centavos de dlares. Hoje o Eclipse a IDE Java mais utilizada no mundo.
Possui como caractersticas marcantes o uso da SWT e no do Swing como biblioteca
grfica, a forte orientao ao desenvolvimento baseado em plug-ins e o amplo suporte ao
desenvolvedor com centenas de plug-ins que procuram atender as diferentes
necessidades de diferentes programadores.
Adobe Flex Builder
O Adobe Flex Builder uma IDE baseada no Eclipse usada para o desenvolvimento
de RIAs que combinam a excelncia dos aplicativos de desktop com o alcance
multiplataforma da Adobe Engagement Platform (Plataforma de Enganjamento).
Utilizando o Flex Builder, os desenvolvedores podem rapidamente criar uma avanada
lgica no lado do cliente para promover a integrao com XML, servios da Web ou Flex
Data Services. Com sofisticadas ferramentas de design e layout, os designers de
interface de usurio tambm podem criar interfaces de aplicativos mais ricas e fceis de
usar, com layout e funcionalidade personalizados.
Instalando o Flex Builder 2
___________________________________________________________________________
Curso Bsico Adobe Flex 2
Na primeira tela solicitado aonde que ser salvo os arquivos. Ele informa um endereo
padro de instalao que normalmente utilizado.
___________________________________________________________________________
Curso Bsico Adobe Flex 2
___________________________________________________________________________
Curso Bsico Adobe Flex 2
Na quinta tela ele informa alguns requisitos para a instalao como por exemplo fechar
todos os programas antes de prosseguir.
___________________________________________________________________________
Curso Bsico Adobe Flex 2
Na sexta tela ser mostrado as regras de uso e solicitado o aceite ou rejeio do termo
de uso.
___________________________________________________________________________
Curso Bsico Adobe Flex 2
Na oitava tela ele pede que informe a pasta aonde se encontra a pasta do eclipse
instalado.
___________________________________________________________________________
Curso Bsico Adobe Flex 2
Na dcima tela ele pergunta se voc quer instalar o plugin Adobe Flash Player 9 para
Internet Explorer e Firefox.
Na dcima primeira tela ele mostra o que ser instalado, aonde e qual o espao em disco
que ele requer para a instalao.
___________________________________________________________________________
Curso Bsico Adobe Flex 2
10
Na dcima terceira tela ele informa que a instalao foi bem sucedida. Clique em Done
para encerrar.
___________________________________________________________________________
Curso Bsico Adobe Flex 2
11
Fundamentos do Flex
A framework Flex divida conforme a tabela abaixo.
___________________________________________________________________________
Curso Bsico Adobe Flex 2
12
___________________________________________________________________________
Curso Bsico Adobe Flex 2
13
Na aba Flex Properties encontre a opo text e digite Bem vindo ao Flex. Em
seguida, vamos adicionar um efeito ao label. Altere o tipo de viso da aba Flex
Properties para Category View, encontre o atributo mouseDownEffect e digite
WipeRight.
O cdigo de sua aplicao dever estar conforme abaixo:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute">
<mx:Label x="497" y="317" text="Bem vindo ao Flex"
mouseDownEffect="WipeRight"/>
</mx:Application>
Usando o help do Flex Builder
Um timo guia de referncia da linguagem o prprio help do Flex Builder. Ele traz uma
lista completa de suas classes e mtodos. L voc tambm encontra lies que ensinam
desde a criao de sua primeira aplicao em Flex at a criao de aplicaes usando
componentes mais avanados.
Eventos
O que so Eventos?
Quando voc clica com o mouse ou pressiona uma tecla, voc est disparando um evento
de mouse ou teclado respectivamente. O Flash Player captura estes eventos e repassam
para quem est "ouvindo", os chamados Listeners (ouvintes).
Disparando Eventos
Nosso primeiro exemplo mostra um boto disparando um evento alerta.
Exemplo de evento em mxml:
<mx:Button label="Disparar Evento" click="Alert.show("Bem vindo ao Flex",
"Alerta");" />
Exemplo de evento em actionScript:
<mx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.controls.Button;
private var btn: Button;
public function init(): void {
btn = new Button();
btn.label = "Novo Botao";
btn.addEventListener(MouseEvent.CLICK, alerta);
this.addChild(btn);
}
public function alerta(event: Object): void {
Alert.show("Bem vindo ao Flex","Alerta");
}
___________________________________________________________________________
Curso Bsico Adobe Flex 2
14
]]>
</mx:Script>
Container
O que um container?
Um container define uma regio retangular de desenho do Adobe Flash Player. Dentro de
um container, definimos componentes, controles e outros containers. Componentes
definidos
dentro
de
um
container
so
chamados
de
filhos
do
container. O Adobe Flex fornece uma ampla variedade de containers, que vo desde
simples caixas atravs de painis e formas, at containers navegadores e containers de
layout.
Application
O Flex define um container de layout padro chamado Application que o primeiro
arquivo a ser carregado ao rodar a aplicao. Representado pela tag <mx:Application>,
o responsvel por definir o incio da aplicao. o container pai e responsvel pelo
controle de chamadas aos demais containers filhos (Panel, Form, Canvas, dentre outros).
Exemplo de cdigo de um container Application:
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute">
</mx:Application>
Containers de Layout
Um container de layout define uma regio retangular do Adobe Flash Player e controla o
dimensionamento e posicionamento de controles e containers filhos definidos por ele.
Por exemplo, um container de layout Form define tamanhos e posies de seus filhos em
um esquema similar a um formulrio HTML.
Para usar um container de layout, voc cria o container e, em seguida, adiciona os
elementos que definem a sua aplicao.
Logo abaixo temos os containers de layout mais utilizados.
Canvas
O container de layout Canvas define uma regio retangular em que voc coloca filhos
containers e controles. Ao contrrio de todos os outros componentes ele s utiliza layout
absoluto, ou seja, voc deve especificar as propriedades x e y, ou os filhos dele sero
empilhados em cima do canto superior esquerdo. Voc deve especificar as posies x e y
com base nas laterais ou no centro das ncoras.
Exemplo de cdigo de um container Canvas:
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="400"
height="113">
</mx:Canvas>
HBox
___________________________________________________________________________
Curso Bsico Adobe Flex 2
15
Containers de Navegao
Os containers de navegao so utilizados basicamente para controlar a visualizao de
containers filhos. Por exemplo, um container TabNavigator permite que voc visualize um
container filho utilizando um conjunto de separadores.
ViewStack
Um container de navegao ViewStack constitudo por um conjunto de containers filhos
que esto empilhados uns em cima dos outros, com apenas um container visvel ou ativo
de uma s vez.
___________________________________________________________________________
Curso Bsico Adobe Flex 2
16
___________________________________________________________________________
Curso Bsico Adobe Flex 2
17
___________________________________________________________________________
Curso Bsico Adobe Flex 2
18
___________________________________________________________________________
Curso Bsico Adobe Flex 2
19
Controles
Os controles so componentes de interface do usurio (UIComponents) que exibem algo
para o usurio e/ou solicitam ao usurio interagir com a aplicao. Buttons, TextArea,
ComboBox, dentre outros so alguns exemplos de controles.
Normalmente, voc define um container e, em seguida, insere controles a ele.
A tag raiz de uma aplicao Flex a <mx:Application>, o que representa um container
que abrange todo o Flash Player. Voc pode colocar controles diretamente sob a tag
<mx:Application> ou em outros containers.
A maioria dos controles tem as seguintes caractersticas:
o MXML API - Para declarar o controle e os valores de suas propriedades e eventos;
o
___________________________________________________________________________
Curso Bsico Adobe Flex 2
20
Button
O controle Button (boto) comumente utilizado como boto retangular. Geralmente
possui no seu rtulo um texto, um cone ou ambos. Voc pode optar em usar skins para
cada um dos vrios estados do boto.
Voc pode criar um boto normal ou um alternar seu controle.
Botes tipicamente usam event listeners (eventos ouvintes) para executar uma ao
quando o usurio seleciona-o.
Quando um usurio clica com o mouse sobre um boto, o boto ativado e com isso
disparado o evento click.
Um boto possui eventos como o mouseMove, mouseOver, mouseOut, rollOver, rollOut,
mouseDown, e mouseUp.
Exemplo de cdigo de um controle Button:
<mx:Button label="Button" click="abrirJanela()"/>
A imagem abaixo mostra o layout do cdigo acima:
LinkBar
Um controle LinkBar define uma linha horizontal ou vertical que designa uma srie de
links de destino. Voc normalmente utiliza um LinkBar para controlar o filho ativo de um
container ViewStack ou para criar um conjunto de links diversos.
Voc tambm pode usar um LinkBar para criar um conjunto de links em seu aplicativo.
Exemplo de cdigo de um controle LinkBar:
<mx:LinkBar borderStyle="solid" itemClick="navigateToURL(new
URLRequest('http://www.adobe.com/' + String(event.label).toLowerCase()),
'_blank');">
<mx:dataProvider>
<mx:String>Flash</mx:String>
<mx:String>Director</mx:String>
<mx:String>Dreamweaver</mx:String>
<mx:String>ColdFusion</mx:String>
</mx:dataProvider>
</mx:LinkBar>
___________________________________________________________________________
Curso Bsico Adobe Flex 2
21
___________________________________________________________________________
Curso Bsico Adobe Flex 2
22
___________________________________________________________________________
Curso Bsico Adobe Flex 2
23
TextInput
O controle TextInput um campo de texto editvel em uma nica linha. Ele permite ao
usurio introduzir uma linha de texto. Diferente do controle TextArea que permite inserir
vrias linhas de texto.
Exemplo de cdigo de um controle TextInput:
<mx:TextInput id="texto1" />
A imagem abaixo mostra o layout do cdigo acima:
transparente;
___________________________________________________________________________
Curso Bsico Adobe Flex 2
24
Seleo de eventos;
___________________________________________________________________________
Curso Bsico Adobe Flex 2
25
___________________________________________________________________________
Curso Bsico Adobe Flex 2
26
View States
View States permitem que voc varie o contedo e a aparncia de um componente,
normalmente em resposta a uma ao do usurio. Para utilizar View States (visualizao
de estados), voc define um View State base de um componente, e um ou mais View
States que modifiquem o View State base.
Voc pode usar View States, por exemplo, para implementar uma tela de login e um
formulrio de inscrio.
Exemplo:
<mx:states>
<mx:State name="Registrar">
<mx:AddChild relativeTo="{form1}" position="lastChild">
<mx:FormItem label="Confirmar Senha:" width="100%">
<mx:TextInput id="textInput3"
displayAsPassword="true"/>
</mx:FormItem>
</mx:AddChild>
<mx:SetProperty target="{panel1}" name="height" value="190"/>
<mx:SetProperty target="{panel1}" name="title" value="Novo
Registro" />
<mx:SetProperty target="{linkButton}" name="label"
value="Retornar ao Login" />
<mx:SetProperty target="{button1}" name="label"
value="Cadastrar" />
<mx:SetEventHandler target="{linkButton}" name="click"
handler="currentState = ''" />
<mx:SetProperty target="{textinput1}" name="width"/>
<mx:SetProperty target="{textinput2}" name="width"/>
</mx:State>
</mx:states>
<mx:Panel width="350" height="160" layout="absolute" title="Login"
id="panel1">
<mx:Form left="0" right="0" top="0" bottom="0" id="form1">
<mx:FormItem label="Login:" width="100%" id="formitem1">
<mx:TextInput width="100%" id="textinput2"/>
</mx:FormItem>
<mx:FormItem label="Senha:" width="100%" id="formitem2">
<mx:TextInput width="100%" id="textinput1"
displayAsPassword="true"/>
</mx:FormItem>
</mx:Form>
<mx:ControlBar>
<mx:LinkButton id="linkButton" label="Registrar"
click="currentState = 'Registrar'" />
<mx:HRule width="100%" alpha="0"/>
<mx:Button label="Logar" id="button1" />
</mx:ControlBar>
</mx:Panel>
Neste exemplo, a primeira vista, o estado inicial da tela solicita ao usurio para efetuar o
login, e inclui um link que permite registr-lo se necessrio.
___________________________________________________________________________
Curso Bsico Adobe Flex 2
27
Voc define estados usando a tag filha <mx:State> dentro da tag pai
<mx:states>.
___________________________________________________________________________
Curso Bsico Adobe Flex 2
28
Para definir o ponto base de um estado em relao a um outro estado, voc deve
especificar o estado na tag <mx:State> utilizando a propriedade basedOn. Caso
contrrio, a perspectiva do estado utiliza a perspectiva da base inicial.
___________________________________________________________________________
Curso Bsico Adobe Flex 2
29
Estilos
Estilos so teis para definir o look and feel (aparncia) de aplicativos Adobe Flex.
Voc pode us-los para alterar a aparncia de um nico componente ou aplic-los em
todos os componentes. Este tpico descreve como usar estilos, incluindo a sintaxe
Cascading Style Sheet (CSS), em suas aplicaes. Tambm descreve como usar temas.
Voc pode modificar a aparncia de componentes Flex atravs de propriedades de estilo.
Essas propriedades podem definir o tamanho de uma fonte usada em um controle Label
ou a cor de fundo utilizada no controle TextInput. Em Flex, alguns estilos so herdados
do container pai para os seus filhos. Isto significa que voc pode definir um estilo uma
vez e ele aplicar-se a todos os controles de um nico tipo ou de um conjunto de
controles. Alm disso, voc pode sobrepor propriedades individuais para cada controle
em um local, componente, ou a nvel global, o que lhe d grande flexibilidade no controle
da aparncia de suas aplicaes.
Folha de Estilo Externa
Use CSS para aplicar estilos em um documento ou em toda a aplicao. Voc pode
apontar para uma folha de estilo sem invocar o ActionScript. Este o mtodo mais
conciso de aplicar estilos, mas tambm pode ser o menos flexvel. Folhas de estilo global
podem definir estilos que so herdados por todos os controles ou classes de estilos
individuais que s certos controles utilizao.
O exemplo a seguir aplica a folha de estilo externa myStyle.css a um componente:
<mx:Style source="myStyle.css"/>
Folha de Estilo Local
Use a tag <mx:Style> para definir estilos que se aplicam ao documento atual e seus
filhos. Voc define estilos com a tag <mx:Style> usando sintaxe CSS e pode definir
___________________________________________________________________________
Curso Bsico Adobe Flex 2
30
O Mtodo setStyle()
Use o mtodo setStyle()para manipular propriedades de estilo sobre instncias de
controle. A utilizao desse mtodo exige uma maior quantidade de poder de
processamento sobre o cliente do que usando folhas de estilo.
O exemplo a seguir define os estilos fontSize para 15 e color para 0x9933FF apenas
sobre o exemplo myButton:
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
creationComplete="initApp()">
___________________________________________________________________________
Curso Bsico Adobe Flex 2
31
<mx:Script>
<![CDATA[
public function initApp():void {
myButton.setStyle("fontSize",15);
myButton.setStyle("color",0x9933FF);
}
]]>
</mx:Script>
<mx:Button id="myButton" label="Clique Aqui"/>
</mx:Application>
Folha de Estilo Interna
Use atributos de tags MXML (fontSize, color, etc) para aplicar propriedades de estilo.
Estas propriedades aplicam-se apenas ao controle atribudo.
O exemplo a seguir define os estilos fontSize para 15 e color para 0x9933FF no exemplo
myButton:
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Button id="myButton" color="0x9933FF" fontSize="15" label="Clique
Aqui"/>
</mx:Application>
text="{xml.id}"/>
text="{xml.nome}"/>
text="{xml.sobreNome}"/>
text="{xml.telefone}"/>
</mx:Application>
Lendo um arquivo XML externo e populando os dados
Abaixo segue um exemplo de como carregar dados em um arquivo XML externo:
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
<!-- Carrega o xml externo. -->
<mx:Model id="xml" source="dados.xml" />
<mx:Label text="{xml.id}"/>
<mx:Label text="{xml.nome}"/>
___________________________________________________________________________
Curso Bsico Adobe Flex 2
32
<mx:Label text="{xml.sobreNome}"/>
<mx:Label text="{xml.telefone}"/>
</mx:Application>
Observem que o XML carregado e colocado na tag Model. Apartir da, para me
referenciar ao campo eu utilizo ponto (.) mais o nome da tag declarada no XML.
Exemplo: xml.nome me traz o nome da pessoa.
Abaixo segue a estrutura do arquivo dados.xml:
<pessoa>
<id>5</id>
<nome>Francisco</nome>
<sobreNome>Gomes da Silva</sobreNome>
<telefone>617-219-3345</telefone>
</pessoa>
Voc tambm pode carregar XMLs com dados dinmicos utilizando servios como
HTTPService, WebService ou RemoteObject.
___________________________________________________________________________
Curso Bsico Adobe Flex 2
33
Referncias Bibliogrficas
Links
http://pt.wikipedia.org/wiki/RIA
http://www.adobe.com/br/products/flex/
http://www.egenial.com.br
Livros
Flex 2 Developers Guide
The Essential Guide to Flex 2 with ActionScript 3.0
Programming Flex 2
___________________________________________________________________________
Curso Bsico Adobe Flex 2