Модераторы: SoWa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ACPrintManager, печать flash-ек на html странице 
:(
    Опции темы
AlDev
Дата 27.10.2007, 10:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный идиотъ
***


Профиль
Группа: Участник Клуба
Сообщений: 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/ скачанного дистрибутива. Для ее добавления достаточно прописать

Код

<script src="src/ACPrintManager.js" type="text/javascript" language="javascript"></script>


В шапке страницы.

С 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: импортировать и проинициализировать библиотеку

Например:
Код

import com.anychart.utils.PrintManager;
...
PrintManager.init(stage);

Warning: Инициализировать библиотеку надо ТОЛЬКО один раз!
Step 2: установить содержимое для печати

Например:
Код

//content for printing
var printableShape:Shape = new Shape();
printableShape.graphics.beginFill(0xAAAAAA, 1);
printableShape.graphics.drawRect(10, 10, 500, 500);
//save printable content
var data:BitmapData = new BitmapData(510, 510, false, 0xFFFFFFFF);
data.draw(printableShape);
PrintManager.setPrintableContent(data);


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
PM MAIL WWW ICQ YIM MSN   Вверх
AlDev
Дата 27.10.2007, 11:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный идиотъ
***


Профиль
Группа: Участник Клуба
Сообщений: 1927
Регистрация: 17.4.2005
Где: Irk, rus

Репутация: 9
Всего: 50



все ссылки теперь работают ;-)
PM MAIL WWW ICQ YIM MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Flash"
AlDev
SoWa
  • Если вы хотите предложить кому-либо работу, то пишите или в личку, или оставляйте сообщения в специально предназначеном для этого форуме "Объявления о найме специалистов"
  • Один вопрос - одна тема. Не надо переходов от одного вопроса к другому.
  • Если вы хотите показать какой-нибудь ваш мульт, причём показать, а не предоставить исходник, то вам сюда
  • Вопросы про программирование на ActionScript 1,2 (Flash 8 и более ранние версии) пишите в форуме ActionScript 1,2
  • Вопросы по разработке интернет-приложений на Flex и вопросы по MXML пишите в раздел Flex
  • Смотрим в будущее. ActionScript 3 обсуждается в форуме ActionScript 3
  • Новости из мира Flash.
  • New! [code=ascript][/code] - подсветка ActionScript + wikipedia help

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, AlDev, SoWa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Flash | Следующая тема »


 




[ Время генерации скрипта: 0.0649 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.