Limpar tela no Flex
Olá a todos, uma das primeiras necessidades quando se desenvolve interfaces e um método genérico para limpar a tela. Este post trás uma classe genérica para limpar componentes visuais da tela, ela não tem todos os componentes visuais, mais pode ser adicionados novos componentes seguindo o modelo.
package { import flash.display.DisplayObjectContainer; import mx.containers.Canvas; import mx.controls.CheckBox; import mx.controls.ComboBox; import mx.controls.DateField; import mx.controls.NumericStepper; import mx.controls.TextInput; public class LimpaTela { public function LimpaTela() { } public static function limparTela(obj:DisplayObjectContainer):void{ for(var i:int=0;i<obj.numChildren;i++){ if(obj.getChildAt(i) is TextInput){ TextInput(obj.getChildAt(i)).text = ""; } else if(obj.getChildAt(i) is CheckBox){ CheckBox(obj.getChildAt(i)).selected = false; } else if(obj.getChildAt(i) is ComboBox){ if(ComboBox(obj.getChildAt(i)).editable){ ComboBox(obj.getChildAt(i)).text = ""; } ComboBox(obj.getChildAt(i)).selectedIndex = -1; } else if(obj.getChildAt(i) is NumericStepper){ NumericStepper(obj.getChildAt(i)).value = 0; } else if(obj.getChildAt(i) is DateField){ DateField(obj.getChildAt(i)).text = ""; } else if(obj.getChildAt(i) is Canvas){ limparTela(Canvas(obj.getChildAt(i))); } } } } }
Trata se de um método recursivo, ou seja ele chama ele mesmo no caso de componentes que possam ter outros componentes, este é o caso do ‘”Canvas” que serve como um container para se adicionar outros componentes. Na verdade o Canvas pode ser usado como uma tela, onde são colocados todos os componentes visuais que se deseja limpar e logo em seguida chama a função para limpar. Segue um exemplo de como se utilizar esta classe:
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"> <mx:Script> <![CDATA[ private function btnLimparTela_click():void{ LimpaTela.limparTela(cnv); } ]]> </mx:Script> <mx:Button id="btnLimpaTela" x="119" y="218" label="Limpar Tela" click="btnLimparTela_click();"/> <mx:Canvas id="cnv" x="10" y="10" width="200" height="200"> <mx:TextInput x="20" y="10"/> <mx:ComboBox x="20" y="40"> <mx:Array> <mx:String>Franca</mx:String> <mx:String>São Paulo</mx:String> </mx:Array> </mx:ComboBox> </mx:Canvas> </mx:Application>
