2008-10-11 57 views
6

我是Flex SDK的新手,尝试使用Doug Mccune's CoverFlow小部件实现一个简单的项目。大部分关于如何做到这一点的文档都假定使用Adobe的FlexBuilder产品,这是一个250美元的Eclipse插件,我宁愿避免购买。我遇到的问题是简单地获取Doug的swc文件,这是他的组件库的二进制版本,被Flex SDK项目编译器mxmlc识别。我不断收到错误消息,例如使用Flex SDK解析组件库mxmlc

Error: Could not resolve to a component installation

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

我也曾尝试类型“VideoCoverFlow”我敢肯定,这些类型的道格的lib定义。唉,我一直在搞清楚我出错的地方。

以下是我的mxml项目文件的全文,名为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> 

我想用下面的命令来编译:

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

我也曾尝试移动CoverFlow_lib.swc文件到同一目录的MXML文件,而不是使用源路径论点,但这似乎没有什么区别。

我很乐意去RTFM,如果有人可以如此友善地指向我的方向适当的文档。有相关的堆栈溢出问题herehere

谢谢!


更新:我已经改变了我的build命令如下:

mxmlc -library-path+=lib coverflow.mxml 

而且我也试过如下:

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

在同一目录SWC文件作为mxml文件。不过,我仍然遇到同样的错误。

还有一个video here显示我正在尝试使用的库,但在Flex Builder中。不幸的是,它没有显示如何使用mxmlc。

我也试过我的MXML剥离下来简单,

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

    <local:VideoCoverFlow /> 

</mx:Application> 
+0

我从链接的站点下载了封面流程示例,并且它们不包含名为VideoCoverFlow的类。有可能有人设置了一个清单,以便在flex中使用它们。您需要设置xmlns:local =“com.dougmccune.containers”,然后使用本地:VCoverFlowContainer – 2008-10-11 22:00:47

回答

1

如果它是一个SWC你不应该使用库路径,而不是源路径和引用SWC?

0

我终于得到了我的项目建设。库路径的使用是解决方案的一部分,但我也不得不仔细看一下Doug Mccune库的源代码,以便我可以在我的mxml中使用正确的路径信息和类型名称。

获胜的命令行是

mxmlc -library-path+=lib coverflow.mxml 

而且工作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 

出于某种原因,如果我用我的id="coverflow"容器抱怨。我收到一个错误,说ID名称和类型名称不允许相同。如果任何人都可以向我解释,我很想了解那里发生了什么。

再次感谢Simon和James的帮助。

+1

我认为这是因为您有一个名为coverflow的xmlns,因此您使用两个具有相同名称的符号填充文件符号表。您不需要xmlns:coverflow或xmlns:local – 2008-10-11 22:04:30