2013-05-28 65 views
3

LiveCode中是否有數據結構可用作關聯數據的「持有者」,讓我可以共同處理它?我來自Java/Javascript/C背景,所以我正在尋找一種Class或Struct類型的數據結構。可以使用組來模擬來自其他語言的「類」或「結構」數據結構

我找到了組的例子,它似乎有一些這樣的功能,但它有點像我彎曲語言以滿足我的需求。

作爲一個具體的例子,假設我的屏幕上有一個圖像字段,它可以隨機顯示圖像,並在按下時播放相關的聲音片段。我期望創建一個包含圖像路徑和相關聲音片段路徑的「結構」列表,並使用該數據填充圖像字段並決定要播放的聲音片段。

在這種情況下,組是否是正確的結構?或者我正在以一種與LiveCode的工作方式不相符的方式來處理這個問題?

+1

嗨,戴夫。聽起來像自定義屬性可能是你所需要的 - 你可以將圖像和聲音路徑列表存儲在圖像對象中。 – splash21

+0

你能否讓你的問題更精確?一個帶有圖像路徑字段的組和一個聲音剪輯路徑的另一個字段可能是正確的。然後你可以隨機跳到一張卡片上,然後打開顯示圖像並播放聲音。另請參閱我的答案提及數組。您可能想要使用數組並將其存儲爲數組的自定義屬性。 –

回答

1

它需要一點習慣,但xTalk世界比任何普通的過程語言都簡單得多,也更開放。你曾經管理過的很多東西不再需要。

所以當splash21說你可以將所有圖像和聲音引用存儲在一個自定義屬性中時,他確實說LiveCode環境包含內在的高級功能,使得這些事物可以立即訪問,並且唯一的你需要的是要求他們,而他們只是工作。

唯一能夠體會到這一點的方法是製作一些簡單的程序,以便真正瞭解可能的情況。做你的申請。您提到的所有內容都可以通過單個處理程序中的十幾行代碼完成。我建議你加入LiveCode使用列表和論壇。社區是充滿活力和熱心幫助,經常有完全成熟的解決方案,以具體的問題,但更重要的是,作爲指導和導師新用戶

克雷格·紐曼

+0

我完全同意你的看法。基於這個原因,我相信xTalk語言不應該像C++或PHP一樣包含類和結構。 xTalk語言是不同類型的語言,不是基於類而是基於消息層次結構。讓我們保持簡單! – Mark

+0

從我習慣的嚴格類型的世界來說,這是一段很長的路,但現在我開始想起我的頭了。 – DaveH

0

Dave-我希望能得到一個struct-像在不久的將來實施的容器。與此同時,你可以使用自定義屬性(或者更好的,自定義屬性集)來做你想做的事。這將爲您提供每個對象的僞結構,並且您可以將文件和聲音規範實現到屬性中。如果將它與行爲對象結合使用,那麼結果將非常接近真正的可繼承類。

1

LiveCode中的數組實際上是關聯數組(如哈希映射)。一個鍵與一個值相關聯。值可能是一個數組。

用戶指南的5.5.7章節說

數組元素可以包含嵌套的或子元素,使他們多維度的。 這種類型的陣列非常適合處理分層數據結構,如樹或XML。要訪問子元素,只需使用另外一組方形 括號來聲明它。

put "ABC" into myVariable["myKeyName"][「aChildElement」] 

也看到 How to store pictures in a stack?