【问题标题】:TweenAccessor for music.class in LibGDXLibGDX 中 music.class 的 TweenAccessor
【发布时间】:2014-01-07 18:16:16
【问题描述】:

我一直在想:是否可以在 LibGDX 中使用 Universal Tween Engine 来改变歌曲的音量?我用类似于我的 SpriteAccessor 的代码编写了我自己的 MusicAccessor,它实际上适用于 Sprite.class,但是当涉及到音乐对象时 - 它总是得到相同的错误:

java.lang.RuntimeException: No TweenAccessor was found for the target

问题是,我确实通过以下方式注册了我的访问器:Tween.registerAccessor(Music.class,new MusicAccessor()); 我很确定它实际上正在注册,因为System.out.println(Tween.getRegisteredAccessor(Music.class)); 打印:the.name.of.my.packages.MusicAccessor@14bb523。老实说,我被困住了。

音乐文件本身是 .mp3 格式,我通过资产管理器加载它。

所以,我的问题是:为什么 Tween 引擎无法正确识别我的音乐对象的类别?有没有办法让它工作,或者我是否坚持使用常规计时器来随着时间的推移改变音量?更改格式或以不同的方式加载音乐文件会有帮助吗?

【问题讨论】:

  • 您能否更新一个修复示例。
  • 代码不见了,但据我所知,我所要做的就是在注册 (?) Music 对象以进行补间时添加cast(Music.class)。该方法可以链接。

标签: java libgdx


【解决方案1】:

我个人还没有使用过 Tween Engine,但我想可能是因为Music 实际上只是一个接口。

对于不同的后端和不同的文件格式有几种实现。例如AndroidMusicGwtMusicOpenALMusic 的另外三个实现(它们都被称为Music 并且位于com.badlogic.gdx.backends.openal.mp3/ogg/wav 包中)。您可以使用访问器将它们全部注册,也可以使用我在代码中找到的Tween.cast(),但不是在补间引擎的官方 JavaDoc 中。可能只有最新版本。

【讨论】:

  • 谢谢,casting() 成功了。不幸的是,我一定忽略了这种方法。
  • 谢谢!我有同样的问题。
  • @JustACluelessNewbie 您能解释一下您是如何将Music 转换为课程的吗??
  • 我好久没用这个库了,所以我不会提供代码示例,但是您只需在补间方法调用或管理器注册中添加.cast(Music.class)即可。如果我没记错的话,这些方法中的大多数都可以很容易地链接起来,所以你只需要添加一些演员表。
猜你喜欢
  • 1970-01-01
  • 2014-10-10
  • 2013-10-29
  • 1970-01-01
  • 2015-08-27
  • 1970-01-01
  • 2012-05-29
  • 2013-07-27
  • 1970-01-01
相关资源
最近更新 更多