пятница, 21 сентября 2007 г.

Скрытая функция ASSetPropFlags();

Секреты, секреты, секреты. В этом мире нет такого места чтобы небыло тайн.

Вот и нашолся один секрет разроботчиков Action Script. На то время когда я это пишу я думаю это уже далеко не секрет, но все же...

Фнкция называеться ASSetPropFlags().
Мы знаем что все встроенные свойства и методы Action Script защишены от записи, удаления и перечисления. Так вот эта хитрая функция может изменять атрибуты любого встроенного объекта, вследствии чего можно будет изменять удалять или перечислять свойства и методы этого объекта.

Синтаксис функции выглядит так: ASSetPropFlag(obj, props, allowTrue, allowFalse)
obj - это объект атрибуты свойств которого будут переопределятся.
props - список свойств для которых будет переопределен атрибут
allowTrue - число хранящее флаги для каждого из атрибутов. Первый флаг отвечает за скрытие от перечисления, второй - удаления, третий - переопрделения.
allowFalse - параметр для снятия защиты.



Варианты определения атрибутов свойства
Флаг|Величина |Возможно ли        |Возможно ли|Возможно ли
       |allowTrue |переопределение |удаление     |перечисление

000   | 0           | Да                     | Да             | Да
001   | 1           | Да                     | Да             | Нет
010   | 2           | Да                     | Нет           | Да
011   | 3           | Да                     | Нет           | Нет
100   | 4           | Нет                   | Да             | Да
101   | 5           | Нет                   | Да             | Нет
110   | 6           | Нет                   | Нет           | Да
111   | 7           | Нет                   | Нет           | Нет

Попробуем получить список всех встроенных объектов, классов и функций Action Script.

ASSetPropFlags(_global, null, null, 1);
for (var i in _global) {
trace(i);


В результате в окне Output будет выдан полный список объектов, классов и функций.