6

我是 Flex SDK 的新手,并尝试使用Doug Mccune 的 CoverFlow小部件实现一个简单的项目。大多数关于如何执行此操作的文档都假定使用 Adob​​e 的 FlexBuilder 产品,这是一个 250 美元的 Eclipse 插件,我宁愿避免购买。我遇到的问题只是让 Flex SDK 项目编译器 mxmlc 识别 Doug 的 swc 文件,这是他的组件库的二进制版本。我不断收到错误消息,例如

错误:无法解析组件安装

错误:找不到类型或不是编译时常量:CoverFlow。

我也尝试过“VideoCoverFlow”类型,因为我很确定这些类型是在 Doug 的库中定义的。唉,我一直在弄清楚我哪里出错了。

以下是我的 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 文件相同的目录中,而不是使用 source-path 参数,但这似乎没有什么区别。

如果有人能向我指出正确文档的方向,我会很乐意去 RTFM。这里这里有相关的 Stack Overflow 问题。

谢谢!


更新:我已将构建命令更改为以下内容:

mxmlc -library-path+=lib coverflow.mxml

我还尝试了以下方法:

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

将 swc 文件与 mxml 文件放在同一目录中。但是,我仍然遇到同样的错误。

这里还有一个视频,显示了我正在尝试使用的同一个库,但在 Flex Builder 中。不幸的是,它没有显示如何使用 mxmlc。

我也尝试将我的 mxml 简化为,

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

    <local:VideoCoverFlow />

</mx:Application>
4

3 回答 3

9

这是Adob​​e 的 mxmlc 命令行工具文档的链接和命令行选项参考的直接链接。我也发现mxmlc -help list这是一个很好的起点。

正如另一张海报所推荐的那样,您确实想使用library-path将路径添加到包含 swc 文件的目录。使用 += 运算符确保不会覆盖以前的值

例如)

c:\flex_sdk_3\bin\mxmlc.exe -library-path+=lib coverflow.mxml
于 2008-10-11T21:33:11.803 回答
1

如果它是一个 swc,你不应该使用 library-path 而不是 source-path 并引用 swc?

于 2008-10-11T21:24:50.993 回答
0

我终于得到了我的项目来构建。使用 library-path 是解决方案的一部分,但我还必须仔细查看 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 名称和类型名称不允许相同。如果有人可以向我解释,我很想了解那里发生了什么。

再次感谢西蒙和詹姆斯的帮助。

于 2008-10-11T22:00:25.447 回答