Ultimas Entradas »
Ultimos Comentários »
Entradas Populares »

O Flex 4; Primeiras "press" releases.

Escrito por Mário Santos on Maio 7, 2008 – 5:47 pm

Alterações no "core" do flex tornam-se realidade!

Não se assustem, não vamos ter que re-aprender tudo de novo, mas que se aproximam grandes mudanças é bem verdade. Finalmente vieram a publico algumas das alterações que a adobe começa a implementar no flex, estas principalmente nos states e seus componentes, segundo o artigo da adobe, disponível aqui, os states passarão a trabalhar ao contrário… passo a explicar pelo que percebi.

 

Antes quando mudava-mos de um state para o outro, as alterações passavam por remover elementos do state base, ou adicionar novos. Agora as coisas serão processadas ao contrário, tendo o componente o seu maior valor. Foram acrescentados alguns parâmetros de entre os quais o includeIn e o excludeFrom, que recebem como parâmetros o nome ou nomes do(s) states onde queremos esse componentes. Usando o exemplo da adobe:

 

   1: <!-- Tendo os states A,B,C -->
   2: <m:states>
   3:     <m:State name="A"/>
   4:     <m:State name="B"/>
   5:     <m:State name="C"/>
   6: </m:states>
   7:  
   8: <!-- este botão apenas aparecerá no state A e B-->
   9: <Button label="Click Me" includeIn="A, B"/>
  10:  
  11: <!-- este botão aparecerá no state A e B, fazendo o inverso. -->
  12: <Button label="Button C" excludeFrom="C"/>

 

Para verem as diferenças, e redução do código tomem como exemplo:

Antes:

   1: <?xml version="1.0" encoding="utf-8"?>
   2: <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
   3:     <mx:states>
   4:         <mx:State name="newCheckbox">
   5:             <mx:AddChild relativeTo="{vbox}">
   6:                 <mx:CheckBox id="checkbox" label="Checkbox" />
   7:             </mx:AddChild>
   8:         </mx:State>
   9:         <mx:State name="newTextArea" basedOn="newCheckBox">
  10:             <mx:AddChild relativeTo="{vbox}">
  11:                 <mx:TextArea id="textarea" />
  12:             </mx:AddChild>
  13:         </mx:State>
  14:     </mx:states>
  15:     <mx:VBox id="vbox">
  16:             <mx:Button label="Click" click="currentState='newCheckbox'" />
  17:             <mx:Button label="Click" click="currentState='newTextArea'" />
  18:     </mx:VBox>
  19: </mx:Application>

Depois:

   1: <?xml version="1.0" encoding="utf-8"?>
   2: <mx:Application xmlns:mx="library:ns.adobe.com/flex/halo"
   3:    xmlns:m="http://ns.adobe.com/mxml/2009" layout="absolute">
   4:     <m:states>
   5:         <m:State name="default"/>
   6:         <m:State name="newCheckbox"/>
   7:         <m:State name="newTextArea"/>
   8:     </m:states>
   9:     <mx:VBox>
  10:         <mx:Button label="Click" click="currentState='newCheckbox'" />
  11:         <mx:Button label="Click" click="currentState='newTextArea'" />
  12:   <mx:CheckBox id="checkbox" label="Checkbox" includeIn="newCheckbox, newTextArea"/>
  13:         <mx:TextArea id="textarea" includeIn="newTextArea"/>
  14:     </mx:VBox>
  15: </mx:Application>

 

O código acaba por ter lógica e ficar mais limpo, alem de ser de mais fácil compreensão.

No artigo original, temos mais algumas referencias a outras alterações, tais como o parâmetro relativeTo="{componente}", position="before/after" na tag <mx:AddChild>

 

Falando de uma das alterações que me saltou à vista e que poupará muitas linhas de código é o que a adobe chama de "State Specific Propertys" que passam as estar disponíveis nos componentes definindo o seu "estado" para o devido "State". Vejam como irá simplificar as coisas:

   1: <!-- O label do botão em qualquer outro state será "XXX', e no state A, "YYY", -->
   2: <!-- e no state B, "ZZZ" -->
   3: <Button label="XXX" label.A="YYY" label.B="ZZZ" />
   4:  
   5: <!-- No state A, a cor é limpa (para default) para que, se for o caso, um possivel
   6: <!-- CSS Style possa ser implementado nesse state A -->
   7: <Button color="0xFF0000" color.A="@Clear" />
   8:  
   9: <!-- Usando o exemplo em States -->
  10: <m:states>
  11:         <m:State name="landState"/>
  12:         <m:State name="airState"/>
  13:         <m:State name="waterState"/>
  14:     </m:states>
  15:  
  16:         <mx:CheckBox label="Helicopter" color.airState="0xFF0000"/>
  17:         <mx:CheckBox label="Motorcycle" color.landState="0xFF0000" />
  18:         <mx:CheckBox label="Car" color.landState="0xFF0000" />
  19:         <mx:CheckBox label="Airplane" color.airState="0xFF0000"/>
  20:         <mx:CheckBox label="Train" color.landState="0xFF0000" />
  21:         <mx:CheckBox label="Boat" color.waterState="0xFF0000"/>
  22:         <mx:CheckBox label="Submarine" color.waterState="0xFF0000"/>
  23:  
  24: <!-- facilmente percebemos que podemos mudar o label também -->
  25:  
  26:<mx:CheckBox label="Boat" color.waterState="0xFF0000" label.waterState="Boat in Water"/>
  27:  
  28: <!-- muito util em propriedades como, click, enabled, etc... -->
  29: <mx:Button id="button" label="Enable" label.waterState="Disable"
  30:             click="currentState='enabled'"
  31:             click.waterState="currentState=''" />
  32:         <mx:TextInput enabled="false" enabled.landState="true"
  33:              text="example text" />
  34:  
  35:  

Não me vou alongar muito mais, até porque o essencial está dito… podem ver o artigo original no link que indiquei em cima..

Parece mesmo que a adobe está decidida a facilitar a vida aos programadores (pelo menos os que já estão com noções médias/avançadas) mas para programadores iniciantes não será muito fácil digerir estas alterações…mas com o tempo as coisas irão ao seu devido lugar…

 

Bem, estou ansioso de colocar as mãos neste Flex 4 "codename Gumbo", mas pelos visto só para finais de Setembro/Outubro.. vamos a ver no que dá!!

 

Abraço!




Colocado em Air, Flex, Notícias |

2 Comentários ao “O Flex 4; Primeiras "press" releases.”

  1. Ved Diz:

    Sabe o que realmente me saltou aos olhos? O esforço da Adobe em se manter lider no mercado de desenvolvimento RIA. Na verdade, ainda não é lider, pois apps em AJAX dominam o mercado, mas é questão de tempo para ser a primeira e essa futura liderança está seriamente ameaçada pale M$ com seu Silverlight. Vamos acompanhando essa briga de gigantes que só tem a nos beneficiar!

    O que me deixa mais tranquilo é que em qualquer que seja o padrão de mercado daqui a alguns anos, todas as novas tecnologias para desenvolvimento RIA são fortemente orientadas a objetos e a grande vantagem para nós, desenvolvedores, é poder aprender rapidamente uma nova linguagem em pouco tempo!

    Tenho passado isso com meus estudos de Java, que tem sido facilitados por minha grande afinidade com o AS3.

    Será que me alonguei demais ou fugi do tema???

    =))

    Mais um artigo show, Mario!

    Grande abraço do Ved

  2. Mário Santos Diz:

    É bem verdade o que falou, a programação OO é mesmo uma mais valia, mas que vejo muita gente vindo parar ao mundo do flex ao contrario, começa em java e depois aprende facil o AS3, espero que seja facil, como voce diz, já que é uma das minhas prioridades o java :)

    Quanto ao mundo das RIA, é uma questão de tempo para o ajax desaparecer e ser extinto do desenvolvimento de ria’s (opinião muitooo pessoal! :0> )

    O silverlight, não sei se ganhará muitos adeptos, ainda mais agora que a adobe abriu portas para a verdadeira invasão do flash player no mercado “domestico”.

    Vamos a ver! :)
    Abraço.

Deixe um comentário