Кнопочный двигатель EventSoundTrigger - PullRequest
1 голос
/ 11 мая 2011

Я сталкиваюсь с некоторыми проблемами при использовании EventSoundTrigger в Pushbutton Engine

Я могу заставить его работать, используя xml следующим образом:

 <component type="com.pblabs.components.basic.EventSoundTrigger" name="Sounds">
     <startSound filename="/assets/explosion.mp3" />
   </component>

Но если я пытаюсь написать ActionScript, чтобы сделать то же самое, я пропускаю ошибки. Я не могу найти в Интернете примеров, объясняющих, как инициализировать или использовать EventSoundTrigger непосредственно в ActionScript.

Следующая ошибка выдает, что звуковой объект является нулевым при создании компонента.

Я понял, вот ответ:

   var et:EventSoundTrigger = new EventSoundTrigger();
    et.startSound = PBE.resourceManager.load("assets/noo.mp3", MP3Resource , onLoaded, onFailed) as MP3Resource ;
    var tEntity:IEntity = PBE.allocateEntity();
    tEntity.addComponent( et , "sound" ) ;
    tEntity.initialize("tsound"); 

1 Ответ

0 голосов
/ 29 сентября 2011

Кажется, что когда компонент EventSoundTrigger добавляется к сущности, ему необходимо, чтобы ресурс startSound был готов. Для этого вы можете сначала загрузить ресурс, а затем создать компонент:

PBE.resourceManager.load("assets/02.mp3", MP3Resource, onLoaded, onFailed) as MP3Resource;

private function onLoaded(resource:MP3Resource):void
{
    var et:EventSoundTrigger = new EventSoundTrigger();
    et.startSound = resource;
    var tEntity:IEntity = PBE.allocateEntity();
    tEntity.addComponent( et , "sound" ) ;
    tEntity.deferring=false;
}
...