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 4中显示文本_Apache Flex_Flash_Actionscript 3_Flex4_Flash Builder - Fatal编程技术网

Apache flex 警报对话框未在flex 4中显示文本

Apache flex 警报对话框未在flex 4中显示文本,apache-flex,flash,actionscript-3,flex4,flash-builder,Apache Flex,Flash,Actionscript 3,Flex4,Flash Builder,我正在使用Flex4,在显示一个简单的警报框时遇到了一些问题。警报框显示,但文本似乎与背景颜色相同。我知道文本在那里,因为如果我在alert box窗口中将鼠标移到文本的大致位置,我可以看到光标的变化。当我双击并将粘贴复制到记事本中时,我可以看到消息。但是消息、按钮文本和消息框标题不会显示 我的项目中的相关代码如下 <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.

我正在使用Flex4,在显示一个简单的警报框时遇到了一些问题。警报框显示,但文本似乎与背景颜色相同。我知道文本在那里,因为如果我在alert box窗口中将鼠标移到文本的大致位置,我可以看到光标的变化。当我双击并将粘贴复制到记事本中时,我可以看到消息。但是消息、按钮文本和消息框标题不会显示

我的项目中的相关代码如下

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
xmlns:s="library://ns.adobe.com/flex/spark" layout="absolute"
initialize="{initialiseFlex()}"  backgroundGradientAlphas="[1.0, 1.0]"
backgroundGradientColors="[#FFFFFF, #FFFFFF]"
xmlns:ns2="keyboard.*" xmlns:ns1="com.adobe.flex.extras.controls.*" 
minHeight="864"  minWidth="1024" verticalScrollPolicy="off" width="1024">

<mx:Script>
            <![CDATA[
                    import mx.binding.utils.BindingUtils;
                    import flash.net.sendToURL;
                    import mx.utils.URLUtil;
                    import mx.managers.IBrowserManager;
                    import mx.managers.BrowserManager;
                    import mx.controls.Alert;

            ]]>
    </mx:Script> 

    <mx:Style>
            Alert {
                    titleStyleName: "alertTitle";
                    message-style-name: "alertMessage";
                    buttonStyleName: "alertButton";
                    background-color: #ffffff;
                    header-colors : #F4800E, #F4800E;
                    border-color : #F4800E;
                    corner-radius :6;
                    font-anti-alias-type:advanced;
            }
            .alertMessage {
                    fontSize: 20;
                    color: black;

            }
    </mx:Style>

<mx:Button click="Alert.show('From inside mxml')" 
enabled="false" x="580" y="440" label="Sign Out" id="btnSignOut" fontSize="24" 
labelPlacement="right" color="#F4800E" />

警觉的{
标题样式名称:“alertTitle”;
消息样式名称:“alertMessage”;
按钮样式名称:“alertButton”;
背景色:#ffffff;
标题颜色:#F4800E,#F4800E;
边框颜色:#F4800E;
角半径:6;
字体反别名类型:高级;
}
.alertMessage{
尺寸:20 ;;
颜色:黑色;
}
我尝试过各种方法,例如删除所有样式信息(警告框显示为蓝色框,但文本颜色相同,因此不可见)。我已经从应用程序标签中删除了所有backgroundgradientcolos和Alpha。等等。我已经将样式部分中的“.alertMessage”更改为“alertMessage”。但无论如何,警报框中的消息文本、标题和按钮文本始终不可见。正如我所说,我知道文本在那里,因为我可以将鼠标移到警报框上,看到光标的变化,然后双击并复制/粘贴文本

我怀疑这与我在这里描述的同一个项目中遇到的另一个问题有关

这两个控件似乎都有不可见的文本,好像文本颜色设置为与背景相同。我试图在项目中寻找其他样式文件、主题文件或负责设置这些颜色的东西。但是找不到。该项目相对简单,有一个mxml,3“.as”文件,其中一个有验证逻辑,另一个有等待操作。第三个具有业务逻辑代码,但与颜色或主题无关。项目中的其他控件-文本框、按钮、datagridsl和面板都可以正常工作。自动完成框和警报框似乎不想显示文本


有什么想法或提示可能是问题的原因吗?

我认为背景和文本颜色对于您的警报来说是白色的

试一试


好的,原来这个项目是一个Flex3项目,它被导入到Flex4中。它在有工作的地方工作,在没有工作的地方故障。我创建了一个带有警报框的简单Flex4项目,它成功了。我慢慢地将我所有的代码转移到这个项目中,它成功了。它给了我一个关于样式标签的警告,关于不能使用或类似的东西。我刚刚删除了所有的样式标签,效果很好。它看起来不一样,所以我不得不再摆弄一点,但至少文本出现了。因此,这与主题以及在编译时使用它们的Flashbuilder编译器有关

我要说的是这是一个多么糟糕的工具。如果导入不起作用,它早就应该完全失败了。我搜索了很多与css、样式或主题相关的项目文件或代码文件。但很明显,它使用了一些独立于我的项目的东西来控制我的项目的一些小部分。我的项目中的控制参数基本上取决于一些环境/ide因素。调试是多么痛苦啊


谢谢大家的帮助。

非常感谢你们提出这样一个问题,你们的回答也很有帮助——它展示了一种挖掘的方式。 经过将近8个小时的挖掘,我终于找到了解决这个问题的另一个办法

这个“看不见的”文本似乎是主题迁移不正确的问题(Halo->Spark)

1) 如果您不使用“-compatibility version=3.0”参数(或Flex Builder中等同的“Use Flex 3 compatibility mode”标志),则可以避免此问题


2) 您的Flex 3项目中可能存在一些关于样式的错误,可以通过在“项目->属性->Flex主题”中将默认项目主题更改为“Halo”来修复这些错误。

我也遇到了同样的问题,Wiseman的答案也适用于我。我注意到que编译器选项“在MX组件中使用Flash文本引擎”也必须启用。

在将Arial字体系列嵌入我的应用程序后,我遇到了同样的问题。突然,警报和所有其他Flex组件文本(如工具提示)都显示为空。在尝试了各种不那么优雅的解决方案后,我花了一段时间才发现这一点

我甚至没有启用“使用兼容模式”。在检查“在MX组件中使用Flash文本引擎”后,一切又恢复正常。我从来没有试过那样做


据我所知,Alert和其他Flex组件现在使用嵌入式字体来显示预期用途的文本。我猜这与Flex4使用的新文本布局框架以及嵌入式字体有关。

我遇到了这个问题。哈维尔·阿尔瓦雷斯(Javier Alvarez)的解决方案对我很有效——但问题本身只发生在我使用从右到左排列时

警报框的背景颜色是什么——它是白色的吗?尝试将黑色改为
#000000
。如果没有帮助,请尝试将
Text{color:#FF0000;}TextInput{color:#FFFF00;}Label{color:#00FFFF}
添加到应用程序中的样式标记中,并查看是否有任何差异。No。所有这些都没有任何区别。将背景颜色更改为#000000将消息框中的背景更改为黑色,但文本仍然不可见。它似乎也变成了黑色,因为它仍然在那里根据我的鼠标。如果它有帮助,消息框是稍微半透明
Alert 
{

       color: #000000;

       titleStyleName: "alertTitle";
       message-style-name: "alertMessage";
       buttonStyleName: "alertButton";
       background-color: #ffffff;
       header-colors : #F4800E, #F4800E;
       border-color : #F4800E;
       corner-radius :6;
       font-anti-alias-type:advanced;
}