我试图从另一个堆栈命令中运行一个命令。如何运行?

问题描述 投票:0回答:1

我在一个堆栈中有一个回调处理程序,用来寻找遥测数据。 当它得到一些数据时,我解析它,然后想保存它。

然而,保存它需要同一堆栈中的其他函数和命令。

我可以把它放在卡上,但是放在哪里呢? 我用openCard结束openCard,在卡中就差不多了。

堆栈里有我需要的所有函数和命令。

没有按按钮来运行保存代码--我需要它自动运行。

我怎样才能把这段代码放在卡上,然后让堆栈 "调用 "它?

我知道如何从卡上调用命令,但不知道如何从堆栈中调用。

谢谢你的帮助。

我知道如何从卡上调用命令,但不是从堆栈上调用。

function callback stack command livecode
1个回答
1
投票

一般来说,你只需在行内调用一个命令处理程序或一个函数处理程序。

on mouseUp -- a "main" handler
  doSomething -- a command handler 
  dosomethingElse -- another command handler 
  put doYetAnotherThing(paramList) into field 1 -- a function handler
end mouseUp

on doSomething
  well, do something
end doSomething

on doSomethingElse
  you get the picture
  ...

试着做一个简单的主处理程序 为上面三个 "subRoutine "的每一个调用做一些琐碎的事情。你会在几个小时内成为专家.这三个的位置必须要管理好。一般来说,它们驻扎在主处理程序所在的脚本中。但它们可以在LC的任何地方。


1
投票

如果你想从另一个脚本中调用卡片(或任何其他控件)中的处理程序,你可以使用下面的一个命令。

  • dispatch "指挥"至 控制param1, param2, …
  • 发出 "指挥"至 控制 [在 时候]
  • 价值(指挥, 控制)到tResult中。

愉快地继续派遣,即使 指挥 不被处理的 控制. 当然你可以检查一下.Send的优点是你可以及时安排发送转发,但如果你想同时发送一些参数的话,就有点难了.Value是不错的候选者,如果你调用一个函数并想要回结果的话。


0
投票

注意,""openCard "和 "preOpenCard "消息可以在堆栈脚本中被捕获并工作,只要卡片脚本中没有这样的处理程序。即使有,你也可以在卡片脚本处理程序完成后 "传递 "每个消息"。

© www.soinside.com 2019 - 2024. All rights reserved.