【问题标题】:Purging a scene causes global display objects to be removed from memory清除场景会导致全局显示对象从内存中删除
【发布时间】:2012-10-21 17:26:41
【问题描述】:

我有一个问题,当我调用 storyboard.purgeScene() 时,我的全局显示对象似乎被删除了。当我说“全局”时,我实际上将它们存储在用户定义的故事板表中,以避免使用实际的全局变量:

我的图像数据库存储在外部文件 toy_database.lua 中:

local storyboard = require "storyboard";

    storyboard.globalVars.toys = {
            ball1 = {
                    src = 'img/stock-vector-soccer-ball-trimmed.png',
            }
    }


main.lua:

local storyboard = require "storyboard";

storyboard.globalVars = {};

require "toy_database_toybox";


我在 main.lua 中加载了一些图像:

storyboard.globalVars.toys["ball1"].imgPtr = display.newImageRect(storyboard.globalVars.toys["ball1"].src, w, h);


那我去另一个场景:

storyboard.gotoScene("mainFloorScene");


在一切正常的情况下,可以访问显示对象。我清除了那个场景并转到另一个场景:

storyboard.gotoScene( "openBoxScene" )
[in didExitScene()]: storyboard.purgeScene( "mainFloorScene" )


这里一切都很好。最后我回到第一个场景,在途中清除当前场景:

storyboard.gotoScene( "mainFloorScene", "fade", 400 );
[in didExitScene()]: storyboard.purgeScene( "openBoxScene" )


回到第一个场景,图像对象已被移除。如果我注释掉这一行:

storyboard.purgeScene( "openBoxScene" )


它工作正常,所以我有一个解决方法,但我想解释一下这种行为。我预计场景清除只会删除该场景本地的显示对象。

发生了什么事?

【问题讨论】:

  • iamge 被移除了,还是没有出现?

标签: storyboard global-variables coronasdk


【解决方案1】:

我使用完全相同的方法来存储我的数据。我也使用了 purgeScene 但我的数据没有被删除。我现在不想测试这个。我建议您在较旧的版本上尝试此操作。

【讨论】:

    猜你喜欢
    • 2013-08-23
    • 2017-10-13
    • 1970-01-01
    • 2015-06-07
    • 1970-01-01
    • 1970-01-01
    • 2011-02-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多