Масштабирование в соответствии с приложением Flex 4 — Flash

#flash #flex4 #scale

#flash #flex4 #масштабирование

Вопрос:

ИТАК, у меня есть flash-приложение, которое динамически изменяет высоту и ширину самого себя и компонентов в зависимости от высоты и ширины сцены.

это приложение будет запускаться самостоятельно на экране. Высота и ширина экрана могут быть любыми (тестирование, приложение работает идеально и настраивает свои компоненты и все необходимые объекты в нем на экране)

предоставляя этому приложению его параметры флэш-памяти и текстовую информацию из окна.. которое подключено к окну предварительного просмотра, которое имеет фиксированную ширину и высоту при просмотре приложения, но оно само настраивается в соответствии с шириной и высотой этого фиксированного окна.

У меня есть ширина и высота, с которыми приложение действительно будет отображаться на экране.

как я могу масштабировать приложение (масштабировать так, чтобы оно помещалось в окне предварительного просмотра), все в порядке, если вверху и внизу или слева и справа пусто, в зависимости от реальной ширины и высоты.

Комментарии:

1. тег embed, используемый для размещения SWF-файла на HTML-странице, может управлять масштабированием приложения. я полагаю, вы хотите, чтобы приложение занимало весь экран и плавно изменяло свои размеры?

2. По моему мнению, лучшим способом сделать это было бы присвоить вашим внутренним компонентам ширину и высоту в процентах, а не в пикселях.

3. Таким образом, вам не нужно было бы изменять высоту / ширину каждого внутреннего компонента каждый раз при изменении размера. Программно вы можете изменить ширину и высоту в процентах, используя свойства percentageWidth и percentageHeight

Ответ №1:

Вам нужно будет использовать stage.stageWidth / stage.stageHeight, чтобы получить размер вставки. И используйте событие.Событие ИЗМЕНЕНИЯ размера для обработки при изменении размера этапа во время выполнения. Тогда вам просто нужна довольно простая логика масштабирования, чтобы сохранить заданное соотношение сторон.

что-то вроде:

 // disables streching
stage.scaleMode = StageScaleMode.NO_SCALE;

// listen to stage being resizes
addEventListener(Event.RESIZED, handleResized);

// adjust UI to original size
setSize(stage.stageWidth, stage.stageHeight);

// handle the resized event, and update your UI's dimension
function handleResized(evt:Event):void
{
    setSize(stage.stageWidth, stage.stageHeight);
}

// updates your UI
function setSize(wid:int, hgt:int):void
{
    container.width = wid;
    container.height = h>
}
  

масштабирует ваше приложение до размера сцены. если вам необходимо поддерживать соотношение сторон вашего приложения, то вы можете либо настроить способ встраивания SWF-файла, либо самостоятельно настроить логику соотношения сторон с помощью функции setSize.