作者del680202 (飘落的樱花)
看板Flash
标题[问题]物件生成是否会影响程式执行
时间Tue Sep 9 15:16:50 2008
如题
小弟今天尝试想写个火苗的效果
成品如下
http://w5.loxa.com.tw/hua0053/fire.swf
一开始还蛮正常的
执行个几秒後
就开始产生火焰不正常的现象
原本的火苗变成火柱= ="
小弟之前也有遇过类似的状况
就是产生星星,就是星星产生过多
我对物件的MOUSE_MOVE事件就消失了
当时也没太在意
但是这次又来一次
我对这之间原理不太了解
请问有没有高手了解的帮忙解答一下~"~
下面是程式码
var filter:BlurFilter=new BlurFilter();
filter.blurX=30;
filter.blurY=30;
this.addEventListener(Event.ENTER_FRAME,fire);
function fire(evt:Event):void
{
var _x:Number=wx+Math.random()*20;
var _y:Number=wy-Math.random()*20;
var size:Number=10+Math.random()*30;
createfire(_x,_y,size);
}
function createfire(_x:Number,_y:Number,size:Number)
{
if(this.numChildren!=0)
if(this.getChildAt(0).scaleX==0)
{
this.removeChildAt(0);
}
var fire:Sprite=new Sprite();
fire.x=_x;
fire.y=_y;
fire.graphics.beginFill(0x04eeaa00);
fire.graphics.drawCircle(0,0,size);
fire.graphics.endFill();
fire.filters=[filter];
new Tween(fire,"y",None.easeInOut,fire.y,fire.y-Math.random()*100,5,
false);
new Tween(fire,"scaleX",None.easeInOut,fire.scaleX,0,5,false);
new Tween(fire,"scaleY",None.easeInOut,fire.scaleX,0,5,false);
this.addChild(fire);
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.117.196.154
※ 编辑: del680202 来自: 140.117.196.154 (09/09 15:18)
1F:推 cjcat2266:恩...当初写Emitter刚开始的确有遇到这个问题 09/09 15:41
2F:→ cjcat2266:你需要解决的是,当一个火苗结束动画以後,要移除掉 09/09 15:41
3F:→ cjcat2266:你就需要在产生火苗的时候想办法纪录下它的reference 09/09 15:41
4F:→ cjcat2266:等到该移除的时候,利用这个reference来removeChild() 09/09 15:42
5F:→ cjcat2266:我说明一下我Emitter里面是怎麽做的好了,回在下篇 09/09 15:42