【问题标题】:"save this stack" doesn't work in livecode“保存此堆栈”在 livecode 中不起作用
【发布时间】:2018-01-01 18:49:26
【问题描述】:
一旦我可以使用“保存此堆栈”命令在计算机和移动设备上保存应用程序中的现有状态。
今天我发现,它不再起作用了。
比如:有一个字段加1,我到了10。
如果我离开应用并重新打开它,它不会被保存,而是从 0 开始。
为什么?如何解决这个问题?
代码:
on mouseDown
add 1 to field "counter"
save this stack
end mouseDown
【问题讨论】:
标签:
mobile
stack
save
livecode
【解决方案1】:
用一个字段和一个按钮创建一个新堆栈,并将其放在按钮脚本中:
on mouseUp
add 1 to fld 1
save this stack
end mouseUp
如果您单击按钮,该字段会增加。如果您随后关闭堆栈,它将立即关闭,而不是询问您是否要保存它。如果您随后重新打开,则会显示该字段的最后状态。
没有要求您保存的原因是堆栈刚刚保存,没有进行任何更改。该字段保存最新值。换句话说,世界上一切都很好。那么问题就变成了:你的堆栈有什么不同?
Mac 操作系统 10.9。 LC 8.1.8。 (但这些都不重要)
【解决方案2】:
这正是我所做的但它没有保存!我按了又按 到了 10。然后我关闭应用程序并重新打开它 该字段显示第一个值(为此目的为 0)而不是值 10 * 不适用于移动设备
【解决方案3】:
桌面:我在我的 IDE 上尝试过,它可以工作!但仅当您使用 is 作为 livecode 堆栈而不是作为独立时,请参阅下一节。
移动设备:您无法将更改保存在移动设备上的主堆栈中,因为它始终是独立的。独立中的主堆栈无法更改,因为它们是二进制文件的一部分。如果您想在移动设备(或桌面)上拥有一个可以保存自己的堆栈,则必须将其创建为子堆栈。
【解决方案4】:
正确地说,子堆栈如果也是可执行文件的一部分,则无法保存。
通常的方法是将一个或多个堆栈文件附加到“Splash”堆栈。
Splash 堆栈通常具有有限的功能,例如导航到一个或多个工作堆栈及其所有子堆栈。这些都可以保存。初始堆栈只是打开独立的工具,然后让其关联的堆栈完成实际工作。
【解决方案5】:
使用
command saveThisStack
put fld "score" of cd "mainCard" into tTempList
put the base64Encode of tTempList into tTempList
set the defaultFolder to specialFolderPath("documents")
put tTempList into URL ("file:score.txt")
end saveThisStack