看板 Flash 關於我們 聯絡資訊
如題 小弟今天嘗試想寫個火苗的效果 成品如下 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)
cjcat2266:恩...當初寫Emitter剛開始的確有遇到這個問題 09/09 15:41
cjcat2266:你需要解決的是,當一個火苗結束動畫以後,要移除掉 09/09 15:41
cjcat2266:你就需要在產生火苗的時候想辦法紀錄下它的reference 09/09 15:41
cjcat2266:等到該移除的時候,利用這個reference來removeChild() 09/09 15:42
cjcat2266:我說明一下我Emitter裡面是怎麼做的好了,回在下篇 09/09 15:42