디씨는 올해로 10년이라는데 저는 뉴비라 올해로 2년차네요...
var d_day = new Date();
//날짜를 설정해 주기위해 하나 만들고
d_day.setFullYear(2017, 0, 3);
//날짜를 설정해줍니다 차례대로 년, 월, 일 입니다
//주의 할껀 월을 쓸때 1월이 0, 12월이 11이라는 점입니다
d_day.setHours(0, 0, 0, 0);
//시간을 설정해줍니다 솔직히 이거 설정해주는사람 없는데 그냥 설정해주시면 되더군요
//ex) 오후1시 13분 52초 255 밀리초 라면 13, 13, 52, 255 가 되는 것이죠
var d_day_ms = d_day.getTime();
//새로운 걸 하나 만들어 저 시간 설정한걸 가져오게 합니다
var present:Date = new Date();
//현재 시간 없이 디데이카운터를 만든다는건 말도 안되죠
var present_ms = present.getTime();
//이건 지금의 시간을 가져오는 겁니다
var difference = d_day_ms - present_ms;
//이걸 이대로 설정하면 1번째와 같은 예제
//반대로 present_ms - d_day_ms; 이렇게 설정하면 2번째와 같은 예제가 됩니다
var d_days = Math.floor(difference / 86400000);
//날자를 구하기 위해 씁니다
//getTime() 으로 밀리초를 계산해서 가져와서 이렇게 씁니다 86400000 은 24*60*60*1000이죠
//Math.floor()는 소수점을 버린 값을 계산합니다
d_days = add_0(d_days, 3);
//형태 보존을 위해 0을 추가해 줄것입니다 add_0 함수는 아래에 나옵니다
difference = difference - d_days * 24 * 60 * 60 * 1000;
//지금 이대로 쓰면 86400000이내의 값이 나오겠죠?
var d_hours = Math.floor(difference / 3600000);
//시간을 구하기 위해 씁니다 나머지 설명은 위와 같으니 패스
d_hours = add_0(d_hours, 2);
//얘도 형태 유지 해야겠죠?
difference = difference - d_hours * 60 * 60 * 1000;
//이제 시간값도 있으니 시간에 관한건 빼줍니다 이제 3600000 안에 값이 나오겟죠?
var d_minutes = Math.floor(difference / 60000);
//분을 구하기 위해 씁니다
d_minutes = add_0(d_minutes, 2);
//형태유지를 위해 씁니다 분이 100분 이렇게 나올수 없으니 0이 두개 추가가 됩니다
difference = difference - d_minutes * 60 * 1000;
//이제 분도 빼주고 60000안에 값이 남았네요
var d_seconds = Math.floor(difference / 1000);
//초를 구해줍니다
d_seconds = add_0(d_seconds, 2);
//초 역시 형태 유지!!
difference = difference - d_seconds * 1000;
//이제 1000이내의 값 순수한 밀리초만 남았네요
var d_ms = difference;
//이게 밀리초입니다
d_ms = add_0(d_ms, 3);
//밀리초는 세자릿수이니 3을 추가해줍니다
디데이.text = d_days + ":" + d_hours + ":" + d_minutes + ":" + d_seconds + ":" + d_ms;
/*디데이 즉 동적텍스트는 위와 같은 값을 반영합니다
ex) ":" 이렇게 쓴 이유는 000:00:00:00:000 이렇게 나오기 위한 겁니다 다른 문자열 예를 들어
디데이.text = d_days + "차" + d_hours + "차" + d_minutes + "a" + d_seconds + "a" + d_ms;
라고 쓰면 000차00차00a00a000 이런식으로 나오게 됩니다*/
function add_0(input, decimal)
//드디어 함수를 만들어 줍니다 평소에는 괄호안에 이벤트가 들어갔는데 이벤트 리스너가 없으니 이벤트는 때려치고
//안에 들어가야 할 값을 넣어 줍니다
{
var i:int = 1;
// i 라는 숫자값을 만들고 1로 설정합니다 적어도 1이상의 0이 들어가야 되기 때문이죠
while(i < decimal)
//decimal 아까 2, 3 설정해 준것이 그것입니다
{
if (input < Math.pow(10, i))
//Math.pow(10, i) 는 10^i 를 뜻합니다
//예를 들어 Math.pow(10,3) 이면 1000이 나오게 되죠
{
input = "0" + input;
//이제 조건에 만족하면 0를 더해줘야 겠죠?
}
i++;
//평생 i가 0일수는 없으니 하나씩 추가해 줍시다
}
return (input);
//이제 input 값을 return해 줍니다 즉 이 시간부로 input 값에는 0이 추가 된것이죠
}
ps1. 글 하나 하나 쓰는데 오래걸림요 ㅠㅠ 유심히 읽어주세요
ps2. 오늘 만들려는 플짤이 하나 있었는데 타캔형이 만듬ㅠㅠ
ps3. 내일 수험생님들 혹시 플갤질 하고 있다면 시험 잘 치세요
ps4. 내일은 또 언제 주제로 글쓸지 걱정 되네요
ps5. 두번째 예제의 fla 파일은 업ㅋ엉ㅋ
댓글 영역
획득법
① NFT 발행
작성한 게시물을 NFT로 발행하면 일주일 동안 사용할 수 있습니다. (최초 1회)
② NFT 구매
다른 이용자의 NFT를 구매하면 한 달 동안 사용할 수 있습니다. (구매 시마다 갱신)
사용법
디시콘에서지갑연결시 바로 사용 가능합니다.