2013-02-26 13 views
5

Ich versuche, Assets in einer Flexbibliothek .swc Datei ohne Erfolg hinzuzufügen.Wie fügen Sie Assets zu einer Flex-Bibliothek hinzu?

Der Ordner "Assets" im Bibliotheksprojekt enthält eine gif-Datei. Das Projekt enthält außerdem eine Spark Group-Komponente, die das Bild anzeigt.

Wenn ich versuche, diese Komponente in einem anderen Projekt zu verwenden, ist das Bild nicht sichtbar. Wenn ich den Asset-Ordner aus dem Bibliotheksprojekt in das Hauptprojekt kopiere, ist das Bild sichtbar.

habe ich das Vermögen Ordner in der Flex-Bibliothek

Build Path

Warum sind nicht die durch die SWC enthaltenen Vermögenswerte?

Vielen Dank!

Befestigt Screenshots: enter image description hereenter image description here

+2

Ich vermute, dass das Bild in der SWC enthalten ist; aber ist nicht in der SWF enthalten, die die SWC verwendet. Eine SWC ist eine Zip-Datei, so dass Sie sie entpacken können, um zu sehen, ob sich Ihr Bild dort befindet. Wenn Sie den Vermögenswert nicht einbetten; Ich vermute, dass der Flex-Compiler sie nicht in die resultierende SWF-Datei einfügt. – JeffryHouser

+0

Haben Sie eine Antwort gefunden? Eine Alternative wäre, den Quellordner des Assets als eine der Projektquellen hinzuzufügen, also können Sie Dateien in "Paketinhalt" auswählen, richtig? – Nemi

Antwort

0

Es hängt davon ab, wie Sie versuchen, das Bild aus der Bibliothek zuzugreifen.

Damit es funktioniert, müssen Sie @Embed ("facebook.gif") in Ihrem Fall verwenden - kein "Assets" -Ordner, der im Pfad verwendet wird. Sie können also nicht von Ihrer Anwendung darauf zugreifen, wenn Sie sie nicht eingebettet haben, und Sie verwenden nur den Namen der Datei zum Einbetten.

+0

Ich verwende das Bild nur im Bibliotheksprojekt innerhalb einer mxml-Bildkomponente. Ich verwende dann die Komponente im Hauptprojekt –

+0

Wenn Sie die Quelle auf die Bildkomponente als den Pfad zu dem Bild festlegen, wird es nicht funktionieren. Sie müssen es auf eine Einbettung einstellen. Da das Bild in der SWC enthalten sein wird, können Sie es jedoch nicht über einen Pfad dorthin verwenden. Das ist genau das, was ich in meiner Antwort zu sagen versuche. –

2

erstellen Klasse in der Bibliothek Projekt

package resources 
{ 
    public final class IconResource 
    { 
     //list embedded items - you can embed any files, mp3 etc 

     [Embed (source="../assets/facebook.gif")] 
     public static const icon_facebook:Class;  

     public function IconResource() 
     {} 
    } 
} 

in Produktionsprojekten verwenden:

import resources.IconResource; 

var img:Image = new Image(); 
img.source = IconResource.icon_facebook; 

oder

<fx:Script> 
    <![CDATA[ 
    import resources.IconResource; 
    ]]> 
</fx:Script> 

<s:Image source="{IconResource.icon_facebook}"/> 
Verwandte Themen