2008-10-11 7 views
6

Ich bin neu in Flex SDK und versuche, ein einfaches Projekt mit Doug Mccune's CoverFlow Widget zu implementieren. Die meiste Dokumentation, die da draußen zur Verfügung steht, setzt voraus, dass man das FlexBuilder-Produkt von Adobe verwendet, ein $ 250-Eclipse-Plug-in, das ich lieber vermeiden möchte. Das Problem, das ich habe, ist einfach Dougs swc-Datei, die die binäre Version seiner Komponente lib ist, von mxmlc, dem Flex SDK-Projekt-Compiler erkannt werden. Ich erhalte Fehlermeldungen wieAuflösen von Component-Bibliotheken mit Flex SDK mxmlc

Error: Could not resolve to a component installation

und

Error: Type was not found or was not a compile-time constant: CoverFlow.

Ich habe auch den Typ „VideoCoverFlow“, versuchte ich ziemlich sicher bin, dass diese Arten in Dougs lib definiert sind. Ach, ich muss herausfinden, wo ich falsch gelaufen bin.

Das folgende ist der vollständige Text für meine mxml Projektdatei, genannt coverflow.mxml.

<?xml version="1.0" encoding="utf-8"?> 

<mx:Application 
    xmlns:mx="http://www.adobe.com/2006/mxml" 
    xmlns:local="*" 
    height="100%" 
    width="100%" 
    layout="absolute"> 

    <local:CoverFlow 
     id="CoverFlow" 
     horizontalCenter="0" 
     verticalCenter="0" 
     borderThickness="10" 
     borderColor="#FFFFFF" 
     width="100%"/> 

</mx:Application> 

Ich versuche es mit dem folgenden Befehl zu kompilieren:

c:\flex_sdk_3\bin\mxmlc.exe -compiler.source-path=lib coverflow.mxml 

Ich habe auch die CoverFlow_lib.swc in das gleiche Verzeichnis wie die MXML-Datei-Datei versucht, zu bewegen, anstatt den Quelle-Pfad Argument, aber das scheint keinen Unterschied zu machen.

Ich würde gerne RTFM gehen, wenn jemand so freundlich sein könnte, mich in Richtung der richtigen Dokumente zu zeigen. Es gibt verwandte Stack Overflow-Fragen here und here.

Vielen Dank!


aktualisieren: Ich habe meine Build-Befehl wie folgt geändert:

mxmlc -library-path+=lib coverflow.mxml 

Und ich habe auch versucht die folgenden:

mxmlc -library-path+=CoverFlow_lib.swc coverflow.mxml 

Mit der SWC-Datei in das gleiche Verzeichnis als die mxml-Datei. Allerdings bekomme ich immer noch die gleichen Fehler.

Es gibt auch eine video here zeigt die gleiche Bibliothek, die ich versuche zu verwenden, aber in Flex Builder. Leider zeigt es nicht, wie man mxmlc benutzt.

Ich habe Strippen auch versucht, meine mxml einfach,

<mx:Application 
    xmlns:mx="http://www.adobe.com/2006/mxml" 
    xmlns:local="*" > 

    <local:VideoCoverFlow /> 

</mx:Application> 
+0

Ich habe die Cover-Flow-Beispiele von der verlinkten Site heruntergeladen und sie enthalten keine Klasse namens VideoCoverFlow. Es besteht die Möglichkeit, dass jemand ein Manifest erstellt, um sie flexibel zu verwenden. Sie müssen die xmlns: local = "com.dougmccune.containers" und dann local: VCoverFlowContainer –

Antwort

9

Hier ist ein link to the mxmlc command line tool docs from Adobe und ein direct link to the command line options reference. Ich finde auch mxmlc -help list, um ein guter Anfang zu sein.

Da ein weiteres Poster empfohlen wird, möchten Sie wirklich library-path verwenden, um den Pfad zu dem Verzeichnis hinzuzufügen, das die swc-Datei enthält.Verwenden Sie den Operator + = sicherstellen, dass Sie nicht überschreiben die vorherigen Werte

z)

c:\flex_sdk_3\bin\mxmlc.exe -library-path+=lib coverflow.mxml 
1

nach unten Wenn es ein SWC ist, sollten Sie nicht Bibliothek-Pfad anstatt Source-Pfad verwenden und Verweisen auf die SWC?

0

Ich habe endlich mein Projekt zu bauen. Die Verwendung von library-path war Teil der Lösung, aber ich musste mir auch die Quellen der Doug Mccune-Bibliothek genauer ansehen, damit ich die korrekten Pfadinformationen verwenden und Namen in meine mxml eingeben konnte.

Das Siegerkommandozeile ist

mxmlc -library-path+=lib coverflow.mxml 

und das Arbeits mxml ist

<?xml version="1.0" encoding="utf-8"?> 

<mx:Application 
    xmlns:mx="http://www.adobe.com/2006/mxml" 
    xmlns:coverflow="com.dougmccune.coverflow.*" 
    xmlns:containers="com.dougmccune.containers.*" 
    xmlns:local="*" > 

    <containers:CoverFlowContainer id="flow" /> 

</mx:Application 

Aus irgendeinem Grund mein Container beschwert, wenn ich id="coverflow" verwenden. Ich bekomme eine Fehlermeldung, dass der ID-Name und der Typname nicht identisch sein dürfen. Wenn mir jemand das erklären kann, würde ich gerne verstehen, was dort vor sich geht.

Nochmals vielen Dank für die Hilfe, Simon und James.

+1

Ich denke, es ist, weil Sie eine Xmlns namens coverflow haben, so füllen Sie die Dateien Symboltabelle mit zwei Symbolen mit dem gleichen Namen. Sie benötigen weder den xmlns: coverflow noch den xmlns: local –

Verwandte Themen