[問題] remove動態生成的物件問題

看板Flash作者 (山豬元年革命志士)時間13年前 (2011/05/17 22:35), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
1. 利用 private var m_nTotal:uint; private var m_iFront:uint; private var m_iRear:uint; private var m_picHeart = []; 處理移除物件 2. 在按下滑鼠事件的時候作new物件,並存入陣列 (這裡會有問題,當total不夠大,追上一圈的時候會覆蓋) 3. removeHeart function作移除的動作 Q:有沒有更精簡的寫法?或是一般的手法? 小弟剛開始學as3,還是新手 package { import flash.display.Sprite; import flash.events.Event; import flash.events.MouseEvent; import com.greensock.*; // import com.greensock.TweenLite; import com.greensock.easing.*; import com.greensock.plugins.*; /* import flash.text.TextField; import flash.media.Sound; import flash.net.navigateToURL; import flash.net.URLRequest; */ import flash.filters.*; public class achNumber extends Sprite { private var m_nTotal:uint; private var m_iFront:uint; private var m_iRear:uint; private var m_picHeart = []; //建構子 public function achNumber() { m_nTotal = 30; m_iFront = 0; m_iRear = 0; //點擊滑鼠 this.addEventListener(MouseEvent.MOUSE_DOWN, \ mouseClick); } //滑鼠點擊 private function mouseClick(e:MouseEvent) { //增加物件 var picHeart:mcHeart = new mcHeart(); m_picHeart[m_iRear] = picHeart; m_iRear = (m_iRear+1) % m_nTotal; picHeart.x = e.stageX; picHeart.y = e.stageY+30; addChild(picHeart); //時間動作 var timeline:TimelineLite = new TimelineLite( \ {onComplete:removeHeart}); //Tween the text. timeline.append(TweenMax.to(picHeart, 1, \ {x:e.stageX, y:e.stageY-10, ease:Back.easeIn})); timeline.append(TweenLite.to(picHeart, 2,\ {autoAlpha:0})); } //移除愛心 private function removeHeart() { removeChild(m_picHeart[m_iFront]) m_iFront = (m_iFront+1) % m_nTotal; trace("Front:" + m_iFront + "Rear:" +m_iRear) ; } } } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.185.61.44 ※ 編輯: Achillean 來自: 111.185.61.44 (05/17 22:38)
文章代碼(AID): #1DqeV1LZ (Flash)