Я создаю приложение Flash Paint. Основная структура такова.
У меня есть два слоя, а именно topLayer_mc
и bottomLayer_mc
. Фактический векторный рисунок рисуется на верхнем слое и onmouseUp
инструмента, битовая копия векторной графики на верхнем слое берется и добавляется в качестве растрового изображения на нижний слой. Верхний слой очищается впоследствии. Это работает для инструмента карандаша.
Теперь мне нужно создать инструмент ластика. Здесь все становится сложнее. В приложении есть возможность сохранить изображение в формате png, поэтому альфа должна быть сохранена сверху. Таким образом, традиционный метод рисования кисти, использующий вектор и метод рисования растрового изображения, не будет работать. Конечно, на визуальном уровне это будет работать, если кисть, нарисованная с использованием вектора, будет иметь тот же цвет, что и цвет фона.
Мне нужно просто стереть пиксели.
Теперь я создал кисть, используя обычную технику, и очистка возможна, но мне нужно точно стереть пиксели. Есть какая-то техника, чтобы нарисовать это?
Это код, который я использую:
Я также загрузил swf и исходный код,
http://bobbythecoder.blogspot.com/2011/04/doubt-bitmap.html
При испытании, пожалуйста, рисуйте по всей сцене карандашом (нажмите кнопку Карандаш и начните рисовать)
Источник fla также указан,
http://www.easy -share.com / 1914823453 / Кисть Expt.fla
Я некоторое время очень старался, поэтому буду очень признателен, если вы сможете помочь.
topLayer_mc
и bottomLayer_mc
теперь имеют нулевое значение альфа.
Я также не создал перетаскиваемую кисть, только две жестко закодированные позиции очищаются. Чтобы нарисовать карандашом, просто нажмите кнопку карандаша и нарисуйте. Чтобы очистить, просто нажмите кнопку ластика.
Мне нужна техника, чтобы стереть пиксели в области, отмеченной кистью, а не просто рисовать над ней.