Допустим: есть герой, есть бонусы с ограниченным по времени действием, когда герой "берет" такой бонус - начинается действие связанное с этим бонусом и запускается таймер по истечению которого нужный бонус отключается.Хочу информировать игрока о том, что он подобрал такой то бонус и он закончится через столько то секунд, примерно это будет выглядеть так:
В следующий момент, игрок увидит, что иконка бонуса "1" - удалится, а иконки "2" и "3" поднимутся, то есть "2" займет место "1" а "3" поднимется на место "2".
Пожалуйста, подскажите как реализовать?
Когда думал сам - сделал такой класс под это дело, но ничего толком не работает:

Код AS3:
package
{
import flash.display.MovieClip;
import flash.events.Event;
import flash.events.TimerEvent;
import flash.utils.Timer;
public class BonusInspector extends MovieClip
{
public var mc:MovieClip = new Bonus_Inspector();//Место под иконки бонусов
public var iconMC:MovieClip;
private var iconsArray:Array = [];
private var countTime:Timer = new Timer(1000,0);
private var sec:int = 5;
public function BonusInspector():void
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
mc.x = 50;
mc.y = 350;
addChild(mc);
}
public function setBonusMc(mcNum:int):void // Сюда приходит номер бонуса, выбирается
{ // иконка бонуса исходя из того, что пришло
sec = 5;
switch(mcNum)
{
case 1:
iconMC = new Freeze();
break;
case 2:
iconMC = new BulletMaxDist();
break;
case 3:
iconMC = new Speed();
break;
case 4:
iconMC = new BulletMaxPower();
break;
}
iconMC.id = mcNum;
mc.addChild(iconMC);
countTime.addEventListener(TimerEvent.TIMER, onTime);
countTime.start();
iconsArray.push(iconMC);
for (var i:int=0; i < iconsArray.length; i++)
{
if (i == 0)
{
iconsArray[i].x = 30;
iconsArray[i].y = 30;
}
else {
iconsArray[i].x = iconsArray[i-1].x;
iconsArray[i].y=(iconsArray[i-1]).y + 30;
}
}
}
private function onTime(e:TimerEvent):void
{
if (sec == 0)
{
iconMC.time.text = '';
countTime.stop();
for (var i:int=0; i < iconsArray.length; i++)
{
if (iconsArray[i].id == iconMC.id)
{
iconsArray.slice(i, 1);
}
}
mc.removeChild(iconMC);
}
else{
sec -= 1;
iconMC.time.text = sec;
}
}
}
}