티스토리 툴바



  


Flex CS3. 이런 에러가 떴다.
그것도 시연하기 바로 직전에 이 에러가 나와서 전혀 시연을 할 수 없는 상태가 되어 버렸다. 완전 처음보는 에러여서 바로 해결할 수도 없었다.

하필 오늘 시연 시간이 2시간이나 당겨진데다,
아침엔 1시간이면 끝낼 작업을 오전 내내 붙잡고 시간을 끌어서 마음이 조급했다.
그래서 시연 준비도 제대로 못하고 있었는데, 이런 처음 보는 에러까지 나와버리니 참.. 덕분에 시연에 참가한 사람들은 다들 X씹은 표정이 되어 돌아갔다. 마음이 무겁다.


반쪽짜리 시연이 끝났다.
도대체 저 에러가 뭔지 찾아야 했다.

크게 3개의 모듈을 쓰고 있는데 그중 2개의 모듈만 들어가면 런타임에 저런 에러가 나면서 프로그램이 멈춰버렸다.

그나마 다행이었다. 실험군과 대조군이 완벽히 갖춰진 셈이니.
하나하나 비교하다가 드디어 찾아낸 문제점.

문제가 발생하는 2개의 모듈에는






  

private function xmlTest(): void
  {
   var xml: XML = new XML("<data/>");
   
   xml.item.name = "aaa";  
   xml.item.phone = "010-1234"; 
   
   trace(xml.toXMLString());
  }


결과 :

<data>
  <item>
    <name>aaa</name>
    <phone>010-1234</phone>
  </item>
</data>





  
private function OnCreationComplete(): void
{
 var x: XML =
 <fruits>
  <fruit color="red">
   <name>Apple</name>
  </fruit>
  
  <fruit color="orange">
   <name>Orange</name>

  </fruit>
  
  <fruit color="green">
   <name>Pear</name>
  </fruit>
  
  <fruit color="red">
   <name>WaterMelon</name>
  </fruit>
 </fruits>;
 
 var xmllist: XMLList = x.fruit;
 
 // color 속성에 d 문자열이 들어간 데이터만 추출
 trace("\n-------- color 속성에 d 문자열이 들어간 데이터만 추출한 결과 --------");
 for each(var xml:XML in xmllist)
 {
  var strColor: String = xml.@color;
  var nIndex: int = strColor.indexOf("d");
 
  if (nIndex >= 0)
   trace(xml.toString());
 }
 
 
 trace("\n-------- name 태그에 대소문자 구분없이 P 문자열이 들어간 데이터만 추출한 결과 --------");
 for each(var xml:XML in xmllist)
 {
  var strName: String = xml.name;
  var nIndex: int = strName.toUpperCase().indexOf("P");
 
  if (nIndex >= 0)
   trace(xml.toString());
 }
}



-- 결과 --
-------- color 속성에 d 문자열이 들어간 데이터만 추출한 결과 --------
<fruit color="red">
  <name>Apple</name>
</fruit>
<fruit color="red">
  <name>WaterMelon</name>
</fruit>
-------- name 태그에 대소문자 구분없이 P 문자열이 들어간 데이터만 추출한 결과 --------
<fruit color="red">
  <name>Apple</name>
</fruit>
<fruit color="green">
  <name>Pear</name>
</fruit>

다음 버전에서는 ActionScript도 scope가 {} 이었으면 좋겠다.