簡體   English   中英

在Windows上有很多“不兼容的簽名”錯誤,但在使用Flex 4 Gumbo的Mac OS X上卻沒有

[英]Lots of “incompatible signature” errors on Windows but not on Mac OS X with Flex 4 Gumbo

我有一個純Action Script 3項目,正在使用Flex 4 SDK進行編譯。 我有一個標准的Makefile,它會根據需要自動調用compc,mxmlc和asdoc。 我的Mac OS X 10.4+計算機上的項目正在干凈地編譯,沒有錯誤或警告。 但是,當與在Windows XP(安裝了Cygwin)上開發的同事共享該文件時,他會收到很多“不兼容的簽名”錯誤列表。 他為什么會得到這些錯誤? 簽名似乎不兼容。

注意:有問題的簽名是“原始”和“出口”,使用方式如下:

public interface AbstractX
{
    function original() : Object;
    function export() : Object
}
public class ImportX implements AbstractX
{
    public ImportX(obj : Object) {
        _loadedobj = obj;
        _exportobj = obj.export();
    }

    public static function wrap(obj : Object) : AbstractX {
        var result : AbstractX = null;
        if ( obj != null ){
            if ( obj is AbstractX ){
                result = obj as AbstractX;
            }else if ( obj.original() is AbstractX ){
                result = obj.original() as AbstractX;
            }else{
                result = new ImportX(obj);
            }
        }
        return result;
    }

    public function original() : Object {
        return _loadedobj;
    }

    public function export() : Object {
        return _exportobj;
    }

    private var _loadedobj : Object = null;
    private var _exportobj : Object = null;
}
public class X implements AbstractX
{
   public function X() : void {
      //...
   }

   public function original() : Object {
       return this;
   }

   public function export() : Object {
       if ( ! _export ){
           _export = new ExportX(this);
       }
       return _export;
   }

   private var _export : Object = null;
}

注意:上面的代碼是我的解決方案的一部分,該解決方案是當一個SWF動態加載另一個SWF文件時,如何使兩個SWF文件中使用的Action Script 3類解析為同一類?

您確定它也可以在Mac OS X上編譯嗎? 如果您最近更改了構建腳本,但使用的是“增量”編譯器選項,則可能只是因為緩存了構建,所以它已在Mac上成功構建。 嘗試刪除所有* .cache文件並在Mac上重建,看看是否出現相同的錯誤。

可能會出現奇怪的“不兼容簽名”錯誤的一種方法是,將輸出目錄放置在庫路徑中。 例如,如果要將* .swc文件輸出到$(MAINFOLDER)/ lib中,並且庫路徑中也列出了$(MAINFOLDER)/ lib。 我懷疑這是因為,最初將使用代碼中的接口,但是在構建過程的一半,將使用(不兼容的)編譯接口。

我沒有發現任何問題...信號完全兼容...在我的機器上編譯良好,並且適用於WinXP的gumbo ...除非它應該是公共功能 ImportX ...並且ExportX是未知的...發生了什么,如果他嘗試手動編譯? 並不是說我會認為錯誤是由於cygwin或makefile引起的,但是現在是誰...您可能想要使用ANT,因為這是跨平台的... 在這里閱讀更多(實際上,第4頁是有趣的)。 ..

我認為問題出在其他地方...或者在這里發布他的編譯輸出...

編輯:好的,那么你絕對應該發布他的編譯器輸出,因為我不明白那怎么不能編譯...

一條便條紙 :我現在就讀您的便條紙,關於您打算做的事情……我認為這實際上是行不通的……您會遇到同樣的問題,因為您要在2個瑞士法郎之間共享一個接口...實現一個接口實際上並不僅僅意味着您實現了這些方法,還意味着traits對象知道它實現了其接口...因此您將得到相同的錯誤...

格里茨

back2dos

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM