PDA

Volledige versie bekijken : Datagrid - Verander kleur bij ITEM_ROLL_OVER


DaGreg
%Europe/Berlin %393 %2009, 09:26
Ik ben op zoek naar de oplossing voor volgend probleem:

als ik een item_roll_over doe, wordt voor mijn hele datagrid de achtergrondkleur veranderd.
nu wil ik dit enkel maar voor het desgewenste item.

import fl.controls.DataGrid;
import fl.controls.dataGridClasses.DataGridColumn;
import fl.controls.ScrollPolicy;
import fl.data.DataProvider;
import flash.geom.ColorTransform;
import fl.events.ListEvent;

var datagrid:DataGrid = new DataGrid();
datagrid.setSize(400, 200);
datagrid.showHeaders = true;

var column0:DataGridColumn = new DataGridColumn("A");
datagrid.addColumn(column0);
var column1:DataGridColumn = new DataGridColumn("B");
datagrid.addColumn(column1);

var dp:DataProvider = new DataProvider();
dp.addItem({A:"a1",B:"b1"});
dp.addItem({A:"a2",B:"b2"});
dp.addItem({A:"a3",B:"b3"});
dp.addItem({A:"a4",B:"b4"});
dp.addItem({A:"a5",B:"b5"});
datagrid.dataProvider = dp;

addChild(datagrid);


var datagridText:TextFormat = new TextFormat();
datagridText.color = 0x000000;
datagrid.setRendererStyle("textFormat", datagridText);

datagrid.addEventListener(ListEvent.ITEM_ROLL_OVER , rollOverItem);
function rollOverItem(e:ListEvent):void {
var datagridTextOver:TextFormat = new TextFormat();
datagridTextOver.color = 0xFF0000;
e.target.setRendererStyle("textFormat", datagridTextOver);
}

datagrid.addEventListener(ListEvent.ITEM_ROLL_OUT, rollOutItem);
function rollOutItem(e:ListEvent):void {
e.target.setRendererStyle("textFormat", datagridText);
}

Dauntless
%Europe/Berlin %498 %2009, 11:58
De kleur bij rollOver van een rij kan je instellen dmv
<mx:DataGrid rollOverColor="haloGreen" />

De kleur van de tekst, kan je dan weer instellen met textRollOverColor
<mx:DataGrid textRollOverColor="#FF0000" />

//EDIT
In AS3 zou je deze dingen moeten kunnen instellen met setStyle op de DataGrid classe.

DaGreg
%Europe/Berlin %546 %2009, 13:07
Ik gebruik enkel AS en ben <mx: ..> nog niet echt tegengekomen..

met de setStyle kan je enkel de achtergrondkleur instellen voor de verschillende events (rollover, select,..), hetgeen ik zoek is dus de tekstkleur.
http://help.adobe.com/en_US/AS3LCR/Flash_10.0/fl/controls/DataGrid.html#styleSummary

heb je misschien nog andere suggesties?
heb zelf het internet al zitten afschuimen maar niets gevonden wat mij kan helpen..

ninetynine
%Europe/Berlin %832 %2009, 19:59
..., hetgeen ik zoek is dus de tekstkleur...

...setStyle("color", ...);

DaGreg
%Europe/Berlin %489 %2009, 11:45
voor list-components (datadrid is inderdaad een uitbreiding van de listcomponent)
kan men enkel maar een textformat toepassen om de onderliggende tekst te kunnen stylen (zoals in mijn eerste post meegeleverd).

Misschien even het probleem verduidelijken:
Het feit is dat dit op de hele datagrid wordt toegepast ipv het item waar men de rollover over doet.
Zoals jullie zelf merken kan ik weldegelijk kleur toekennen..

Ik stel voor dat je eerst eens bovenstaande code (post 1) kopieert en plakt in een AS3-FLA bestand en dit eens test.


@ ninetynine:
zou je dit eventueel zelf kunnen toepassen op mijn code?
Het is mij nog niet gelukt

DaGreg
%Europe/Berlin %470 %2009, 11:17
iemand?