Здравствуйте.
Цель: Сделать так, чтобы при касание двух объектов (главного персонажа и лазера-копья) воспроизводился звук.
Проблема: Звук воспроизводится, но не всегда или иногда воспроизводится, но с опаздыванием.
Класс "касание":

Код AS3:
package madness
{
import flash.events.Event;
import flash.display.MovieClip;
import madness.effects.Sounds;
public class Collision
{
public function Collision()
{
Settings.stage.addEventListener(Event.ENTER_FRAME,collision);
}
private function collision(event:Event):void
{
var laserlance:Array = Settings.laserlance;
const laserlanceLength:int = laserlance.length;
var mainPersona:MovieClip = Settings.mainPersona;
for(var e:int = 0; e < laserlanceLength; e++)
{
var ll:MovieClip = laserlance[e];
if(ll.hitTestObject(mainPersona))
{
var alive:Boolean = laserlance[e].alive;
if(alive)
{
Sounds.playCollisionLaserLanceAndMainPersona();
laserlance[e].alive = false;
}
}
}
}
}
}
Класс "звуки":

Код AS3:
package madness.effects
{
import flash.media.Sound;
import flash.net.URLRequest;
import flash.net.URLLoader;
import flash.media.SoundTransform;
import flash.media.SoundChannel;
import madness.Settings;
public class Sounds
{
public static function playCollisionLaserLanceAndMainPersona():void
{
var ur:URLRequest = new URLRequest('files/Laser-lance collision main persona.mp3');
var smp:Sound = new Sound(ur);
var sc:SoundChannel = new SoundChannel();
sc = smp.play();
sc.soundTransform = new SoundTransform(Settings.volumeCollisionLaserLanceAndMainPersona);
}
}
}