我试图以每秒顺时针方向移动蓝色圆圈(bcircle)中的红色圆圈(bcircle.rcircle)。我尝试在timer事件处理程序(redClockwise)中更改红色圆圈(bcircle.rcircle)的x和y坐标。我对此表示感谢。感谢。
我目前的代码如下......
package
{
import flash.display.*;
import flash.utils.Timer;
import flash.events.TimerEvent;
public class blueCircles extends MovieClip
{
public var bcircle:MovieClip = new MovieClip();
public var rcircle:MovieClip = new MovieClip();
private var timer:Timer = new Timer(1000,10);
public function blueCircles()
{
createCircles();
timer.start();
timer.addEventListener(TimerEvent.TIMER, redClockwise);
}
private function createCircles():void
{
for (var i:Number=0; i<=9; i++)
{
var bcircle:MovieClip = new MovieClip();
var bxpos:int = 20;
var bypos:int = 20;
bcircle.graphics.beginFill(0x0033CC);
bcircle.graphics.drawCircle(bxpos,bypos,15);
bcircle.graphics.endFill();
bcircle.y = (30 + 10) * i;
addChild(bcircle);
//var rcircle:MovieClip = new MovieClip();
bcircle.rcircle = new Shape();
var rxpos:int = 15;
var rypos:int = 25;
bcircle.rcircle.graphics.beginFill(0xFF0000);
bcircle.rcircle.graphics.drawCircle(rxpos,rypos,5);
bcircle.rcircle.graphics.endFill();
rcircle.y = (30 + 10) * i;
bcircle.addChild(bcircle.rcircle);
}
}
public function redClockwise(e:TimerEvent):void
{
trace("Call");
//bcircle.rcircle.rotation += 50;
bcircle.rcircle.x += 50 * Math.PI/180;
bcircle.rcircle.y += 50 * Math.PI/180;
//rcircle.rotation = 50;
}
}
}
答案 0 :(得分:1)
几点:
bcircle
的引用,以便您可以在redClockwise()
方法中引用它。你完成了那种,但如果你密切注意,你会注意到你在createCircles()
内实际做的是创建一个名为bcircle
的新局部变量并使用它,而不是引用类级别的定义。rotation
)来偏移红色圆圈的位置,使其偏离蓝色圆圈的中心,基于它的半径和前面提到的值,从中间右侧获得角度。