2010-07-07 68 views
3

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

回答

1

使用-library-path+=/path/to/my.swc。如果使用=而不是+=,編譯器將丟棄路徑中已有的所有平臺庫。

相關問題