Flashplayer 9 Zeichenfehler mit Fill vermeiden geschrieben am 09.09.2009
Ich hatte mir zu anderen Zwecken ein paar Zeichenfunktionen geschrieben:ActionScript2
function drawline(mc:MovieClip,ax,ay,ex,ey,f,dicke)
{ mc.lineStyle(dicke, f, 100, true, "none", "round", "miter", 1);
mc.moveTo(ax, ay);
mc.lineTo(ex, ey);
}
function drawdot(mc:MovieClip,x,y,r,randfarbe,fillfarbe,dicke){//x,y=Mittelpunkt
var ziel:MovieClip
if(fillfarbe!=undefined)
mc.beginFill(fillfarbe,100);
if(randfarbe!=undefined)
mc.lineStyle(dicke,randfarbe, 100);
mc.moveTo(x+r, y);//erste Position
mc.curveTo(r+x, Math.tan(Math.PI/8)*r+y, Math.sin(Math.PI/4)*r+x, Math.sin(Math.PI/4)*r+y);
mc.curveTo(Math.tan(Math.PI/8)*r+x, r+y, x, r+y);
mc.curveTo(-Math.tan(Math.PI/8)*r+x, r+y, -Math.sin(Math.PI/4)*r+x, Math.sin(Math.PI/4)*r+y);
mc.curveTo(-r+x, Math.tan(Math.PI/8)*r+y, -r+x, y);
mc.curveTo(-r+x, -Math.tan(Math.PI/8)*r+y, -Math.sin(Math.PI/4)*r+x, -Math.sin(Math.PI/4)*r+y);
mc.curveTo(-Math.tan(Math.PI/8)*r+x, -r+y, x, -r+y);
mc.curveTo(Math.tan(Math.PI/8)*r+x, -r+y, Math.sin(Math.PI/4)*r+x, -Math.sin(Math.PI/4)*r+y);
mc.curveTo(r+x, -Math.tan(Math.PI/8)*r+y, r+x, y);
if(fillfarbe!=undefined)mc.endFill();
}
Das Problem ist wenn man eine Linie zeichnet und danach einen Kreis kommt im Flashplayer 9 folgendes heraus:Zur Behebung des Problems ist immer Linie und Füllung zu setzen:
ActionScript2function drawline(mc:MovieClip,ax,ay,ex,ey,f,dicke)
{ mc.beginFill(0, 0);//sonnst Fehler!
mc.lineStyle(dicke, f, 100, true, "none", "round", "miter", 1);
mc.moveTo(ax, ay);
mc.lineTo(ex, ey);
mc.endFill();
}
function drawdot(mc:MovieClip,x,y,r,randfarbe,fillfarbe,dicke){//x,y=Mittelpunkt
var ziel:MovieClip
if(fillfarbe!=undefined)
mc.beginFill(fillfarbe,100);
else
mc.beginFill(0,0);
if(randfarbe!=undefined)
mc.lineStyle(dicke,randfarbe, 100);
else
mc.lineStyle(0,0, 0);
mc.moveTo(x+r, y);//erste Position
mc.curveTo(r+x, Math.tan(Math.PI/8)*r+y, Math.sin(Math.PI/4)*r+x, Math.sin(Math.PI/4)*r+y);
mc.curveTo(Math.tan(Math.PI/8)*r+x, r+y, x, r+y);
mc.curveTo(-Math.tan(Math.PI/8)*r+x, r+y, -Math.sin(Math.PI/4)*r+x, Math.sin(Math.PI/4)*r+y);
mc.curveTo(-r+x, Math.tan(Math.PI/8)*r+y, -r+x, y);
mc.curveTo(-r+x, -Math.tan(Math.PI/8)*r+y, -Math.sin(Math.PI/4)*r+x, -Math.sin(Math.PI/4)*r+y);
mc.curveTo(-Math.tan(Math.PI/8)*r+x, -r+y, x, -r+y);
mc.curveTo(Math.tan(Math.PI/8)*r+x, -r+y, Math.sin(Math.PI/4)*r+x, -Math.sin(Math.PI/4)*r+y);
mc.curveTo(r+x, -Math.tan(Math.PI/8)*r+y, r+x, y);
mc.endFill();
}