2010-03-03 58 views
12

我想將一個可選的數據參數傳遞給一些回調函數,但僅限於支持單個參數的回調函數;現在,我有一箇中等大小的回調代碼庫,根本無法接受參數。我如何檢查一個Function對象支持哪些參數?如何在運行時在Flex 3中確定函數的參數個數?

+0

說實話,設計的味道有點有趣。你可以發佈一些代碼來顯示你正在嘗試做什麼嗎?因爲據我所知,我不認爲有任何方法可以檢查函數,而無需確定它在JavaScript或ActionScript中定義的參數數量(除Patrick描述的ActionScript類成員之外),因爲這是通常由開發人員預先知道。 – 2010-03-03 22:12:12

+1

Chris?你有沒有找到這個問題的答案?如果是這樣,你會介意發佈更新嗎? – Joshua 2010-10-04 15:46:48

回答

2

如果你的函數是在class宣佈使用functiondescribeType它會返回一個XML您可以解析,看看你的函數名與他的論點

+0

不是;這是一個lambda函數,作爲回調傳入。我似乎無法弄清楚如何從中獲得更多信息。 – 2010-03-03 20:37:05

1

參數數組是傳遞到的所有參數的數組功能。也許這就是你要找的東西?從livedocs.adobe.com

+0

這並不是那麼有用。我知道函數內部的參數是什麼,我正在研究如何從函數的範圍中找出它們是什麼。 – 2010-03-03 20:37:39

21

函數是一個對象採取

function traceArgArray(x:int):void 
{ 
    for (var i:uint = 0; i < arguments.length; i++) 
    { 
     trace(arguments[i]); 
    } 
} 

實施例。 每個函數都有一個名爲長度爲的只讀屬性,該屬性存儲爲函數定義的參數數量。 使用它。

相關問題