branch1:
text:
body: "You see two people talking #{branch1.text.person1} #{branch1.text.person2.1} #{branch1.text.person2.2} "
person1: "Who are you?"
person2:
1: "my name is Terra."
2: "What is your name?"
我使用原始coffeescipt建立一个选择你自己的冒险游戏。我将不同的故事路径组织成对象,然后将这些对象进一步划分为文本对象。我有一个for循环设置,它读取我设置的text.body属性,并循环遍历每个字符,并在用户单击鼠标时将其写入HTML文档。
问题是,我需要正确地对话属性,并且只有该特定角色的对话框显示。就目前而言,您在上面看到的内容将被打印为:
"You see two people talking. Who are you? My name is Terra. What is your name?"
如果需要这样读:
"You see two people talking."
Person1: "Who are you?"
Person2: "My name is Terra."
Person2: "What is your name?"
我想通过在我的循环中设置一些逻辑来实现这一点,该逻辑能够以某种方式知道它何时读取包含循环的变量。换句话说,当我的循环到达: #{} branch1.text.person1 部分,电脑会理解"哦!这是一个带有字符串的变量,我更好地对待它#34;
但问题是找到一种方法让计算机区分出像这样的字符串中的变量。有什么想法吗?
答案 0 :(得分:1)
问题在于,当您使用CoffeeScript的字符串插值(使用那些app:met_floatingLabel="highlight"
块)时,这些会被编译为#{}
语句并在运行时作为JavaScript字符串进行评估,因此您不会能够知道构造该值的表达式是什么样的。
如果您希望能够在运行时检测这些模式,则需要一个新的表示形式来封装它的表达式。例如,您可以选择使用常规字符串或函数表示。这完全取决于您的代码需要做什么。