![]() |
Модераторы: SoWa |
![]() ![]() ![]() |
|
AlDev |
|
||||||
Опытный идиотъ ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1927 Регистрация: 17.4.2005 Где: Irk, rus Репутация: 9 Всего: 50 |
Оригинал находится тут:
http://anychart.com/blog/projects/acprintmanager/ Это собственно русский оригинал. Итак, описание моей библиотечки для управления печатью flash-ек на html странице и некоторых хитрых фиксов некоторых насущных проблем, связанных с печатью flash-ек. Представляю вам ACPringManager! ;-) ACPrintManager is browser printing manager for flash content powered by AnyChart.Com team. Представляет собой небольшую JavaScript и ActionScript библиотеку. Текущая версия: 0.1 Зачем это нужно ACPrintManager позволяет вам: * Избавиться от проблем с печатью в Firefox (как правило, Firefox просто не отображает flash содержимое при печати html страницы) * Нормально печатать flash-ки с процентными размерами в Internet Explorer (при попытке напечатать flash содержимое процентного размера, Internet Explorer просто scale-ит контент flash-ки вне зависимости от того, какие значения стоят у stage.scale и stage.align) * Настроить вид flash-ки при печати из браузера (аналог html css media="print") Как это работает Проблему с печатью в Firefox мы решили используя возможность этого бразуера добавлять картинку напрямую на страницу, вместо указания ссылки на нее (см. http://en.wikipedia.org/wiki/Data:_URI_scheme#HTML Проблему печати Flash-ки с процентными размерами в Internet Explorer мы решили используя уникальные события Internet Explorer-а: onbeforeprint и onafterprint. При событии onbeforeprint мы просто заменяем процентные размеры flash-ки на пиксельные, которые, в свою очередь, получаем от Flash-ки используя ExternalInterface. Идея настройки вида flash-ки для печати заключается в подмене flash-ки картинкой в Firefox-е и перерисовкой flash-ки в InternetExplorer при событии onbeforeprint. Download http://anychart.com/tips_and_tricks/acprin...rintManager.zip Как это использовать Для использования требуется две простых вещи: * Добавить javascript библиотеку в страницу * Добавить установку содержимого для браузерной печати во Flash-ку JavaScript библиотека лежит в папке src/js/ скачанного дистрибутива. Для ее добавления достаточно прописать
В шапке страницы. С ActionSctript библиотекой все немного сложнее. Библиотека лежит в папке src/as/ скачанного дистрибутива. Для ее использования вы можете скопировать содержимое этой папки в папку вашего проекта, либо просто добавить путь к папке в classpath проекта: См. Как добавить classpath для Flash 9 файла: http://livedocs.adobe.com/flash/9.0/UsingF...dec34-7fa2.html Для Flex/FDT проекта В диалоге добавления Folder, нажмите на advanced и выставите путь к папке с исходниками. После того, как ActionScript библиотека будет добавлена к проекту, остается произвести некоторые действия: Step 1: импортировать и проинициализировать библиотеку Например:
Warning: Инициализировать библиотеку надо ТОЛЬКО один раз! Step 2: установить содержимое для печати Например:
API Reference ACPrintManager ActionScript API Reference лежит в папке api скачанного дистрибутива. Samples 1. Flash 9 sample Flash 9 sample находится в папке samples/flash9 скачанного дистрибутива 2. Flex 3 sample Flex 3 sample находится в папке samples/flex скачанного дистрибутива Integragion How to use ACPrintManager with SWFObject Просто поправьте код ваших swf-ок и добавьте в страницу импорт яваскрипта, как это было описано выше. FAQ Q: Когда надо вызывать setPrintableContent? A: Всегда, когда требуется обновить содержимое, которое будет отображаться на напечатанной странице. Q: С какой версией Flash Player-а работает это решение? A: 9 и выше Q: Как установить для печати текущее содержимое всей сцены? A: Можно в главном классе (root) прописать следующий код: var data:BitmapData = new BitmapData(stage.stageWidth, stage.stageHeight, false, 0xFFFFFFFF); data.draw(this); PrintManager.setPrintableContent(data); т.е. установить содержимое корневого спрайта для печати и выставить размеры, равные размерам сцены. Q: Почему не работает печать в Firefox при использовании embed-а flash-а, генерируемого 9-м flash-ем? A: 9-й Flash генерирует js файл AC_RunActiveContent.js, в котором embed-у не выставляется аттрибут id. Поправленный AC_RunActiveContent.js лежит в папке fixes/flash9/AC_RunActiveContent.js © 2007 by AnyChart.Com ( http://anychart.com ) Добавлено @ 11:04 Сори, ссылки будут доступны через 30 минут. Это сообщение отредактировал(а) AlDev - 27.10.2007, 11:58 |
||||||
|
|||||||
AlDev |
|
|||
Опытный идиотъ ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1927 Регистрация: 17.4.2005 Где: Irk, rus Репутация: 9 Всего: 50 |
все ссылки теперь работают ;-)
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Flash" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, AlDev, SoWa. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Flash | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |