Comunidad de diseño web y desarrollo en internet online

marcar estilo de texto en datagrid en AS3 según condición

Citar            
MensajeEscrito el 27 Oct 2009 03:19 pm
:shock: Tengo un tema re interesante a ver si alguien sabe, si alguien pudo sacar como se puede hacer en flash utilizando codigo actionscript 3.0. Tengo un Datagrid en mi web que muestra informacion al instante desde una base de datos my sql con conexión php. Los datos son tomados en flash con:
var req:URLRequest = new URLRequest("url");
var loader:URLLoader = new URLLoader();
Utilizo xml. este tema hay unos cuantos tutores en la web.
Pero lo interesante es que yo quiero aplicar un estilo en particular al texto de ciertas filas del datagrid segun un dato que traigo en una de las columnas.
Por ejemplo si tengo dato "1" en mi columna "valor" quiero que el texto en esa fila me aparesca en negrita. si el dato es "0" no me aplique el estilo en esa fila.

Busque por todo el google y creamen no encontre nada que se les paresca. Agradezco si hay algun master por hay y me tira unas lineas de como hacerlo.

Por flashmetieneloco

2 de clabLevel



 

msie8
Citar            
MensajeEscrito el 27 Oct 2009 03:36 pm
Busca por "cellrenderer en AS3"

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 27 Oct 2009 04:42 pm
se que viene por ese lado pero necesito mas lineas.. Hay que recorrer el datagrid, relizar un if y aplicale estilo al texto como por ejemplo con la siguiente sintaxis que estoy probando

var colorTextFormat:TextFormat = new TextFormat();
colorTextFormat.bold ="True";


midatagrid.setRendererStyle("textFormat", colorTextFormat);

pero me falta saber como armar el if capturar el dato para que me condicione y aplicarle el estilo.
Gracias

Por flashmetieneloco

2 de clabLevel



 

msie8
Citar            
MensajeEscrito el 27 Oct 2009 06:02 pm
En realidad el renderer se hace de "adentro" hacia "afuera", es decir según el valor que reciba la celda se setea, setRendererStyle es para todos los renderer y no serviría en este caso. No he hecho cellRenderer en puro AS3 porque uso Flex, y allí seteas un componente personalizado como renderer, pero tiene que haber info por allí

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 27 Oct 2009 06:19 pm
:? no se como es en flex. Pero en as3 en flash es complicado de usar el cellrenderer.
gracias igual.

Por flashmetieneloco

2 de clabLevel



 

msie8
Citar            
MensajeEscrito el 04 Nov 2009 05:34 pm
Les dejo el codigo que estoy usuando para trabajar con el datagrid, la conexion que hago con el mysql es con php. y paso los datos a flash desde php mediande codigo xml.

Dejo el codigo as3 para ver si alguien me puede ayudar cual es el codigo que debo de agragar para que me marque en negrita mi texto de la fila segun si el dato de la columna 5 es valor 1. (Valor 0 deja sin estilo). Solotraigo esos dos valores string 0 o 1.



import flash.net.*;
import fl.data.DataProvider;
import fl.controls.DataGrid;
import fl.controls.dataGridClasses.DataGridColumn;
import flash.utils.Timer;
import flash.events.TimerEvent;
import flash.display.Sprite;

//timer en 1 para arrancar
var minuteTimeri:Timer = new Timer (1,1);
minuteTimeri.addEventListener(TimerEvent.TIMER, cargadatos);
minuteTimeri.start();
//timer cada 60 segundos por tiempo indifinido
var minuteTimer:Timer = new Timer (60000,0);
minuteTimer.addEventListener(TimerEvent.TIMER, cargadatos);
minuteTimer.start();

function cargadatos(event:TimerEvent):void {
var req:URLRequest = new URLRequest("conexion.php");
var loader:URLLoader = new URLLoader();

var time:Date = new Date();
var txt:String;
txt = String(time.getMinutes());

loader.dataFormat = URLLoaderDataFormat.TEXT;
req.data+=txt;
loader.load(req);
var xml:XML;
var lista2:DataGrid = new DataGrid();
lista2.setSize(258, 325);
var c1:DataGridColumn = new DataGridColumn("Nombre");
var c2:DataGridColumn = new DataGridColumn("Celular");
var c3:DataGridColumn = new DataGridColumn("Edad");
var c4:DataGridColumn = new DataGridColumn("#");
var c5:DataGridColumn = new DataGridColumn("condicion");

lista2.addColumn(c1);
lista2.addColumn(c2).width=49;
lista2.addColumn(c3).width=78;
lista2.addColumn(c4).width=24;
lista2.addColumn(c5).width=24;

addChild(lista2);

function alCompletar(e:Event):void{
xml = new XML(loader.data);
var dp2:DataProvider = new DataProvider(xml);
lista2.dataProvider = dp2;
}

loader.addEventListener(Event.COMPLETE, alCompletar);
}

Por flashmetieneloco

2 de clabLevel



 

msie8

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.