2011-09-13 8 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"); 

ようなものを試してみたが、これはどちらか動作するようには思えません。私は、アラートボックスに自分自身を再描画するよう指示するために何かを呼び出す必要があるように感じますが、どうすればよいか分かりません。

答えて

1

あなたは、特定のCSSを使用するために、カスタムクラスを作成することができます。そして、CSSに...

public class CustomAlert extends Alert {} 

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

2件のコメント:1.)私はすべてのアラートのスタイルを設定したくない。 2.)私はすでに、このアプローチはコンパイラの警告を出すと述べています(CSSタイプセレクタはコンポーネント 'Alert'ではサポートされていません) – Vinnie

+0

申し訳ありませんが、私の回答を更新しました – Joe

+0

これは "id10t"エラーです。何らかの理由で、同じ正確なアラートボックスを作成するためのコードが複数の場所に複製されています。これを期待しないで、私が最初に来たものをスタイルしようとしました(間違ったものでした)。いずれにしても、これらのアプローチはすべて機能しているように見えます。すでに作成されているアラートボックスにCSSスタイル名を設定することさえできます。 – Vinnie

関連する問題