Пример использования встроенных шрифтов, загруженных во время выполнения Flex 4 загруженные модули - PullRequest
0 голосов
/ 13 июля 2010

У меня довольно много проблем при попытке использовать встроенные шрифты в flex 4. Вот ситуация.

У меня есть основное приложение, которое сначала загружает шрифты через URL. Это код файла шрифта:

package{
import flash.display.Sprite;
import flash.text.Font;

public class FontLib extends Sprite
{

    [Embed(source="MyriadPro-Regular.otf", fontWeight= "normal", fontName="Myriad Pro", fontFamily="Myriad Pro",mimeType="application/x-font", embedAsCFF="true")]
    public const myriadFont:Class;

    public function FontLib()
    {
        Font.registerFont(myriadFont);
        var fonts:Array = Font.enumerateFonts(false);
        trace('libsss',fonts); 
    }
}}

Кажется, все в порядке. Поскольку трассировка показывает встроенный шрифт при загрузке шрифта SWF.

[SWF] /assets/FontLib.swf - 89,594 bytes after decompression libsss [object Font],[object FontLib_myriadFont]

Как только шрифт SWF загружен, я загружаю первый модуль через URL, используя ModuleLoader. В модуле я выполняю следующий код при завершении создания, чтобы увидеть, загружены ли шрифты:

protected function bookstoremodule1_creationCompleteHandler(event:FlexEvent):void
        {

            var fonts:Array = Font.enumerateFonts(false);
            trace('bs',fonts); // This shows Verdana as a registered font
        }

Кажется, что загруженный модуль подобрал шрифт:

load module success: bs [object FontLib_myriadFont]

Однако, когда я не могу применить его к искровому компоненту RichText. Вот mxml для этого:

<s:RichText fontLookup="embeddedCFF" renderingMode="cff" ai:aa="2" color="#2F4160" columnCount="1" fontFamily="Myriad Pro" fontSize="18.0737" height="20" d:id="4" kerning="on" tabStops="S40.665699005127 S81.3313980102539 S121.997097015381 S162.662796020508" text="Shopping Cart (0)" d:userLabel="Shopping Cart (0)" flm:variant="1" whiteSpaceCollapse="preserve" width="168" x="53" y="12" x.down="54" y.down="13" id="richtext1">
    <s:filters>
        <s:DropShadowFilter blurX="0" blurY="0" color="#FFFFFF" distance="1.41421" quality="2"/>
    </s:filters>
</s:RichText>

Определение mxml прекрасно, когда шрифт встроен непосредственно в модуль. Он просто перестает работать, когда шрифт загружается как SWF.

Есть идеи? Я перепробовал множество вещей, но все еще не повезло: (

Спасибо

1 Ответ

0 голосов
/ 13 июля 2010

К сожалению, у меня не так много времени, чтобы глубоко взглянуть на эту проблему, но эта статья может вас заинтересовать:

http://blogs.adobe.com/aharui/2010/03/flex_and_embedded_fonts.html

В ней рассказывается о регистрации шрифтов и их использовании.в модулях

...