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" )
正常に動作するため、回避策がありますが、この動作について説明してください。シーンのパージでは、そのシーンにローカルな表示オブジェクトのみが削除されると予想していました。
どうしたの?