Flex - Flash Designder Design View неправильно отображает встроенные шрифты - PullRequest
0 голосов
/ 13 декабря 2010

Инструменты: Air 2, Flex SDK 4.1, Flash Builder, Halo набор компонентов (вообще не используется Spark)

Шрифты отлично работают, когда работает приложение, но не в представлении дизайна.Это эффективно делает представление дизайна WORTHLESS , потому что невозможно правильно расположить компоненты или метки, не зная, каков истинный размер (он изменяется в зависимости от шрифта ...)

...

CSS включен в корневой компонент следующим образом:

<fx:Style source="style.css"/>

Файл CSS:

/* CSS file */
@namespace mx "library://ns.adobe.com/flex/mx";

global {
    font-family:Segoe;
    font-size:14;
    color:#FFFFFF;
}

mx|Application, mx|VBox, mx|HBox, mx|Canvas {
    font-family:Segoe;
    background-color:#660000;
    border-color:#222277;
    color:#FFFFFF;
}

mx|Button {
    font-family:Segoe;
    fill-colors:#660000, #660000, #660000, #660000;
    color:#FFFFFF;
}
...

Интересно (или с ошибками?), Когда я пытаюсь вставить тег стиля в подкомпонент (ниже, чем контейнер верхнего уровня), я получаю кучу предупреждений в представлении редактора подкомпонента, в котором говорится, что селекторы типа CSS не поддерживаются в .. (все компоненты таблицы стилей).
Тем не менее, они делаютработа при выполнении заявки.Да?

Вот как я встраиваю шрифты в контейнер уровня root :

 [Embed(source="/assets/segoepr.ttf", fontName="Segoe", mimeType="application/x-font-truetype", embedAsCFF='false')]
 public static const font:Class;

 [Embed(source="/assets/segoeprb.ttf", fontName="Segoe", mimeType="application/x-font-truetype", fontWeight="bold", embedAsCFF='false')]
 public static const font2:Class;

Итак, есть ли способ заставить работать встроенные шрифтыв дизайнерском виде или как?

Ответы [ 2 ]

0 голосов
/ 24 августа 2012

Похоже, что шрифт Verdana предназначен для областей Label и Text по умолчанию, и если мы его не внедрим, представление конструктора не учитывает другие встроенные шрифты.

Пожалуйста, вставьте шрифт Verdana, и вы сможете увидеть метки и текстовые области в режиме конструктора.

@font-face {
    src: local("Verdana");
    font-family: verdana;
    font-weight: normal;
}

Надеюсь, это поможет.

0 голосов
/ 13 декабря 2010

Я не знаю, поможет ли это, но стоит попробовать. Вам не нужно встраивать шрифты с тегом Embed Meta, если вы используете css. Попробуйте удалить вложение класса шрифта и добавьте вложение в файл CSS. Это может лучше работать с представлением дизайна во Flex.

// using system font
@font-face {
    src: local("Myriad Web Pro");
    fontFamily: myFontFamily;
    advancedAntiAliasing: true;
}

// using url to font file
@font-face {
    src: url("../assets/MyriadWebPro.ttf");
    fontFamily: myFontFamily;
    advancedAntiAliasing: true;
}

Попробуйте этот код в режиме конструктора:

<?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:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">

    <fx:Style>
        @namespace s "library://ns.adobe.com/flex/spark";
        @namespace mx "library://ns.adobe.com/flex/mx";

        @font-face {
            src: url("Arial Bold.ttf");
            fontFamily: "Arial Bold";
            embedAsCff: true;
        }


        s|Application
        {
            color: #000000;
            fontFamily: "Arial Bold";
            font-size: 48;
        }

    </fx:Style>

    <fx:Declarations>
        <!-- Place non-visual elements (e.g., services, value objects) here -->
    </fx:Declarations>

    <s:Label text="This is the first label" width="488"  x="43" y="39" height="54"/>
    <s:Label text="This is the second label" width="488"  x="45" y="129" height="54" rotation="-4"/>
    <s:Label text="This is the third label" width="488"  x="43" y="208" height="54"/>

</s:Application>
...