Andre_Brito 26 de out. de 2009
Acho que dá pra usar Style no TextInput. Se der, você pode fazer isso usando CSS, eu acho.
Rafael_M_Martinelli 26 de out. de 2009
Lembre que sempre que você quer mudar um estilo via programação, você sempre deve usar o setStyle:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx= "http://www.adobe.com/2006/mxml" layout= "absolute" minWidth= "1024" minHeight= "768" >
<mx:Script>
<![CDATA[
private function clickHandler(color:uint):void
{
ti.setStyle("color", color);
}
]]>
</mx:Script>
<mx:TextInput id= "ti" text= "lalalalala" />
<mx:Button label= "red" click= "clickHandler(0xFF0000)" x= "0" y= "95" />
<mx:Button label= "green" click= "clickHandler(0x00FF00)" x= "0" y= "66" />
</mx:Application>
[]'s
Lucas_Emanuel 26 de out. de 2009
Rafael M. Martinelli:
Lembre que sempre que você quer mudar um estilo via programação, você sempre deve usar o setStyle:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx= "http://www.adobe.com/2006/mxml" layout= "absolute" minWidth= "1024" minHeight= "768" >
<mx:Script>
<![CDATA[
private function clickHandler(color:uint):void
{
ti.setStyle("color", color);
}
]]>
</mx:Script>
<mx:TextInput id= "ti" text= "lalalalala" />
<mx:Button label= "red" click= "clickHandler(0xFF0000)" x= "0" y= "95" />
<mx:Button label= "green" click= "clickHandler(0x00FF00)" x= "0" y= "66" />
</mx:Application>
[]'s
Ok ,
Deu certo com setStyle, eu tinha usado, mas nao tinha colocado a propriedade color como String, aí nao tava dando.
O Problema agora é o seguinte. Eu tenho um grid que lista todos os produtos. Ao clicar em um produto, o TextInput é alimentado com o mesmo dado que está na grid (SelectedItem). Eu tentei inserir essa funcao em evento Change e nao deu:
private function mudaCorSituacao():void{
if(situacao_imovel.text == "Disponível"){
situacao_imovel.setStyle("color", "0xFF0000");
}
else{
situacao_imovel.setStyle("color", "0x00FF00");
}
}
Rafael_M_Martinelli 26 de out. de 2009
Abaixo vc tem uma das possíveis maneiras de fazer. No caso, o change só é disparado quando o usuário altera o dado do TextInput. Também não é possível usar dataChange, pois ele só é disparado ao alterar o valor da propriedade data. Neste caso foi usado o evento valueCommit, que é disparado quando se altera qualquer propriedade do componente. Cuidado ao usar esse evento, pois como ele é disparado para qq propriedade, vc pode ter alguns problemas.
Vc ainda poderia usar mx:Bindings , fazer sua lógica no change do DataGrid ou colocar um addEventLintener na propriedade text.
< ? xml version = "1.0" encoding = "utf-8" ? >
< mx : Application xmlns : mx = "http://www.adobe.com/2006/mxml" layout = "vertical" >
< mx : Script >
< ! [ CDATA [
import mx.events.FlexEvent ;
protected function ti_valueCommitHandler ( event : FlexEvent ): void
{
var myTi : TextInput = TextInput ( event . target );
if ( myTi . text == "Christina Coenraets" )
{
myTi . setStyle ( "color" , 0xFF0000 );
}
else
{
myTi . setStyle ( "color" , 0x00FF00 );
}
}
]] >
</ mx : Script >
< mx : XMLList id = "employees" >
< employee >
< name > Christina Coenraets </ name >
< phone > 555 - 219 - 2270 </ phone >
< email > [ email removido ] </ email >
< active > true </ active >
</ employee >
< employee >
< name > Joanne Wall </ name >
< phone > 555 - 219 - 2012 </ phone >
< email > [ email removido ] </ email >
< active > true </ active >
</ employee >
< employee >
< name > Maurice Smith </ name >
< phone > 555 - 219 - 2012 </ phone >
< email > [ email removido ] </ email >
< active > false </ active >
</ employee >
< employee >
< name > Mary Jones </ name >
< phone > 555 - 219 - 2000 </ phone >
< email > [ email removido ] </ email >
< active > true </ active >
</ employee >
</ mx : XMLList >
< mx : TextInput id = "ti" text = " {dg.selectedItem.name} " valueCommit = "ti_valueCommitHandler(event)" />
< mx : DataGrid id = "dg" width = "100%" height = "100%" rowCount = "5" dataProvider = " {employees} " >
< mx : columns >
< mx : DataGridColumn dataField = "name" headerText = "Name" />
< mx : DataGridColumn dataField = "phone" headerText = "Phone" />
< mx : DataGridColumn dataField = "email" headerText = "Email" />
</ mx : columns >
</ mx : DataGrid >
</ mx : Application >
[]'s
Lucas_Emanuel 26 de out. de 2009
Pessoal,
Muito Obrigado. Resolve colocando no Evento Click do Grid.
Abraço.
Rafael_M_Martinelli 26 de out. de 2009
Melhor vc colocar no change do DataGrid.
[]'s