2009-05-27 2 views
2

Поскольку функция - это еще один тип, о котором мне было интересно. Можно ли сериализовать функции в actionscript 3.0?ActionScript 3.0: Сериализация функций?

+0

Не могли бы вы объяснить, почему вы хотели бы это сделать? Возможно, у вас возникла проблема. – Iain

ответ

3

С AS3 Adobe предоставила нам достаточно энергии для создания, изменения и запуска ByteCode во время выполнения. Вы можете добиться «сериализации функций», используя эту опцию runte byteecode.

Это может получить довольно технический, но я рекомендую вам прочитать о некоторых библиотек, которые должны помочь вам:

Libspark's swfassist

Hurlant's AS3Eval

Я хотел бы также отметить, что AS3Eval должно быть легче понять - swfassist не имеет английской документации, насколько я могу судить. С AS3Eval вы можете изменить код как строку и выполнить его в режиме реального времени, как и старый метод eval.

Конечно, вы можете выбрать стиль hardcore и реализовать сложную систему для чтения/сериализации байт-кода, но использование таких библиотек сделает ее довольно простой.

+0

Можете ли вы быть более конкретным? Мне интересно, как я могу получить байт-код AVM2 одной из моих функций в строку и как создать функцию с помощью байт-кода из строки? – George

0

Вы хотите сериализовать не только указатель на функцию, но и фактическое содержимое функции, а затем отправить их на удаленную машину? Я не верю, что вы можете это сделать, вам придется использовать какой-то тип удаленных операций, чтобы сделать что-то подобное.

+0

Да, я имею в виду фактическое содержание функции. Упакуйте скомпилированный байт-код AVM2 в строку, манипулируйте им во время выполнения и де-сериализуйте его в новую функцию. – George

+0

errr да ... не думаю, что вы можете это сделать. – CookieOfFortune