Цитата:
Сообщение от wvxvw
Если загружаемая флешка наследуется от MovieClip - можно попробовать addFrameScript и из функции добавленой таким образом вызвать обработчик, в кототом обрабатывается "progress"... или... дописать еще одну функцию в класс перед загрузкой... или, если возможно грузить в тот же домейн, то подготовить в "своем" домейне класс с таким же названием, как и у загружаемого документ класса... но тут могут быть проблемы с линкованием к символам...
|
Для начала я не знаю какая функция подписывается на progress(если декомпильнуть и посмотреть то знаю, мне нужно в автоматическом режиме сделать это.) Своя функция не проблема но особо тодже не поможет. Класс с таким названием делать нельзя т.к. флешка подгрузившись работать не будет.
Есть вариант в constentPool преписать мультинейм от addEventListener на например customAddeventListener,настоящий addEventListener записать в конец со своим номером , через prototype подсунуть в loaderInfo такую функцию, внутри неё собрать обработчик прогресса и вызвать настояший addEventListener. Потом имея указатель на функцию создать progress самостоятельно и вызвать обработчик. Это решение мне не нравится т.к. оно очень геморное, и ещё тем что если у каких-то других объектов есть(а он есть) addEventListener то они все будут ходить по другому мультинейму, и всё развалится. Ещё можно просто на ходу дизассемблировать все методы, найти кто вешает ивет лисенера на прогресс на лоадеринфо, и только там подменить на свой кастомный метод, но это ну оооочень сложно, с учётом того что все джампы в байткоде относительные и вписывание своего мультинейма приведёт к изменению размеров кода и необходимости пересчитать все смещения в рамках метода.