Загрузка flash .swf с использованием интерфейса NPAPI - PullRequest
1 голос
/ 16 февраля 2011

Я пытался написать программу с прямой загрузкой SWF файла, и я собираюсь использовать NPAPI для реализации этой программы.

Но я нене знаю с чего начать.Я имею в виду, как общаться между какао и NPAPI?А как построить архитектуру программы?

Я много раз искал в Google, полезной информации по этой теме не много.

Надеюсь, кто-нибудь сможет мне помочь.

Любое предложение будет оценено.

Ответы [ 2 ]

1 голос
/ 16 февраля 2011

Построение хоста NPAPI нетривиально; если вы действительно хотите сделать это самостоятельно с нуля, лучше всего было бы посмотреть на источник Gecko, WebKit и / или Chromium и повторно использовать все, что вы можете оттуда (если исходная лицензия вашего приложения делает это возможным).

Кроме этого, Документация Mozilla по NPAPI является лучшим источником вместе со списком принятых расширений NPAPI для более свежих изменений (поскольку вы упомянули Mac, вам понадобится читать и понимать, по крайней мере, Какао, Core Graphics, Core Animation и предложения для переговоров). Просто помните, что многое из того, как работает NPAPI, является де-факто стандартом, основанным на том, что делают другие браузеры, поэтому одной документации будет недостаточно.

Вы упомянули в комментарии, что не хотите использовать WebKit из-за «проблемы безопасности» - если вы знаете о проблеме безопасности в WebKit, почему бы не исправить ее, вместо того чтобы создавать действительно сложную систему с нуля? Это очень, очень маловероятно, что если вы сделаете реализацию NPAPI-хоста с нуля, вы в конечном итоге допустите меньше ошибок безопасности, чем существует в зрелой реализации, которая была протестирована, отлажена и улучшена в течение количество лет.

0 голосов
/ 16 февраля 2011

Особенно учитывая количество фона плагинов, которое у вас пока есть, я бы настоятельно рекомендовал использовать FireBreath . Это по крайней мере поможет вам через часть плагина. Остальное зависит от вас, и это будет не просто.

Следует знать, что разные браузеры в Mac OS X используют разные модели рисования и разные модели событий. Для моделей событий общее правило: 32-разрядные браузеры поддерживают Carbon, а 64-разрядные - Cocoa, хотя некоторые 32-разрядные браузеры поддерживают Cocoa. В зависимости от 32/64 бита и браузера (и версии) вам может потребоваться рисовать с помощью QuickDraw, Cocoa, CoreAnimation или CoreGraphics.

На этой вики-странице FireBreath (основной веб-сайт) есть больше информации об этом .

...