Flex-4 Beta2: l'immagine di sfondo ha smesso di funzionare
-
06-07-2019 - |
Domanda
Dopo aver aggiornato un progetto da Flex4 Beta1 a Beta2, ho scoperto che lo stile dell'immagine di sfondo non è più supportato sui componenti di Halo.
Esempio:
<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml"
backgroundImage="@Embed(source='myImage.png')" />
Nota che il problema di jira SDK-23050 indica quanto segue:
backgroundImage non è supportato per le skin Spark.
Ma questo non utilizza una skin Spark, ma solo un componente Halo standard.
Qualcuno ha qualche idea?
Soluzione 4
Ho finito per cambiare l'immagine di sfondo con la skin di sfondo e questo ha risolto il problema.
Altri suggerimenti
<s:BorderContainer x="100" y="100" width="200" height="200"
backgroundImage="@Embed(source='image.jpg)" >
</s:BorderContainer>
Usa il codice sopra. Qualsiasi scintilla: BorderContainer ha l'opzione backgroundImage, o altre opzioni backgroundImage. Aggiungi l'immagine che vuoi alla tua fonte e metti per image.jpg il nome della tua immagine con la sua estensione. non dimenticare le virgolette singole.
Ora devi creare una classe skin. Utilizzare un gruppo virtuale e specificare uno skin personalizzato.
I componenti MX in Flex 4 consentono di utilizzare le skin Spark e Adobe utilizza le skin Spark per impostazione predefinita, in modo che i componenti MX e Spark nella stessa applicazione sembrino appartenere insieme. Ovviamente, le skin Spark supportano funzionalità diverse rispetto alle skin Halo e ora dovresti modificare le skin se vuoi che appaiano diverse (tranne per alcuni semplici stili di colore). Considerando come possono essere i designer creativi, questo è un approccio molto migliore rispetto all'utilizzo del solo CSS perché è molto più flessibile, ma sorprende di sorpresa le persone che hanno familiarità con il flusso di lavoro di Flex 3.
Non è troppo difficile copiare lo skin predefinito e aggiungere uno sfondo ad esso. Tuttavia, dovresti anche essere in grado di utilizzare la vecchia skin di Halo per ottenere il supporto di BackgroundImage, se è quello che preferisci. Credo che tu voglia dire al tuo VBox di usare mx.skins.halo.HaloBorder.