음악, 삶, 개발
[mtr] 파트 3 - [dict] 를 사용하여 이벤트 추가하기 본문
앞서 addevent 를 사용하여 이벤트를 추가하는 방법을 배웠다.
addevent 가 가장 기본적인 방법이긴하나,
동시에 수십개의 이벤트를 한번에 집어넣고싶다던지 한다면
결국 js 를 통해 루프를 만들어야할텐데 꽤나 귀찮은 작업일수있다.
addevent 를 여러번 호출해서 이벤트를 추가하는 방법보다,
한번에 객체를 [mtr] 에 할당하는 방식으로 [dict] 를 넘길수있다.
먼저 [dict] 에 이벤트들을 작성한다.
/* [dict] 안에 들어갈 데이터 */
{
"tracks":[
{
"events":[
{
"time":0.0,
"message":"list",
"args":[
1000.0,
"two"
]
},
{
"time":0.0,
"message":"list",
"args":[
0.0,
"one"
]
}
],
"length":0.0,
"loop":0,
"trackspeed":1.0
}
],
"type":"dump"
}
위와 같은 [dict] 가 있다고 했을때
이때 기억해야할 중요한점은
addevent 는 반드시 2번쨰 inlet (해당 track 의 inlet) 에 들어가야하는 반면,
dict 는 무조건 첫번째 inlet 에 쏴줘야한다.
또한 clear 메세지를 보낼 필요없이, 기존의 데이터를 모두 교체하게된다.
addevent 는 트랙별로 이벤트를 추가할수있으나,
[dict] 를 사용할 경우 [mtr] 전체가 변경되게 됨을 기억해야한다.
따라서 JS 에서 별도로 객체를 추적해야하는 과정이 필요하다.