2011-02-11 86 views
1

在Flex中,您可以對非UI元素使用聲明標籤。Flex聲明訂單Bug

問題: 類的宣言內的順序排序升序或東西...

含義,在這個例子中,ACLASS將BClass前實例:

<fx:Declarations> 
    <local:AClass /> 
    <local:BClass /> 
</fx:Declarations> 

但在下一個例子,即使BClass是第一個,AClass仍然會在BClass之前被實例化。這是意料之外的行爲,因爲AClass可能依賴於BClass,但即使它在事後聲明順序中也會先實例化。

<fx:Declarations> 
    <local:BClass /> 
    <local:AClass /> 
</fx:Declarations> 

ACLASS

public class AClass 
{ 
    public function AClass() 
    { 
     var _instance:Object = BClass.instance; 
     trace("AClass " + _instance); 
    } 
} 

而且BClass

public class BClass 
{ 
    private static var _instance:Object; 
    public function BClass() 
    { 
     _instance = new Object(); 
     trace("BClass " + _instance); 
    } 

    public static function get instance():Object{ 
     return _instance; 
    } 
} 

我瘋了?

回答

1

我只是通過檢查生成的動作(使用-keep標誌作爲額外的編譯器參數)做了一個快速測試,聲明的順序似乎被正確保存。

您確定在更改對象的順序後做了乾淨的編譯嗎?