我在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;
}
}
}