[問題]物件生成是否會影響程式執行

看板Flash作者 (飄落的櫻花)時間17年前 (2008/09/09 15:16), 編輯推噓1(104)
留言5則, 1人參與, 最新討論串1/2 (看更多)
如題 小弟今天嘗試想寫個火苗的效果 成品如下 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)

09/09 15:41, , 1F
恩...當初寫Emitter剛開始的確有遇到這個問題
09/09 15:41, 1F

09/09 15:41, , 2F
你需要解決的是,當一個火苗結束動畫以後,要移除掉
09/09 15:41, 2F

09/09 15:41, , 3F
你就需要在產生火苗的時候想辦法紀錄下它的reference
09/09 15:41, 3F

09/09 15:42, , 4F
等到該移除的時候,利用這個reference來removeChild()
09/09 15:42, 4F

09/09 15:42, , 5F
我說明一下我Emitter裡面是怎麼做的好了,回在下篇
09/09 15:42, 5F
文章代碼(AID): #18nYBb3r (Flash)
文章代碼(AID): #18nYBb3r (Flash)