2011-11-01 80 views
5

我需要傳入一個字符串,該字符串在運行時得到評估。因此我可以這樣寫:AS3 - 在運行時評估 - D.eval vs hurlant

var foo = someEvalMethod ("dataObject.someValue") 

代替:

if (argIn == "dataObject.someValue") 
    var foo = dataObject.someValue 
} 

沒有人有下列評估庫,或AS3更好的意見?感謝:

AS3 EVAL通過hurlant:

http://eval.hurlant.com/

D.eval通過RIA 1:

http://www.riaone.com/products/deval/

+1

如果您只需要訪問屬性和對象,則不一定需要使eval複雜化。你能否更具體地瞭解你需要什麼和不需要? – grapefrukt

+0

Ahh shucks ... D.eval的網站已關閉:( – bigp

回答

4

據我所知AS3 EVAL通過hurlant是一個「真正的「編譯器。它解析代碼,生成字節碼並將其注入到正在使用的Flash Player實例中(通過loadBytes()我猜))。

D.eval具有相同的目的,但它不生成字節碼,它解析表達式並通過它自己的API動態執行它們。

我看到D.eval作爲一個很好的候選你想要實現的。這不是一個全功能的編譯器,但它有足夠的API來涵蓋許多簡單的操作。除此之外,它是一家擁有一家公司的產品,這永遠是一個很好的保證。

乾杯!