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

Вернуться   Форум Flasher.ru > Flash > Flash Приложения: AIR, Zinc и тд.

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 02.04.2013, 23:36
Chum вне форума Посмотреть профиль Отправить личное сообщение для Chum Найти все сообщения от Chum
  № 1  
Ответить с цитированием
Chum
[+1 06.03.13]

Регистрация: Feb 2007
Сообщений: 174
По умолчанию Компонент AxShockwaveFlashObjects в форме VisualStudio C#

Подскажите плиз.
Есть форма (WinForms) выполненная в VisualStudio C#, на ней имеется компонент AxShockwaveFlashObjects в который подгружается внешний swf-файл. Также на этой форме имеется кнопка вывода на печать (без кода, разумеется).
Если кто-то занимался подобным вопросом - вывод в печать изображение созданное в swf-компоненте, поделитесь плиз в каком направлении копать, буду рад любой информации, коду на C#, ссылке и т.д.

Старый 03.04.2013, 10:56
alexcon314 вне форума Посмотреть профиль Отправить личное сообщение для alexcon314 Найти все сообщения от alexcon314
  № 2  
Ответить с цитированием
alexcon314
listener

модератор форума
Регистрация: Jun 2006
Сообщений: 3,260
Записей в блоге: 28
Отправить сообщение для alexcon314 с помощью ICQ
Самый простой вариант - когда принтскринится область окна, занимаемая плеером (axSWF - имя флешконтрола на форме).
Код:
Bitmap b;
        private void btnPrint_Click(object sender, EventArgs e)
        {
            b = new Bitmap(axSWF.Size.Width, axSWF.Size.Height);
            Graphics axg = Graphics.FromImage(b);
            Point p = axSWF.PointToScreen(axSWF.Location); 
            axg.CopyFromScreen(p, new Point(0,0), axSWF.Size);
            axg.Dispose();
            PrintDocument prnDoc = new PrintDocument();
            prnDoc.PrintPage += new PrintPageEventHandler(prnDoc_PrintPage);
            prnDoc.Print();
        }

        void prnDoc_PrintPage(object sender, PrintPageEventArgs e)
        {
            
            Graphics g = e.Graphics;
            g.DrawImage(b, 0, 0);
        }
Т.е. выводится снимок контента, отображаемого флешконтролом в данный момент, на дефолтный принтер с дефолтными настройками.
Если же имеется в виду что-то посложнее, то боюсь потребуется печатать из ролика средствами самого плеера, нужно исходник ролика править.

Старый 03.04.2013, 12:39
Chum вне форума Посмотреть профиль Отправить личное сообщение для Chum Найти все сообщения от Chum
  № 3  
Ответить с цитированием
Chum
[+1 06.03.13]

Регистрация: Feb 2007
Сообщений: 174
Впринципе я потихоньку подхожу к тому что копать надо в самом SWF.
Как я представляю мне в конечном итоге потребуется изображение выведенное в SWF, каким-то образом его необходимо преобразовать в BitmapData, но с увеличением разрешения, не экранное а большее, затем конвертировать в png-файл, я вот тут нарыл в Инете класс:
http://code.google.com/p/as3corelib/...ncoder.as?r=25
сохранить этот png, затем из флеша дать команду в форму C# о загрузке этого файла, ну а уже в форме, там разберусь как-нить.
Если всё обобщить то:
В SWF-файле есть некоторое количество спрайтов с исходным изображением выполненным методом graphics и есть спрайт приёмник. Требуется из спрайтов-исходников передать все изображения в спрайт приёмник (через BitmapData.copyPixels - ???), затем получить из спрайта приёмника BitmapData, каким-то образом увеличить его размеры(без потери качества), ну а потом генерить png.
Подскажите если можно, как правильно из одного спрайта-исходника передать изображение в другой спрайт-приёмник и получить BitmapData большее чем экранное.
Опыт работы с классами Bitmap и BitmapData есть, но небольшой, хотелось бы его расширить.

Старый 03.04.2013, 13:58
alexcon314 вне форума Посмотреть профиль Отправить личное сообщение для alexcon314 Найти все сообщения от alexcon314
  № 4  
Ответить с цитированием
alexcon314
listener

модератор форума
Регистрация: Jun 2006
Сообщений: 3,260
Записей в блоге: 28
Отправить сообщение для alexcon314 с помощью ICQ
Еще раз. Пересмотрите ваше приложение. В плеере есть все, что нужно, для печати контента. Тем более, приложение десктопное, а значит можно использовать AIR, C# тут вообще не нужен. Ну, разве что для интеграции в другое приложение.

Старый 03.04.2013, 17:17
Chum вне форума Посмотреть профиль Отправить личное сообщение для Chum Найти все сообщения от Chum
  № 5  
Ответить с цитированием
Chum
[+1 06.03.13]

Регистрация: Feb 2007
Сообщений: 174
Фишка в том, что хотя приложение и настольное но использовать приходиться только плеер, об AIR речи не идёт, т.к. насколько я понимаю устанавливать или не устанавливать AIR решает пользователь, в то время как плеер установлен примерно у 98.999% пользователей.
Задача в том, что бы при запуске приложения запросы по установке дополнительного обеспечения, пусть и бесплатноскачиваемого свести к минимуму. Так например недавно установленную VisualStudio C# 2012 Express пришлось снести и вернуться к VisualStudio C# 2010 Express, причина в том что в VS2012 нельзя создать проект версии 4.0, можно только 4.5, а у большинства пользователей в настоящее время ОС Windows 7, где библиотека Net.Framework 4.0 уже установлена, а 4.5 требуется докачивать.

Старый 03.04.2013, 17:34
alexcon314 вне форума Посмотреть профиль Отправить личное сообщение для alexcon314 Найти все сообщения от alexcon314
  № 6  
Ответить с цитированием
alexcon314
listener

модератор форума
Регистрация: Jun 2006
Сообщений: 3,260
Записей в блоге: 28
Отправить сообщение для alexcon314 с помощью ICQ
Насколько мне известно, AIR позволяет делать билд проекта, в который включается рантайм среды исполнения, т.е. конечному пользователю не придется устанавливать в систему этот рантайм, он включается в дистрибутив при таком билде.
Цитата:
плеер установлен примерно у 98.999% пользователей
С плеером, на самом деле, не все так гладко. Студия строит приложение на основе ActiveX контрола плеера, того, что использует Internet Explorer. И, конечно, плеер не включается при этом в состав приложения, он грузится при запуске из соответствующей системно папки.
Совсем не факт, что этот контрол присутствует в системе, даже в Windows 7. В дистрибутив ОС плеер не включен (по крайней мере в официальный от MS). Вполне вероятна ситуация, когда пользователь для просмотра инернет-сайтов не использует IE, благо альтернатив предостаточно. Тогда и ActiveX в его системе не будет. Кроме того, если ваше приложение чувствительно к версии плеера, то легко можно попасть на систему с давно не обновлявшимся плеером.
Если разберетесь с AIR (см. начало поста), то вы получите гарантированно запускаемое приложение, вне зависимости от состояния целевой ОС. При этом ничего грузить и дополнительно устанавливать пользователю не придется. Тем более .NET Framework, он вообще не нужен.
Вобщем, C# при всей его привлекательности, вряд ли позволит вам достигнуть такого результата. Из альтернатив можно предложить только разного рода оболочки типа MDM Zinc, f-in-box, но за них придется платить.
собственно, вот.

Старый 03.04.2013, 18:10
Chum вне форума Посмотреть профиль Отправить личное сообщение для Chum Найти все сообщения от Chum
  № 7  
Ответить с цитированием
Chum
[+1 06.03.13]

Регистрация: Feb 2007
Сообщений: 174
Мне очень нравится Flash, впервые я попробовал его в работе в 2005г. Тогда была версия Flash MX 2004. Собственно и программировать я учился осваивая AS2. О чём это я? Ах да, по поводу C#.
Цитата:
Вобщем, C# при всей его привлекательности, вряд ли позволит вам достигнуть такого результата.
Странно это слышать здесь, на форуме, где большая часть пользователей использует FlashDevelop, я кстати тоже. Что касается насколько C# у меня получится, время покажет.

Старый 03.04.2013, 23:00
alexcon314 вне форума Посмотреть профиль Отправить личное сообщение для alexcon314 Найти все сообщения от alexcon314
  № 8  
Ответить с цитированием
alexcon314
listener

модератор форума
Регистрация: Jun 2006
Сообщений: 3,260
Записей в блоге: 28
Отправить сообщение для alexcon314 с помощью ICQ
Вы о чем сейчас говорите? Я люблю флеш, за это буду юзать c#...при чем тут FlashDevelop?
Хотите С# - пожалуйста. Но с AIR было бы по-проще.

Старый 04.04.2013, 17:42
Chum вне форума Посмотреть профиль Отправить личное сообщение для Chum Найти все сообщения от Chum
  № 9  
Ответить с цитированием
Chum
[+1 06.03.13]

Регистрация: Feb 2007
Сообщений: 174
Протянул битмап-данные из флеша в форму C# при помощи XML-строки и вывел изображение в форме в пик-боксе, долго правда работает.
А C# и FlashDevelop при том что FD написан на C#.
AIR, спору нет хорошая технология но используя FD для AIR особо не разгонишься.

Старый 04.04.2013, 19:03
alexcon314 вне форума Посмотреть профиль Отправить личное сообщение для alexcon314 Найти все сообщения от alexcon314
  № 10  
Ответить с цитированием
alexcon314
listener

модератор форума
Регистрация: Jun 2006
Сообщений: 3,260
Записей в блоге: 28
Отправить сообщение для alexcon314 с помощью ICQ
Цитата:
Протянул битмап-данные из флеша в форму C# при помощи XML-строки и вывел изображение в форме в пик-боксе, долго правда работает.
Ну, еще бы... А зачем вы передаете битмап в c#? Сразу из плеера на принтер послать не выходит или что?
Цитата:
А C# и FlashDevelop при том что FD написан на C#.
И что с того?
Цитата:
но используя FD для AIR особо не разгонишься
Да ладно. Вполне себе разгонишься.
Вобщем, не заладилось что-то ... Нравится на ровном месте шишки огребать - дело ваше. Хотя, копаться в разных там ActiveX и WinForms тоже интересно в какой-то степени.

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

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

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


 


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


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