2009-05-27 41 views
2

由於函數只是我想知道的另一種類型。是否有可能在actionscript 3.0中序列化函數?ActionScript 3.0:函數的序列化?

+0

你能解釋一下爲什麼你想這樣做嗎?可能會解決您的問題。 – Iain 2009-05-28 08:10:27

回答

3

藉助AS3,Adobe爲我們提供了足夠的能力來在運行時創建,修改和運行ByteCode。 您可以使用此運行時字節碼概念來實現'函數序列化'。

這可以得到相當的技術,但我建議你閱讀一些庫,應該可以幫助您:

Libspark's swfassist

Hurlant's AS3Eval

我還應該指出的是AS3Eval應該更容易理解 - swfassist沒有英文文檔,據我所知。 With AS3Eval您可以將代碼修改爲字符串並實時執行,就像舊的eval方法一樣。

當然你可以去核心風格和實現一個字節碼讀/序列化的複雜系統,但使用這樣的庫會使它非常簡單。

+0

你能更具體一點嗎?我感興趣的是如何將我的一個函數的AVM2字節碼轉換爲字符串,以及如何使用字符串中的字節碼創建函數? – George 2009-05-29 10:53:53

0

你的意思是序列化不只是指向函數的指針,而是實際的函數內容,然後將它們發送給遠程機器?我不相信你能做到這一點,你將不得不使用某種類型的遠程做類似的事情。

+0

是的,我的意思是實際的功能內容。將編譯後的AVM2字節碼打包成一個字符串,操作它的運行時間並將其反序列化爲一個新函數。 – George 2009-05-27 16:44:04

+0

errr是啊...不要以爲你可以做到這一點。 – CookieOfFortune 2009-05-27 17:39:04