Я создал пользовательский компонент, и всякий раз, когда размер браузера или его конкретного контейнера изменяется, происходит перерисовка, но содержимое компонента рисуется снова, снова и снова ... Итак, если я переместлю контейнер, яв итоге несколько кругов нарисованы друг над другом, но смещены в зависимости от того, где находится контейнер, когда происходит перекраска.Мой код updateDisplayList находится ниже.Нужно ли делать какие-то ясности, чтобы они не дублировались непрерывно, как это ???Большое спасибо за любую помощь!
override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void {
super.updateDisplayList(unscaledWidth, unscaledHeight);
trace("height: " + parent.height);
trace("width: " + parent.width);
if (parent.height <= parent.width) {
radius = Math.round((parent.height*.95)/2);
}
else {
radius = Math.round((parent.width*.95)/2);
}
trace("radius: " + radius);
outterRadius = Math.round(radius*.70);
innerRadius = Math.round(radius*.30);
trace("outterradius: " + outterRadius);
trace("innerradius: " + innerRadius);
centerX = this.width/2;
centerY = this.height/2;
trace("centerX: " + centerX);
trace("centerY: " + centerY);
var innerCircle:Sprite = new Sprite();
var outterCircle:Sprite = new Sprite();
var baseCircle:Sprite = new Sprite();
baseCircle.graphics.beginFill(0x000000);
baseCircle.graphics.drawCircle(centerX, centerY, radius);
outterCircle.graphics.lineStyle(2, 0xA10303, .75);
outterCircle.graphics.drawCircle(centerX, centerY, outterRadius);
innerCircle.graphics.lineStyle(2, 0xA10303, .75);
innerCircle.graphics.drawCircle(centerX, centerY, innerRadius);
addChild(baseCircle);
addChild(outterCircle);
addChild(innerCircle);
for (var bubbleCount:int=0; bubbleCount < bubbleList.length; bubbleCount++) {
var globalPoint:Point = this.localToGlobal(getPointInCircle(radius));
var radarBubble:RadarBubble = bubbleList.getItemAt(bubbleCount) as RadarBubble;
var bubbleLocalPoint:Point = radarBubble.globalToLocal(globalPoint);
radarBubble.x = bubbleLocalPoint.x;
radarBubble.y = bubbleLocalPoint.y;
trace("Add bubble: " + radarBubble.x + ", " + radarBubble.y + ", " + radarBubble.radius);
addChild(radarBubble);
}
// create radar display lines to be animated
for (var angleCount:int=0; angleCount < 360; angleCount++) {
var tmpLine3:Sprite = new Sprite();
tmpLine3.graphics.lineStyle(2, 0xA10303, 1);
tmpLine3.graphics.moveTo(centerX, centerY);
tmpLine3.graphics.lineTo(getEndpoint(angleCount).x, getEndpoint(angleCount).y);
tmpLine3.visible = false;
addChild(tmpLine3);
lineCollection.addItemAt(tmpLine3, angleCount);
}
}