ÇÁ·Î±×·¥ ½ºÅ²ÀÇ Àû¿ë

±×·¡ÇÇÄà ½ºÅ²°ú °°ÀÌ, ´ÙÀ½¿¡ ³ªÅ¸³»´Â ¹æ¹ý¿¡ ÀÇÇØ, ¾îÇø®ÄÉÀÌ¼Ç Áß(¾È)¿¡¼­ ÇÁ·Î±×·¥ ½ºÅ²À» ÄÁÆ®·Ñ¿¡ Àû¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

ÀÌ·¯ÇÑ ¾î´À °æ¿ì¿©µµ, ÄÄÆÛ³ÍÆ®¿¡ ÇÁ·Î±×·¥ ½ºÅ²À» Àû¿ëÇÒ ¶§´Â, ¿ÏÀüÇÑ ÆÄÀϸíÀº ¾Æ´Ï°í, ÇÁ·Î±×·¥ ½ºÅ²ÀÇ Å¬·¡½º¸íÀ¸·Î ÁöÁ¤ÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, ¿ÏÀüÇÑ ÆÄÀϸíÀÎ "SampleSkin.as" ´Â ¾Æ´Ï°í, "SampleSkin" ¸¦ »ç¿ëÇÕ´Ï´Ù.

¾îÇø®ÄÉÀ̼ÇÀÇ ÄÄÆÄÀϽÿ¡´Â, ÀÌ ÇÁ·Î±×·¥ ½ºÅ²ÀÇ Å¬·¡½º°¡ ¼Ò½º ÆÐ½º¿¡ ³õ¿©Á® ÀÖÀ» Çʿ䰡 ÀÖ½À´Ï´Ù. °Ô´Ù°¡ ÀÌ ½ºÅ²ÀÇ Å¬·¡½º¸¦, Flex ¾îÇø®ÄÉÀ̼ÇÀÇ ActionScript ºí·Ï ¶Ç´Â ÇïÆÛ Ŭ·¡½º¿¡ ÀоîµéÀÌ´Â Àϵµ ÇÊ¿äÇÕ´Ï´Ù.

ÇÁ·Î±×·¥ ½ºÅ²ÀÌ À̸§ ÷ºÎÀÇ ÆÐŰÁö¿¡ Æ÷ÇԵǾî ÀÖ´Â °æ¿ì, ÆÐŰÁöÀÇ ·¹º§À» ÇǸ®¾îµå·Î ´Ü¶ôÁö¾î ÁÖ¼¼¿ä. ¿¹¸¦ µé¾î, SampleButtonSkin Ŭ·¡½º°¡ my.skins ÆÐŰÁö¿¡ Æ÷ÇԵǾî ÀÖ´Â °æ¿ì, À̰ÍÀ» Àû¿ëÇÒ ¶§´Â "my.skins.SampleButtonSkin" ¸¦ »ç¿ëÇÕ´Ï´Ù. À̰ÍÀº ÆÐŰÁö³»ÀÇ ÀÓÀÇÀÇ Å¬·¡½º¸¦ ÂüÁ¶ÇÒ ¶§ °Í°ú °°½À´Ï´Ù. ÇÁ·Î±×·¥ ½ºÅ²ÀÌ À̸§ ÷ºÎÀÇ ÆÐŰÁö¿¡ Æ÷ÇÔµÇÁö ¾ÊÀº °æ¿ì, ±×·¯ÇÑ ½ºÅ²Àº À̸§ÀÌ ¾ø´Â ÆÐŰÁö¿¡ Æ÷ÇԵǾî ÀÖÀ» Çʿ䰡 ÀÖ½À´Ï´Ù. ±×·¯ÇÑ ½ºÅ²À» À̸§ÀÌ ¾ø´Â ÆÐŰÁö¿¡ Ãß°¡ÇÏ·Á¸é , Ŭ·¡½º¸¦ package ¸í·É¹®(statement)·Î µÑ·¯½Ô´Ï´Ù.

»ó¼¼ÇÑ °Í¿¡ ´ëÇÏ¿©´Â,ÇÁ·Î±×·¥ ½ºÅ²ÀÇ ÄÄÆÄÀÏÀ» ÂüÁ¶ÇØ ÁÖ¼¼¿ä.

CSS ÆÄÀÏÀÇ »ç¿ë

CSS ÆÄÀϳ»ÀÇ ÇÁ·Î±×·¥ ½ºÅ²À»,ClassReference Áö½Ã¹®À» »ç¿ëÇØ Àû¿ëÇÕ´Ï´Ù. ÀÌ Áö½Ã¹®Àº, Àμö·Î¼­ Ŭ·¡½º¸íÀ» ÃëÇÕ´Ï´Ù. ¾îÇø®ÄÉÀ̼ÇÀÇ ÄÄÆÄÀϽÿ¡´Â, ÀÌ ÇÁ·Î±×·¥ ½ºÅ²ÀÇ Å¬·¡½º°¡ ¼Ò½º ÆÐ½º¿¡ ³õ¿©Á® ÀÖÀ» Çʿ䰡 ÀÖ½À´Ï´Ù.

´ÙÀ½ÀÇ CSS ÆÄÀÏÀÇ ¿¹¿¡¼­´Â, SampleAccordionHeaderSkin ¹× SampleButtonSkin ÇÁ·Î±×·¥ ½ºÅ²À», AccordionHeader ¹× Button ÄÁÆ®·ÑÀÇ ¼±ÅÃµÈ »óÅ¿¡ Àû¿ëÇÕ´Ï´Ù.

/* MyTheme.css */
AccordionHeader {
    upSkin: ClassReference('SampleAccordionHeaderSkin');
    overSkin: ClassReference('SampleAccordionHeaderSkin');
    downSkin: ClassReference('SampleAccordionHeaderSkin');
    disabledSkin: ClassReference('SampleAccordionHeaderSkin');
    selectedUpSkin: ClassReference('SampleAccordionHeaderSkin');
    selectedOverSkin: ClassReference('SampleAccordionHeaderSkin');
    selectedDownSkin: ClassReference('SampleAccordionHeaderSkin');
    selectedDisabledSkin: ClassReference('SampleAccordionHeaderSkin');
}
Button {
    upSkin: ClassReference('SampleButtonSkin');
    overSkin: ClassReference('SampleButtonSkin');
    downSkin: ClassReference('SampleButtonSkin');
    disabledSkin: ClassReference('SampleButtonSkin');
}

CSS ÆÄÀϰú °°ÀÌ, ´ÙÀ½ÀÇ ¿¹¿Í °°ÀÌ,<mx:Style> ű׸¦ »ç¿ëÇØ ½ºÅ¸ÀÏ ½ÃÆ®¸¦ Á¤ÀÇÇÏ´ÂÁö, ¿ÜºÎ ½ºÅ¸ÀÏ ½ÃÆ®¸¦ ÂüÁ¶ÇÒ ¼ö ÀÖ½À´Ï´Ù.

<mx:Style source="MyTheme.css"/>

ÀÎ ¶óÀÎ ¹®À屸Á¶¹ýÀÇ »ç¿ë

½ºÅ²À» ±³È¯ÇÏ´Â »óÅ ¸¶´Ù ÇÁ·Î±×·¥ ½ºÅ² Ŭ·¡½º¸¦ ÁöÁ¤ÇÏ´Â °ÍÀ¸·Î½á, ±× Ŭ·¡½º¸¦ ÀÎ ¶óÀÎÀ¸·Î Æ÷ÇÔÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. Ŭ·¡½º¸íÀº, curly braces { } ·Î µÑ·¯½Ô´Ï´Ù. ¾îÇø®ÄÉÀ̼ÇÀÇ ÄÄÆÄÀϽÿ¡´Â, ÀÌ ÇÁ·Î±×·¥ ½ºÅ²ÀÇ Å¬·¡½º°¡ ¼Ò½º ÆÐ½º¿¡ ³õ¿©Á® ÀÖÀ» Çʿ䰡 ÀÖ½À´Ï´Ù.

´ÙÀ½ÀÇ ¿¹¿¡¼­´Â, SampleButtonSkin ÇÁ·Î±×·¥ ½ºÅ²À» Button ÄÁÆ®·ÑÀÇ upSkin »óÅÂ, overSkin »óÅÂ, downSkin »óÅÂ, disabledSkin »óÅ¿¡ Àû¿ëÇÕ´Ï´Ù.

<mx:Button label="Button" id="button1" 
upSkin="{SampleButtonSkin}"
overSkin="{SampleButtonSkin}"
downSkin="{SampleButtonSkin}"
disabledSkin="{SampleButtonSkin}"/>

ÀÎ ¶óÀÎÀ¸·Î ÇÁ·Î±×·¥ ½ºÅ²À» Àû¿ëÇÒ ¶§´Â, ÄÄÆÄÀÏ·¯·Î ÇØ´çÀÇ Å¬·¡½º¸íÀ» ÇØ°áÇÒ ¼ö ÀÖµµ·Ï(µíÀÌ), Ŭ·¡½º¸¦ ¾îÇø®ÄÉÀ̼ǿ¡ ÀоîµéÀÏ Çʿ䰡 ÀÖ½À´Ï´Ù. ´ÙÀ½¿¡ ¿¹¸¦ ³ªÅ¸³À´Ï´Ù.

<mx:Script>
    import SampleButtonSkin;
    import SampleAccordionHeaderSkin;
</mx:Script>

½ºÅ²¿¡¼­ÀÇ setStyle() ¸Þ¼Òµå ¹× StyleManager ÀÇ »ç¿ë

setStyle() ¸Þ¼Òµå¸¦ »ç¿ëÇϸé, ÇÁ·Î±×·¥ ½ºÅ²À» ÄÁÆ®·ÑÀÇ ´ÜÀÏÀÇ ÀνºÅϽº¿¡ Àû¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ¸Þ¼Òµå³»¿¡¼­, ġȯÇÏ´Â ½ºÅ²ÀÇ properties ¹× ÇÁ·Î±×·¥ ½ºÅ²ÀÇ Å¬·¡½º¸íÀ» ÁöÁ¤ÇÕ´Ï´Ù. ¾îÇø®ÄÉÀ̼ÇÀÇ ÄÄÆÄÀϽÿ¡´Â, ÀÌ ÇÁ·Î±×·¥ ½ºÅ²ÀÇ Å¬·¡½º°¡ ¼Ò½º ÆÐ½º¿¡ ³õ¿©Á® ÀÖÀ» Çʿ䰡 ÀÖ½À´Ï´Ù.

´ÙÀ½ÀÇ ¿¹¿¡¼­´Â, SampleButtonSkin ½ºÅ²À» button1 ÄÁÆ®·ÑÀÇ upSkin »óÅ¿¡ Àû¿ëÇÕ´Ï´Ù.

button1.setStyle("upSkin", SampleButtonSkin);

StyleManager Ŭ·¡½º¸¦ »ç¿ëÇϸé, 1 °³ÀÇ ÇÁ·Î±×·¥ ½ºÅ²À» ¸ðµç Button ÄÁÆ®·Ñ »óÅ¿¡ Àû¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ´ÙÀ½ÀÇ ¿¹¿¡¼­´Â, ¸ðµç Button ÄÁÆ®·ÑÀÇ upSkin »óÅ¿¡ SampleButtonSkin ½ºÅ²À» Àû¿ëÇÕ´Ï´Ù.

StyleManager.getStyleDeclaration("Button"). setStyle("upSkin", SampleButtonSkin);

setStyle() ¸Þ¼Òµå·Î ÇÁ·Î±×·¥ ½ºÅ²À» Àû¿ëÇÒ ¶§´Â, ÄÄÆÄÀÏ·¯·Î ÇØ´çÀÇ Å¬·¡½º¸íÀ» ÇØ°áÇÒ ¼ö ÀÖµµ·Ï(µíÀÌ), Ŭ·¡½º¸¦ ¾îÇø®ÄÉÀ̼ǿ¡ ÀоîµéÀÏ Çʿ䰡 ÀÖ½À´Ï´Ù. ´ÙÀ½¿¡ ¿¹¸¦ ³ªÅ¸³À´Ï´Ù.

<mx:Script>
    import SampleButtonSkin;
    import SampleAccordionHeaderSkin;
</mx:Script>

setStyle() ¸Þ¼ÒµåÀÇ »ç¿ë ¹æ¹ýÀÇ »ó¼¼ÇÑ °Í¿¡ ´ëÇÏ¿©´Â,setStyle() ¸Þ¼Òµå¿Í getStyle() ¸Þ¼ÒµåÀÇ »ç¿ëÀ» ÂüÁ¶ÇØ ÁÖ¼¼¿ä. StyleManager ÀÇ »ç¿ë ¹æ¹ýÀÇ »ó¼¼ÇÑ °Í¿¡ ´ëÇÏ¿©´Â,StyleManager Ŭ·¡½ºÀÇ »ç¿ëÀ» ÂüÁ¶ÇØ ÁÖ¼¼¿ä.