배경
Flash 로 만든 에디터에 Scroll을 을 붙여서 작업 공간을 넓게 쓰고자 한다는 요청을 받았다.
문제는 해당 작업공간을 ScrollPane 에 넣게 되면, 넣는 즉시 그 작업공간이 ScrollPane의 내부 인스턴스가 되는 것인데,
어떻게 컨트롤이 가능하냐는 것이다. 인터넷에 떠도는 대부분의 글들은 ScrollPane을 어떻게 붙이는가에 대한 이야기 뿐이지
내가 원하는 이야기는 없었다. 아니, 미처 찾지 못했음이 맞겠다.
그러다가 아주 적합한 글을 발견했다.
소스
_root.scrollPane.contentPath = "whiteBoard"; // 내부 인스턴스 지정 : 화면에 꼭 만들어 둘 필요는 없다. library에만 있어도 이처럼 갖다 쓸 수 있다. _root.scrollPane.content; // 내부 지정해 둔 것을 갖다 쓸 때엔 이렇게 쓴다.
다음은 예시) _root.scrollPane.content.getNextHighestDepth() |
원저자가 소스로 보여준 가능성은 내게 큰 힘이 됐다.
그리고 필자는 그소스를 응용하여, 새로운 소스로 바꾸어 보았다.
좌측이 원저자의 것, 우측의 필자의 것.
간단한 변화지만, frame에다 직접 액션 스크립트를 집어넣지 않고,
최대한 *.as 파일을 활용하여 만들어보았다.
library에서 직접 인스턴스를 갖다 쓰는 방식을 취하게 되면,
무엇보다 InputText에서 한 번 포커스가 잡히면 사라지지 않는 괴현상(?)이 발생한다. 이런 경험.. 필자만 해보나???
아주 골치아픈 경우인데, 이런경우 ScrollPane 에 포커스를 갖다주면 해결!!
소스에 넣어뒀다.
잡담
포커스 문제는 거의 하루 동안 필자를 괴롭혀온 문제다.
비정상적인 에러라고 보고, 비정상적인 꼼수로 대응했다.
'PROGRAMMING > ActionScript' 카테고리의 다른 글
Mac Address 얻어오기 (0) | 2013.09.13 |
---|---|
Flash 에서 Replace 처리 (0) | 2012.02.03 |
댓글