2010-08-27 29 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

我有這個問題。哈維爾阿爾瓦雷斯解決方案爲我工作 - 但問題本身只發生在我使用從右到左的位置