PDA

Просмотр полной версии : Закрашивание области курсором


Top_Secret
12.04.2016, 22:08
кто нибудь подскажет как сделать, или хотя бы урок какой нибудь, потому что в инете я ничего не нашел, например есть у меня определенная область, и проводя по ней курсором, она должна закрашиваться

Нашел пока только на примере обычных рисовалок, код, для самого процесса закрашивания курсором

import flash.display.Shape;
//Прорисовка линии
var draw_line:Boolean = false;
stage.addEventListener(MouseEvent.MOUSE_DOWN, MouseDown);
stage.addEventListener(MouseEvent.MOUSE_UP, MouseUp);
image_mc.addEventListener(MouseEvent.MOUSE_MOVE, MouseMove);
//Фигура, в которую будут добавляться нарисованые линии
var image:Shape = new Shape();
//Устанавливаем Ширину, цвет и прозрачность линии (от 0 до 1)
image.graphics.lineStyle(20, 0xFF0000, 1);
//Добавляем фигуру в клип
image_mc.addChild(image);
//Нажатие ЛКМ
function MouseDown(mouse:MouseEvent):void {
draw_line = true;
//Указываем точку откуда будем начинать рисовать линию
image.graphics.moveTo(mouse.localX, mouse.localY);
}
//Отпускание ЛКМ
function MouseUp(mouse:MouseEvent):void {
//отключаем рисование линий
draw_line = false;
}
//Перемещение мыши над клипом image_mc
function MouseMove(mouse:MouseEvent):void {
if (draw_line) {
//Рисуем линию в точку, где находится курсор
image.graphics.lineTo(image.mouseX, image.mouseY);
//Снова указываем точку откуда будем рисовать следующую линию
image.graphics.moveTo(image.mouseX, image.mouseY);
}
}


Но закрашивается не только область image_mc но и вся остальная часть, соответственно закрашиваются другие слои..
так же необходимо, чтобы после закрашивания этой определенной области должны идти другие кадры..

ALeXVoz
13.04.2016, 13:10
Похожая тема http://www.flasher.ru/forum/showthread.php?t=212636

Top_Secret
13.04.2016, 21:31
спасибо, в принципе понятно. Но, как быть, если необходимо будет закрасить заранее нарисованную область любой формы, а не прямоугольную. на что заменить BitmapData, или как ему присвоить эту произвольную область

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