#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;
}