Escolar Documentos
Profissional Documentos
Cultura Documentos
Adobe Flex 2
Introdução ...........................................................................................................................3
RIA (Rich Internet Application - Aplicações 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 aplicação de teste..............................................12
Usando o help do Flex Builder ......................................................................................13
Eventos ................................................................................................................................13
O que são 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 Navegação .........................................................................................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 Básico Adobe Flex 2
O Método setStyle().........................................................................................................30
Folha de Estilo Interna ...................................................................................................31
Trabalhando com arquivos XML............................................................................31
Lendo um XML interno e populando os dados ..........................................................31
Lendo um arquivo XML externo e populando os dados ..........................................31
Referências Bibliográficas........................................................................................33
Links ....................................................................................................................................33
Livros ...................................................................................................................................33
___________________________________________________________________________
Curso Básico Adobe Flex 2
3
Introdução
RIA é uma Aplicação Web que contêm características e funcionalidades de uma aplicação
desktop tradicional. Tipicamente uma aplicação RIA transfere a necessidade de
processamento do cliente (numa arquitetura cliente-servidor) para o navegador, mas
mantém o processamento mais pesado no servidor de aplicação.
Fonte: Adobe
Fonte: E-genial
Eclipse
O Adobe Flex Builder™ é uma IDE baseada no Eclipse™ usada para o desenvolvimento
de RIAs que combinam a excelência 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 avançada
lógica no lado do cliente para promover a integração com XML, serviços da Web ou Flex
Data Services. Com sofisticadas ferramentas de design e layout, os designers de
interface de usuário também podem criar interfaces de aplicativos mais ricas e fáceis de
usar, com layout e funcionalidade personalizados.
___________________________________________________________________________
Curso Básico Adobe Flex 2
4
Na primeira tela é solicitado aonde que será salvo os arquivos. Ele informa um endereço
padrão de instalação que normalmente é utilizado.
___________________________________________________________________________
Curso Básico Adobe Flex 2
5
___________________________________________________________________________
Curso Básico Adobe Flex 2
6
Na quinta tela ele informa alguns requisitos para a instalação como por exemplo fechar
todos os programas antes de prosseguir.
___________________________________________________________________________
Curso Básico Adobe Flex 2
7
Na sexta tela será mostrado as regras de uso e solicitado o aceite ou rejeição do termo
de uso.
___________________________________________________________________________
Curso Básico Adobe Flex 2
8
Na oitava tela ele pede que informe a pasta aonde se encontra a pasta do eclipse
instalado.
___________________________________________________________________________
Curso Básico Adobe Flex 2
9
Na décima tela ele pergunta se você quer instalar o plugin Adobe Flash Player 9 para
Internet Explorer e Firefox.
Na décima primeira tela ele mostra o que será instalado, aonde e qual o espaço em disco
que ele requer para a instalação.
___________________________________________________________________________
Curso Básico Adobe Flex 2
10
Na décima terceira tela ele informa que a instalação foi bem sucedida. Clique em “Done”
para encerrar.
___________________________________________________________________________
Curso Básico Adobe Flex 2
11
Fundamentos do Flex
MXML
ActionScript 3.0
___________________________________________________________________________
Curso Básico Adobe Flex 2
12
Por padrão, o flex cria na raiz do projeto um componente com o mesmo nome do
projeto.
</mx:Application>
Na aba “Flex Properties” encontre a opção “text” e digite “Bem vindo ao Flex”. Em
seguida, vamos adicionar um efeito ao label. Altere o tipo de visão da aba “Flex
Properties” para “Category View”, encontre o atributo “mouseDownEffect” e digite
“WipeRight”.
</mx:Application>
Um ótimo guia de referência da linguagem é o próprio help do Flex Builder. Ele traz uma
lista completa de suas classes e métodos. Lá você também encontra lições que ensinam
desde a criação de sua primeira aplicação em Flex até a criação de aplicações usando
componentes mais avançados.
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
<mx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.controls.Button;
]]>
</mx:Script>
Container
O que é um container?
Um container define uma região retangular de desenho do Adobe Flash Player. Dentro de
um container, definimos componentes, controles e outros containers. Componentes
definidos dentro de um container são chamados de filhos do
container. O Adobe Flex fornece uma ampla variedade de containers, que vão desde
simples caixas através de painéis e formas, até containers navegadores e containers de
layout.
Application
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute">
</mx:Application>
Containers de Layout
Um container de layout define uma região 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 posições de seus filhos em
um esquema similar a um formulário HTML.
Para usar um container de layout, você cria o container e, em seguida, adiciona os
elementos que definem a sua aplicação.
Logo abaixo temos os containers de layout mais utilizados.
Canvas
O container de layout “Canvas” define uma região retangular em que você coloca filhos
containers e controles. Ao contrário de todos os outros componentes ele só utiliza layout
absoluto, ou seja, você deve especificar as propriedades x e y, ou os filhos dele serão
empilhados em cima do canto superior esquerdo. Você deve especificar as posições x e y
com base nas laterais ou no centro das âncoras.
</mx:Canvas>
HBox
___________________________________________________________________________
Curso Básico Adobe Flex 2
15
</mx:HBox>
VBox
No container “VBox”, a posição dos componentes filhos é definida de cima para baixo e
centralizado.
</mx:VBox>
Form
Os formulários são um dos métodos mais comuns utilizados em aplicações web para
coletar informações dos usuários.
</mx:Form>
Panel
O container “Panel” pode atuar como um HBox, VBox e dependendo do layout como um
Canvas. Além disso, este container possui uma barra de título aonde se pode adicionar
um texto a ela.
</mx:Panel>
Containers de Navegação
ViewStack
___________________________________________________________________________
Curso Básico Adobe Flex 2
16
___________________________________________________________________________
Curso Básico Adobe Flex 2
17
Accordion
___________________________________________________________________________
Curso Básico Adobe Flex 2
18
TabNavigator
Um container TabNavigator cria e gera um conjunto de abas (guias) que você usa para
navegar. Os filhos de um container TabNavigator são outros containers. O container
TabNavigator cria uma aba para cada container filho. Quando o usuário seleciona uma
aba, ele exibe o container filho associado.
mx:TabNavigator borderStyle="solid">
<mx:VBox label="Dados Pessoais" width="400" height="150">
<!-- Informações Adicionais. -->
</mx:VBox>
<mx:VBox label="Dados Residenciais" width="400" height="150">
<!-- Informações Adicionais. -->
</mx:VBox>
<mx:VBox label="Dados Bancários" width="400" height="150">
<mx:Form id="dadosBancarios" label="3. Dados Bancários">
<mx:FormItem id="itemAgencia" label="Agência:">
<mx:TextInput id="agencia"/>
</mx:FormItem>
<mx:FormItem id="itemContaCorrente" label="Conta
Corrente:">
<mx:TextInput id="contaCorrente"/>
</mx:FormItem>
<!-- Informações Adicionais. -->
</mx:Form>
</mx:VBox>
</mx:TabNavigator>
___________________________________________________________________________
Curso Básico Adobe Flex 2
19
Controles
___________________________________________________________________________
Curso Básico Adobe Flex 2
20
Button
Botões tipicamente usam event listeners (eventos ouvintes) para executar uma ação
quando o usuário seleciona-o.
Quando um usuário clica com o mouse sobre um botão, o botão é ativado e com isso é
disparado o evento “click”.
LinkBar
Um controle LinkBar define uma linha horizontal ou vertical que designa uma série 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ê também pode usar um LinkBar para criar um conjunto de links em seu aplicativo.
___________________________________________________________________________
Curso Básico Adobe Flex 2
21
CheckBox
Neste exemplo foi criado um CheckBox que verifica se o usuário quer ou não enviar os
dados.
DateChooser e DateField
DataChooser
O controle DateChooser exibe o nome de um mês, o ano, e uma grade de dias do mês,
com colunas contendo os dias da semana. Esse controle é útil em aplicações onde você
deseja que uma agenda visível. O usuário pode escolher uma única data a partir da
agenda.
Você consegue desativar a seleção de determinadas datas e limitar a exibição de um
intervalo de datas.
___________________________________________________________________________
Curso Básico Adobe Flex 2
22
DateField
O controle DateField é um campo texto que exibe a data com uma agenda (ícone) em
seu lado direito. Quando um usuário clicar em qualquer lugar dentro do campo, um
seletor de data que é idêntico ao controle DateChooser aparece. Se nenhuma data foi
escolhida e o campo de texto estiver em branco, o mês atual é exibido no seletor de
data.
TextInput
O controle TextInput é um campo de texto editável em uma única linha. Ele permite ao
usuário introduzir uma linha de texto. Diferente do controle TextArea que permite inserir
várias linhas de texto.
Text
ComboBox
O controle ComboBox é uma lista suspensa a partir do qual o usuário pode selecionar um
único valor. A sua funcionalidade é muito semelhante ao SELECT em HTML.
<mx:ComboBox>
<mx:ArrayCollection>
<mx:String>Masculino</mx:String>
<mx:String>Feminino</mx:String>
</mx:ArrayCollection>
</mx:ComboBox>
___________________________________________________________________________
Curso Básico Adobe Flex 2
24
Neste exemplo, criamos um controle ComboBox com opções de sexo. Dentro da tag
<mx:ComboBox> adicionamos uma coleção de array contendo duas opções de Strings
(Masculino e Feminino).
DataGrid
O controle DataGrid é uma lista que pode exibir mais de uma coluna de dados. É uma
tabela formatada de dados que permite que você edite suas células.
<mx:DataGrid width="550">
<mx:ArrayCollection>
<mx:Object>
<mx:Artista>Pink Floyd</mx:Artista>
<mx:Album>The Wall</mx:Album>
<mx:Valor>R$ 99,00</mx:Valor>
</mx:Object>
<mx:Object>
<mx:Artista>O Rappa</mx:Artista>
<mx:Album>Acústico MTV</mx:Album>
<mx:Valor>R$ 30,00</mx:Valor>
</mx:Object>
</mx:ArrayCollection>
</mx:DataGrid>
___________________________________________________________________________
Curso Básico Adobe Flex 2
25
Neste exemplo, criamos um controle DataGrid aonde possui uma coleção de array com
dois objetos contendo três valores cada um (Álbum, Artista e Valor).
<mx:DataGrid width="550">
<mx:ArrayCollection>
<mx:Object Artista="Pink Floyd" Album="The Wall" Valor="R$
99,00" />
<mx:Object Artista="O Rappa" Album="Acústico MTV" Valor="R$
30,00" />
</mx:ArrayCollection>
</mx:DataGrid>
Você também pode especificar as colunas que devem aparecer e a ordem delas:
<mx:DataGrid width="550">
<mx:ArrayCollection>
<mx:Object Artista="Pink Floyd" Album="The Wall" Valor="R$
99,00" />
<mx:Object Artista="O Rappa" Album="Acústico MTV" Valor="R$
30,00" />
</mx:ArrayCollection>
<mx:columns>
<mx:DataGridColumn dataField="Artista" />
<mx:DataGridColumn dataField="Valor" />
</mx:columns>
</mx:DataGrid>
___________________________________________________________________________
Curso Básico Adobe Flex 2
26
View States
Você pode usar View States, por exemplo, para implementar uma tela de login e um
formulário de inscrição.
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 usuário para efetuar o
login, e inclui um link que permite registrá-lo se necessário.
___________________________________________________________________________
Curso Básico Adobe Flex 2
27
Caso o usuário queira se registrar, ele clica no link “Registrar”. Com isso mudará a tela
passando para outro estado. Nela aparecerá um terceiro campo “Confirmar Senha” como
mostra a imagem abaixo:
___________________________________________________________________________
Curso Básico Adobe Flex 2
28
o Para definir o ponto base de um estado em relação a um outro estado, você deve
especificar o estado na tag <mx:State> utilizando a propriedade basedOn. Caso
contrário, a perspectiva do estado utiliza a perspectiva da base inicial.
Você pode usar as seguintes classes para definir o que quer sobrepor:
<mx:AddChild RelativeTo="{v1}">
<mx:Button Label="New Button"/>
</mx:AddChild>
Observem que em “name” eu digo qual a propriedade do botão que quero me referenciar
e em “value” eu informo o valor que quero que essa propriedade receba.
<?xml version="1.0"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
initialize="criarEstado();" >
<mx:Script>
<![CDATA[
import mx.states.*;
// Inicializa o método e
// cria um View State usando ActionScript.
private function criarEstado():void {
estado = new State();
estado.name = "estado1";
___________________________________________________________________________
Curso Básico Adobe Flex 2
29
Neste exemplo é criado um View State dinâmico, isto é, em actionScript. Observem que
criamos uma variável com nome “estado” e em seguida uma função com o nome
“criarEstado”. Essa função cria uma nova instância de State e atribui a variável estado.
Depois atribuímos a propriedade “name” o valor “estado1”. Abaixo é criado uma variável
do tipo SetStyle com nome “meuEstilo” e atribuímos a ela valores nas propriedades
“name, value e target”. Após, é atribuído a propriedade “overrides” na posição 0 “zero”
da variável “estado” a variável “meuEstilo”. Por fim, adicionamos o State criado ao
atributo states da aplicação.
Estilos
Estilos são úteis para definir o look and feel (aparência) de aplicativos Adobe Flex.
Você pode usá-los para alterar a aparência de um único componente ou aplicá-los em
todos os componentes. Este tópico descreve como usar estilos, incluindo a sintaxe
Cascading Style Sheet (CSS), em suas aplicações. Também descreve como usar temas.
Use CSS para aplicar estilos em um documento ou em toda a aplicação. Você pode
apontar para uma folha de estilo sem invocar o ActionScript. Este é o método mais
conciso de aplicar estilos, mas também pode ser o menos flexível. Folhas de estilo global
podem definir estilos que são herdados por todos os controles ou classes de estilos
individuais que só certos controles utilização.
<mx:Style source="myStyle.css"/>
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 Básico Adobe Flex 2
30
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Style>
.myFontStyle {
fontSize: 15;
color: #9933FF;
}
</mx:Style>
<mx:Button id="myButton" styleName="myFontStyle" label="Clique
Aqui"/>
</mx:Application>
O exemplo a seguir define um novo estilo que se aplica a todas as instâncias da classe
Button:
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Style>
Button {
fontSize: 15;
color: #9933FF;
}
</mx:Style>
<mx:Button id="myButton" label="Clique Aqui"/>
</mx:Application>
Use a classe StyleManager para aplicar estilos para todas as classes ou todas as
instâncias de classes específicas. O exemplo a seguir define os estilos fontSize para 15 e
color para 0x9933FF sobre todos os controles Button:
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
creationComplete="initApp()">
<mx:Script>
<![CDATA[
public function initApp():void {
StyleManager.getStyleDeclaration("Button").setStyle
("fontSize",15);
StyleManager.getStyleDeclaration("Button").setStyle
("color",0x9933FF);
}
]]>
</mx:Script>
<mx:Button id="myButton" label="Clique Aqui" />
</mx:Application>
O Método setStyle()
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
creationComplete="initApp()">
___________________________________________________________________________
Curso Básico 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>
Use atributos de tags MXML (fontSize, color, etc) para aplicar propriedades de estilo.
Estas propriedades aplicam-se apenas ao controle atribuído.
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>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Label text="{xml.id}"/>
<mx:Label text="{xml.nome}"/>
<mx:Label text="{xml.sobreNome}"/>
<mx:Label text="{xml.telefone}"/>
</mx:Application>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Label text="{xml.id}"/>
<mx:Label text="{xml.nome}"/>
___________________________________________________________________________
Curso Básico 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.
<pessoa>
<id>5</id>
<nome>Francisco</nome>
<sobreNome>Gomes da Silva</sobreNome>
<telefone>617-219-3345</telefone>
</pessoa>
Você também pode carregar XML’s com dados dinâmicos utilizando serviços como
HTTPService, WebService ou RemoteObject.
___________________________________________________________________________
Curso Básico Adobe Flex 2
33
Referências Bibliográficas
Links
http://pt.wikipedia.org/wiki/RIA
http://www.adobe.com/br/products/flex/
http://www.egenial.com.br
Livros
___________________________________________________________________________
Curso Básico Adobe Flex 2