2012-03-27 88 views
0

我想在flex中創建通用組件。 這個組件動態地處理不同的ArrayCollections(我想要那樣)。 所以我想傳遞arrayCollection和arrayCollection的類型作爲組件的參數。Flex中的動態對象投射

一樣,

var list:ArrayCollection<ClassA>; 
init_Comp(list, "ClassA"); 

如果有可能,我可以這樣讀它,

var newDynamicInstatnce: typeOf("ClassA") = list.getItemAt(0) as typeOf("ClassA"); 

最後我有一個動態實例型的,我通過。

這是可能在Flex中還是有更好的方法嗎?

謝謝!

+0

您提供的代碼在Flex/ActionScript中不起作用,因爲您不會在actionscript ArrayCollection 中聲明ArrayCollection的類型。但是在你的場景中,我會做的是使用if語句來檢查類的類型,然後實例化一個新的變量,如下所示: 'if(list.getItemAt(0)is ClassA){var newDynamicInstance:ClassA = list。 getItemAt(0)作爲ClassA; }' – Sebastian 2012-03-27 10:40:57

+1

爲什麼你的通用組件需要知道speficic類型? – splash 2012-03-27 11:06:26

回答

0
  1. 聽起來很有趣。你可以傳入類型作爲構造函數參數。

    新TypedCollection(ClassA的)

    addTypedItem(項目){ 如果(產品checkType){

  2. 全面的解決方案是修改增加的Flex SDK(Java代碼),以支持編譯水平的仿製藥。

但我認爲這將是一個不盡人意的工作。您想從哪些人獲得類型保護?從你自己?