2010-08-27 27 views
2

我正在使用Flex 4并遇到一些显示简单警报框的问题。警告框出现,但文字看起来与背景颜色相同。我知道文本在那里,因为如果我将鼠标停留在警报框窗口中大致位于文本的位置,我可以看到光标改变。当我双击并复制粘贴到记事本时,我可以看到消息。但消息,按钮文本,消息框标题不显示。警告对话框不显示flex中的文本4

在我的项目相关的代码如下所示

<?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" /> 

我曾尝试过各种东西,如删除所有样式信息(警告框显示为蓝色框,但同样的文字是相同的颜色因此不可见)。我从应用程序标记中删除了所有backgroundgradientcolos和alpha。等等。我已经将样式部分中的“.alertMessage”更改为“alertMessage”。但是无论如何,警报框中的消息文本,标题和按钮文本始终是不可见的。正如我所说,我知道文本在那里,因为我可以将鼠标悬停在警告框上并看到光标发生变化,然后双击并复制/粘贴文本。

我有一个怀疑,这与我在这里介绍Autocomplete in Flex 4.0 not displaying items in dropdown list

这两个控件的同一个项目有一个问题似乎有文字是看不见的,因为如果文本颜色设置相同作为背景。我试图寻找其他风格的文件,主题文件或项目中负责设置这些颜色的东西。但找不到任何。该项目相对简单,只有一个mxml,3个“.as”文件,其中一个具有验证逻辑,另一个具有等待分析。第三个有业务逻辑代码,但与颜色或主题无关。项目中的其他控件 - 文本框,按钮,datagridsl,面板都可以正常工作。它的自动完成框和警告框似乎不想显示那里的文本。

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

+0

警告框的背景颜色是什么 - 它是白色的?尝试将该黑色更改为'#000000'。如果这没有帮助,请尝试在应用中的样式标签中添加“文本{颜色:#FF0000;}文本输入{颜色:#FFFF00;}标签{颜色:#00FFFF}”,看看是否有任何区别。 – Amarghosh 2010-08-27 07:56:45

+0

没有。没有任何区别。将背景颜色更改为#000000将消息框中的背景更改为黑色,但文本仍然不可见。它似乎也变成了黑色,因为它依然在我的鼠标之上。 – Chaitanya 2010-08-30 03:38:19

回答

1

好吧,原来该项目已导入到Flex 4.它的工作原理在那里它和分解在它不Flex 3项目。我用一个警告框创建了一个简单的Flex 4项目,它工作。我慢慢地把所有的代码都移到了这个项目上,并且工作。它给了我关于样式标签关于不能使用或类似的东西的警告。我只是删除了所有的样式标签,它工作正常。它看起来不一样,所以我必须更多地摆弄它,但至少文字出现了。因此,在编译时使用它们与主题和Flashbuilder编译器有关。我不得不说的是一个糟糕的工具。如果进口不起作用,它应该在很久以前就失败了。我搜索并搜索了任何与CSS或样式或主题相关的项目文件或代码文件。但显然它使用的是独立于我的项目的东西来控制我的项目的一些小部分。我项目中的控制参数基本上取决于一些环境因素。调试很痛苦。

感谢您的帮助,虽然家伙。

1

我认为背景和文字颜色是白色的警报。

尝试

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; 
} 
+0

没有。不用找了。 – Chaitanya 2010-08-30 03:39:23

+0

如果有帮助,消息框略显半透明。当我将它移动到某些标题文字或图像上时,我可以看到背后的文字和图像。 – Chaitanya 2010-08-30 04:06:19

+0

我注意到包浏览器下有Flex 4.1节点,sparkskins.swc包含默认包和mx.skins.spark包。不知道他们在做什么,或者他们在某种程度上影响了风格。 – Chaitanya 2010-08-30 04:12:11

1

非常感谢这样的问题,您的回答也非常有帮助 - 它展示了一种挖掘方式。 经过近8小时的挖掘,我设法找到了一个解决方案,解决了这个问题。

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

1)如果您未使用“-compatibility-version = 3.0”参数(或等同于Flex Builder中的“使用Flex 3兼容模式”标志),则可以避免此问题。

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

+0

啊。有趣。我不是一个灵活或闪光专家。我来自.Net世界。这是我在新项目上继承的一个应用程序,用于快速修复。我记得在预处理项目中有更少的选项主题选项(不知道它是否有火花)。我敲的测试项目有更多的主题选项。 – Chaitanya 2010-09-22 00:22:55

+0

我刚开始学习Flex自己。无论如何,这两个解决方案都在工作 – Wiseman 2010-09-22 09:08:44

1

我有同样的问题,怀斯曼的答案为我工作。我注意到que编译器选项“在MX组件中使用Flash文本引擎”也必须启用。

1

在将Arial字体系列嵌入到我的应用中后,我遇到了同样的问题。突然警报和所有其他Flex组件文本(如工具提示)我们都是空的。花了一段时间后,尝试所有类型的不那么优雅的解决方案后,找到这个。

我甚至没有启用“使用兼容模式”。检查“在MX组件中使用Flash文本引擎”后,所有内容都可以再次运行。永远不会尝试过。

从我可以告诉警报和Flex组件的其余部分现在使用嵌入字体来显示文本,这是预期的目的。我猜这与他们用于Flex4和嵌入式字体的新的文本布局框架有关。

0

我有这个问题。哈维尔阿尔瓦雷斯解决方案为我工作 - 但问题本身只发生在我使用从右到左的位置