作者Achillean (山猪元年革命志士)
看板Flash
标题[问题] remove动态生成的物件问题
时间Tue May 17 22:35:42 2011
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)