Kdo z vás používá SDK 4 ví, že je k dispozici nová sada komponent Spark. Společne s nimi dále koexistují i komponenty Halo, které jsou kvůli kompatibilitě jen drobně upravené. V komponentách Spark v tuto chvíli chybí např. Tree, DataGrid, AdvancedDatagrid apod., takže se můžete dostat do situace, že bude nutné použít starší Halo. Pokud v aplikaci používáte vlastní fonty, zjistíte, že se v komponentách Halo nezobrazují. Neděláte nikde chybu, staré komponenty jen nerozumí novému způsobu embedování fontů tzv. DefineFont4.
Díky bohu si i v Adobe uvědomují, že v mnoha případech bude nutné použivat Spark a Halo komponenty pohromadě, takže vytvořili náhradu za UITextField, která rozumí DefineFont4. Nová komponenta se jmenuje UITLFTextField a je součástí package mx.core. Halo komponenty defaultně používají UITextField, protože v tuto chvíli umí více věcí (editační mód, zobrazení HTML) než UITLFTextField. Díky omezením, které zatím nová komponenta má nebude možné její použití v několika Halo komponentách (editable ComboBox, ColorPicker color field, DateField, RichTextEditor, editable DataGrid). Způsob jak UITextField nahradit za UITLFTextField je velice jednoduchý. Niže jej najdete popsaný.
Pro komponenty Tree, ComboBox atp.
Pomocí CSS
mx|Tree, mx|ComboBox /* a tak dále */ {
text-field-class: ClassReference("mx.core.UITLFTextField");
}
Pomocí MXML
<mx:ComboBox textFieldClass=“mx.core.UITLFTextField“/>
Pro DataGrid
Pomocí CSS
mx|DataGrid {
defaultDataGridItemRenderer: ClassReference("mx.controls.dataGridClasses.TLFDataGridItemRenderer");
}
Pomocí MXML
<mx:DataGrid defaultDataGridItemRenderer=“mx.controls.dataGridClasses.TLFDataGridItemRenderer“/>
Připomínám, že tento článek je psaný v době, kdy je Flex SDK 4 ve verzi beta 2. Ve finální verzi se může leccos změnit.