| Flex 2 ÄÄÆÛ³ÍÆ®ÀÇ ÀÛ¼º°ú È®Àå > ActionScript ÄÄÆÛ³ÍÆ®ÀÇ ÀÛ¼º > ActionScript ¿¡ ÀÇÇÑ È®ÀåµÈ ºñÁÖ¾ó ÄÄÆÛ³ÍÆ®ÀÇ ÀÛ¼º > ÄÄÆÛ³ÍÆ®ÀÇ ±¸Çö > commitProperties() ¸Þ¼ÒµåÀÇ ±¸Çö | |||
commitProperties() ¸Þ¼ÒµåÀÇ ±¸Çö
ÄÄÆÛ³ÍÆ®ÀÇ properties ¿¡ ´ëÇÑ º¯°æÀ» Á¶Á¤ÇÏ·Á¸é ,commitProperties() ¸Þ¼Òµå¸¦ »ç¿ëÇÕ´Ï´Ù. ´ëºÎºÐÀÇ °æ¿ì, ȸé»óÀÇ ÄÄÆÛ³ÍÆ®ÀÇ Ç¥½Ã ¹æ¹ýÀ¸·Î ¿µÇâÀ» ÁÖ´Â properties ¿Í ÇÔ²² »ç¿ëÇÕ´Ï´Ù.
Flex ´Â,invalidateProperties() ¸Þ¼ÒµåÀÇ È£ÃâÀÌ ¹ß»ýÇßÀ» ¶§¿¡,commitProperties() ¸Þ¼ÒµåÀÇ È£ÃâÀ» ½ºÄÉÁÙ¸µ ÇÕ´Ï´Ù. commitProperties() ¸Þ¼Òµå´Â,invalidateProperties() ¸Þ¼ÒµåÀÇ È£Ãâ ÈÄ, ´ÙÀ½¹øÀÇ render À̺¥Æ®ÀÇ ±â°£¿¡ ½ÇÇàµË´Ï´Ù. addChild() ¸Þ¼Òµå¸¦ »ç¿ëÇØ ÄÄÆÛ³ÍÆ®¸¦ ÄÁÅ×À̳ʿ¡ Ãß°¡ÇÏ´Â °æ¿ì,Flex ´Â,invalidateProperties() ¸Þ¼Òµå¸¦ ÀÚµ¿ÀûÀ¸·Î È£ÃâÇÕ´Ï´Ù.
commitProperties() ¸Þ¼ÒµåÀÇ È£ÃâÀº,measure() ¸Þ¼ÒµåÀÇ È£ÃâÀü¿¡ ¹ß»ýÇÕ´Ï´Ù. µû¶ó¼,measure() ¸Þ¼Òµå°¡ »ç¿ëÇÏ´Â properties ÀÇ °ªÀ» ¼³Á¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.
ÄÄÆÛ³ÍÆ®ÀÇ properties ¸¦ Á¤ÀÇÇϱâ À§Çؼ »ç¿ëÇÏ´Â ÀüÇüÀûÀÎ ÆÐÅÏÀ¸·Î¼´Â, ´ÙÀ½ÀÇ ¿¹ÀÇ °°°Ô, getter/setter ¸Þ¼Òµå¸¦ »ç¿ëÇØ properties ¸¦ Á¤ÀÇÇÕ´Ï´Ù.
// alignText properties ¿ëÀÇ private º¯¼ö¸¦ Á¤ÀÇÇÑ´Ù
private var _alignText:String = "right";
// _alignText properties ÀÇ º¯È¸¦ ³ªÅ¸³»´Â Ç÷¡±×¸¦ Á¤ÀÇÇÑ´Ù
private var bAlignTextChanged:Boolean = false;
// properties ÀÇ getter/setter ¸Þ¼Òµå¸¦ Á¤ÀÇÇÑ´Ù
public function get alignText() :String {
return _alignText;
}
public function set alignText(t:String) :void {
_alignText = t;
bAlignTextChanged = true;
// Çʿ信 µû¶ó¼, commitProperties(), measure(), updateDisplayList()
// ¸Þ¼Òµå¸¦ trigger ÇÑ´Ù
// ÀÌ °æ¿ì, ÄÄÆÛ³ÍÆ®¸¦ ÀçÃøÁ¤ÇÒ ÇÊ¿ä´Â ¾ø´Ù
invalidateProperties();
invalidateDisplayList();
}
// commitProperties() ¸Þ¼Òµå¸¦ ±¸ÇöÇÑ´Ù
override protected function commitProperties() :void {
super.commitProperties();
// Ç÷¡±×°¡ alignText properties ÀÇ º¯°æÀ» ³ªÅ¸³»°í ÀÖ´ÂÁö È®ÀÎÇÑ´Ù
if (bAlignTextChanged) {
// Ç÷¡±×¸¦ ¸®¼ÂÆ® ÇÑ´Ù
bAlignTextChanged = false;
// Á¤·ÄÀÇ º¯°æÀ» ó¸®ÇÑ´Ù
}
}
ÀÌ ¿¹·Î º¸µµ·Ï(µíÀÌ), setter ¸Þ¼Òµå´Â, properties ¸¦ º¯°æÇØ,invalidateProperties() ¸Þ¼Òµå¿Í invalidateDisplayList() ¸Þ¼Òµå¸¦ È£ÃâÇØ µ¹¾Æ¿É´Ï´Ù. setter ÀÚü´Â, »õ·Î¿î properties Ä¡¸¦ »ç¿ëÇÑ °è»êÀº ÇÏÁö ¾Ê½À´Ï´Ù. ÀÌ ¼³°è¿¡ ÀÇÇØ, setter ¸Þ¼Òµå·ÎºÎÅÍ´Â °ð¹Ù·Î µ¹¾Æ¿Í, »õ·Î¿î °ªÀÇ Ã³¸®´Â commitProperties() ¸Þ¼Òµå·Î ÇàÇØÁö°Ô µË´Ï´Ù.
ÄÁÆ®·Ñ³»ÀÇ ÅØ½ºÆ®ÀÇ Á¤·ÄÀ» º¯°æÇصµ, ÄÁÆ®·ÑÀÇ Å©±â´Â ¹Ýµå½Ã ¹Ù²î´Â °ÍÀº ¾Æ´Õ´Ï´Ù. Å©±â°¡ ¹Ù²î´Â °æ¿ì´Â,invalidateSize() ¸Þ¼Òµå¸¦ È£ÃâÇØ measure() ¸Þ¼Òµå¸¦ trigger ÇØ ÁÖ¼¼¿ä.
commitProperties() ¸Þ¼Òµå¸¦ »ç¿ëÇÏ´Â ÁÖµÈ ÀÌÁ¡Àº, ´ÙÀ½°ú °°½À´Ï´Ù.
- º¹¼öÀÇ properties ÀÇ º¯°æÀ» Á¶Á¤ÇØ, º¯°æÀÌ µ¿±â ÇØ ÀϾµµ·Ï(µíÀÌ) ÇÕ´Ï´Ù.
¿¹¸¦ µé¾î, ÄÄÆÛ³ÍÆ®³»ÀÇ ÅØ½ºÆ®ÀÇ Á¤·Ä µî, ÄÄÆÛ³ÍÆ®¿¡ ÀÇÇØ Ç¥½ÃµÇ´Â ÅØ½ºÆ®¸¦ ÄÁÆ®·Ñ ÇÏ´Â º¹¼öÀÇ properties ¸¦ Á¤ÀÇÇÑ´Ù°í ÇÕ´Ï´Ù. ÅØ½ºÆ®³ª Á¤·ÄÀÇ properties ÀÇ ¾î´ÀÂÊÀ̵çÀ» º¯°æÇÏ·Á¸é , Flex °¡ ÄÄÆÛ³ÍÆ®ÀÇ ¿Ü°üÀ» °»½ÅÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. ´Ù¸¸, ÅØ½ºÆ®¿Í Á¤·ÄÀÇ ¾çÂÊ ¸ðµÎ¸¦ º¯°æÇÏ´Â °æ¿ì´Â, ȸéÀÇ °»½Å½Ã¿¡, Flex ¿¡ ÄÄÆÛ³ÍÆ®ÀÇ Å©±â¿Í À§Ä¡¿¡ °üÇÑ °è»êÀ» ÇÑ ¹ø¸¸ ½ÇÇà½Ãų ¼ö°¡ ÀÖ½À´Ï´Ù.
µû¶ó¼,
commitProperties()¸Þ¼Òµå¸¦ »ç¿ëÇØ, º¹¼öÀÇ ÄÄÆÛ³ÍÆ®ÀÇ properties ÀÇ °ü°è¿¡ ±Ù°ÅÇØ °ªÀ» °è»êÇÏ°Ô µË´Ï´Ù.commitProperties()¸Þ¼Òµå·Î properties ÀÇ º¯°æÀ» Á¶Á¤ÇÏ´Â °ÍÀ¸·Î, ºÒÇÊ¿äÇÑ Ã³¸®ÀÇ ¿À¹öÇìµå¸¦ ÁÙÀÏ ¼ö ÀÖ½À´Ï´Ù. - °°Àº properties ¿¡ ´ëÇÑ º¹¼öÀÇ º¯°æÀ» Á¶Á¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.
À¯Àú°¡ ÄÄÆÛ³ÍÆ®ÀÇ properties ¸¦ °»½ÅÇÒ ¶§¸¶´Ù, º¹ÀâÇÑ °è»êÀ» ½ÇÇàÇÒ ÇÊ¿ä´Â ¾ø´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, À¯Àú°¡ Button ÄÁÆ®·ÑÀÇ
iconproperties ¸¦ º¯°æÇØ, ¹öư¿¡ Ç¥½ÃµÇ´Â È»óÀ» º¯°æÇÑ´Ù°í ÇÕ´Ï´Ù. ¾ÆÀÌÄÜÀÇ À¯¹«³ª Å©±â¿¡ ±Ù°ÅÇØ labelÀÇ À§Ä¡¸¦ °è»êÇϸé, ¸¹Àº °è»ê 󸮰¡ ÇÊ¿äÇϹǷÎ, ÇÊ¿äÇÑ ¶§¸¸ ½ÇÇàÇÏ´Â °ÍÀÌ ¹Ù¶÷Á÷ÇÕ´Ï´Ù.À̰ÍÀ» ÇÇÇÏ·Á¸é ,
commitProperties()¸Þ¼Òµå¸¦ »ç¿ëÇØ, °è»êÀ» ½ÇÇàÇÕ´Ï´Ù. Flex ´Â, Ç¥½Ã¸¦ °»½ÅÇÒ °æ¿ì¿¡,commitProperties()¸Þ¼Òµå¸¦ È£ÃâÇÕ´Ï´Ù. Áï, ȸéÀÇ °»½Åµ¿¾ÈÀ¸·Î properties °¡ º¯°æµÈ ȸ¼ö¿¡ °ü°è¾øÀÌ, Flex °¡ ȸéÀ» °»½ÅÇÒ °æ¿ì¿¡, °è»êÀ» ÇÑ ¹ø ½ÇÇàÇÑ´Ù°í ÇÏ´Â °ÍÀÔ´Ï´Ù.
´ÙÀ½ÀÇ ¿¹¿¡¼´Â,commitProperties() ¸Þ¼Òµå·Î, 2 °³ÀÇ °ü·ÃÇÏ´Â properties ¸¦ ó¸®ÇÏ´Â ¹æ¹ýÀ» ³ªÅ¸³À´Ï´Ù.
// text properties ¿ëÀÇ private º¯¼ö¸¦ Á¤ÀÇÇÑ´Ùprivate var _text:String = "ModalText"; private var bTextChanged:Boolean = false; // getter ¸Þ¼Òµå¸¦ Á¤ÀÇÇÑ´Ù public function get text() :String { return _text; } // setter ¸Þ¼Òµå¸¦ Á¤ÀÇÇØ, properties ÀÇ º¯°æ½Ã¿¡ invalidateProperties()¸¦ // È£ÃâÇÑ´Ù public function set text(t:String) :void { _text = t; bTextChanged = true;invalidateProperties();// ÅØ½ºÆ®°¡ º¯°æµÇ¸é, ÄÁÆ®·ÑÀÌ µðÆúÆ® Å©±â¸¦ Àç°è»êÇÑ´ÙinvalidateSize();invalidateDisplayList();}// alignText properties ¿ëÀÇ private º¯¼ö¸¦ Á¤ÀÇÇÑ´Ùprivate var _alignText:String = "right"; private var bAlignTextChanged:Boolean = false; public function get alignText() :String { return _alignText; } public function set alignText(t:String) :void { _alignText = t; bAlignTextChanged = true;invalidateProperties();invalidateDisplayList();} // commitProperties() ¸Þ¼Òµå¸¦ ±¸ÇöÇÑ´Ù override protected function commitProperties() :void { super.commitProperties();// Ç÷¡±×°¡ ¾çÂÊ ¸ðµÎÀÇ properties ¿¡ ´ëÇÑ º¯°æÀ» ³ªÅ¸³»°í ÀÖ´ÂÁö È®ÀÎÇÑ´Ùif (bTextChanged && bAlignTextChanged) {// Ç÷¡±×¸¦ ¸®¼ÂÆ® ÇÑ´Ù bTextChanged = false; bAlignTextChanged = false; // ¾çÂÊ ¸ðµÎÀÇ properties °¡ º¯°æµÇ°í ÀÖ´Â °æ¿ìÀÇ Ã³¸®¸¦ ÇÑ´Ù } // Ç÷¡±×°¡ text properties ÀÇ º¯°æÀ» ³ªÅ¸³»°í ÀÖ´ÂÁö È®ÀÎÇÑ´Ù if (bTextChanged) { // Ç÷¡±×¸¦ ¸®¼ÂÆ® ÇÑ´Ù bTextChanged = false; // ÅØ½ºÆ®ÀÇ º¯°æÀ» ó¸®ÇÑ´Ù } // Ç÷¡±×°¡ alignText properties ÀÇ º¯°æÀ» ³ªÅ¸³»°í ÀÖ´ÂÁö È®ÀÎÇÑ´Ù if (bAlignTextChanged) { // Ç÷¡±×¸¦ ¸®¼ÂÆ® ÇÑ´Ù bAlignTextChanged = false; // Á¤·ÄÀÇ º¯°æÀ» ó¸®ÇÑ´Ù } }
