0

「ローダー」と呼ばれるスタックにスクリプトがあり、「theData」と呼ばれる別のスタックに新しいカードを作成したいと考えています。カードを使用するだけの場合create card、スタック「ローダー」に作成されます。新しいカードがスタック「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
4

3 に答える 3

1

フィールド「データ」はどこから来たのですか? 新しく作成されたスタックには存在しません。

新しいスタックを作成すると、それが最上位またはデフォルトのスタックになります。そのため、最初にそのフィールドを作成しない限り、フィールドに何かを入れることはできません。

あなたのエラーは次のようなものだったと思います:

実行エラー... (チャンク: そのようなオブジェクトはありません) 「データ」の近く。

新しいスタックとリモート スタック内の新しいカードを作成している場合は、問題ありません。このすべてを試してみてください。行き詰まったらまた書き込んでください。

クレイグ・ニューマン

于 2013-05-21T03:30:49.920 に答える
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

したがって、本質的には、新しいスタックに移動し、ユーザーの背後で何かを行うことになります。しかし、それは高速で、瞬時に見えるはずです。

于 2013-05-22T15:31:38.590 に答える