组是否可用于模拟其他语言的"class"或"struct"数据结构



在LiveCode中是否有一个数据结构可以用作关联数据的"持有人",让我集体处理它?我来自Java/Javascript/C背景,所以我正在寻找一个类或结构类型的数据结构。

我已经找到了Groups的例子,它们似乎有一些这样的功能,但感觉有点像我为了满足我的需要而改变了语言。

作为一个具体的例子,假设我的屏幕上有一个图像字段,它将随机显示一个图像,当按下时,播放一个相关的声音剪辑。我希望创建一个包含图像路径和相关声音剪辑路径的"结构"列表,并使用该数据填充图像字段并决定播放哪个声音剪辑。

在这种情况下使用Group是正确的结构吗?还是我的方式与LiveCode的工作方式不太匹配?

这需要一点时间来适应,但xTalk的世界比任何普通的过程语言都要简单和开放得多。那么多你曾经不得不管理的东西,现在都不再需要了。

所以当splash21说你可以在一个自定义属性中存储所有的图像和声音引用时,他实际上是在说LiveCode环境包含了内在的、高级的功能,使这些东西可以立即访问,你唯一需要做的就是调用它们,它们就会工作。

欣赏这一点的唯一方法是编写一些简单的程序,真正看到什么是可能的。制作你的应用程序。您所提到的一切都可以在单个处理程序中使用十几行代码来完成。我建议您加入LiveCode使用列表和论坛。社区充满活力,渴望提供帮助,经常为特定问题提供完整的解决方案,但更重要的是,作为新用户的指导和导师

克雷格·纽曼

LiveCode中的数组实际上是关联数组(如散列映射)。键与值相关联。该值也可以是一个数组。

用户指南第5.5.7章说

数组元素可以包含嵌套元素或子元素,使它们成为多维的。这种类型的数组非常适合处理分层数据结构,如树或XML。要访问子元素,只需使用一组额外的square来声明它括号。

put "ABC" into myVariable["myKeyName"][“aChildElement”]

见也如何在堆栈中存储图片?

Dave-我希望在不久的将来实现一个类似结构的容器。同时,正如splash21所提到的,您可以使用自定义属性(或者更好的是自定义属性集)来做您想做的事情。这将为每个对象提供一个伪结构体,您可以将文件和声音规范实现到属性中。如果你把它和一个行为对象结合使用,你最终会非常接近一个真正的可继承的类结构。

最新更新