Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Как сделать кнопку очистки рисовалки (http://www.flasher.ru/forum/showthread.php?t=206085)

kivi 11.01.2014 20:37

Как сделать кнопку очистки рисовалки
 
Здравствуйте. Есть следующий код для рисования прямых линий с помощью мыши:

Код AS3:

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

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

Код AS3:

myDrawing.graphics.clear();

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

kivi 12.01.2014 21:04

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

Babylon 12.01.2014 21:22

Как вы заново рисуете? Покажите код.

Rivexe 12.01.2014 21:25

После очиски надо опять установить стиль лини:
Код AS3:

myDrawing.graphics.clear();
myDrawing.graphics.lineStyle(7, 0x33CC00, 1);


kivi 13.01.2014 18:51

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


Часовой пояс GMT +4, время: 07:39.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.