Jun
25

Meeting AUG dia 28 de Junho

No próximo dia 28 terá lugar mais um evento do Adobe User Group que terá início pelas 17 horas. O local do evento será novamente nas instalações da Flag e irá ser composto por 3 tópicos

A apresentação do Mihai será assistido no local através de uma sessão de connect.
No final do evento, será sorteado uma licença de um software da Adobe.
As inscrições para participar deverão ser feitas aqui.




Jun
17

AS3 - Ciclo de criação de um componente

Ao percorrer a documentação da Adobe, reparei num resumo bastante interessante que fala do ciclo de execução/criação de cada componente da nossa aplicação. É incrível como cada simples botão ao ser adicionado a um container tem uma dezena de procedimentos até que seja disparado o evento creationComplete. Para quem já criou/estendeu um componente via ActionScript sabe bem do que falo, mas aqui vai a explicação.

Vou falar apenas do processo que acontece por detrás de um adicionar um botão como child a um container (Box) com o simples código:

// Criar uma box, um botão, definir o label e adicionar como child
var boxContainer:Box = new Box();
var b:Button = new Button()
b.label = “Enviar”;
boxContainer.addChild(b);

O Flex, procederá da seguinte forma:

1. É chamado o componente construtor (new Box e depois new Button)

2. Chamado o setter (b.label=) e actualizado todo o componente ( muitas das vezes são chamados métodos de actualização para definirem todo o layout: invalidateProperties(), invalidateSize(), ou invalidateDisplayList() )

3. Adiciona como child (filho) do box. Aqui o Flex faz a maior parte do trabalho, executando-se a  seguinte ordem:

4. Define a propriedade parent do componente para fazer referencia ao seu “container”.

5. Calcula e define o estilo/”style” de todo o componente.

6. Dispara o evento preinitialize do componente.

7. Chama o método createChildren() do componente.

8. Chama os métodos invalidateProperties(), invalidateSize(),  e invalidateDisplayList() para obrigar a serem disparadas/chamadas os métodos commitProperties(), measure(), ou updateDisplayList() no próximo evento render. A única excepção a estes acontecimentos, é que o flex não chama o método measure()  quando o “user/programador” define a altura e largura do componente.

9. Dispara o evento initialize no componente. Nesta altura todos os childs (childrens) no componente são inicializados, mas o componente ainda não foi correctamente definido no seu tamanho, nem processado o seu layout. Este evento pode ser usado para definir /executar procedimentos extra no componente antes que seja completamente processado.

10. Dispara o evento childAdd no componente “pai” / “parent”.

11. Dispara o evento initialize do seu componente “pai” / “parent”.

12. Durante o próximo evento render o flex faz as seguinte acções:

  • Chama o métodos pela seguinte ordem:
  1. commitProperties();
  2. measure();
  3. layoutChrome();
  4. updateDisplayList();
  • Finalmente é disparado o evento updateComplete no componente.

13. O Flex, depois deste processo ainda poderá disparar eventos de renderização ( render ) se os métodos commitProperties(), measure(), ou updateDisplayList() forem executados/chamados através dos métodos invalidateProperties(), invalidateSize(), ou invalidateDisplayList().

14. Depois do ultimo evento render ser chamado, o flex executa as seguintes acções:

  • Coloca o componente visível ( .visible=true; ).
  • Dispara o evento creationComplete no componente. O componente é dimensionado e processado para o layout. Este evento é apenas disparado uma única vez e só quando o componente é criado.
  • Dispara o evento updateComplete no componente, este evento também é disparado quando são alteradas quaisquer definições do componente, como layout, posição, tamanho ou qualquer alteração das características visuais.

A maior parte do trabalho de configuração, definição, e renderização de um componente acontece que este é adicionado a um container ( método addChild() ), isto porque enquanto o componente não for adicionado a um container, o Flex não consegue saber o seu tamanho, definir as propriedade “in-line”/”inheriting” ou desenha-lo no ecrã.

Perceber estes passos é essencial para conhecer  as propriedades e as operações que são executadas aquando da criação de um componente. Ajuda-nos também a perceber melhor porque é que às vezes temos certos erros no nosso código bem como a entender o processo de criação de um componente, o que se torna muito útil para criarmos o nosso próprio componente.

Artigo original aqui (EN)

Este artigo está disponivel em pdf para download. (link externo - www.msdevstudio.com)




Jun
08

RiaPT agora no Blip.TV

Todos os videos que foram até hoje filmados pelo RiaPT foram agora migrados para um canal próprio no Blip.TV. Todos os futuros videos passarão a estar disponíveis neste novo canal e poderão ser observados dentro do Adobe Media Player caso pretendam visualiza-los em modo offline.

Para isso basta:

  1. Abrir o Adobe Media Player
  2. Seleccionar ‘MY Favorites’
  3. Na nova janela seleccionar ‘Add RSS Feed’ e introduzir http://riapt.blip.tv/rss



O novo canal pode ser visualizado em http://riapt.blip.tv.




Jun
06

Slides da apresentação “Rich Internet Applications na plataforma Flash com Flex e Air”

Ontem decorreu no CCB um evento da Adobe onde eu e o João Fernandes fizemos a apresentação sobre RIAs na plataforma Flash com Flex e Air. Numa audiência com cerca de 250 pessoas, apenas umas 8 já tinham experimentado o Flex ou sabiam o que eram RIAs. Ah… não referi que o evento era destinado a criativos.

Deixo aqui os slides da nossa apresentação. São úteis para quem não sabe o que são RIAs, nem conhece Flex e Air.

O tempo da nossa apresentação era muito limitado (30 minutos), pelo que não houve espaço para questões. Estejam por isso à vontade de me contactar directamente para joao [dot] saleiro [at] webfuel [dot] pt , ou através da mailing list.




May
27

Tutorial Adobe Flex a partir do zero.

flexTutorLogo

Todos sabemos que por vezes torna-se bastante difícil encontrar artigos e suporte em português, e embora o flex esteja já instalado no mercado, continua-se a encontrar pouca informação composta em algum lado, contando apenas com alguns (bons) blog’s, e algumas poucas (listas/grupos) onde podemos tirar as nossas duvidas.

Foi basicamente por isso que decidi criar um pequeno tutorial de instalação e como criar um exemplo “Olá Mundo”  (parte I), mas como tive bastante “feedback” das pessoas, acabei por continuar o tutorial, estando neste momento na parte 5 (inacabada e não publicada) que brevemente será aqui colocada também.

Venho então dar a conhecer o tutorial Adobe flex a partir do zero que oficialmente coloquei no meu blog, e que agora partilho com o riaPT visto ser a maior referência nacional em ria’s (pelo menos não conheço outra). Neste momento o tutorial vai a meio mas deixo já o download das primeiras quatro partes compiladas num ficheiro e deixo também o index  do que já foi feito mas melhor identificação, passo então a citar:

1. Observações iniciais. Pag. 4- 5
2. Instalando, configurando e fazendo o típico teste “hello world”. Pag. 5-6
2.1. Criando um novo Projecto. Pag. 6-7
2.2. Entendendo o espaço de Trabalho do Flex Builder. Pag. 7-10
2.3. Criando o primeiro exemplo “hello world”. Pag. 10-11
2.3.1. Criando um script (AS3). Pag. 12-14
3. Entendendo a ordenação e estruturação do código.Pag. 14-16
3.1. Criação de um ficheiro action script externo para uso no flex. Pag. 16-18
4. Entendendo os componentes internos, states e transições/efeitos. Pag. 18-20
4.1. States, entendendo a sua disposição. Pag. 21-22
4.2. Transições e seus efeitos. Pag. 23-24
5. Programação do exemplo “olá mundo” em Action Script. Pag. 25-27
6. Efeitos e eventListners. Pag. 27-32
7. Componentes e Módulos.Pag. 33
7.1. As diferenças entre componentes e módulos. Pag. 33
7.2. Criando um componente e trabalhando com ele. Pag. 34-36
7.3. Enviando e recebendo dados de/para um componente. Pag. 37-38
7.4. Criando um módulo e trabalhando com ele. Pag. 38-41
8. Entendendo a comunicação com Objectos Remotos.Pag. 42
8.1. Instalação do amfPHP e servidor Wamp. Pag. 42-43
8.2. Criando o primeiro serviço no amfPHP. Pag. 43-44
8.3. Configurando o Flex Builder para trabalhar com o amfPHP. Pag. 44
8.4. Criando o primeiro Remote Object no Flex. Pag. 45-46

Podem fazer o download do pdf aqui ou ver a versão online nas publicações http://issuu.com acedendo aqui

Espero que seja útil, e qualquer critica ou correcção estejam à vontade para me informar.

EDIT: A parte 5 já está disponivel para download aqui

 

top