| Flex 2 °³¹ß °¡À̵å > À¯Àú ÀÎÅÍÆäÀ̽ºÀÇ Ä¿½ºÅ͸¶ÀÌÁî > ½ºÅ¸Àϰú Å׸¶ÀÇ »ç¿ë > StyleManager Ŭ·¡½ºÀÇ »ç¿ë | |||
StyleManager Ŭ·¡½ºÀÇ »ç¿ë
StyleManager Ŭ·¡½º¿¡ ÀÇÇØ, ActionScript ¸¦ »ç¿ëÇØ class ½Ç·ºÅÍ ¹× ŸÀÔ ½Ç·ºÅÍ¿¡ ¾×¼¼½º ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¶Ç, »ó¼Ó °¡´ÉÇÑ properties ¿Í »ó¼Ó ºÒ°¡´ÉÇÑ properties ¸¦ ±Û·Î¹úÇÏ°Ô Àû¿ëÇÒ ¼öµµ ÀÖ½À´Ï´Ù. StyleManager ¸¦ »ç¿ëÇϸé, »õ·Î¿î CSS ½ºÅ¸ÀÏ ¼±¾ðÀ» Á¤ÀÇÇØ, ±×°ÍÀ» Flex ¾îÇø®ÄÉÀ̼ÇÀÇ ÄÁÆ®·Ñ¿¡ Àû¿ëÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù.
StyleManager ¸¦ »ç¿ëÇØ °ªÀ» ¼³Á¤¿¡´Â, ´ÙÀ½ÀÇ ¹®À屸Á¶¹ýÀ» »ç¿ëÇÕ´Ï´Ù.
mx.styles.StyleManager.getStyleDeclaration(style_name). setStyle("property", value);
style_name ·Î ÁöÁ¤ÇÒ ¼ö ÀÖ´Â °ÍÀº, ¸®ÅÍ·²ÀÎ global, Button ³ª TextArea µîÀÇ Å¸ÀÔ ½Ç·ºÅÍ, ¶Ç´Â <mx:Style> ÅÂ±× ¶Ç´Â ¿ÜºÎ ½ºÅ¸ÀÏ ½ÃÆ®·Î Á¤ÀÇÇÏ´Â class ½Ç·ºÅÍÀÔ´Ï´Ù. ±Û·Î¹ú ½ºÅ¸ÀÏÀº, °¢ ¿ÀºêÁ§Æ®·Î ¸í½ÃÀûÀ¸·Î ÀçÁ¤ÀÇ(override) µÇÁö ¾Ê´Â ÀÌ»ó ¸ðµç ¿ÀºêÁ§Æ®¿¡ Àû¿ëµË´Ï´Ù.
getStyleDeclaration() ¸Þ¼Òµå´Â,textDecoration, µîÀÇ »ó¼Ó ºÒ°¡´ÉÇÑ ½ºÅ¸ÀÏÀ» 1 ¹ø¿¡ º¹¼öÀÇ Å¬·¡½º¿¡ Àû¿ëÇÏ´Â °æ¿ì¿¡ µµ¿òÀÌ µË´Ï´Ù. ÀÌ properties ´Â,CSSStyleDeclaration ŸÀÔÀÇ ¿ÀºêÁ§Æ®¸¦ ÂüÁ¶ÇÕ´Ï´Ù. ŸÀÔ ½Ç·ºÅͳª ¿ÜºÎ ½ºÅ¸ÀÏ ½ÃÆ®´Â, ÀÌ¹Ì CSSStyleDeclaration ŸÀÔÀÇ °ÍÀ̶ó°í »óÁ¤µË´Ï´Ù. Flex ¿¡¼´Â, ÀÌ Å¸ÀÔÀÇ ¿ÀºêÁ§Æ®¿¡ Á¤ÀÇÇÑ class ½Ç·ºÅͰ¡ ³»ºÎ¿¡¼ º¯È¯µË´Ï´Ù.
´ÙÀ½¿¡ ³ªÅ¸³»´Â ¿¹¿¡¼´Â,fontSize properties ¸¦ ToolTip,myStyle, ¹× global ÀÇ °¢ ½ºÅ¸ÀÏ¸í¿¡ Àû¿ëÇÕ´Ï´Ù.
import mx.styles.StyleManager;
// Type selector; applies to all ToolTips and subclasses of ToolTip.
StyleManager.getStyleDeclaration("ToolTip"). setStyle("fontSize", 24);
// Class selector; applies to all controls using the style named myStyle.
// Note that class selectors must be prefixed with a period.
StyleManager.getStyleDeclaration(".myStyle"). setStyle("fontSize", 24);
// Global style: applies to all controls.
StyleManager.getStyleDeclaration("global"). setStyle("fontSize", 24);
|
¸Þ¸ð |
|
»ó¼Ó °¡´ÉÇÑ ½ºÅ¸ÀÏ¿¡¼µµ, »ó¼Ó ºÒ°¡´ÉÇÑ ½ºÅ¸ÀÏ¿¡¼µµ, |
´ÙÀ½ÀÇ ¿¹¿¡¼´Â,global ½Ç·ºÅ͸¦ »ç¿ëÇØ, ¸ðµç ÄÄÆÛ³ÍÆ®¿¡ ´ëÇØ¼ fontFamily ½ºÅ¸ÀÏ properties ¹× fontWeight ½ºÅ¸ÀÏ properties ¸¦ Á¤ÀÇÇÕ´Ï´Ù. °Ô´Ù°¡ ¸ðµç TextInput ÄÁÆ®·ÑÀÇ borderStyle ¸¦ solid ·Î ¼³Á¤ÇÕ´Ï´Ù.
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" width="500" height="400" initialize="initializeStyles() ">
<mx:Script><! [CDATA[
import mx.styles.StyleManager;
public function initializeStyles() :void {
// Initialize the global settings.
StyleManager.getStyleDeclaration("global").
setStyle("fontFamily", "Arial");
StyleManager.getStyleDeclaration("global").
setStyle("fontWeight", "bold");
// Initialize all TextInput controls to have solid borders.
StyleManager.getStyleDeclaration("TextInput").
setStyle("borderStyle", "solid");
}
]]></mx:Script>
<mx:Button id="btn2" label="Click Me"/>
<mx:TextInput width="425" height="250" text="this is a text area"/>
</mx:Application>
CSSStyleDeclaration Ŭ·¡½º¿¡¼ ActionScript ¸¦ »ç¿ëÇϸé, CSS ½ºÅ¸ÀÏ ¼±¾ðÀ» ÀÛ¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù. À̰ÍÀ» ÀÌ¿ëÇϸé, ½ÇÇà½Ã¿¡ ½ºÅ¸ÀÏ ½ÃÆ®¸¦ ÀÛ¼ºÇØ ÆíÁýÇØ, Flex ¾îÇø®ÄÉÀ̼ÇÀÇ Å¬·¡½º¿¡ Àû¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ½ÇÇà½Ã¿¡ ½ºÅ¸ÀÏ Á¤ÀÇÀÇ º¯°æÀ̳ª ½ºÅ¸ÀÏÀÇ Àû¿ëÀ» ½Ç½ÃÇÏ·Á¸é ,setStyle() ¸Þ¼Òµå¸¦ »ç¿ëÇÕ´Ï´Ù.
StyleManager ´Â,setStyleDeclaration() ¸Þ¼Òµåµµ °®Ãß°í ÀÖ½À´Ï´Ù. ÀÌ ¸Þ¼Òµå¸¦ »ç¿ëÇϸé CSSStyleDeclaration ¿ÀºêÁ§Æ®¸¦ ½Ç·ºÅͷμ Àû¿ëÇÒ ¼ö ÀÖÀ¸¹Ç·Î, ¾î´À ŸÀÔÀÇ ÄÄÆÛ³ÍÆ® ¸ðµÎ¿¡°Ô ½ºÅ¸ÀÏ ½ÃÆ®¸¦ Àû¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ½Ç·ºÅÍ´Â, class ½Ç·ºÅÍ ¶Ç´Â ŸÀÔ ½Ç·ºÅͷμ ±â´ÉÇÕ´Ï´Ù.
´ÙÀ½ÀÇ ¿¹¿¡¼´Â, »õ·Î¿î CSSStyleDeclaration ¿ÀºêÁ§Æ®¸¦ ÀÛ¼ºÇØ, ¸î°³ÀÇ ½ºÅ¸ÀÏ properties ¸¦ ¿ÀºêÁ§Æ®¿¡ Àû¿ëÇÕ´Ï´Ù. ´ÙÀ½¿¡, StyleManager ÀÇ setStyleDeclaration() ¸Þ¼Òµå¸¦ »ç¿ëÇØ ¸ðµç Button ÄÁÆ®·Ñ¿¡ »õ·Î¿î ½ºÅ¸ÀÏÀ» Àû¿ëÇÕ´Ï´Ù.
<mx:Script><! [CDATA[
import mx.styles.StyleManager;
import mx.styles.CSSStyleDeclaration;
private var myDynStyle:CSSStyleDeclaration = new
CSSStyleDeclaration("myDynStyle");
private function init() :void {
myDynStyle.setStyle('color', 'blue');
myDynStyle.setStyle('fontFamily', 'Arial');
// Apply the new style to all Button controls.
StyleManager.setStyleDeclaration("Button", myDynStyle, true);
}
]]></mx:Script>
ŸÀÔ ½Ç·ºÅÍ¿¡ »õ·Î¿î CSSStyleDeclaration ¸¦ ¼³Á¤Çϸé, ±âÁ¸ÀÇ Å¸ÀÔ ½Ç·ºÅÍ Àüü°¡ »õ·Î¿î ½Ç·ºÅÍ·Î ¿Å°Ü³õÀ» ¼ö ÀÖ½À´Ï´Ù. »õ·Î¿î CSSStyleDeclaration ·Î ¸í½ÃÀûÀ¸·Î °ªÀÌ Á¤ÀǵǾî ÀÖÁö ¾ÊÀº ½ºÅ¸ÀÏ properties ´Â, ¸ðµÎ null ·Î ¼³Á¤µË´Ï´Ù. À̰Ϳ¡ ÀÇÇØ, "defaults.css" ÆÄÀÏ ¶Ç´Â ÀÌ¹Ì Àû¿ë ³¡³ ½ºÅ¸ÀÏ ½ÃÆ®·Î Á¤Àǵǰí ÀÖ´Â ½ºÅ²À̳ª ¸¶ÁøµîÀÇ properties °¡ »èÁ¦µÇ´Â ÀÏÀÌ ÀÖ½À´Ï´Ù.
¸ðµç ½ºÅ¸ÀÏ properties °¡ ¹«È¿°¡ µÇÁö ¾Ê°Ô ÇÏ·Á¸é , class ½Ç·ºÅ͸¦ »ç¿ëÇØ »õ·Î¿î CSSStyleDeclaration ¿ÀºêÁ§Æ®¸¦ Àû¿ëÇÕ´Ï´Ù. class ½Ç·ºÅÍÀÇ ½ºÅ¸ÀÏ properties ·Î ±âÁ¸ÀÇ Å¸ÀÔ ½Ç·ºÅÍÀÇ properties ¸¦ ¿Å°Ü³õÀ» ¼ö ÀÖÀ» °ÍÀº ¾ø±â ¶§¹®¿¡, ÄÄÆÛ³ÍÆ®ÀÇ µðÆúÆ® ¼³Á¤À» À¯ÁöÇÒ ¼ö ÀÖ½À´Ï´Ù.
´ÙÀ½ÀÇ ¿¹¿¡¼´Â, myButtonStyle ¸¦ b1 Button ÄÁÆ®·Ñ¿¡ Àû¿ëÇÕ´Ï´Ù.
<? xml version="1. 0"? >
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="init() ">
<mx:Script><! [CDATA[
import mx.styles.StyleManager;
import mx.styles.CSSStyleDeclaration;
private var myDynStyle:CSSStyleDeclaration = new
CSSStyleDeclaration("myDynStyle");
private function init() :void {
myDynStyle.setStyle('color', 'blue');
myDynStyle.setStyle('themeColor', 'green');
myDynStyle.setStyle('fontFamily', 'georgia');
// Use class selector to apply style to certain class of components.
StyleManager.setStyleDeclaration(".myButtonStyle", myDynStyle, true);
}
]]></mx:Script>
<mx:Button id="b1" label="Click Me" styleName="myButtonStyle"/>
</mx:Application>
CSSStyleDeclaration ¿ÀºêÁ§Æ®¸¦ »èÁ¦ÇÏ·Á¸é , ´ÙÀ½ÀÇ ¿¹¿Í °°ÀÌ, StyleManager ÀÇ clearStyleDeclaration() ¸Þ¼Òµå¸¦ »ç¿ëÇÕ´Ï´Ù.
StyleManager.clearStyleDeclaration(".myButtonStyle", true);
clearStyleDeclaration() ¸Þ¼Òµå¸¦ »ç¿ëÇϸé, ÁöÁ¤ÇÑ ½Ç·ºÅÍÀÇ ½ºÅ¸Àϸ¸ÀÌ »èÁ¦µË´Ï´Ù. ÄÄÆÛ³ÍÆ®¿¡ class ½Ç·ºÅ͸¦ Àû¿ëÇØ, ±× ÄÄÆÛ³ÍÆ®ÀÇ class ½Ç·ºÅÍ¿¡ ´ëÇØ¼ ÀÌ ¸Þ¼Òµå¸¦ È£ÃâÇϸé, ÀÌ ÄÄÆÛ³ÍÆ®ÀÇ Å¸ÀÔ ½Ç·ºÅÍÀÇ ½ºÅ¸ÀÏÀº »èÁ¦µÇÁö ¾Ê°í ³²½À´Ï´Ù.
setStyleDeclaration() ¸Þ¼Òµå ¹× clearStyleDeclaration() ¸Þ¼Òµå´Â ¸¹Àº °è»ê 󸮸¦ ½Ç½ÃÇÕ´Ï´Ù. update ÆÄ¶ó¹ÌÅ͸¦ false ·Î ¼³Á¤Çϸé, »õ·Î¿î ½ºÅ¸ÀÏÀ» Adobe Flash Player °¡ °ð¹Ù·Î Àû¿ë ¶Ç´Â Ŭ¸®¾î ÇÏÁö ¾Ê°Ô ÇÒ ¼ö ÀÖ½À´Ï´Ù.
´ÙÀ½ÀÇ ¿¹¿¡¼´Â, ´Ù¾çÇÑ Å¸°ÙÀ¸·Î »õ·Î¿î class ½Ç·ºÅ͸¦ ¼³Á¤ÇÕ´Ï´Ù¸¸, ¸¶Áö¸· ½ºÅ¸ÀÏ ¼±¾ðÀÇ Àû¿ë±îÁö °»½ÅÀ» trigger ÇÏÁö ¾Ê½À´Ï´Ù.
StyleManager.setStyleDeclaration("Button", myButtonStyle, false);
StyleManager.setStyleDeclaration("Label", myLabelStyle, false);
StyleManager.setStyleDeclaration("TextArea", myTextAreaStyle, true);
update ÆÄ¶ó¹ÌÅͷμ false ¸¦ °Ç³×ÁÖ¸é, Flash Player ´Â ½Ç·ºÅ͸¦ ÀúÀåÇÏ´Â °Í¸¸À¸·Î ½ºÅ¸ÀÏÀ» Àû¿ëÇÏÁö ¾Ê½À´Ï´Ù. update ÆÄ¶ó¹ÌÅͷμ true ¸¦ °Ç³×ÁÖ¸é, Flash Player ´Â ¾îÇø®ÄÉÀ̼ǿ¡ Æ÷ÇԵǴ °¢ ºñÁÖ¾ó ÄÄÆÛ³ÍÆ®ÀÇ ½ºÅ¸ÀÏÀ» Àç°è»êÇÕ´Ï´Ù.
