![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Jul 2006
Сообщений: 10
|
Можно ли в AS2 нарисовать линии, такие как при рисовании линий путем инструмента "Line Tool"? например прерывистый пунктир или линия точками!?
|
|
|||||
|
Регистрация: Nov 2006
Сообщений: 35
|
Помоему метода такого нет. Единственная функция, которая есть это lineStyle(), но там тока толщина , альфа и цвет RGB. Тебе придётся запустить цикл и прирывесто использовать lineTo. Хотя я склонен ошибаться... просто в справочниках не встречал.
|
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Можно нарисовать через BitmapData, но это не совсем то, что требуется.
Если кратко: можно, но нужно писать свою функцию. |
|
|||||
|
можно кандовенько так
//координаты начала и конца
xpos1 = 10; xpos2 = 500; ypos1 = 10; ypos2 = 100;
//Длина штриха
d = 10;
//Длина промежутка
p = 10;
this.createEmptyMovieClip("line_mc2", this.getNextHighestDepth());
line_mc2.lineStyle(1, 0x000);
line_mc2.moveTo(xpos1, ypos1);
line_mc2.lineTo(xpos2, ypos2);
this.createEmptyMovieClip("line_mc", this.getNextHighestDepth());
line_mc.lineStyle(5, 0x995);
line_mc.moveTo(xpos1, ypos1);
//длина линии
ln = Math.sqrt((xpos2-xpos1)*(xpos2-xpos1) + (ypos2 - ypos1)*(ypos2 - ypos1));
//синус косинус
sin = (ypos2 - ypos1)/ln;
cos = (xpos2 - xpos1)/ln;
for(i=0; (i+1)*(d+p)*cos<=ln*cos; i++){
xpos1 += d*cos; ypos1 += d*sin;
line_mc.lineTo(xpos1, ypos1);
xpos1 += p*cos; ypos1 += p*sin;
line_mc.moveTo(xpos1, ypos1);
}
line_mc.lineTo(xpos2, ypos2);
__________________
Глупости какие-то говорите. |
|
|||||
|
Регистрация: Nov 2005
Сообщений: 1,155
|
некондовенько
|
|
|||||
|
Ну... А где координаты, длина штриха и промежутка? Это слишком просто.
__________________
Глупости какие-то говорите. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Fl00r, пожалуйста:
drawDashLine = function(target_mc,x1,y1,x2,y2,step,width) {
var xd = x2-x1;
var yd = y2-y1;
var dist = Math.sqrt(xd*xd+yd*yd);
var steps = Math.round(dist/step);
var xe = width*xd/dist;
var ye = width*yd/dist;
for (var i=0;i<steps;i++) {
var x = x1+i/steps*xd;
var y = y1+i/steps*yd;
target_mc.moveTo(x,y);
target_mc.lineTo(x+xe,y+ye);
}
}
|
|
|||||
|
Не. Лучше проверь.
2 ошибки (не синтаксических)
__________________
Глупости какие-то говорите. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Не вижу. Покажи.
То, что надо lineStyle задать — это, я думал, вы сами догадаетесь… |
|
|||||
|
lineStyle — 1. Догадался конечно
Так drawDashLine = function(target_mc,x1,y1,x2,y2,step,width) {
var xd = x2-x1;
var yd = y2-y1;
var dist = Math.sqrt(xd*xd+yd*yd);
var steps = Math.round(dist/(step+width));
var cos = xd/dist;
var sin = yd/dist;
var xe = width*cos;
var ye = width*sin
for (var i=0;i<steps;i++) {
var x = x1+i*(step+width)*cos;
var y = y1+i*(step+width)*sin;
target_mc.lineStyle(1, 0x000000);
target_mc.moveTo(x,y);
target_mc.lineTo(x+xe,y+ye);
}
target_mc.lineTo(x2,y2)
}
__________________
Глупости какие-то говорите. |
![]() |
![]() |
Часовой пояс GMT +4, время: 04:35. |
|
|
« Предыдущая тема | Следующая тема » |
|
|