PDA

Просмотр полной версии : Динамическое рисование


rockafella
26.04.2006, 18:27
Как сделать так, чтобы при нажатии кнопки мыши, перетаскивая мышь
она оставляла за собой линию.
Проще говоря. как нарисовать линию мышью

E.Q.
26.04.2006, 19:35
Вставляешь в первый кадр и наслаждаешься.

_root.createEmptyMovieClip("rclip", 1);
rclip.lineStyle(2, 0x005533, 100);
_root.onMouseDown = function() {
rclip.moveTo(_root._xmouse, _root._ymouse);
onn = true;
};
_root.onMouseUp = function() {
onn = false;
};
rclip.onEnterFrame = function() {
if (onn == true) {
rclip.lineTo(_root._xmouse, _root._ymouse);
}
};

KUZEN
26.04.2006, 19:51
В первый кадр код

this.createEmptyMovieClip("line_mc", 1);
line_mc.lineStyle(1, 0x006699, 100);
onMouseDown = function () {
detect = 1;
startX = _xmouse;
startY = _ymouse;
line_mc.moveTo(startX, startY);
};
onMouseMove = function () {
if (detect == 1) {
line_mc.lineTo(_xmouse, _ymouse);
updateAfterEvent();
}
};
onMouseUp = function () {
detect = 0;
};

etc
26.04.2006, 19:58
E.Q. зачем нагружать машину ненужным onEnterFrame?

rockafella
26.04.2006, 20:13
Не все так просто, линия должна из начальной точки идти прямая.
То есть начальная точка зафиксирована, из этой точки мы тяним линию мышью. Куда бы мы ее не тянули, она должна оставатся ПРЯМАЯ!
Линия должна зафиксироватся в конечной точке только при отпускании кнопки мыши.
Вот такая вот задача

И еще, если мы при неотнущенной енопки мыши вернем линиию в исходное положение, то она должна исчезнуть

KUZEN
26.04.2006, 20:24
Всё так же просто

count=0;
onMouseDown = function () {
count++;
detect = 1;
startX = _xmouse;
startY = _ymouse;
};
onMouseMove = function () {
if (detect == 1) {
this.createEmptyMovieClip("l"+count, count);
var l = this["l"+count];
l.lineStyle(1, 0x006699, 100);
l.moveTo(startX, startY);
l.lineTo(_xmouse, _ymouse);
updateAfterEvent();
}
};
onMouseUp = function () {
detect = 0;
};

etc
26.04.2006, 20:28
KUZEN, а если я прокликаю раз этак 300... а?

KUZEN
26.04.2006, 20:36
KUZEN, а если я прокликаю раз этак 300... а?
Это на скорую руку для примера ))) Можно после каждого раза отрисовывать в битмап ))) Предложи свою версию, на одном из твоих сайтов очень приличная гостевуха, выкладывай исходники с коментами )))

etc
26.04.2006, 20:46
У меня нет удаления линий (хотя это можно сделать довольно просто и быстро).
Нужно сохранять всю историю рисования в массив (с сохранием параметров линии). И, если нужно убить линию, удаляем последний элемент массива и перерисовываем. Всё просто.
Конкретными вещами (кодом) помочь сейчас не могу.

KUZEN
26.04.2006, 20:48
У меня нет удаления линий (хотя это можно сделать довольно просто и быстро).
Нужно сохранять всю историю рисования в массив (с сохранием параметров линии). И, если нужно убить линию, удаляем последний элемент массива и перерисовываем. Всё просто.
Конкретными вещами (кодом) помочь сейчас не могу.
Да мне то всё это понятно ...

rockafella
26.04.2006, 21:36
Спасибо большое за помощь.
Кстати как преобразовать нарисованную линию в мувиклип или битмап,
и занести в массив чтобы потом можно было сохранить.
Это было бы очень удобно

KUZEN
26.04.2006, 21:52
Ты линии и так рисуешь в мувиках )))