Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- KGC 2013
- scaleform4
- MMOKit
- GDC
- flash cs3
- 클릭
- 형변환
- scaleform
- 태그클라우드
- as3.0
- 강좌
- Document Class
- 플래시
- 스케일폼
- as3
- CLIK
- 애드온
- flash
- watch
- Chart
- 집합의 연산
- 샌프란시스코
- addChild
- ApplicationDomain
- flash player 10
- 수학정석
- autodesk
- as2
- scaleform3
- DataBinding
Archives
- Today
- Total
scaleform.minarto.com
디스플레이 객체가 어떤 컨테이너의 자식 디스플레이 객체인지 확인하는 방법 본문
어떤 디스플레이 객체가 어떤 컨테이너 안에 속해있는지를 판단해야 할 때가 있습니다. as3 라면 contains 같은 메소드로 간단히 해결하겠지만, as2는 그렇지가 못하죠
하지만 다른 방법이 있습니다.
전역함수에 targetPath 라는 녀석이 있고, 디스플레이 객체의 경로를 반환하죠...
뭐 이런 겁니다...
var container:MovieClip = this.createEmptyMovieClip("container", 0); var mc:MovieClip = container.createEmptyMovieClip("mc", 0); trace(targetPath(container)) trace(targetPath(mc)) trace(targetPath(mc).indexOf(targetPath(container)) > -1)
이런 식으로 체크가 가능하지요...
위의 방법을 이해하셨다면 스케일폼에서는 응용해서 다음과 같은 것도 가능하겠지요
_global.gfxExtensions = true; var container:MovieClip = this.createEmptyMovieClip("container", 0); var containerPath:String = targetPath(container); var mc:MovieClip = container.attachMovie("mc", "mc0", 0); Mouse.addListener(this); this.onMouseUp = function():Void { var mc:MovieClip = MovieClip(Mouse.getTopMostEntity(true)), p:String; if(mc) { p = targetPath(mc); trace(p.indexOf(containerPath) > -1) } }
참고로 createEmptyMovieClip 로 생성된 자식은 다른 결과를 얻을 수 있으니 유의하셔야 합니다. getTopMostEntity(false) 로만 동작합니다