Action Script Прототипы и создание динамических функций - PullRequest
1 голос
/ 24 мая 2009

Кто-нибудь знает, как AS3 / Flash во время выполнения пытается изменить прототип при работе между песочницами. В частности, я создаю объект O в песочнице A, а затем передаю его в SandBox B. Каков эффект, если код в песочнице B пытается изменить прототип? (видят ли объекты в A того же класса?). Может ли песочница B перезаписывать открытые поля и методы объекта, созданного в песочнице A (если объект передается как параметр)? Можно ли создать неизменяемый класс (т. Е. Эквивалент скажем, например, final в java), который может выступать в качестве прокси-сервера, готового только для передачи между загруженным SWF и основным SWF? Я знаю, что класс событий может использовать clone () для своего рода, а затем передавать события между 2 SWF. Является ли использование финального класса в AS3 правильным способом создания прокси только для чтения, которые вообще нельзя изменить?

1 Ответ

3 голосов
/ 25 мая 2009

вы всегда можете использовать класс flash.utils.Proxy, если вам нужен прокси-сервер только для чтения для какого-либо объекта ...

ActionScript3 не основывается на прототипах, как 1 и 2 (вам нужно будет скомпилировать в режим объекта ecma, который имеет огромное снижение скорости) ...

теперь у него есть 2 механизма наследования ... один - на основе классов, а другой - на основе прототипов и работает только для динамических свойств динамических классов ... нет Запечатанный (т. е. не динамический ) класс и отсутствие запечатанного свойства или запечатанный метод динамического класса может быть изменен в время выполнения ... под изменением свойства я подразумеваю изменение его типа или добавление метода установки во время выполнения или перезапись его ... если свойство доступно для записи, вы, конечно, можете назначить ему что-то ...

final только означает, что его нельзя разделить на подклассы ...

Насколько я знаю, как только вы передаете объект O из песочницы A в B, код в B может получить доступ к O почти так же, как код в A ...

я не знаю, если это ответит на ваш вопрос ... может быть, вы могли бы объяснить, чем именно вы занимаетесь ...:)

Greetz

back2dos

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...