[JS+Flash] 플래시 칼라피커

칼라피커란 말 그대로 색상을 찍어주는 녀석을 말한다. 보통은 다이얼로그( = 대화상자 ) 형태로 띄우는데... 이게 자바스크립트로 만들려고 하면 상당한 노가다가 된다. 게다가 원한만큼 색상이 이쁘게 나오지도 않는다.

그래서 생각해낸 방법이 플래시를 이용하는 거다. 플래시를 이용하게 되면 색상도 잘 나올뿐더러 그 자체가 오브젝트이기 때문에 셀렉트 박스등에 가려지는 일이 없어서 더욱 좋다. 한마디로 원츄~ +_+ b

사용법을 알아보자.
제일 먼저 할 일은 당연히 스크립트를 문서에 포함시키는 것이다. 칼라피커의 특성상 다중 실행을 하는 일은 별로 없으므로, 포함한 후에 바로 사용할 수 있다. 스크립트를 포함한 후에는, 몇가지 설정을 해줘야 할 것이 있는데 다음과 같다.


ColorPicker.path = 'ColorPicker.swf'; // 칼라피커 플래시 파일의 경로
ColorPicker.align = 'right'; // 칼라피커가 나타날 위치
ColorPicker.handler = userFunc; // 기본 핸들러

  • align에는 left, right, top, middle, bottom 의 값이 가능하다. 각각 어떤 모양을 나타내는지는 직접 실행해보고 알도록 한다.
  • 핸들러는 함수를 먼저 지정한 후 대입한다. 위의 예에서는 미리 userFunc 함수가 지정되어있다고 가정한다.

핸들러 함수는 첫번째 전달값을 반드시 가지고 있어야 한다. 첫번째 전달자에 전달되는 값은 '#'를 포함한 16진수 RGB 색상코드이다.
이제 필요한 곳에 버튼 등을 만들어서 onclick 등의 이벤트에 함수를 할당해서 칼라피커를 보여주도록 한다.



ColorPicker 객체와 show 메소드의 대소문자 사용을 주의하자. show 메소드의 첫번째 전달값은 반드시 this 가 되도록 하고, 두번째 전달값은 핸들러를 지정한다. 만일 핸들러를 지정하지 않고 사용하면 위에서 설정한 기본 핸들러가 지정되고, 기본 핸들러도 설정되어있지 않다면 빈 함수를 지정한다.


이렇게 하면 기본 핸들러가 사용된다.

사용예제

// settings
ColorPicker.path = 'ColorPicker.swf';
ColorPicker.align = 'right'; // ( left, right, middle, top, bottom)
ColorPicker.handler = userFunc; // default handler

// user custom handler
function userFunc(str)
{
document.getElementById("color").value = str;
window.status = "선택한 색상은 '" + str + "' 입니다.";
}

[#NOBR_START#]


색상 선택1 :

색상 선택2 :

[#NOBR_END#]

저작권
따로 라이센스라고 할만한 것은 없지만, 자바스크립트 소스내에 있는 저작자에 관한 짧은 주석을 삭제하지 않았으면 한다.

[##_1C|415722.zip||클릭하면 다운로드~ _##]

  1. kokomo // 곧 서버도 옮길 예정이고... 게다가 제가 7일에 직장을 그만 둘 예정입니다. 설 쇠면 바로 공개하도록 할게요. ^^a
    약속해놓고 너무 늦어지네요. 인수인계도 해야되고 해서 이래저래 정신이 좀 없거든요. 설 잘 보내세요~

  2. 연휴기간 잘지내셨는지요~...
    궁금해서 방문했습니다. 요즘도 바뿌신지요... 직장도 그만두시면
    프리로 일하시는건지...
    주로 무슨일을 하시는지 궁금하기도하고 블로그를 보면 디자이너 같기도하고
    프로그래머 같기도 하고 둘다 잘하시는거 같아서 부럽습니다.
    행복한 주말되세요...^_^

  3. kokomo // 서울로 올라와서 이제서야 인터넷 신청했네요. 약속한거 잊지않고 있습니다. 조금만 기다려주세요. ^^a
    아... 개발자예요. 사실 디자인 능력은 꽝이랍니다. ㅎㅎ

  4. 주로 무었을 개발하시는지 저희도 프로그래머가 꼭 필요하거든요~
    커뮤니티를 개발하시는건지 아님 건축 개발...ㅋㅋㅋ ^_^
    궁금하네요~

  5. kokomo // 아... 그냥 이것저것 하는데 그전에 주로 하던 것은 PHP나 JSP로 웹사이트 개발하던거 하고 XML을 이용한 솔루션 개발 정도예요. 간간히 윈도우 프로그램도 하고 있구요. ^^a

  6. 한번 고니님을 만나보고 싶군요~ 저희도 프로그래머를 찾고 있습니다.
    서울 방배동에 사무실이 있거든요~ 가능하면 저의 블로그에다 글남겨주셔요~

  7. kokomo // 아쉽게도 제가 학교를 다니는 입장이라 회사에 근무할 수가 없습니다. 그래서 요즘은 알바만 받고 있어요. -_-a 회사에 직원으로 등록하는 것은 문제가 없으나 대신에 재택이어야 합니다. 뭐... 학교를 일주일에 4일만 다니면 되긴 하지만..

  8. 그럼 한번 만나자구요~ 대학원생이시군요...
    아주 잘됬습니다. 학생이 무슨상관있겠습니까...
    전혀다른분야의 일을 하는것도 아닌데~
    가능한 시간과 날짜를 알려주셔요~ 제방명록에~ ^_^

댓글을 남겨주세요

This site uses Akismet to reduce spam. Learn how your comment data is processed.