2009-07-01 5 views
1

i blue.css verwendet und beige.css auch in flex .i hat Thema Combobox für Benutzer dynamisch so geändert Thema stroed iWie laden Sie dynamisch zwei verschiedene CSS-Dateien in eine Flex-Anwendung?

[Bindable] privat var pickcss: Array = [ "blue.css", "beige .css "];

private Funktion css_initializeHandler (event: Event): void

{ 
     pickcssComboBox.selectedIndex = pickcss.indexOf(0); 
    } 

private Funktion css_changeHandler (event: Event): void {

// hier, wie werde ich anwenden
styleid = [pickcssComboBox .Ausgewähltes Objekt ]; }

"mx: Label text =" Thema "/>

"mx: ComboBox id =" pickcssComboBox" Datenprovider = "{pickcss}" initialize = "css_initializeHandler (event)" change =“ css_changeHandler (event) "width = "110"/>"

i in der Art nicht verwendet id so haben, wie kann ich tun? wenn u plz erklären

Antwort

3

Zuerst laden Stylesheets dynamisch müssen Sie kompilieren Sie können sie in separate SWF-Dateien einfügen, indem Sie mit mxmlc (oder in Flex Builder, indem Sie mit der rechten Maustaste auf das CSS-Fil klicken) e und wählen Sie "CSS zu SWF kompilieren". Dann den Stil-SWF zu laden, können Sie die Stylemanager verwenden

StyleManager.loadStyleDeclarations("blue.swf"); 

Wenn Sie zwischen den Stilen wechseln möchten, werden Sie auch die vorherigen Stil entladen möchten. Also, vorausgesetzt, Sie den Namen der CSS-Datei in Ihrem Combobox setzen, in Ihrem css_changeHandler werden Sie so etwas tun:

StyleManager.unloadStyleDeclarations(styleid) 
styleid = pickcssComboBox.selectedItem; 
StyleManager.loadStyleDeclarations(styleid); 

Siehe Loading style sheets at run time für weitere Details.

+0

Sehr sehr nützlich für mich. Danke Wouter Coekaerts .wie setze ich Style-ID. Ich legte den Namen der CSS-Datei in Combobox wie Blue Theme und Beige Theme zeigt es richtig. aber wie man schaltet –