클래스에서 createMovieClip으로 만든후 그걸로 attachMovie가 안되나요?
유미
function parseItem(itemType) { var objItem:tabDockItem = new tabDockItem(); // 여기까지 잘 불러짐.
createEmptyMovieClip(tabControl,100);
switch (itemType) {case Empty :
objItem.myEmptyTab = tabControl.attachMovie(EmptyTab, EmptyTab+i, this.getNextHighestDepth(), {_x:100, _y:100});
i++;
break;case Image :
objItem.myImageTab = tabControl.attachMovie(ImageTab, ImageTab+i, this.getNextHighestDepth(), {_x:100, _y:100});
i++; case Text :
objItem.myTextTab = tabControl.attachMovie(TextTab, TextTab+i, this.getNextHighestDepth(), {_x:100, _y:100});
i++;
break; }// end switch
return objItem;
}// end parseItem
지금 새로 짜고 있는 클래스내 function 중에 하나입니다. 클래스 선언할때 extends movieclip도 해주었습니다.
trace 해서 봤을때에는var objItem:tabDockItem = new tabDockItem(); 여기까지는 잘 불러지더군요.
그런데 컴파일 에러가 There is no method with tabControl 이라고 하네요. tabControl을 메소드로 쓸려는게 아니라
tabControl이란 무비클립을 만들어 그 안에 새로운 무비클립들을 넣을려고 한거였거든요.
createEmptyMovieClip이 안되는건지 attachMovie가 안되는건지 잘 모르겠습니다.
도저히 확인할 바가 없으니.. 위 코드에서 잘못한것이 있나요?
-
물보라
좋은 답변 감사합니다^^ 지금 말쌈님께서 말씀하신데로 variable을 주고 하니 그렇게 골치를 썩였던게 이제는 되는군요. ㅎㅎ
-
새꽃
글이 짤려서 다시 쓰느라 뺀 내용이 있는데
라이브러리 심볼에 클래스를 연결해서 쓰는 경우 클래스 내부에서 this는 라이브러리 심볼의 인스턴스를
가리키기는 하지만 만약 그 인스턴스 안에 다시 a 라는 무비클립이 또 들어 있다면..
클래스 내부에서 this.a로 접근 할 수 없습니다. 그래서 속성에다가 그 무비클립에 대한 참조를
넣어둬야 접근 가능합니다.
왜그런가는 위에 설명한 대로 클래스 내부에서 a를 찾게 하면
클립 인스턴스명으로 생각하는게 아니라 -
연하얀
클래스에 연결된 무비클립 인스턴스에 생성된 tabControl 이라는 빈 클립에 접근하려면
var tabControl:MovieClip = this.createEmptyMovieClip(\tabControl\ -
한추렴
attach는 빈클립에다가 라이브러리에 있는 심볼을 가져오는게 아니라
라이브러리 심볼을 바로 스테이지로 불러오는 내장 메소드입니다.
즉 의도적으로 빈클립을 생성해서 사용하는 것이 아니라면 굳이 빈 클립을 생성해서
그 안에 attach 할 필요가 없다는 얘기입니다.
뭐 문제는 이게 아니고...
위 소스의 의도가, parseItem 메소드가 있는 현재 클래스는 라이브러리 심볼과 연결되는 무비클립을
상속받은 클래스고, 그 심볼 인스턴스의 안에 각