我从mainstack创建新堆栈,之后我想删除mainstack。
我不能。
这是我的代码:
create stack "newstack"
go to stack "newstack"
delete stack "mainstack"
我该怎么办?
谢谢
答案 0 :(得分:1)
试试这个:
local tStackID
put the long ID of this stack into tStackID
create stack "newstack"
go to stack "newstack"
delete stack tStackID
这似乎适用于简单的测试。
答案 1 :(得分:0)
也许您对从内存中删除堆栈以及从计算机中删除文件感到困惑。
第一个确实是在您使用“删除堆栈”命令编写时调用的。
第二个需要使用“删除文件”命令,附加适当的路径名。
克雷格纽曼答案 2 :(得分:0)
无法删除堆栈的原因可能是您的主堆栈脚本仍在运行。尝试将消息发送到新堆栈。这样,当需要删除旧堆栈中的脚本时,该脚本将不会运行。
on createNewStack
local myStackID
put the long ID of this stack into myStackID
create stack "newstack"
go to stack "newstack"
send "deleteOldStack myStackID" to stack "newstack" in 0 secs
end createNewStack
on deleteOldStack theStackID
delete stack theStackID
end deleteOldStack
例如,从createNewStack
处理程序调用{{1}}。将mouseUp
与createNewStack
处理程序放在相同的按钮,卡片或堆栈中(如果将mouseUp
置于堆栈级别,则可以将createNewStack
处理程序置于按钮级别,但它们必须位于同一堆栈中)。
将mouseUp
处理程序放入堆栈级别的新堆栈中。当旧堆栈中的脚本完成运行时,它将运行。
答案 3 :(得分:0)
如果除去堆栈的代码位于对象或子堆栈内部,则我认为它必须给出错误。因此,您可以尝试创建堆栈并将代码放到该堆栈中的操作,该代码将删除主堆栈。示例:
on mouseUp
local tStack
put the long id of this stack into tStack
create stack "NewStak"
set the script of stack "NewStak" to "on deleteMainStack; delete" & tStack & "; end deleteMainStack"
send "deleteMainStack" to stack "NewStak" in 0.1 sec
end mouseUp
请注意,在创建子堆栈时,这是您的主堆栈的一部分。因此,如果删除主堆栈,它将删除其所有子堆栈。上面的代码创建了另一个主栈,并删除了我称之为的主栈。删除子堆栈的最小堆栈的一种方法是告诉它合并到自己的主堆栈中,然后删除前一个堆栈。仅在内存中而不是光盘中保留相同的名称,因为filename属性是它与其主堆栈的子堆栈。