2010-07-13 3 views
0

J'ai beaucoup de problèmes à essayer d'utiliser des polices incorporées dans flex 4. Voici la situation.Exemple d'utilisation de polices intégrées chargées à l'exécution Flex 4 modules chargés à l'exécution

J'ai une application principale qui charge les poings via une URL. Ceci est le code du fichier de police:

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); 
    } 
}} 

Cela semble fonctionner correctement. Comme la trace montre la police incorporée lorsque la police swf est chargée. Une fois la police swf chargée, je charge ensuite le premier module via une URL à l'aide de ModuleLoader. Dans le module j'exécute le code suivant sur la création complète pour voir si les polices sont chargées:

protected function bookstoremodule1_creationCompleteHandler(event:FlexEvent):void 
     { 

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

Thats module chargé semblent avoir repris la police:

load module success: bs [object FontLib_myriadFont] 

Cependant quand je ne peux pas l'obtenir à appliquer à un composant RichText spark. Voici le MXML pour elle:

<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> 

La définition mxml est très bien quand la police est intégrée directement dans le module. Il arrête simplement de fonctionner lorsque la police est chargée en tant que swf.

Des idées? J'ai essayé des tas de choses, mais en ayant toujours pas de chance :(

Merci

Répondre

0

Je n'ai malheureusement pas trop de temps pour avoir un regard profond sur ce problème, mais cet article pourrait vous intéresser:

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

il parle de l'enregistrement des polices et de les utiliser dans les modules

+0

grâce qui aident certainement me comprendre abit plus plus. Si je comprends que cela signifie que Swf A qui charge le fichier SWF de police alors Swf A charge Swf B, cette signifie que Swf B ne trouvera jamais les polices chargées par SWF A car il n'est pas dans le bon contexte SWF? Si oui, pourquoi Swf B peut-il énumérer la bonne police? – charleetm

Questions connexes