PDA

Просмотр полной версии : Как сделать кнопку очистки рисовалки


kivi
11.01.2014, 20:37
Здравствуйте. Есть следующий код для рисования прямых линий с помощью мыши:

var temporaryDrawing:Shape = new Shape();
addChild(temporaryDrawing);
temporaryDrawing.graphics.lineStyle(2, 0x666666, 1);
var myDrawing:Shape = new Shape();
addChild(myDrawing);
myDrawing.graphics.lineStyle(7, 0x33CC00, 1);
var mouseHolding:Boolean = false;
var clickedX:Number;
var clickedY:Number;
stage.addEventListener(MouseEvent.MOUSE_DOWN, mDown);
stage.addEventListener(MouseEvent.MOUSE_UP, mUp);
function mDown(MouseEvent):void{
mouseHolding = true;
clickedX = mouseX;
clickedY = mouseY;
myDrawing.graphics.moveTo(mouseX, mouseY);
temporaryDrawing.graphics.moveTo(mouseX, mouseY)}
function mUp(MouseEvent):void{
if (mouseY < 600){
myDrawing.graphics.lineTo(mouseX, mouseY)}
mouseHolding = false;
clearTemp()}
stage.addEventListener(MouseEvent.MOUSE_MOVE, mMove);
function mMove(MouseEvent):void{
if (mouseHolding && mouseY < 600){
clearTemp();
temporaryDrawing.graphics.lineTo(mouseX, mouseY)}}
function clearTemp():void{
temporaryDrawing.graphics.clear();
temporaryDrawing.graphics.lineStyle(2, 0x666666, 1)
temporaryDrawing.graphics.moveTo(clickedX, clickedY)}


Подскажите пожалуйста как сделать кнопку очистки для того, чтобы начать рисование заново, если линия нарисована неправильно.
Я новичок во флеш. Заранее спасибо за помощь.

mooncar
12.01.2014, 00:29
kivi, оформите код соответсnвенными тегами [as3].

ZackMercury
12.01.2014, 03:14
как сделать кнопку очистки для того, чтобы начать рисование заново, если линия нарисована неправильно
Offtop:Сделайте горячую клавишу, и поставьте как Ctrl+Z, это удобней, чем по нарисованным кнопкам клацать.
По теме, код не читал, но сохраняйте каждую линию в новый спрайт, и добавляйте все линии в массив. А потом просто вызывайте removeChild и удаляйте последний элемент массива по нажатию на клавишу. Таким образом можно отменять последнее действие до самого начала рисования.

kivi
12.01.2014, 11:13
Мне нужна кнопка, которая удаляет весь рисунок, а не отдельные линии.

KBAC
12.01.2014, 19:49
Делаете кнопку, вешаете на неё слушателя клика, по клику отчищаете рисунок.

myDrawing.graphics.clear();

А вообще, для начала разберитесь как ваш код работает - тогда не будет таких вопросов.

kivi
12.01.2014, 21:04
Спасибо за ответ. Однако дело в том что кнопка с данным кодом удаляет рисунок, но нарисовать его повторно уже не получается.А мне нужно, чтобы можно было стереть (удалить) рисунок и затем начать заново рисовать.
Никаких ошибок в коде программа при этом не выдаёт.

Babylon
12.01.2014, 21:22
Как вы заново рисуете? Покажите код.

Rivexe
12.01.2014, 21:25
После очиски надо опять установить стиль лини:
myDrawing.graphics.clear();
myDrawing.graphics.lineStyle(7, 0x33CC00, 1);

kivi
13.01.2014, 18:51
Спасибо большое, всё работает. Вы мне очень помогли.