O Flex 4; Primeiras "press" releases.
Escrito por Mário Santos on Maio 7, 2008 – 5:47 pmAlteraçõ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 |












Maio 7th, 2008 at 10:21 pm
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
Maio 9th, 2008 at 7:45 pm
É 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.