2009-05-27 7 views
2

ファンクションは単なる別のタイプなので、私は不思議に思っていました。 ActionScript 3.0で関数をシリアライズすることは可能ですか?ActionScript 3.0:関数のシリアル化?

+0

あなたはこれをやりたい理由を説明してください。あなたの問題を回避する方法があるかもしれません。 – Iain

答えて

3

AS3を使用すると、Adobeは実行時にByteCodeを作成、変更、実行するのに十分な力を与えました。 このランタイムバイトコードコンセプトを使用して「関数のシリアライゼーション」を達成することができます。

これはかなり技術的な得ることができますが、私はあなたを助ける必要があるいくつかのライブラリをおよそ読みすることをお勧めいたします:

Libspark's swfassist

Hurlant's AS3Eval

私もAS3Evalがが容易であることを指している必要があります理解している - swfassist私が知る限り、英語の資料はありません。 AS3Evalとすると、コードを文字列として変更して、古いevalメソッドのように、リアルタイムで実行することができます。

もちろん、ハードコアスタイルになり、バイトコードの読み込み/シリアライズの複雑なシステムを実装できますが、このようなライブラリを使用するとかなりシンプルになります。

+0

もう少し具体的になることができますか?私は、私の関数の1つのAVM2バイトコードを文字列に変換する方法と、文字列のバイトコードを使用して関数を作成する方法について興味がありますか? – George

0

関数へのポインタだけでなく、実際の関数の内容をシリアル化してから、リモートマシンに送信することを意味しますか?私はあなたがそれを行うことができるとは思わない、あなたは何かのようなことをするために何らかのタイプのリモーティングを使わなければならないだろう。

+0

はい、実際の関数の内容を意味します。コンパイルされたAVM2バイトコードを文字列にパックし、ランタイムを操作し、新しい機能にデシリアライズします。 – George

+0

errr yeah ...あなたがそれをすることができるとは思わない。 – CookieOfFortune