강의 컨설팅 트레이닝 무료진단 무료책자 마케팅편지 마케팅정보공유 다이어리 서비스제휴 고객센터

플래시로 3차원 환영은 어떻게 그리나?(최종)
작성자 : M 최고의하루
등록날짜 : 2009.02.10 09:33
1,925

5. [최종 정리]

point, line 라는 링크이름의 무비클립이 있고

 

공백 무비 클립에 액션을 주고

onClipEvent(enterFrame) {
 _root.reposition();
}

//프레임 될때마다 반복해서 실행해라 이거겠지

 

프레임 액션에 다음과 같은 액션을 준다.

// 정육면체의 점부터 만들어 보자구

 function makePoints() {
 points = new Array();
 points[0] = {x: 30, y: 30, z: 30};
 points[1] = {x: -30, y: 30, z: 30};
 points[2] = {x: -30, y: -30, z: 30};
 points[3] = {x: 30, y: -30, z: 30};
 points[4] = {x: 30, y: -30, z: -30};
 points[5] = {x: 30, y: 30, z: -30};
 points[6] = {x: -30, y: 30, z: -30};
 points[7] = {x: -30, y: -30, z: -30};

 // create eight movie clips for cube corners
 for(i=0;i<points.length;i++) {
  attachMovie( "point", "point"+i, i )
 }
}

// 정육면체의 12개의 직선
function makeLines() {
 lines = new Array();
 lines[0] = {p1: 0, p2: 1};
 lines[1] = {p1: 1, p2: 2};
 lines[2] = {p1: 2, p2: 3};
 lines[3] = {p1: 3, p2: 0};
 lines[4] = {p1: 4, p2: 5};
 lines[5] = {p1: 5, p2: 6};
 lines[6] = {p1: 6, p2: 7};
 lines[7] = {p1: 7, p2: 4};
 lines[8] = {p1: 0, p2: 5};
 lines[9] = {p1: 1, p2: 6};
 lines[10] = {p1: 2, p2: 7};
 lines[11] = {p1: 3, p2: 4};

 for(i=0;i<lines.length;i++) {
  attachMovie( "line", "line"+i, 50+i )
 }
}

// 3차원 좌표값 구하고 2차원 으로 변환하기

function plotPoint(object) {
 // get coordinates from object
 x = object.x;
 y = object.y
 z = object.z;

 // 중앙에서 부터의 거리는? 

radius = Math.sqrt (x*x+y*y);

 // 처음각도는?

 if (x == 0) angle = Math.atan(1000000);
 else angle = Math.atan(y/x);
 if (y < 0) angle += Math.PI;

 // 회전을 더한다. 얘가 없으면 위 아래로만 돈다

 angle += rotation;

 // 새 좌표값을 구하고

 realx = radius*Math.cos(angle);
 realz = radius*Math.sin(angle);
 realy = z;

 // 중앙에서부터의 새로운 거리를 구하고

 radius = Math.sqrt(realy*realy+realz*realz);

 // 두번째 각도구하고

 if (realz == 0) angle = Math.atan(1000000);
 else angle = Math.atan(realy/realz);
 if (realz < 0) angle += Math.PI;

 // 수평각도가 더해진다.

  angle += plane;

 // 2차원 화면좌표값도 구해라

 screenx = realx;
 screeny = radius*Math.sin(angle);
 screenz = radius*Math.cos(angle);

 // 가운데에 놔둬라 (현재 스테이지가 550.400이다)

 screenx += 275;
 screeny += 200;

 // 객체 현상태로
 return({x:screenx,y:screeny,z:screenz});
}

// 점들을 서로 연결해서 정육면체의 모서리를 설정한다

 function drawPoints() {
 for(i=0;i<points.length;i++) {
  loc = plotPoint(points[i]);
  this["point"+i]._x = loc.x;
  this["point"+i]._y = loc.y;
  this["point"+i]._alpha = loc.z+100;
 }
}

// 직선을 이용해 정육면체의 변 설정하기

function drawLines() {
 for(i=0;i<lines.length;i++) {
  loc1 = plotPoint(points[lines[i].p1]);
  loc2 = plotPoint(points[lines[i].p2]);
  this["line"+i]._x = loc1.x;
  this["line"+i]._y = loc1.y;
  this["line"+i]._xscale = loc2.x-loc1.x;
  this["line"+i]._yscale = loc2.y-loc1.y;
  this["line"+i]._alpha = loc1.z+100;
 }
}

// 각 프레임에서 정육면체의 재위치 설정

 function reposition() {
 rotation += (275-_xmouse)/1000;
 plane = -(200-_ymouse)/100;
 drawPoints();
 drawLines();
}

// 최초 함수를 호출하고 현재 프레임에서 정지해라

rotation = 0;
makePoints();
makeLines();
stop();

[출처]

"쇼핑몰·홈페이지·오픈마켓
블로그·페이스북·이메일 등의 각종 마케팅 글쓰기,
각종 광고, 영업, 판매, 제안서, 전단지
반응율 3배×10배 이상 높이는 마법의 8단계 공식"
자세히보기

Comments

번호 제목 글쓴이 날짜 조회
3015 새창,새창내려온후진동 99 단국강토 02.10 3071
3014 FORM테그의 사용속성들 99 단국강토 02.10 1391
3013 FORM테그의 사용속성들 99 단국강토 02.10 2093
3012 setTimeout,setinterval 에대한.스크립..이해 99 단국강토 02.10 2525
3011 setTimeout,setinterval 에대한.스크립..이해 99 단국강토 02.10 2924
3010 소스를 간편하게 만들어 주는 with문 99 단국강토 02.10 1223
3009 소스를 간편하게 만들어 주는 with문 99 단국강토 02.10 1613
3008 innerText 활용(마우스 온/오버) 99 단국강토 02.10 2149
3007 innerText 활용(마우스 온/오버) 99 단국강토 02.10 1407
3006 getElementById와 getElementsByName 99 단국강토 02.10 1977
3005 getElementById와 getElementsByName 99 단국강토 02.10 1968
3004 event.srcElement 99 단국강토 02.10 1421
3003 event.srcElement 99 단국강토 02.10 1601
3002 플래시에서 어떤 변수 명명법을 사용하는 것이 좋을까? M 최고의하루 02.10 2333
3001 include 서브메뉴 컨트롤시 | ♣ Flash MX 2004 M 최고의하루 02.10 2340
3000 [플래시] 유용한 플래시 팁 모음~!! M 최고의하루 02.10 1787
2999 플래시/플래시학원/플래시강좌]심벌(Symbol)만들고 편집 M 최고의하루 02.10 1634
2998 플래시/플래시학원/플래시강좌]Arrow Tool M 최고의하루 02.10 1593
2997 플래시에서 폰트를 깨끗하게 사용하는 팁 M 최고의하루 02.10 1343
2996 웹서핑중에 이쁜 플래쉬나 스위시글 내컴에 저장하는 M 최고의하루 02.10 1687
2995 SWF 플래쉬 동영상 삽입하기 M 최고의하루 02.10 2026
2994 플래시에서 자바스크립트 사용하기 M 최고의하루 02.10 2114
2993 플래시에서 외부 사운드 로드 M 최고의하루 02.10 2467
2992 가로메뉴 M 최고의하루 02.10 2316
2991 플래시 MX M 최고의하루 02.10 1969
2990 컴덱스메뉴 액션 스크립트 M 최고의하루 02.10 2077
2989 로딩막대 M 최고의하루 02.10 1542
열람중 플래시로 3차원 환영은 어떻게 그리나?(최종) M 최고의하루 02.10 1926
2987 바디와 선 99 단국강토 02.09 1706
2986 Table 태그 (1)-table 99 단국강토 02.09 2391
마케팅
특별 마케팅자료
다운로드 마케팅자료
창업,경영
기획,카피,상품전략
동기부여,성취