首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当我更改为KorGE中的其他场景时出现异常

当我更改为KorGE中的其他场景时出现异常
EN

Stack Overflow用户
提问于 2020-06-02 16:57:16
回答 1查看 230关注 0票数 1

com.soywiz.korinject.AsyncInjector$NotMappedException:类“

ChooseCampaign (Kotlin反射不可用)”没有构造函数RequestContext(initialClazz=class ChooseCampaign (Kotlin反射不可用))

上述异常在我编译当前代码时抛出。我不知道它是如何修复的,它意味着什么。

我的代码:

代码语言:javascript
复制
textButton {
            position(0, 128)
            text = "Play"
            onClick {
                println("Play")
                launchImmediately {
                    sceneContainer.changeTo<ChooseCampaign>()
                }
            }
        }

它是怎么修好的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-03 20:45:08

在KorGE中使用场景时,间接地使用korinject依赖项注入器。

那个喷射器需要手动映射。如果使用的是模块,则可以在Module.init方法中配置这些映射。

检查此示例:https://github.com/korlibs/korge-samples/blob/1771b7ca7f4440e1a368ff4b441e97bf62e08b8d/sample-scenes/src/commonMain/kotlin/main.kt#L15-L23

在您的示例中,一旦获得了Injector实例,就可以映射这样的场景:

代码语言:javascript
复制
mapPrototype { ChooseCampaign(get()) }

您必须设置与ChooseCampaign构造函数所具有的参数一样多的ChooseCampaign

在不使用模块的情况下,放置映射的位置是不同的,您需要获取Injector实例。

suspend fun main() = Korge {块中,注入了Stage单例。这是根视图,它引用了Views单例。

因此,您可以像这样访问注射器:this.views.injector

然后,您可以随时映射您的场景,尽管我建议您在应用程序开始时这样做。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62157259

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档