Кнопочный движок EventSoundTrigger

#button #actionscript #push

#кнопка #actionscript #толкать

Вопрос:

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

Я могу заставить это работать, используя xml, подобный этому:

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

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

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

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

    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:

Кажется, что когда компонент 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;
}