Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Вопрос про первый план видимости (http://www.flasher.ru/forum/showthread.php?t=213058)

Tails 23.06.2016 17:11

Сделайте чтоль пример какой простенький, для демонстраций проблемы. Может быть, так вам быстрее помогут.

Egstond 23.06.2016 17:19

Вложений: 1
Цитата:

Сообщение от Tails (Сообщение 1195087)
Сделайте чтоль пример какой простенький, для демонстраций проблемы. Может быть, так вам быстрее помогут.


Вот картинка. Проблема в пустоте, которая выглядит некрасиво. Пришла в голову идея, поставить фон-картинку, но она закрывает рабочее окно.

Tails 23.06.2016 17:28

Всё очень просто:
  1. Выставляем stage.align в StageAlign.TOP_LEFT.
  2. Выставляем stage.scaleMode в StageScaleMode.NO_SCALE.
  3. Подписываемся на событие RESIZE
  4. Один раз в начале и далее по событию ресайза позицианируем и масштабируем контент так как нам нужно.

Бэграунд растяните или зарепитите, основной контент отпозицианируйте по центру.
Нужные разделы справки:
http://help.adobe.com/ru_RU/FlashPla...html#scaleMode
http://help.adobe.com/ru_RU/FlashPla...age.html#align
http://help.adobe.com/ru_RU/FlashPla...tageAlign.html
http://help.adobe.com/ru_RU/FlashPla...ScaleMode.html

пс. Всё это нужно делать в рамках stage3D.

Egstond 23.06.2016 17:36

Цитата:

Сообщение от Tails (Сообщение 1195089)
Всё очень просто:
  1. Выставляем stage.align в StageAlign.TOP_LEFT.

  1. Зачем? Мне не нужно чтобы stage была в левом углу, она должна быть в центре, как и есть на картинке, проблема в пустоте, а не в расположении stage.
    Цитата:

    Сообщение от Tails (Сообщение 1195089)
  2. Выставляем stage.scaleMode в StageScaleMode.NO_SCALE.

  3. Как я и писал Stage фиксирована уже, она не изменяется не при каких обстоятельствах.

    Цитата:

    Сообщение от Tails (Сообщение 1195089)
  4. Подписываемся на событие RESIZE
  5. Один раз в начале и далее по событию ресайза позицианируем и масштабируем контент так как нам нужно.

Цитата:

Сообщение от Tails (Сообщение 1195089)
Бэграунд растяните или зарепитите, основной контент отпозицианируйте по центру.
Нужные разделы справки:

пс. Всё это нужно делать в рамках stage3D.

Ну вот мне нужно чтобы фон был сзади, а он лезет вперед.. Может я не совсем понял что вы имеете в виду..

Tails 23.06.2016 17:44

Растягиваете stage3D на весь экран, при ресайзе (изменений размеров), переопределяете размеры stage3D заново, под новые размеры. Он не должен быть в левом углу, он должен заполнять всё поле видимости, которое в данный момент отображается.
Фон должен быть сделан внутри stage3D, фон и всё остальное позицианируется по событию ресайза.

Egstond 23.06.2016 17:47

Опять же проблема в том что его нельзя масштабировать, потому что идет потеря качества. Поэтому фон нужно как то запихать вокруг, может не битмапом, можно вторую фоновую stage сделать ?

Tails 23.06.2016 17:59

Не нужно ничего масштабировать, нужно изменять размеры вью порта по событию и позицианировать контент. Выше описанный метод является единственно верным. Перечитывайте его до тех пор, пока не наступит озарение.

Egstond 23.06.2016 18:08

я не упоминал полноэкранный режим ? Речь именно о нем, в оконном то и пустоты оприори нету..


напомню еще раз суть проблемы
Цитата:

stage допустим 500на500(фиксированный), а отображение всего в полноэкранном режиме допустим 1024на768, получается маленький экран с финишной графикой и пустота вокруг, вот битмап для того чтобы пустоту убрать, его нет смысла внутри этого окошка рисовать, снаружи надо каким-то способом, конечно можно аппликацию из 4х кусков сводить вокруг stage, но может по проще что есть.

Tails 23.06.2016 18:38

Не имеет значения, переходите вы в полно экранный режим или просто растягиваете окно мышкой. При любом ресайзе, нужно выполнить ряд простых шагов:
  1. Получить событие изменения размеров окна. (Растянули мышкой, перешли в фулл скрин)
  2. Обновить размеры вью порта stage3D при помощи configureBackBuffer, передав туда новые width и height сцены.
  3. Позицианировать основной контент в stage3D по центру экрана.
  4. Обновить битмап бэграунда.
Всё!
На каком этапе у вас возникают сомнения?

Termer 23.06.2016 19:15

http://away3d.com/tutorials/Away3D_a...Interoperation


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

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