У меня есть пользовательский компонент BorderContainer, в котором есть текст.Если бы я добавил это в свое основное приложение внутри панели, BorderContainer выходит за границы ширины панели, поскольку текст имеет заданный размер.У меня все его компоненты в процентах, так что он изменяет размеры при сокращении, но одна часть, которая содержит флажки и метки (много вещей с текстом), испортилась, так как размер шрифта не меняется.
Я весьма уверен, что результаты, которые я ищу, могут быть достигнуты путем встраивания шрифта, хотя я не смог найти решение из Интернета.Я пытаюсь сделать это с помощью стиля CSS, так как я буду использовать его для множества различных компонентов (я не хочу просто изменять это непосредственно в гибком коде).
РЕДАКТИРОВАТЬ Решение:
Я пытался использовать соотношение, как предлагал www0z0k
, но оно вызывало некоторые серьезные проблемы, когда оно быстро изменялось или уменьшалосьscreen (компонент не будет корректно изменен в размерах, потому что он умножается на соотношение. Наконец, мне показалось, что он не сработал и не вызвал проблем, это то, что я запустил код и обнаружил width
(1152) и height
(842) контейнера.
Затем я создал переменную const widthX = 1152 и heightY = 842, а в функции onResize () я закодировал изменение размера следующим образом:
(где bottomGroup - id
borderContainer, который я пытаюсь изменить размер)
bottomGroup.scaleX = width / widthX;;
bottomGroup.scaleY = height / heightY;
END EDIT
До сих пор я нашел несколько примеров встраивания шрифтов в <fx:Style>
и попыталсяудалить любое замедление fontSize, но это, похоже, не работает.
</p>
<pre><code><fx:Style>
@namespace s "library://ns.adobe.com/flex/spark";
@font-face {
src: url("fonts\Arial.ttf");
fontFamily: myFontFamily;
color: black;
fontStyle: normal;
fontWeight: normal;
advancedAntiAliasing: false;
}
s|BorderContainer {
fontFamily: myFontFamily;
}
</fx:Style>
Если у кого-то есть какие-либо предложения или знают, куда я идунеправильно, любая помощь будет оценена. Спасибо.
РЕДАКТИРОВАТЬ: образец приложения, в котором отображается моя проблема.
CustomContainer.mxml </p>
<pre><code><?xml version="1.0" encoding="utf-8"?>
<s:BorderContainer xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" width="100%" height="100%">
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<s:HGroup>
<s:Label text="This is a label" />
<s:Label text="Here is another which add up to take up quite a bit of horizontal space" />
<s:Label text="Here is another which add up to take up quite a bit of horizontal space" />
<s:Label text="Here is another which add up to take up quite a bit of horizontal space" />
</s:HGroup>
Main.mxml
</p>
<pre><code><?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:local="*"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
<fx:Style>
@namespace s "library://ns.adobe.com/flex/spark";
@font-face {
src: url("fonts\Arial.ttf");
fontFamily: myFontFamily;
color: black;
fontStyle: normal;
fontWeight: normal;
advancedAntiAliasing: false;
}
s|BorderContainer {
fontFamily: myFontFamily;
}
</fx:Style>
<s:Panel title="BorderContainer Component Example"
width="75%" height="75%"
horizontalCenter="0" verticalCenter="0">
<local:container>
</local:container>
</s:Panel>
Я хотел бы иметь возможность изменить размер шрифта для размещения на панели.Я не мог предоставить реальный код, над которым я работаю, но этот пример, надеюсь, поможет понять идею.