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 ในสไตล์ชีตของฉันดูเหมือนว่าจะได้ผล แต่มีคำเตือนเกิดขึ้น ฉันต้องการค้นหาวิธีที่ "อนุมัติ"

BTW นี่คือ Flex 3

ป.ล. - ฉันได้ลองสิ่งที่ชอบด้วย

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

แต่ดูเหมือนว่าจะไม่ทำงานเช่นกัน ฉันรู้สึกเหมือนต้องเรียกอะไรบางอย่างเพื่อบอกให้กล่องแจ้งเตือนวาดใหม่ แต่ฉันไม่รู้ว่าต้องทำอย่างไร


person Vinnie    schedule 13.09.2011    source แหล่งที่มา


คำตอบ (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...");
        }
person Joe    schedule 13.09.2011
comment
สองความคิดเห็น: 1.) ฉันไม่ต้องการจัดรูปแบบการแจ้งเตือนทั้งหมด เฉพาะอันนี้เท่านั้น 2. ) ฉันได้กล่าวไปแล้วว่าวิธีนี้สร้างคำเตือนคอมไพเลอร์ (ตัวเลือกประเภท CSS ไม่รองรับในส่วนประกอบ: 'การแจ้งเตือน') - person Vinnie; 13.09.2011
comment
นี่เป็นข้อผิดพลาด id10t ด้วยเหตุผลบางประการ โค้ดสำหรับสร้างกล่องแจ้งเตือนที่เหมือนกันทุกประการจึงถูกทำซ้ำในหลายที่ โดยไม่คาดคิด ฉันพยายามจัดสไตล์แบบแรกที่ฉันมา (แน่นอนว่ามันผิดอัน) อย่างไรก็ตาม ดูเหมือนว่าวิธีการทั้งหมดเหล่านี้จะได้ผล แม้กระทั่งการตั้งค่า CSS styleName ในกล่องการแจ้งเตือนที่สร้างไว้แล้ว - person Vinnie; 13.09.2011