【发布时间】:2011-11-28 19:00:49
【问题描述】:
我有一个正在绘制并添加到舞台的剪辑,当单击它时,它会将自身的两个副本添加为子项。我希望这些孩子可以点击,但问题是,如果他们被点击,它会将点击注册为父点击及其子点击。因此,它不是添加两个新剪辑,而是添加 4。我可以通过将 mouseChildren = false 添加到movieClip来解决这个问题,但是当我这样做时,新剪辑是从父剪辑的中心绘制的,而不是从单击的剪辑的来源。我该如何解决这个问题?这是我的代码:
function clickCircle(e:MouseEvent):void {
var thisCircle = e.target;
for (var i=0; i<thisCircle.childCircles;i++){
trace('drawCircle' + i);
drawCircle(thisCircle);
}
}
function drawCircle(parentCircle){
//trace('draw circle' + childCircles);
var xPos;
var yPos;
if (circleCount == 0){
xPos = centerStageX;
yPos = centerStageY;
} else {
//xPos = parentCircle.x;
//yPos = parentCircle.y;
xPos = yPos = 0;
}
var newCircle:Shape = new Shape();
newCircle.graphics.beginFill(circleColor);
newCircle.graphics.drawCircle(0,0,cr); //x, y, radius
newCircle.graphics.endFill();
var circleClip:MovieClip = new MovieClip();
//circleClip.mouseChildren = false;
circleClip.childCircles = numCircles;
circleClip.x = xPos;
circleClip.y = yPos;
circleClip.addChild(newCircle);
circleClip.id = circleCount;
if (circleCount == 0){
addChild(circleClip);
} else {
parentCircle.addChild(circleClip);
}
circleArray.push(circleClip);
circleClip.addEventListener(MouseEvent.CLICK,clickCircle);
if (circleCount != 0){
moveCircle(parentCircle,circleClip,xPos,yPos);
}
circleCount++;
}
【问题讨论】:
标签: flash actionscript-3