Редактировать: Хорошо, вот проблема, которую я вижу из тестирования.Вы никогда не получите blood_c равным 1, поэтому он никогда не удалит кровь.если вы его принудительно (для тестирования я принудил = 1), вы никогда не увидите брызги крови, потому что они удаляются сразу после создания.
Так что мой совет, когда вы впервые добавляете addChild (blood_splat1);Вы делаете таймер.или счетчик кадров.или что-то, и когда он ведет обратный отсчет или срабатывает (как таймер, он вызывает функцию для удаления брызг крови. Вот так:
stop();
Mouse.hide();
import flash.utils.Timer;
import flash.events.TimerEvent;
var bloodTimer:Timer = new Timer(1000, 1); // one second and doesn't repeat.
//var level_complete1:level_complete = new level_complete();
var ammo:Number = 5;
var cash:Number= 100;
var level:Number = 1;
var exp:Number = 0;
var blood_c:Number = 0;
var exp_needed = 25;
var dead_check:Number = 0; //Check to see if the target is dead
var check_blood:Number = 0; //Check to make sure blood doens't loop
var blood_splat1:blood_splat = new blood_splat();
target1.addEventListener(MouseEvent.CLICK, target_shot);
function removeBlood(te:TimerEvent):void
{
if(blood_splat1.parent != null && blood_splat1.parent.contains(blood_splat1))
{
blood_splat1.parent.removeChild(blood_splat1);
}
}
function target_shot(event:MouseEvent):void
{
if(dead_check==0)
{
addChild(blood_splat1);
bloodTimer.start();
bloodTimer.addEventListener(TimerEvent.TIMER_COMPLETE, removeBlood);
blood_splat1.y = mouseY;
blood_splat1.x = mouseX;
target1.gotoAndPlay(32);
if (blood_splat1.currentFrame==6)
{
//blood_splat1.gotoAndStop(6);
//removeChild(blood_splat1);
cash=cash+150;
exp=exp+25;
ammo=ammo-1;
dead_check = 1;
blood_c = 1;
}
}
if (dead_check==1)
{
addChild(blood_splat1);
bloodTimer.start();
bloodTimer.addEventListener(TimerEvent.TIMER_COMPLETE, removeBlood);
blood_splat1.y = mouseY;
blood_splat1.x = mouseX;
target1.gotoAndStop(38);
blood_c = 1;
//if (blood_splat1.currentFrame==6){
//blood_splat1.gotoAndStop(6);}
}
}