다들 몸은 건강하신가요. 감기 조심하세요. 감기 1주일 째 빌빌거리고 있습니다.
최근에 깨달은 몇 가지 사항입니다. 기초적인 것이 많을 수도 있습니다.
1. toString() 메서드는 override가 가능하나 override를 작성하지 않는다.
저는 해당 오브젝트에 대한 내용을 얻어올 때 Object객체에서 getObject()함수를 호출해서 toString()으로 받게 됩니다.
이러면 보통 아래와 같은 형식으로 출력이 되죠.
[object BitmapData]
하지만 저는 각각의 경우를 분할하기 위해서 toString()메서드를 override할 수 있지 않을까 생각했습니다.
그래서 public override function toString()
와 같은 방식으로 작성을 했는데, 에러가 나더라구요. 그래서 override를 뺐더니 잘 작동을 합니다.
그래서 위와 같은 방식으로 구분을 할 수 있지 않을까 생각하네요.
2. Dictionary 자료형에서 foreach나 for문을 이용한 iterator 이용
dictionary에서 iterator를 돌리려고 할 때 난감한 경우가 많았던 것 같습니다.
그래서 조금 뒤져보니 다음과 같은 내용이 나오더라구요.
for(var key:String in dict) {
}
위와 같은 방식을 이용했을 때에 dictionary의 key들을 순서대로 얻어옵니다(제 생각에는 등록된 것의 역순으로 나오는 듯 하더군요.. 아니면 제가 쓰는게 stack형식으로 구현이 되는걸지도^^;;)
value는 다음과 같은 방식으로 얻어올 수 있습니다.
for each(var value:Object in dict)
{
}
저러면 Object만 얻어올 수 있습니다. 만약 두 개를 섞고 싶다면
for(var key:String in dict) {
if(dict.hasOwnPriority(key))
{
value = dict[key];
}
}
와 같은 방식으로 얻어올 수 있습니다.
3. BulkLoader에서 id로 줘봤자 해당 id로 얻어오는 것은 힘들다
넘어온 Event객체나, loader를 뒤져도 해당 id로 iterate 하는 것은 힘듭니다. 그래서 주소에 충분한 구분자를 둬서 구분해야 합니다.
4. Flash Builder에서 Static Value의 값을 얻어올 수 없다.
예를 들어서
ResourceManager라는 클래스를 만들고 모든 변수를 static하게 관리한다고 하면, 디버거에서 Expression에서 얻어올 수 없습니다. 일일히 trace로 찍어야 합니다 --;
'study > as3' 카테고리의 다른 글
Flash Builder(Flex)에서 arguments(FlashVars) 사용하기 (0) | 2012.06.27 |
---|---|
재귀적 방식을 이용한 Movieclip 의 정지와 재생 (0) | 2012.06.07 |
Movieclip 여러개를 띄우기(duplicate movieclip, movieclip deepcopy) (0) | 2012.05.31 |
Action Script에서의 Deep copy (0) | 2012.05.30 |
BulkLoader사용시 중북된 로더 이용 및 weak reference에 대해서 (0) | 2012.05.16 |