Ciao Lista,
Per un cliente è la necessità di implementare un sistema di skinning a
runtime e non posso usare i css a runtime perchè non vogliono dover
compilare il css.
Devo di fatto localizzare della grafica.
Il workflow ideale sarebbe:
1- produco un swf
2- creo un css in cui uso l'embed ai symbol che mi interessa
3- compilo il css
4- carico a runtime il css che viene applicato a tutta l'applicazione
Il cliente invece vuole:
1- produco un swf
2- Magia del developer
Ecco cosa immagino per provare la magia
ho il mio button:
<mx:Button id="myButton" label="text" stylename="myStyle" />
al quale applicare un upSkin, overSkin, etc pescando da un SWF a
runtime anziché un swf a compile time.
Il codice potrebbe essere qualcosa così:
...
// carico l'swf che contiene la libreria.
var runtime_library:Loader
...
var UpSkin:Class =
runtime_library
.contentLoaderInfo.applicationDomain.getDefinition("mybutton_up_skin")
as Class;
var selector:CSSStyleDeclaration =
StyleManager.getStyleDeclaration(".myStyle");
selector.setStyle("upSkin", UpSkin );
...
Questo significa che per ogni oggetto di cui fare skin devo avere un
fla con all'interno una libreria con:
-myobject_up_skin
-myobject_over_skin
-myobject_down_skin
....
Non mi viene un modo elegante per associare la mia component X con le
X skin contenute nell'swf. Sarebbe bello che il sistema cercasse per
tutte le skin applicabili per la component X ma non so come recuperare
tutti gli style possibili per una component.
L'unica cosa che ho trovato è che nella classe
mx.styles.CSSStyleDeclaration ma la variabile overrides che contiene
tutte le dichiarazioni è protected e non sono sicuro che contenga
anche le proprietà non dichiarate.
Qualche idea?
ciao lo