2011-09-13 90 views
0

我有這段代碼,但風格沒有被應用。我見過articles on the web這應該工作。有任何想法嗎?Flex Alert.styleName不適合我

var alert:Alert = Alert.show("You have not saved you changes.\n\nWould you like to save now?", 
          "Save Answers?", 
          Alert.NO | Alert.YES | Alert.CANCEL, 
          this, 
          handleUnsavedChanges, 
          null, 
          Alert.YES); 

alert.styleName = "alertStyle"; 

試圖在我的樣式表中使用Alert類設置樣式似乎工作,但會引發警告。我想找到「已批准」的方式。

順便說一句,這是Flex 3中

PS - 我也嘗試這樣的東西

alert.setStyle("backgroundColor", "0x00FF00"); 

,但這似乎並沒有任何工作。我覺得我需要打電話告訴Alert框重新繪製自己,但我不知道如何。

回答

1

您可以創建一個自定義類,以便使用特定的CSS:

public class CustomAlert extends Alert {} 

...然後在CSS

CustomAlert 
{ 
    background-color: #00FF00; 
} 

還是有點複雜的例子:

 import mx.styles.StyleManager; 
     private function init():void { 
      alertCSS = StyleManager.getStyleDeclaration("Alert"); 
     } 

     private function showAlert(color:Object):void { 
      alertCSS.setStyle("backgroundColor", "0x00FF00"); 
      alert = Alert.show("The quick brown fox..."); 
     } 
+0

兩條評論:1.)我不想對所有警報進行樣式設置,只是特別注意這一點。 2.)我已經提到這種方法會產生編譯器警告(組件不支持CSS類型選擇器:'Alert') – Vinnie

+0

對不起,我已更新我的答案 – Joe

+0

這是一個「id10t」錯誤。出於某種原因,創建相同確切警報框的代碼會在多個地方複製。不期待這一點,我試圖設計出我來到的第一個(當然這是錯誤的)。無論如何,看來所有這些方法都可以工作 - 甚至可以在已創建的警報框中設置CSS樣式名稱。 – Vinnie