|
|
|||||
Banned
[+4 01.02.09]
[+1 01.02.09] |
ASnative и прочие невидимки
Навеяло соседней темой про AsBroadcaster.
AsBroadcaster и ASSetPropFlags хорошо известны и описаны. А вот до остального как-то не добрался еще, типа: Интересно, что и для чего? |
|
|||||
Et cetera
Регистрация: Sep 2002
Сообщений: 30,784
|
|
|
|||||
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,879
Записей в блоге: 7
|
ASnative позволяет добраться до встроенных методов, через числовые индексы (список в аттаче). Удобен тем, что можно подменить какой нибудь метод на свой, а оригинальный метод вызвать через ASnative. Пример с setInterval
ASSetNative - ассоциирует строковое имя с числовым индексом метода. В примере заменяем создание нового клипа с createEmptyMovieClip на newClip. А чуть ниже далее вызваем его же через индексы. При этом, оригинальное название остается! var o = MovieClip.prototype; ASSetNative (o, 901, "6newClip,6beginFill,6beginGradientFill,6moveTo,6lineTo,6curveTo,6lineStyle,6endFill,6clear,8lineGradientStyle,8beginMeshFill,8beginBitmapFill"); trace (this.newClip ("mc", 0)); //_level0.mc trace (ASnative (901, 0).apply (this, ["mc1", 1])); //_level0.mc1 trace (this.createEmptyMovieClip ("mc2", 2)); //_level0.mc2 ASSetNativeAccessor - связывает индекс геттера с строкововым именем. mc.blendMode = 3; mc._lockroot = true; trace (mc.blendMode); //multiply trace (mc._lockroot); //true //// var o = MovieClip.prototype; ASSetNativeAccessor (o, 900, "_lockroot", 500); ASSetNativeAccessor (o, 900, "8blendMode", 300); //// trace (mc.blendMode); //true trace (mc._lockroot); //multiply ASconstructor - аналог ASnative, только для конструктора. Например для Date XYZ = ASconstructor (103, 256); trace (ASconstructor (103, 256) ()); //Mon Jul 21 14:33:11 GMT+0400 2008 trace (XYZ ()); //Mon Jul 21 14:33:11 GMT+0400 2008 ASSetupError - ошибка ) Код инициализации такой function AsSetupError (s) { var _a = s.split (","); var _b = 0; while (_b < _a.length) { var _c = _a[_b]; var _d = function (m) { this.message = m; }; var _e = new Error (); _d.prototype = _e; _e.name = _c; _e.message = _c; ++_b; } } Последний раз редактировалось iNils; 04.06.2009 в 21:13. |
|
|||||
Banned
[+4 01.02.09]
[+1 01.02.09] |
iNils, моё уважение!
Буду мучить ASnative теперь crazyone, ASSetPropFlags Цитата:
|
Часовой пояс GMT +4, время: 13:46. |
|
« Предыдущая тема | Следующая тема » |
Теги |
ASconstructor , ASnative , ASSetNative , ASSetNativeAccessor , ASSetupError |
|
|