关于下雪效果的一个问题
[i=s] 本帖最后由 asok00000 于 2009-11-6 10:55 编辑 [/i]自己做了一个下雪的半成品,只有一个雪花要动,请高手支招
我的思路是这样子的:通过一个源剪辑复制出一百个雪花,然后通过延时函数来调用改变雪花的位置和alpha值的函数,但是好像不行
谢谢 把代码发上来 [quote]把代码发上来
[size=2][color=#999999]cao4811 发表于 2009-11-6 11:16[/color] [url=http://bbs.jcwcn.com/redirect.php?goto=findpost&pid=6139296&ptid=278886][img]http://bbs.jcwcn.com/images/common/back.gif[/img][/url][/size][/quote]
代码在源文件里面…… 代码:
var nomalheight:Number,nomalwidth:Number,xpos:Number,ypos:Number,nametemp:Number,icounter:Number,a:Number,j:Number;
var namelist=new Array();
nametemp=0;
function setproperty(mc:MovieClip):Void
{
mc._x=mc._x+1;
mc._y=mc._x+1;
mc._alpha --;
}
for(i=0 ; i <= 100 ; i++)
{
var rnd:Number,rnd1:Number;
rnd=random(500);
rnd1=random(300);
namelist[i]="snow" +nametemp;
duplicateMovieClip("snowflower",namelist[i],i);
_root[namelist[i]]._x=rnd;
_root[namelist[i]]._y=rnd1;
nametemp=nametemp+1;
}
a=0;
j=0;
//while(a <= 100)
//{
//while(j <= 1000)
//{
///_root[namelist[a]]._y =_root[namelist[a]]._y +1;
//_root[namelist[a]]._x =_root[namelist[a]]._x +1;
//setTimeout(setproperty,10,_root[namelist[a]]);
//j=j+1;
//}
//if(j<=100)
//{
// j=j+1;
//}
// a=a+1;
//}
//_root[namelist[a]]._x ++;
//_root[namelist[a]]._y --;
//setTimeout(setproperty,10,_root[namelist[a]]);
while(a <= 100)
{
setInterval(setproperty,50,_root[namelist[0]]);
a =a+1 ;
}
setInterval(setproperty,50,_root[namelist[1]]);
//setInterval(setproperty,100000,_root[namelist[2]]);
//a++; [b] [url=http://bbs.jcwcn.com/redirect.php?goto=findpost&pid=6140843&ptid=278886]4#[/url] [i]asok00000[/i] [/b]
不懂2.0代码,下面是3.0的代码,是纯代码的下雪效果,很简单的可以参考一下。[code]package {
import flash.display.Shape;
//import flash.display.MovieClip;
import flash.events.Event;
import flash.filters.BlurFilter;
public class Snowflake extends Shape {
private var stageWidth:int = 550;
private var stageHeight:int = 450;
private var highestDropSpeed:uint = 16;
private var dropSpeed:int = Math.round(Math.random() * Math.random() * highestDropSpeed);
private var incrementer:int = Math.round(Math.random() * 100);
private var shades:Array = [0xFFFFFF,0xCCCCCC,0x999999,0x666666];
private var windSpeed:int = 2;
public function Snowflake() {
graphics.beginFill(shades[Math.ceil(Math.random() * shades.length)]);
graphics.drawCircle(0,0,4);
graphics.endFill();
filters = [new BlurFilter(1,dropSpeed,1)];
addEventListener(Event.ENTER_FRAME,update);
reset();
}
private function reset():void {
y=Math.random() * stageHeight*-1;
x=Math.random() * stageWidth-windSpeed*100;
scaleX=scaleY = 0.25 + Math.random() * Math.random() * 0.75;
}
private function update(e:Event):void {
y += dropSpeed;
x += windSpeed+Math.sin(incrementer / 10) * 1 /dropSpeed / 3;
if (y > stageHeight) {
reset();
}
incrementer++;
}
}
}[/code] 路过 [quote] 4# asok00000
不懂2.0代码,下面是3.0的代码,是纯代码的下雪效果,很简单的可以参考一下。package {
import flash.display.Shape;
//import flash.display.MovieClip;
import flash.events.Event;
impor ...
[size=2][color=#999999]cao4811 发表于 2009-11-7 08:16[/color] [url=http://bbs.jcwcn.com/redirect.php?goto=findpost&pid=6141983&ptid=278886][img]http://bbs.jcwcn.com/images/common/back.gif[/img][/url][/size][/quote]
谢了,我有下雪的代码,只是我想自己做一个自己的下雪动画而已
页:
[1]