1

我有一个 flex 3 项目,我正在尝试将其升级到 flex 4.6 sdk。我的应用程序中有许多嵌入字体。当我通过 Eclipse/Flash 构建器构建时,这些显示正常。当我使用 mxmlc 构建时,没有使用嵌入的字体。我以相同的方式为两者构建字体,所以我假设有一些我缺少的编译器选项,或者我有导致问题的编译器选项。我已经尝试了所有我能想到的编译器选项,现在我陷入了死胡同……

<target name="compile" depends="getswcs, compilemodules">

    <echo message="mxmlc=${mxmlc}"/>
    <echo message="flex.lib.dir=${flex.lib.dir}"/>
    <echo message="flex.extlib.dir=${flex.extlib.dir}"/>
    <echo message="flex.locale=${flex.locale}"/>
    <echo message="flex.locale.dir=${flex.locale.dir}"/>

    <exec executable="${mxmlc}" dir="${basedir}" failonerror="true">
        <arg line="'src/${main}'" />
        <arg line="-o 'bin/${component.lowercase.name}.swf'" />
        <arg line="-l+='${flex.lib.dir}'" />
        <arg line="-sp src" />
        <arg line="-accessible" />
        <arg line="-strict" />
        <arg line="-el '${flex.extlib.dir}'" />
        <arg line="-compatibility-version=3.0.0" />
        <arg line="-target-player '11.1'" />  
        <arg line="-include-libraries+=lib" />
        <arg line="-locale ${flex.locale}" />
        <arg line="-l+='${flex.locale.dir}'" />
    </exec>

</target>

compileModules 构建我的字体,例如:

<exec executable="${mxmlc}" dir="${basedir}" failonerror="true">
            <arg line="fonts/OCRAEXT.as" />
            <arg line="-static-link-runtime-shared-libraries" />
            <arg line="-o bin/lib/OCRAEXT.swf" />
        </exec>`

作为文件:

public class OCRAEXT extends Sprite
    {
        [Embed(source='OCRAEXT.TTF', fontName='_OCRAEXT', embedAsCFF='false',
            unicodeRange='U+0030-U+0039,U+002E,U+002F,U+20AC')]
        public static var font:Class;       
    } 

我认为这里没有问题,因为在 Eclipse 中构建应用程序之前,字体已经通过我的 compileModules 构建,字体显示正确。

4

0 回答 0