밤하늘의 실제별, 나도 가질 수 있다?!

[Flex] 시계 컴포넌트

2007/10/19 14:47

 


예전에 소개했던 Guage 컴포넌트를 참고해서 시계 컴포넌트를 만들었다.
com.jidolstar.components.clock 네임스페이스에 ClockBase를 확장해서 만든 Analog시계와 Digital시계가 있다. ClockBase는 시계의 가장 기본적인 특성인 시,분,초,오전오후 에 대한 정보가 1초에 한번씩 업데이트 되도록 UIComponent를 확장해서 만든 것이다. 이 것을 확장해서 Analog시계, Digital시계를 만들 수 있는데... Analog 시계의 경우 스킨기능을 추가했다.

Analog 시계 컴포넌트의 문제점은 AM,PM표시가 일단 없고, 바늘스킨을 이미지로 사용하는 경우 잘 맞도록 조정되어 있지는 않는다. 손을 보고 싶지만... 귀차니즘때문에.... ^^;;;

처음 공부하시는 분들에게 유용한 컴포넌트 예제라 생각한다.
왜냐하면 Skin, Style Sheet, 컴포넌트 만드는 법에 대해서 전반적으로 공부할 수 있기 때문이다.
아래소스를 받아보면 되고, 참고로 주석은 달려있지 않다 ^^;


기능이 개선되어 여러사람이 유용하게 사용할 수 있는 컴포넌트가 되길 바란다. ^^

참고내용 : 게이지 컴포넌트

글쓴이 : 지돌스타 (http://blog.jidolstar.com/253)
크리에이티브 커먼즈 라이선스
Creative Commons License

Adobe Flash Platform , , ,

Trackback 주소: http://blog.jidolstar.com/trackback/253
  1. Blog Icon
    이인준

    헤헤~ 잘보고 갑니다!~
    추가로 혹시 flash에서 사용되는 watch문을 flex자체에서 쓰려면 어떻게해야될까요?
    flex자체에서 flash함수나 javaScript함수를 불러올수 있을까요?

  2. Blog Icon
    조광제

    flex에서 swfLoader를 사용해서 flash(swf) 파일을 로드한 후에
    swfLoader id로 접근해서 flash 함수를 호출할 수 있고요...

    flex에서 자바스크립트 호출은
    flash.external.ExternalInterface.call("closeWindow");
    와 같이 사용합니다. ^^

  3. Blog Icon
    이인준

    답변감사합니다..그런데 애매한 경우라서 파일임포트나 로드는 불가한상태에요..
    flex자체에서만 사용해야되거든요..

  4. Blog Icon
    조광제

    어떤것을 말씀하시는지 이해가 잘 안되는데요.. ^^
    파일 임포트/ 로드는 무엇을 말씀하시는지?
    최초 질문은 flash 함수와 javascript 호출에 대한 얘기여서 거기에 대한 답변을 드린것이고요. ^^
    watch문을 사용하려면 플랙스에서 get/set을 사용해서 적용하셔도 될듯 합니다.

    그런데 watch명령문은 as2.0버전이고 결과적으로 flash에서 만든 swf는 Flex와 호환에 어려움이 있습니다.

    그러니 watch명령문은 get/set을 사용하시고 flash는 cs3로 개발하심이 좋을 듯 합니다.

    그리고 자바스크립트 호출은 위와 같이 동일하고요. ^^

  5. Blog Icon
    조광제

    자바스크립트를 플랙스내에서 사용할 수 도 있습니다.
    그런데.. FLEX App가 html 혹은 jsp내에서 기동이 되는 형태로 작성하실것 같은데
    그 html/jsp 내에 자바스크립트를 호출하시면 될 것 같은데요?

    단, flex App가 서버에 있어서 사용자 요청시 해당 페이지가 컴파일 되는 형태로 구현하신 거라면 래퍼에 javascript를 넣어 두셔서 사용하실 수도 있습니다. ^^

  6. 와~~ 설명을 너무 잘해주시네용~~ 헷헷~
    감사합니당... ^^

  7. Blog Icon
    이인준

    조광제님 친절한 답변 감사합니다!~
    사실은 네이버 위젯을 flex로 만들고 있거든요,,
    해보고 안되면 다시 해볼께요 ㅋ~