Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache flex Flex模块和自定义文本字段_Apache Flex_Actionscript 3_Flex3 - Fatal编程技术网

Apache flex Flex模块和自定义文本字段

Apache flex Flex模块和自定义文本字段,apache-flex,actionscript-3,flex3,Apache Flex,Actionscript 3,Flex3,这真是个奇怪的问题。我已经创建了自己的CustomTextField类,用于嵌入字体和设置defaultTextFormat。这工作非常好,但由于某些原因,当我尝试在除父应用程序之外的任何模块中创建新的CustomTextField时,文本只是偶尔显示 这是我的CustomTextField类: package uk.package.text { import flash.text.AntiAliasType; import flash.text.Font; import

这真是个奇怪的问题。我已经创建了自己的CustomTextField类,用于嵌入字体和设置defaultTextFormat。这工作非常好,但由于某些原因,当我尝试在除父应用程序之外的任何模块中创建新的CustomTextField时,文本只是偶尔显示

这是我的CustomTextField类:

package uk.package.text
{
    import flash.text.AntiAliasType;
    import flash.text.Font;
    import flash.text.TextField;
    import flash.text.TextFieldAutoSize;
    import flash.text.TextFormat;

    public class CustomTextField extends TextField
    {

        [Embed(source='../assets/fonts/Arial.ttf',fontName='CustomFont',fontWeight='regular',
            unicodeRange='U+0020-U+0040,U+0041-U+005A,U+005B-U+0060,U+0061-U+007A,U+007B-U+007E,U+0080-U+00FF,U+0100-U+017F,U+0400-U+04FF,U+0370-U+03FF,U+1E00-U+1EFF',
            mimeType='application/x-font-truetype'
            )]
        public static var MY_FONT:Class;
        [Embed(source='../assets/fonts/Arial Bold.ttf',fontName='CustomFont',fontWeight='bold',
            unicodeRange='U+0020-U+0040,U+0041-U+005A,U+005B-U+0060,U+0061-U+007A,U+007B-U+007E,U+0080-U+00FF,U+0100-U+017F,U+0400-U+04FF,U+0370-U+03FF,U+1E00-U+1EFF',
            mimeType='application/x-font-truetype' 
            )]
        public static var MY_FONT_BOLD:Class;

        public static const DEFAULT_FONT:String = "Arial";
        public static const DEFAULT_TEXT_COLOUR:int = 0x000000;
        public static const DEFAULT_TEXT_SIZE:int = 14;

        private var _tf:TextFormat = new TextFormat(DEFAULT_FONT, DEFAULT_TEXT_SIZE, DEFAULT_TEXT_COLOUR);

        public function CustomTextField():void
        {
            var CustomFont:Font = new MY_FONT();
            _tf.font = CustomFont.fontName;
            _tf.size = 16;

            embedFonts = true;
            antiAliasType = AntiAliasType.ADVANCED;
            defaultTextFormat = _tf;
            autoSize = TextFieldAutoSize.LEFT;
        }

        public override function set htmlText(value:String):void
        {
            super.htmlText = value;
            setTextFormat(_tf);
        }

        public function get textFormat():TextFormat
        {
            return _tf;
        }

    }
}

奇怪的是它有时工作有时不工作。。。也许模块有点奇怪?

是的,几乎肯定是模块问题。我以前见过类似的东西。我正在寻找答案,但我最初的想法是

moduleLoader.applicationDomain=applicationDomain.currentDomain


另一个问题是,如果加载同一模块两次。如果是这样的话,您需要通过添加
file.swf?
或类似的内容来使url唯一。

是的,这几乎肯定是一个模块问题。我以前见过类似的东西。我正在寻找答案,但我最初的想法是

moduleLoader.applicationDomain=applicationDomain.currentDomain


另一个问题是,如果加载同一模块两次。如果是这样,您需要通过添加
file.swf?
或类似的内容使url唯一。

好的,我花了很多时间才弄明白这一点。我最终通过使用以下代码使其工作:

preinitialize="moduleLoader.moduleFactory=Application.application.systemManager;"
在模块加载器项中


谢谢

好吧,这件事我花了很长时间才弄明白。我最终通过使用以下代码使其工作:

preinitialize="moduleLoader.moduleFactory=Application.application.systemManager;"
在模块加载器项中


谢谢

我已经尝试了这两种方法,但仍然遇到问题。如果你能设法找到答案,那就太感激了!我已经尝试了这两种方法,但仍然遇到问题。如果你能设法找到答案,那就太感激了!