Bha, agora que acabei de falar sobre o Tree, vou falar sobre o ProgressBar, já que eu prometo no player que postei uns dias atrás. Este player a que postei utilizei dois ProgressBar, sendo o superior para apresentar o progresso do download e o segundo para apresentar o progresso do vídeo.
Este arquivo abaixo utiliza um ProgressBar ligada a uma imagem, onde o processo de carregamento desta imagem esta diretamente ligada ao ProgressBar.
Arquivo main01.mxml<mx:ProgressBar id="progressBar" width="478" x="116" y="82" label="Carregando %1 de %2 KB (%3%%)" labelPlacement="center" source="image" conversion="1024"/> <mx:Button id="botao" x="116" y="54" label="Carregar Imagem" click="image.autoLoad=true;botao.enabled=false" toolTip="Clique aqui para carregar a imagem" /> <mx:Image id="image" width="478" height="427" x="116" y="106" source="imagem/imagem.png" autoLoad="false"/>
Veja que o carregamento da imagem esta bloqueada e ao clicar no botão é iniciado o carregamento desta imagem. Apesar desta imagem ser pequena ela possui 1.1MB, sendo bem visível o carregamento desta imagem.
Neste segundo exemplo, apresento os modos de visualizações do ProgressBar. Neste exemplo há dois ComboBox, o primeiro modifica a posição do texto e o segundo modifica a direção do progresso.
Arquivo main02.mxml<mx:ComboBox id="posicao" width="120" x="17" y="60" dataProvider="{dtPosicao}" toolTip="Posição do Texto" /> <mx:ComboBox id="direcao" width="120" x="153" y="60" dataProvider="{dtDirecao}" selectedIndex="2" toolTip="Direção de Carregamento" /> <mx:ProgressBar id="progressBar" width="405" x="295" y="60" label="{posicao.selectedItem.label}" labelPlacement="{posicao.selectedItem.data}" direction="{direcao.selectedItem.data}" mode="manual" creationComplete="progressBar.setProgress(50, 100)" />
Neste terceiro exemplo, apresento algumas animações. A primeira apresenta o modo indeterminate, e quando setada como true, o progresso da barra e apresentado na forma indeterminada. Esta propriedade é utilizado quando o valor de fim é desconhecido.
A segunda animação é uma animação dupla, onde é utilizado o efeito Fade e Zoom.
Arquivo main03.mxml<mx:VBox y="59" x="10"> <mx:HBox> <mx:Button label="Iniciar" click="playProgressBar();" x="10" y="61" width="75"/> <mx:Button label="Reiniciar" click="resetProgressBar();" x="69" y="61" width="75"/> <mx:FormItem label="indeterminate:"> <mx:CheckBox id="checkBox" selected="true" /> </mx:FormItem> </mx:HBox> <mx:ProgressBar id="progressBar" width="690" x="10" y="91" complete="progressBar_complete(event);" indeterminate="{checkBox.selected}" label="Carregando %3%%" mode="manual" labelPlacement="center" creationComplete="init();"> <mx:completeEffect> <mx:Parallel> <mx:Fade alphaTo="0.0" /> <mx:Zoom zoomHeightTo="0" /> </mx:Parallel> </mx:completeEffect> </mx:ProgressBar> </mx:VBox>
O Efeito Fade manipula o alpha do ProgressBar, e o Zoom manipula os efeitos de Zoom. Porém para utilizar os dois ao mesmo tempo é necessário utilizar o método Parallel. Então quando o evento completeEffect é despachado, é chamado o método Parallel que chama os efeitor Fade e Zoom.
Ou seja, quando o progresso chega ao fim, o ProgressBar é diminuído até sumir e vai desaparecendo ao mesmo tempo.
Para vizualizar o código fonte, clique aqui.