Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 16.11.2012, 12:32
SunnyDay вне форума Посмотреть профиль Отправить личное сообщение для SunnyDay Найти все сообщения от SunnyDay
  № 1  
Ответить с цитированием
SunnyDay

Регистрация: Nov 2012
Сообщений: 3
По умолчанию Как написать собственный флеш-профайлер?

День добрый флешеры! Недавно встала проблемма с управлением любыми флешками в web-страницах из фаерфокс-расширения. Сначала я попробовал использовать flashfirebug , который работает так:
1. В файл mm.cfg он записывает путь до sfw-приложения, которое будет стоять над всеми флешками.
2. Далее в этой флешке ( flashfirebug.swf ) для всех DOM-элементов, отображающих флеш (embed, object) добавляются методы flashfirebug_start, flashfirebug_stop, flashfirebug_send - после этого, я могу используя метод flashfirebug_send получить любые данные из флешки, соблюдая особый язык запросов.

И я бы так и пользовался профайлером flashfirebug.swf , но с ним возникают определённые проблеммы:
1. Флеш начинает часто падать в фаерфоксе.
2. flashfirebug.swf всё таки с лицензией, и распостранять плагин по пользователям с flashfirebug.swf внутри нельзя.
3. Медленная скорость работы флешфаербага.

Теперь вопрос - как написать собственный флеш-профайлер? Буду очень признателен за любые статьи, и особенно примеры. Из функционала мне необходимо единственное что - посылать во флеш произвольный eval и получать его результат. Непонятно, как для DOM-элементов (embed, object) добавить метод из такого профайлера. Но первое что непонятно - это структура такого swf-приложения как профайлер, и зачем оно вообще в теории нужно кроме как для использования браузерами в качестве бэкдора?)

Старый 16.11.2012, 13:12
Aquahawk вне форума Посмотреть профиль Отправить личное сообщение для Aquahawk Посетить домашнюю страницу Aquahawk Найти все сообщения от Aquahawk
  № 2  
Ответить с цитированием
Aquahawk
 
Аватар для Aquahawk

Регистрация: Nov 2010
Адрес: Москва
Сообщений: 915
Записей в блоге: 4
Отправить сообщение для Aquahawk с помощью ICQ Отправить сообщение для Aquahawk с помощью Skype™
http://help.adobe.com/ru_RU/FlashPla...ge-detail.html
__________________
:)

Старый 16.11.2012, 14:21
SunnyDay вне форума Посмотреть профиль Отправить личное сообщение для SunnyDay Найти все сообщения от SunnyDay
  № 3  
Ответить с цитированием
SunnyDay

Регистрация: Nov 2012
Сообщений: 3
Цитата:
Сообщение от Aquahawk Посмотреть сообщение
Спасибо конечно. Но нужно немного не то, если спросить конкретнее:
Как допилить вот этот код:
Код AS3:
    package  
    {  
        import flash.display.LoaderInfo;  
        import flash.display.Sprite;  
        import flash.display.Stage;  
        import flash.events.Event;  
 
        public class PreloadSwf extends Sprite  
        {  
            public function PreloadSwf():void  
            {  
                addEventListener("allComplete", allComplete);  
            }  
 
            private function allComplete(e:Event):void  
            {  
                removeEventListener("allComplete", allComplete);  
 
                var info:LoaderInfo = e.target as LoaderInfo;  
                trace(info.url, "is being monitored");  
 
                // now let the fun begin! try:  
                // info.content  
                // info.content.stage  
                // info.parameters  
                // info.applicationDomain  
                // info.bytes  
            }  
        }  
    }
отсюда ( http://philippe.elsass.me/2010/09/as...un-and-profit/ ) , чтобы для всех DOM-элементов embed и object при установленном в mm.cfg профайлере добавлялся мой собственный метод - например my_eval - который мог бы отправлять и получать команды из AS3-флешки прямым выполнением AS-кода.

Либо второй варик - не через свой метод DOM элемента, а через доступ к профайлеру через JS каким либо образом, в таком случае я не понимаю - к чему обращаться из JS..

Старый 16.11.2012, 17:06
maxkar вне форума Посмотреть профиль Отправить личное сообщение для maxkar Найти все сообщения от maxkar
  № 4  
Ответить с цитированием
maxkar

Регистрация: Nov 2010
Сообщений: 497
Цитата:
Непонятно, как для DOM-элементов (embed, object) добавить метод из такого профайлера.
А это не из профайлера делается. Это из firefox-плагина делается. Т.е. при загрузке страницы firefox-плагин слушает события загрузки и добавляет методы flashfirebug_start к embed/object. Вероятно, еще флаги изменяет (включает external interface). Это plugin api от firefox и никакого отношения к AS3 и ко флеш не имеет. А дальше загруженный профайлер через external interface общается с нагенеренным javascript-кодом. Вероятно, регистрирует callback'и и т.п. Вы точно так же можете из своего профайлера зарегистрировать через external interface js-callback и вызывать потом его из js.

Старый 19.11.2012, 10:23
SunnyDay вне форума Посмотреть профиль Отправить личное сообщение для SunnyDay Найти все сообщения от SunnyDay
  № 5  
Ответить с цитированием
SunnyDay

Регистрация: Nov 2012
Сообщений: 3
Цитата:
Сообщение от maxkar Посмотреть сообщение
А это не из профайлера делается. Это из firefox-плагина делается. Т.е. при загрузке страницы firefox-плагин слушает события загрузки и добавляет методы flashfirebug_start к embed/object. Вероятно, еще флаги изменяет (включает external interface). Это plugin api от firefox и никакого отношения к AS3 и ко флеш не имеет. А дальше загруженный профайлер через external interface общается с нагенеренным javascript-кодом. Вероятно, регистрирует callback'и и т.п. Вы точно так же можете из своего профайлера зарегистрировать через external interface js-callback и вызывать потом его из js.
Спасибо. Не, в фаерфоксе только вызовы этих методов - грепал код. Но объявляются они действительно с помощью External Interface. Правда пока что при попытке вызова кидает в JS "Error in Actionscript. Use a try/catch block to find error." . Разбираюсь пока что, ибо флешер из меня не ахти)

Создать новую тему Ответ Часовой пояс GMT +4, время: 19:05.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 19:05.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.