FredericCox
%Europe/Berlin %115 %2007, 03:46
Simpele vraag, maar het antwoord vind ik na 45min zoekwerk en proberen nog altijd niet...
ik heb een tilelist met een itemrenderer. Als ik nu iets selecteer krijg ik een lelijke blauwachtige achtergrond achter mijn item. Je kent dat wel dat is blijkbaar standaard zo in flex.
selectionColor = "#ff0000" zet die kleur naar rood. Maar ik wil deze kleur weg! bvb alpha op 0 zetten, maar dit gaat blijkbaar niet selectionAlpha bestaat niet en de selection disablen ook al niet. Ik vind dit toch maar vreemd en teleurstellend hoor, heeft iemand enig idee? :S
TheDutch
%Europe/Berlin %267 %2007, 07:25
----------------
TheDutch
%Europe/Berlin %286 %2007, 07:53
In de ListBase class zitten drie functies, namelijk "drawSelectionIndicator", "drawHighlightIndicator", en "drawCaretIndicator". Die moet je overriden in een subclass van TileList. In deze functies zit een beginFill() of lineStyle() aanroep zonder alpha waarde. Deze alpha waarde moet in jouw geval op 0 staan.
Zo zou de subclass van TileList en het gebruik ervan eruit moeten zien om geen selectie te hebben:
package
{
import mx.controls.TileList;
import flash.display.Sprite;
import mx.controls.listClasses.IListItemRenderer;
import flash.display.Graphics;
public class MyTileList extends TileList
{
public var selectionAlpha:Number = 1;
public function MyTileList()
{
super();
}
protected override function drawSelectionIndicator(
indicator:Sprite, x:Number, y:Number,
width:Number, height:Number, color:uint,
itemRenderer:IListItemRenderer):void
{
var g:Graphics = Sprite(indicator).graphics;
g.clear();
g.beginFill(color,this.selectionAlpha);
g.drawRect(0, 0, width, height);
g.endFill();
indicator.x = x;
indicator.y = y;
}
protected override function drawHighlightIndicator(
indicator:Sprite, x:Number, y:Number,
width:Number, height:Number, color:uint,
itemRenderer:IListItemRenderer):void
{
var g:Graphics = Sprite(indicator).graphics;
g.clear();
g.beginFill(color,this.selectionAlpha);
g.drawRect(0, 0, width, height);
g.endFill();
indicator.x = x;
indicator.y = y;
}
protected override function drawCaretIndicator(
indicator:Sprite, x:Number, y:Number,
width:Number, height:Number, color:uint,
itemRenderer:IListItemRenderer):void
{
var g:Graphics = Sprite(indicator).graphics;
g.clear();
g.lineStyle(1, color, this.selectionAlpha);
g.drawRect(0, 0, width - 1, height - 1);
indicator.x = x;
indicator.y = y;
}
}
}
<MyTileList selectionAlpha="0" />
Je gebruikt vanaf nu deze subclass van TileList en zet de waarde van het nieuwe property "selectionAlpha" op 0 (standaard staat deze op 1).
Succes! :)
FredericCox
%Europe/Berlin %628 %2007, 16:04
Bedankt!
Maar toegegeven, dan hadden ze bij Adobe toch even zelf mogen doen hé :p
FredericCox
%Europe/Berlin %628 %2007, 16:05
En hoe kan ik die hoeken van de rectangle afronden?
aha met g.DrawRoundRect blijkbaar
vBulletin® v3.8.1, Copyright ©2000-2012, Jelsoft Enterprises Ltd.