| Flex 2 °³¹ß °¡À̵å > À¯Àú ÀÎÅÍÆäÀ̽ºÀÇ Ä¿½ºÅ͸¶ÀÌÁî > ½ºÅ²ÀÇ »ç¿ë > ÇÁ·Î±×·¥ ½ºÅ² > ÇÁ·Î±×·¥ ½ºÅ²ÀÇ Àû¿ë | |||
ÇÁ·Î±×·¥ ½ºÅ²ÀÇ Àû¿ë
±×·¡ÇÇÄà ½ºÅ²°ú °°ÀÌ, ´ÙÀ½¿¡ ³ªÅ¸³»´Â ¹æ¹ý¿¡ ÀÇÇØ, ¾îÇø®ÄÉÀÌ¼Ç Áß(¾È)¿¡¼ ÇÁ·Î±×·¥ ½ºÅ²À» ÄÁÆ®·Ñ¿¡ Àû¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
- CSS ÆÄÀÏ. CSS ÆÄÀÏÀÇ »ç¿ëÀ» ÂüÁ¶ÇØ ÁÖ¼¼¿ä.
- ÀÎ ¶óÀÎ. ÀÎ ¶óÀÎ ¹®À屸Á¶¹ýÀÇ »ç¿ëÀ» ÂüÁ¶ÇØ ÁÖ¼¼¿ä.
setStyle()¸Þ¼Òµå ¹× StyleManager Ŭ·¡½ºÀÇ »ç¿ë. ½ºÅ²¿¡¼ÀÇ setStyle() ¸Þ¼Òµå ¹× StyleManager ÀÇ »ç¿ëÀ» ÂüÁ¶ÇØ ÁÖ¼¼¿ä.
ÀÌ·¯ÇÑ ¾î´À °æ¿ì¿©µµ, ÄÄÆÛ³ÍÆ®¿¡ ÇÁ·Î±×·¥ ½ºÅ²À» Àû¿ëÇÒ ¶§´Â, ¿ÏÀüÇÑ ÆÄÀϸíÀº ¾Æ´Ï°í, ÇÁ·Î±×·¥ ½ºÅ²ÀÇ Å¬·¡½º¸íÀ¸·Î ÁöÁ¤ÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, ¿ÏÀüÇÑ ÆÄÀϸíÀÎ "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 Ŭ·¡½ºÀÇ »ç¿ëÀ» ÂüÁ¶ÇØ ÁÖ¼¼¿ä.
