1、打开flash 软件,点击我的文档,打开工作界面。点击属性面板,把编辑界面的颜色为黑色。左键对准矩形工具,按住不动,这时候就出现一个小工具面板,在里面选择“多角星形工具”。在属性面板里找到<<选项>>.然后点击选项,多边形改成《星形》。《星形顶角大小》改成《0.20>.《边数》改成《4》。颜色改成《放射状》。颜色为灰色。在编辑区内画一个,4变形的星形。
2、画完以后,点击第一帧再点击上面的《修改》《分离》然后点击第十帧插入关键帧。同样点击修改--分离。然后调整透明度为零。
3、再点击第20帧,右键点击插入关键帧,同样点击修改--分离,调整透明度为100.。然后点击第10帧,添加形状补间。点击第20帧,添加形状补间动画。然后测试影片,保存为jif动画。
4、点击第5帧,在属性面板,《补间》里点击形状补间。再点击第15帧,在下面的《补间》里点击形状补间。然后点击《控制》测试影片,保存为gif 动画。
首先是要绘制星星,在flash中有绘制星形的工具,那么用代码是怎么实现呢?星形实则是规则的凸多边形。因为是规则的画的时候只要依次算出凹点的坐标和凸点的坐标,就可以画出星形了。代码如下:
package{
import flash.display.Shape
import flash.events.Event
public class star extends Shape
{
private var alp:Number = 0//透明度变化量
public var speed:int = Math.random ()*10+10//随机速度
//参数分别是:小半径,大半径,边数,填充色,透明值,弧度
public function star(r:Number ,R:Number ,n:int ,fillcolor:uint ,alp:Number ,a:Number =0)
{
this.graphics.moveTo(r,0)
//开始填充
this.graphics.beginFill(fillcolor,alp)
for (var i:Number =0 i<n i++)
{
a += Math.PI / n
this.graphics.lineTo(R*Math.cos (a),R*Math.sin(a))
a += Math.PI / n
this.graphics.lineTo(r*Math.cos (a),r*Math.sin(a))
}
}
}
}
下面我们再来补上闪烁的代码:
package{
import flash.display.Shape
import flash.events.Event
public class star extends Shape
{
private var alp:Number = 0//透明度变化量
public var speed:int = Math.random ()*10+10//随机速度
//参数分别是:小半径,大半径,边数,填充色,透明值,弧度
public function star(r:Number ,R:Number ,n:int ,fillcolor:uint ,alp:Number ,a:Number =0)
{
this.graphics.moveTo(r,0)
//开始填充
this.graphics.beginFill(fillcolor,alp)
for (var i:Number =0 i<n i++)
{
a += Math.PI / n
this.graphics.lineTo(R*Math.cos (a),R*Math.sin(a))
a += Math.PI / n
this.graphics.lineTo(r*Math.cos (a),r*Math.sin(a))
}
this.addEventListener(Event.ENTER_FRAME,loopAlp)
}
private function loopAlp(e:Event ):void
{
this.rotation += Math.random() * 20 - 10
if (this.alpha > 0.9)
{
alp = 0
}
else if (this.alpha <=0.0)
{
alp = 1
}
this.alpha += (alp - this.alpha) / speed//渐变透明度(代码实现淡入淡出的一种方法)
//trace(sta.alpha )
}
}
}
上面的2个实例是actionscript3.0类文档,保存名为:star.这个类做好了,在flash中运用也是非常简单的,新建一个actionscript3.0文件,给它绑定一个名为:flie.的类文档(别告诉我你不会!真的不会?再问!)。在文档中输入代码:
package{
import flash.display.Sprite
public class flie extends Sprite
{
public function flie()
{
for (var i:int=0 i<17 i++)
{
var r:Number = Math.random() * 1 + 2
var R:Number = Math.random() * 4 + 7
var n:Number = Math.floor(Math.random() * 9) + 4
var u:uint = Math.floor(Math.random() * 0xffffff) | 0xcccccc
var al:Number = Math.random() * 1.5 + 0.5
var sta:star = new star(r,R,n,u,al)
sta.x = Math.random() * stage.stageWidth
sta.y = Math.random() * stage.stageHeight / 2
addChild(sta)
}
}
}
}
全部保存,测试影片,这是你想要的效果吗?
a,太复杂了,我看不懂,能解释一下代码含义吗?
b,我对as3.0不感兴趣!
c,这更本不是我想要看的的效果,答非所问!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)