[問題] remove動態生成的物件問題
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)