2008-10-11 8 views
6

Soy nuevo en Flex SDK y trato de implementar un proyecto simple usando el widget Doug Mccune's CoverFlow. La mayoría de la documentación sobre cómo hacerlo supone que uno está utilizando el producto FlexBuilder de Adobe, que es un complemento Eclipse de $ 250 que prefiero evitar comprar. El problema que estoy teniendo es simplemente obtener el archivo swc de Doug, que es la versión binaria de su lib componente, para ser reconocido por mxmlc, el compilador del proyecto Flex SDK. Sigo recibiendo mensajes de error comoResolviendo bibliotecas de componentes con Flex SDK mxmlc

Error: Could not resolve to a component installation

y

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

También he probado el tipo "VideoCoverFlow" como estoy bastante seguro de que estos tipos se definen en lib de Doug. Por desgracia, estoy atascado en averiguar dónde me he equivocado.

El siguiente es el texto completo de mi archivo de proyecto mxml, llamado 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> 

Estoy tratando de compilar con el siguiente comando:

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

También he intentado mover el archivo CoverFlow_lib.swc en el mismo directorio que el archivo MXML en lugar de utilizar la fuente de ruta argumento, pero eso no parece hacer la diferencia.

Estaría encantado de ir a RTFM si alguien pudiera ser tan amable de indicarme los documentos adecuados. Hay preguntas relacionadas con el desbordamiento de pila here y here.

¡Gracias!


actualización: he cambiado de comando de generación a la siguiente:

mxmlc -library-path+=lib coverflow.mxml 

Y también intentado el siguiente:

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

Con el archivo SWC en el mismo directorio como el archivo mxml. Sin embargo, sigo teniendo los mismos errores.

También hay un video here que muestra la misma biblioteca que estoy tratando de usar, pero en Flex Builder. Desafortunadamente, no muestra cómo usar mxmlc.

he también trató de desnudar mi mxml simplemente,

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

    <local:VideoCoverFlow /> 

</mx:Application> 
+0

He descargado los ejemplos de flujo de cobertura del sitio que ha vinculado y no incluyen una clase llamada VideoCoverFlow. Lo más probable es que alguien configure un manifiesto para usarlos en flexión. necesita establecer xmlns: local = "com.dougmccune.containers" y luego usar local: VCoverFlowContainer –

Respuesta

9

Aquí hay un link to the mxmlc command line tool docs from Adobe y un direct link to the command line options reference. También encuentro mxmlc -help list como un buen lugar para comenzar.

Como se recomienda otro póster, realmente desea utilizar library-path para agregar la ruta al directorio que contiene el archivo swc.Utilizar el operador + = para asegurarse de que no sobrescribir los valores anteriores

por ejemplo)

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

Si se trata de un swc No deberías estar usando la biblioteca de la ruta en lugar de origen de la ruta y hacer referencia a la SWC?

0

finalmente me mi proyecto de construcción. El uso de library-path fue parte de la solución, pero también tuve que echar un vistazo más de cerca a las fuentes de la biblioteca de Doug Mccune para poder usar la información de ruta correcta y los nombres de tipo en mi mxml.

La línea de comandos es ganar

mxmlc -library-path+=lib coverflow.mxml 

Y el trabajo es mxml

<?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 

Por alguna razón mi contenedor se queja si uso id="coverflow". Me aparece un error que dice que el nombre de identificación y el nombre de tipo no están permitidos. Si alguien puede explicarme eso, me encantaría saber qué está pasando allí.

Gracias de nuevo por la ayuda, Simon y James.

+1

Creo que es porque tiene un xmlns llamado coverflow por lo que está llenando la tabla de símbolos de archivos con dos símbolos con el mismo nombre. No necesita los xmlns: coverflow o xmlns: local –

Cuestiones relacionadas