如何在另一个堆栈中创建新卡?

时间:2013-05-20 12:07:00

标签: command message livecode hypercard

我在一个名为“loader”的堆栈中有一个脚本,我想在另一个名为“theData”的堆栈中创建一个新卡。如果我只使用create card,则会在堆栈“loader”中创建卡片。如何指定在堆栈“theStackName”中创建新卡?

这样的东西
on mouseUp
   put field "theStackName" into tStack

   create stack tStack with background "BGdata"
   -- the background "BGdata" which has been defined before
   -- contains a field "data"

   set the defaultStack to tStack

   put "something" into field "data"

   create card
   put "somethingElse" into field "data" 
end mouseUp

3 个答案:

答案 0 :(得分:2)

有几种方法可以使用create card命令。

方法1

您可以导航到目标堆栈,也许锁定屏幕以便没有任何明显变化,并在那里创建卡。这具有能够在目标堆栈中的任何地方创建新卡的优点,其可能已经具有多个卡。如果您愿意,您可以随时返回起始位置。

或者你可以:

方法2

set the defaultStack to "theData"
create card

同样的事情。

答案 1 :(得分:1)

“数据”字段来自哪里?它不会出现在新创建的堆栈中。

创建新堆栈时,它将成为最顶层或默认堆栈。因此,除非您首先创建该字段,否则不能将某些内容放入字段中。

我认为您的错误类似于:

执行错误...(块:没有这样的对象)靠近“数据”。

如果您要在远程堆栈中创建新堆栈以及新卡,那么这很好。试验这一切。如果你遇到困难,请回信。

克雷格纽曼

答案 2 :(得分:0)

据我所知,如果没有在堆栈中,就无法在堆栈中创建对象。在创建新堆栈后,我会做这样的事情:

push card
lock messages
lock screen # optional but probably a good idea
go invisible stack "mynewstack"
create card "foo"
# at this point you'll be on that card
create field "data"
put "stuff" into field "data"
group field "data"
set the name of field "data" to "bgData"
pop card
unlock messages
unlock screen

所以从本质上讲,你将进入新的堆栈,并在用户的背后做一些事情。但它很快并且看起来很快。