flash动画制作 如何让一条直线沿着中心点复制并旋转?最终形成一个实心圆?谢谢!!!

2025-12-18 04:48:04
推荐回答(3个)
回答1:

然后把这代码添到第一帧:

我提供了2种方法,感觉你给的点按钮添加线速度太慢,自己写了另一个自动画的方法。楼主若不嫌点按钮太慢,可以把动画处理方法

的/* */去掉,再运行看看。

本人已测试通过,测试flash软件为flash cs5 用ActionScript3写的代码。

import flash.display.Shape;

import flash.events.MouseEvent;

var r:int = 100;

var angle:Number = 0;

var shape:Shape =new Shape();

addChild(shape);

shape.x = stage.stageWidth/2;

shape.y = stage.stageHeight/2;

shape.graphics.lineStyle(0);

//自己按按钮方法

copybtn.addEventListener(MouseEvent.CLICK, clickBtn);

function clickBtn(evt:MouseEvent):void

{

 var ra:Number = Math.PI*angle/180;

 shape.graphics.lineTo(r*Math.sin(ra),r*Math.cos(ra));

 shape.graphics.moveTo(0,0);

 angle += 0.5;

 if(angle>=360)

 {

  angle=0;

 }

}

//动画处理方法

/*addEventListener(Event.ENTER_FRAME, pro);

function pro(evt:Event):void

{

 var ra:Number = Math.PI*angle/180;

 shape.graphics.lineTo(r*Math.sin(ra),r*Math.cos(ra));

 shape.graphics.moveTo(0,0);

 angle += 0.4;

 if(angle>361)

 {

  removeEventListener(Event.ENTER_FRAME, pro);

 }

}

*/

回答2:

//这个是as 3.0的:

var angle:Number =0;

var rad:Number =30;//每次旋转的角度,可以自己自行修改

var radium:Number = 100;//圆的半径,可以自己自行修改

var sprite:Sprite = new Sprite();

btn.addEventListener(MouseEvent.CLICK,clickHandler);//btn是你的按钮的实例名称

function clickHandler(e:Event)

{

 graphics.lineStyle(1);

 graphics.moveTo(275,200);

 sprite.x =275+Math.sin(angle)*radium;

 sprite.y = 200+Math.cos(angle)*radium;

 graphics.lineTo(sprite.x,sprite.y);

 angle+=rad*Math.PI/180;

}

// 这个是as 2.0的版本

vr=0;

var obj:Object = new Object();

btn.onRelease = function()

{

 lineStyle(1);

 moveTo(550/2,200);

 obj._x= 550/2+Math.sin(vr)*50;

 obj._y = 400/2+Math.cos(vr)*50;lineTo(obj._x,obj._y)

 vr+=0.1;

 

}

回答3:

这种方法是不能实现一个实心圆的。形成的圆中心地倒是实心的,但是外围是虚的。