Показать сообщение отдельно
Старый 21.01.2011, 18:15
Aquahawk вне форума Посмотреть профиль Отправить личное сообщение для Aquahawk Посетить домашнюю страницу Aquahawk Найти все сообщения от Aquahawk
  № 5  
Ответить с цитированием
Aquahawk
 
Аватар для Aquahawk

Регистрация: Nov 2010
Адрес: Москва
Сообщений: 915
Записей в блоге: 4
Отправить сообщение для Aquahawk с помощью ICQ Отправить сообщение для Aquahawk с помощью Skype™
Цитата:
Сообщение от wvxvw Посмотреть сообщение
Если загружаемая флешка наследуется от MovieClip - можно попробовать addFrameScript и из функции добавленой таким образом вызвать обработчик, в кототом обрабатывается "progress"... или... дописать еще одну функцию в класс перед загрузкой... или, если возможно грузить в тот же домейн, то подготовить в "своем" домейне класс с таким же названием, как и у загружаемого документ класса... но тут могут быть проблемы с линкованием к символам...
Для начала я не знаю какая функция подписывается на progress(если декомпильнуть и посмотреть то знаю, мне нужно в автоматическом режиме сделать это.) Своя функция не проблема но особо тодже не поможет. Класс с таким названием делать нельзя т.к. флешка подгрузившись работать не будет.

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