代码之家  ›  专栏  ›  技术社区  ›  341008 Sylvain

构建swf时如何指定swc?

  •  3
  • 341008 Sylvain  · 技术社区  · 14 年前

    我在Flex中实现了一些实用程序类,我想在多个AIR项目中使用它们。我创建了一个包含这些类的swc。我在Linux机器上工作,没有FlashBuilder。所以我使用的是compc和mxmlc命令行SDK工具。我的问题是,在构建独立项目时,我无法找到指定swc的方法。教程建议使用以下命令: mxmlc -load-config /opt/flex/4.1.0/frameworks/air-config.xml -library-path=/path/to/utility.swc hello.mxml hello.mxml: Error: Unable to locate specified base class 'mx.core.WindowedApplication' for component class 'hello' . 如果我把所有的代码从swc移到一个单一的单片项目中,一切都很好。有人能帮帮我吗?独立项目的代码为:

    <?xml version="1.0" encoding="utf-8"?>
    <mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" windowComplete="completeHandler();">
    <mx:Script>
    <![CDATA[
    import com.example.Ext;
    private function completeHandler():void
    {
        var e: Ext = new Ext();
        e.hi();
    }
    ]]>
    </mx:Script>
    <mx:Label text="Hello World" />
    </mx:WindowedApplication>
    

    更新: 我修正了前面的错误。命令行应该是 mxmlc -load-config /opt/flex/4.1.0/frameworks/air-config.xml -library-path+=/path/to/utility.swc hello.mxml . 这会将我的swc附加到现有的库路径,而不是替换它。然而,我有一个新问题。现在错误是 hello.mxml(10): Error: Type was not found or was not a compile-time constant: Ext. 我正在粘贴utility.swc的代码:

    package com.example {
        public class Ext {
            public function Ext {
                // do something
            }   
            public function foo( ): void {
                return;
            }   
        }   
    }
    
    1 回复  |  直到 14 年前
        1
  •  1
  •   Andrew Aylett    14 年前

    使用 -library-path+=/path/to/my.swc = 而不是 +=