디자이너가 없는 개발자라면 html5 canvas라이브러리를 찾기 마련인데,
zim.js는 canvas라이브러리 중에서 관리가 잘 되고 있는 '살아있는' 라이브러리다.
라이브러리 원작자와 1:1로 소통하기란 쉽지 않은데(특히, 유명인일 경우)
zim.js의 Dr.Abstract(실명 모름)는 Discord, slack, youtube, 등..
여러 채널을 통해 실시간으로 소통할 수 있다.(경험담)
엔진
Frame()은 canvas 태그를 'myCanvas'아이디로 생성한다. 즉, zim.js의 엔진이다.
zim.js의 실질적인 기능은 모두 Frame()인스턴스를 안에서 실행된다.
frame변수를 따로 만들지 않는다면,
아래와 같이 .on( )이벤트 메서드 + 콜벡함수 형식으로 사용할 수 있다.
//.on() ::이벤트리스너 new Frame().on("ready",function(){
|
인스턴스
파라미터의 값은 아래와 같이 객체형식으로 입력할 수 있다.
// ex] Slideer생성 const slider = new Slider({ max:3, step:4, useTicks:true }) |
자바스크립트의 객체형식 ('속성:값')을 그대로 파라미터에 적용하면
zim Slider 디자인이 그대로 구현된다.
zim.js는 대부분 인스턴스에 이벤트를 생성할 수 있는데,
change( )메서드를 활용한다.
const slider = new Slider().center().change(()=>{ zog(slider.currentValue) }) |
change( )메서드는 자바스크립트의 change( )이벤트리스너와 기능이 같다.
기능
zim.js가 존재하는 이유는
canvas로 생성하기 까다로운 도형이나 GUI를 쉽게 생성하기 위해서다.
파라미터, 메서드, 속성 사용법은
zim doc에서 자세하게 알 수 있다.
버튼, 사각형, 원과 같은 도형은 기본이며,
Blob(포토샵의 bezier커브), 그리드, 차트, 슬라이더, 페이지 등
엄청난 기능을 제공하고 있다.
* new Button(width,height,텍스트) :: 버튼
* new Rectangle(width, height, 색상, 바깥색상,외곽선 굵기,외곽굴곡,etc.. ) :: 사각형
* new Circle( ) :: 원
* new Blob( ) :: bezier(컨트롤bar) 도형
* new Grid( ) :: 그리드 격자
* new Slider( ) :: 슬라이더 bar
...
메서드
zim.js의 메서드 역시 상당히 많다.
테스트를 해본 결과,
canvas의 기능을 대부분 구현할 수 있었다.
오히려 캔버스 기능보다 더 많은 기능을 구현할 수 있다.
(웹소켓, Ajax, 로컬Storage, three.js, 등...)
.addTo(stage) :: 인스턴스 화면에 추가하기 |
zim.js로 구현할 때,
파라미터 값에 넣지 않은 속성은
Property부분으로 지정할 수 있다.
하지만 메서드는 제이쿼리처럼 체이닝 방식으로 연결해야한다.
이와 관련된 명령어는
DOC:: method( )편을 참고하자.
'코드 스터디' 카테고리의 다른 글
스타트업 아키텍트가 할일 (0) | 2021.03.28 |
---|---|
JS매력적인 코드『 삼항 연산자 || 변수할당 || 단락평가 』 (0) | 2021.03.25 |
클린 아키텍처 (0) | 2020.12.28 |
GoF 디자인 패턴「행위편」 (0) | 2020.12.15 |
GoF디자인패턴「구조편」 (0) | 2020.12.14 |
댓글