2016-01-15 3 views
1

я реализовал немного функции рисования в мое приложение с CreateJS так:CreateJs Рисование с альфа

var currentPosition = this.posOnStage(event); 

    var drawing = container.getChildByName('drawing'); 
    drawing.graphics.ss(this.brushSize, "round").s(this.brushColor); 
    drawing.graphics.mt(this._lastMousePosition.x, this._lastMousePosition.y); 
    drawing.graphics.lt(currentPosition.x, currentPosition.y); 
    drawing.alpha = this.brushAlpha; 
    container.updateCache(this.enableErasing ? "destination-out" : "source-over"); 
    drawing.graphics.clear(); 

    this._lastMousePosition = this.posOnStage(event); 

Как вы можете видеть, альфа-значение этого рисунка может измениться. К сожалению, вы можете нарисовать точку, которую вы когда-то рисовали, поэтому, когда вы нарисуете над точкой несколько раз, альфа-эффект исчезнет. Любая идея, как это решить?

спасибо :)

EDIT: enter image description here

Я пробовал как gskinner и Лэнни 7 предложил, но это не сработало. Я прикрепил изображение, чтобы вы могли видеть проблему.

+0

Вы рисуете все на 100%, а просто изменить общую непрозрачность. Если вместо этого вы измените непрозрачность цвета, тогда он будет иметь итеративный эффект. Что вы используете для цвета кисти? Если вы используете значение rgba «rgba (255,125,25,0.5)», он должен дать вам эффект, который вы хотите. – Lanny

ответ

2

Как предложил Ланни, примените альфа к фактическому удару, а не к форме. Вы можете использовать методы Graphics, чтобы помочь в этом.

Например: // set the brush color to red with the current brush alpha: this.brushColor = createjs.Graphics.getRGB(255, 0, 0, this.brushAlpha);

Смежные вопросы