我已經在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移動到單個單片項目,一切正常。有人可以幫我從這裏出去嗎?獨立項目的代碼是:如何在構建swf時指定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>
Ext類型包含在utility.swc中。
更新: 我修正了以前的錯誤。命令行應該是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;
}
}
}