Pour construire une CellRenderer personnalisée dont vous avez besoin d'étendre une classe de choix de le listClasses disponible. ImageCell semble être un bon début pour votre projet.
vous devez:
- Étendre la classe de liste
- ajouter vos propres bits (étiquettes/TextField, etc.)
- override fonctions protégées pour régler la nouvelle cellule à vos besoins (un exemple est la méthode drawLayout où vous devez positionner vos objets soigneusement).
Voici un exemple très simple:
package
{
import fl.controls.listClasses.ICellRenderer;
import fl.controls.listClasses.ImageCell;
import fl.controls.TileList;
import fl.data.DataProvider;
import fl.managers.StyleManager;
import flash.events.EventDispatcher;
import flash.events.*;
import fl.containers.UILoader;
public class CustomImageCell extends ImageCell implements ICellRenderer
{
public function CustomImageCell()
{
super();
//do other stuff here
loader.scaleContent = false;
loader.addEventListener(IOErrorEvent.IO_ERROR, handleErrorEvent, false, 0, true);
useHandCursor = true;
}
override protected function drawLayout():void
{
var imagePadding:Number = getStyleValue("imagePadding") as Number;
loader.move(11, 5);
var w:Number = width-(imagePadding*2);
var h:Number = height-imagePadding*2;
if (loader.width != w && loader.height != h)
{
loader.setSize(w,h);
}
loader.drawNow(); // Force validation!
}
override protected function handleErrorEvent(event:IOErrorEvent):void {
trace('ioError: ' + event);
//dispatchEvent(event);
}
}
}
Un très bon exemple pour ce que vous avez besoin est sur ce post. La cellule personnalisée condition:
- Prise en charge d'un arrière-plan personnalisé (en définissant la peau cellulaire)
- Utilise un champ de texte d'étiquette.
HTH
Lisez la question carefully.He dit pour Flash et vous donner la solution .mxml, ce qui en soi est réponse incomplète. –