【问题标题】:How to implement a loading screen using storyboard?如何使用情节提要实现加载屏幕?
【发布时间】:2014-04-21 14:27:35
【问题描述】:

在使用故事板库的 Corona 应用中,在场景之间添加加载屏幕的最佳做法是什么?我猜它应该在场景中的某个地方:enterScene() 但我不确定如何使它与 Corona 的渲染过程一起工作。据我了解,如果我执行以下操作,加载屏幕将永远不会显示,因为 Corona 会等到代码路径完成然后立即绘制所有内容。

function scene:enterScene( event )
  showLoadingScreenOverlay()
  loadEverything()
  hideLoadingScreenOverlay()
end

为加载屏幕本身创建新的故事板场景是否正确?如果是这样,如何在显示加载场景时在后台加载其他内容?

【问题讨论】:

    标签: lua coronasdk corona-storyboard


    【解决方案1】:

    在您的情况下,您应该使用 loadScene(): http://docs.coronalabs.com/api/library/storyboard/loadScene.html

    这只会调用新场景2的createScene部分... 然后您可以做的是在scene2的createScene中更新加载进度,并在原始scene1中每x毫秒验证一次加载进度。 100%时,在scene1中调用goToScene,就会立即加载scene2。

    【讨论】:

    • 嘿Teddy,跟进这个,如何检查加载进度?它与 loadScene() 的响应有关吗?还是我在目标场景的 createScene 方法中创建某种回调?
    • 您需要手动创建加载进度跟踪。假设例如在您的 createScene 方法中,您创建了 4 个控件 A、B、C、D。在同一场景的顶部声明一个名为 gLoadingProgress = 0 的变量 在 createScene 中,加载每个控件后,将 25 添加到 gLoadingProgress。因此,在加载 A 之后,gLoadingProgress 等于 25,B 之后是 50,C 之后是 75,D 之后是 100。在您的原始场景中,您只需检查 gLoadingProgress 的值并按照该值行事。说得通 ?这是一个非常简单的例子,很脏等等,但你会明白的:)
    • 谢谢泰迪。我想我会在运行时级别添加一个事件侦听器,并在所有内容加载后调度一个“sceneDidLoad”事件或其他东西。我不太关心显示百分比,但很高兴知道我能做到这一点。
    猜你喜欢
    • 2013-05-02
    • 1970-01-01
    • 2021-06-26
    • 2011-12-16
    • 1970-01-01
    • 2020-07-25
    • 1970-01-01
    • 1970-01-01
    • 2012-10-19
    相关资源
    最近更新 更多