![]() |
Проблемы при выводе приложения на разные мониторы.
Вложений: 1
Написал промежуточный вариант приложения где ядро - swf-файл, а оболочка WinForms C#.
Начал тестировать по принципу: выбрать сторонний комп с Windows 7 вставить флешку с приложением, запустить и что-б работало. SWF-файл был написан в FlashDevelop 4 изначальные размеры указывались 800*600пкс, масштабирование "noScale". Оболочка: VisualStudio 2010 C# Express WinForms. Изначальные размеры компонента AxShockwaveFlash в форме - 920*492 пкс. Все возможные параметры Anchor в свойствах были заданы : Top, Bottom, Left, Right. Приложение писалось на компе с широкоформатным монитором (1680*1050пкс). При тестировании использовалось 4 стронних компа с мониторами 2 (1280*1024) и 2 (1680*1050), причём один из широкоформатных мониторов был вертикально установлен. На всех широкоформатных мониторах приложение работало так как было задумано. Проблемы возникли при отображение приложения на мониторах с разрешением 1280*1024 на двух аналогично. Более наглядно косяки можно увидеть на представленном скриншоте. Там выделено 3 ошибки: 1. Рабочая область - swf-файл вместо того чтобы занимать всё пространство компонента AxShockwaveFlash, занимал выделенное красным. 2. Увеличились кнопки и фоновое изображение в них сползло в верхний левый угол. 3. В верхней части меню уменьшилось и открылся фон. Если у кого-то есть какие-либо соображения по данному поводу, в чём причина косяков - поделитесь плиз.Вложение 29375 |
1.См. в сторону автоматически генерируемого метода формы InitializeComponent() и в частности на выставление режимов AutoScaleDimensions и AutoScaleMode формы.
http://msdn.microsoft.com/ru-ru/library/ms229605.aspx http://msdn.microsoft.com/ru-ru/libr...(v=vs.90).aspx 2. Не надо злоупотреблять анкорами (имхо). Можно использовать контейнеры типа Panel, TableLayoutPanel Dock-режимы, но это имхо, повторюсь. 3. Рабочая область ролика визуально соответствует заявленным "800*600пкс, масштабирование "noScale". Естественно, масштабированием контента ролика дожен заниматься плеер, а не WinFоrms. Тут не понятно, что не устраивает. Вообще, странно, все как бы на автомате должно работать, как надо. Попорбуйте потестить на голом приложении с минимальным количеством контролов на форме и дефолтными настройкам их свойств, добавляя поочередно контролы. Возможно где-то что-то лишнего понаставили.... И да, NET-приложения можно отчасти сконфигурировать, используя *.exe.config-файл. Например, сориентировать NET-рантайм на использование определенной версии фреймворка, когда их не одна на целевой машине. На тестовых компах с версией NET все в порядке? |
Я проверял на скриншоте размеры выводимого изображения SWF-файла, каждая из сторон более первоначально заданной.
Повторюсь - на широкоформатных мониторах флешка занимала всю площадь экрана отведённую под компонент AxShock а не часть её как явствует из скрина. Спасибо за ответ, буду рыть дальше. Кстати, компонент AxShock вставлен на одну из страниц TableLayoutPanel, которая вставлена в Panel, которая вставлена в ячейку TabControl. Прям как у Маршака! |
Каким образом ролик 800*600 занимает всю площадь плеера при размере 920*492 и режиме noScale???
Хотя... В свойствах компонента AxShockwaveFlash на форме есть поля CtlScale и SAlign. Они отвечают за выравнивание и скалирование контента. При этом одновременно в коде ролика можно указать параметры stage.align и stage.scaleMode, например: Код AS1/AS2:
Глюки можно словить, если в свойствах контрола и в коде пытаться указывать разное поведение. Кроме того, нужно смотреть и на процесс инициализации как формы с контролом, так и ролика. Т.е. что и в какой последовательности выполняется. Анкоры, наложенные на контрол, могут добавить путаницы. Выкладывайте пример проекта (C# и AS 3), где у вас происходят "непонятные" вещи. Не видя конкретного кода, трудно что-либо сказать..разве что пару общих фраз типа "чего-то вы там перемудрили" и "попробуйте все сначала" :). И да, кнопочки со съехавшими картинками - это флеш или родный кнопки WinForms? Какое у них выравнивание и анкоры? Меню тоже выглядит странно, больше похоже на тулбар.. Вобщем, у меня сложилось впечатление, что вы пытаетесь как-то "своеобразно" проинициализировать приложение, оттого и глюки. |
Вложений: 1
Вот скрин экрана моего монитора и открытого приложения. Разрешение монитора 1680*1050.
Ясно видно что работает всё пространство рабочего поля компонента AxShockW. Ядро - swf-файл выполненный в FD4, в нём ни одной кнопки прогораммно не создаётся, только рисование, логика и контакт с формой C#. В том-то и дело что я не могу выложить примеры кода, потому как не знаю где происходят непонятные вещи. На моём мониторе и других широкоформатных мониторах всё работет так как надо. Проблемы с "квадратными" (в смысле 4*3) мониторами. Я несколько переделал навигацию приложения но все внутренности те-же. Вложение 29386 |
У кнопок на малой форме все так как было изначально, толко уменьшена ширина, добавлены фоны (стрелки). Все кнопки VS WinForms.
|
Сделайте вместо фона на кнопках (BackgroundImage) просто Image, и будет вам счастье...
Вы бы хоть значения свойств контрола перечислили, о которых я говорил... в коде ролика скалирование и выравнивание есть? Как загружаете ролик в контрол? Какие параметры привязок используете? Без кода нифига не понятно, по-любому. Цитата:
|
Да я всё переделал с нуля, оттого и навигация новая. Правда опять таки на своём мониторе.
В принципе можно попробовать на "квадратном" переделать. Поговорю с народом дадут напрокат мониторчик. Вот код класса в котором описывается работа компонента AxShockWeaveFlash: Код AS3:
|
Дружище, это ни о чем. Полный код проектов религия не позволяет показать? И ас3 и c#. Проекты FD и VisualStudio (желательно не старше MSVS 2010).
|
Я сторонник открытости кодов, тому есть примеры и на моём сайте kersha.ru и на этом форуме. Однако это касается только тех проектов которые претендуют на статус законченных. Незаконченные проекты не выкладываются.
Да в принципе я докопаюсь. |
Вау!.
А мне вот и показать нечего :( |
|
Дык это ж так.. :D
I like to move просто. .. ОК. Дальше без флейма. |
Вложений: 1
Поставил на свой комп монитор 4*3 с разрешением экрана 1280*1024 открыл в VisualStudio 2010 приложение, откомпилировал и оно заработало так как надо, полный экран без пустых полей.
Вложение 29391 Проверил на стороннем компе с таким-же по разрешению и пропорциям монитором - косяк никуда не делся. Ситуация складывается таким образом что теперь я не смогу переделать приложение т.к. не смогу отследить момент вывода ошибки передачи изображения. |
| Часовой пояс GMT +4, время: 05:13. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.