![]() |
|
||||||||||
|
|||||
|
Создаёте новый movie с разрешением 550х400 (стандартное). Создаёте второй кадр, в actions которого пишете следующее:
clear(); gotoAndPlay("1"); В actions первого кадра пишете: // НАСТРОЙКИ speed=1; // скорость вращения вокруг оси y osi=1; // прорисовка осей (0-выкл, 1-вкл) xC = 275; // координата точки начала отсчёта (x) yC = 100; // координата точки начала отсчёта (y) // ПРОРИСОВКА ОСЕЙ if(osi==1) { noteF = new TextFormat(); noteF.color = 0x000000; noteF.bullet = false; noteF.underline = true; linestyle(0,0x999999); move3d(0, 0, 0); line3d(200, 0, 0); line3d(180, 0, -7); move3d(200, 0, 0); line3d(180, 0, 7); _root.createTextField("x", 1, coord3dx(210,0,0), coord3dy(210,0,0), 100, 100); x.border = false; x.text = "ось x"; x.setTextFormat(noteF); move3d(0, 0, 0); line3d(0, 200, 0); line3d(7, 180, 0); move3d(0, 200, 0); line3d(0, 180, 7); _root.createTextField("y", 2, coord3dx(0,210,0), coord3dy(0,210,0), 100, 100); y.border = false; y.text = "ось y"; y.setTextFormat(noteF); move3d(0, 0, 0); line3d(0, 0, 200); line3d(-7, 0, 180); move3d(0, 0, 200); line3d(7, 0, 180); _root.createTextField("z", 3, coord3dx(0,0,210), coord3dy(0,0,210), 100, 100); z.border = false; z.text = "ось z"; z.setTextFormat(noteF); } // ПРОРИСОВКА МОДЕЛИ linestyle(0); move3d(115,41,-25); curve3d(115,55,-25,115,83,-25); curve3d(83,83,-25,66,118,-25); curve3d(83,118,-25,100,118,-25); curve3d(100,135,-25,100,161,-25); curve3d(69,161,-25,49,161,-25); curve3d(18,249,-25,-48,242,-25); curve3d(-48,226,-25,-48,200,-25); curve3d(-9,203,-25,11,135,-25); curve3d(41,36,-25,115,41,-25); move3d(115,41,25); curve3d(115,55,25,115,83,25); curve3d(83,83,25,66,118,25); curve3d(83,118,25,100,118,25); curve3d(100,135,25,100,161,25); curve3d(69,161,25,49,161,25); curve3d(18,249,25,-48,242,25); curve3d(-48,226,25,-48,200,25); curve3d(-9,203,25,11,135,25); curve3d(41,36,25,115,41,25); move3d(115,41,-25); line3d(115,41,25); move3d(115,83,-25); line3d(115,83,25); move3d(66,118,-25); line3d(66,118,25); move3d(100,118,-25); line3d(100,118,25); move3d(100,161,-25); line3d(100,161,25); move3d(49,161,-25); line3d(49,161,25); move3d(-48,242,-25); line3d(-48,242,25); move3d(-48,200,-25); line3d(-48,200,25); // ФУНКЦИИ function move3d(x, y, z) { moveTo(xC-math.cos(Math.PI/180*(45+gr))*x+math.sin(Math.PI/180*(45+gr))*z, math.sin(Math.PI/180*(45+gr))*x+yC+y+math.cos(Math.PI/180*(45+gr))*z); } function line3d(x, y, z) { lineTo(xC-math.cos(Math.PI/180*(45+gr))*x+math.sin(Math.PI/180*(45+gr))*z, math.sin(Math.PI/180*(45+gr))*x+yC+y+math.cos(Math.PI/180*(45+gr))*z); } function coord3dx(x, y, z) { return xC-math.cos(Math.PI/180*(45+gr))*x+math.sin(Math.PI/180*(45+gr))*z; } function coord3dy(x, y, z) { return math.sin(Math.PI/180*(45+gr))*x+yC+y+math.cos(Math.PI/180*(45+gr))*z; } function curve3d(x,y,z,ax,ay,az) { curveTo(xC-math.cos(Math.PI/180*(45+gr))*x+math.sin(Math.PI/180*(45+gr))*z, math.sin(Math.PI/180*(45+gr))*x+yC+y+math.cos(Math.PI/180*(45+gr))*z,xC-math.cos(Math.PI/180*(45+gr))*ax+math.sin(Math.PI/180*(45+gr))*az, math.sin(Math.PI/180*(45+gr))*ax+yC+ay+math.cos(Math.PI/180*(45+gr))*az); } gr+=speed; // Copyrights ![]() _root.createTextField("copy",1,15,370,330,130); copy.multiline = true; copy.wordWrap = true; copy.border = false; copyF = new TextFormat(); copyF.color = 0x000000; copyF.bullet = false; copyF.underline = false; copyF.font = "Arial"; copyF.bold = true; copy.text = "(c) qb.studio 2002"; copy.setTextFormat(copyF); Вот собственно и всё =). Описание функций: move3d(координата по x,координата по y,координата по z) - Аналог команды moveTo, только работает относительно 3d-осей. Использование: move3d(100,50,20); line3d(координата по x,координата по y,координата по z) - Аналог команды lineTo, только работает относительно 3d-осей. Использование: line3d(100,50,20); curve3d(координата контрольной точки по x,координата контрольной точки по y,координата контрольной точки по z,координата якоря по x,координата якоря по y,координата якоря по z) - Аналог команды curveTo, только работает относительно 3d-осей. Использование: curve3d(100,50,20,20,100,60); coord3dx(координата по x,координата по y,координата по z) и coord3dy(координата по x,координата по y,координата по z) - Преображает 3D-координаты в 2D. Использование: _root.createTextField("text", 1, coord3dx(0,210,0), coord3dy(0,210,0), 100, 100); Отдельная благодарность Борщу за помощь в написании данного скрипта |
![]() |
Часовой пояс GMT +4, время: 15:34. |
|
|
« Предыдущая тема | Следующая тема » |
|
|