add()使用原生canvas绘图,会覆盖以前的绘图
var layer1,layer2;function main()
{
var bitmapdata = new LBitmapData("#000000",0,0,50,50);
layer1 = new LSprite();
addChild(layer1);
layer1.graphics.beginBitmapFill(bitmapdata); //填充应该是黑色!
layer1.graphics.drawRect(2,"#ff0000",); //描边应该是红色!
layer2 = new LSprite();
layer2.y = 80;
addChild(layer2);
layer2.graphics.add(function(ctx){
ctx.strokeStyle="#00ff00";
ctx.lineWidth=4;
ctx.moveTo(20,0);
ctx.lineTo(120,0);
ctx.stroke(); //这儿描边路径会导致layer1的边框变色!
ctx.fillStyle = "#0000ff";
ctx.moveTo(0,50);
ctx.bezierCurveTo(100,0,80,150,0,160);
ctx.lineTo(0,50);
ctx.stroke();
ctx.fill(); //这儿填充会导致layer1的的填充变色!
});
}
LInit(50,"mylegend",500,350,main);
因为要贝塞尔曲线,引擎没有提供,所以要用add进行绘图。然后发现使用add进行绘图,会同时改变以前的绘图(不会改变后来的绘图)。有什么好的解决方案吗?
加一句ctx.beginPath(); 谢谢解答。问题已解决。
页:
[1]