视图模型(ViewModel)
ViewModel 提供对命名属性的访问,用于应用程序与 Rive 文件之间的数据绑定。
字段(Fields)
name
视图模型的名称。
(即将推出)
方法(Methods)
getNumber
getNumber(name: string) -> Property<number>?
按名称查找数值属性(number property)。 返回给定名称的数值属性;如果未找到则返回 nil。
local vmi = context:viewModel()
if vmi then
local score = vmi:getNumber('score')
if score then
print(score.value)
end
end
getTrigger
getTrigger(name: string) -> PropertyTrigger?
按名称查找触发器属性(trigger property)。 返回 PropertyTrigger。
local vmi = context:viewModel()
if vmi then
local myTrigger = vmi:getTrigger('myTrigger')
if myTrigger then
mytrigger:fire()
end
end
getString
getString(name: string) -> Property<string>?
按名称查找字符串属性(string property)。 返回 DataValueString。
local vmi = context:viewModel()
if vmi then
local heading = vmi:getString('heading')
if heading then
print(heading.value)
end
end
getBoolean
getBoolean(name: string) -> Property<boolean>?
按名称查找布尔属性(boolean property)。 返回 DataValueBoolean。
local vmi = context:viewModel()
if vmi then
local darkMode = vmi:getBoolean('darkMode')
if darkMode then
print(darkMode.value)
end
end
getColor
getColor(name: string) -> Property<Color>?
按名称查找颜色属性(color property)。 返回 DataValueColor。
local vmi = context:viewModel()
if vmi then
local primaryColor = vmi:getColor('primaryColor')
if primaryColor then
primaryColor.value = Color.rgba(255, 0, 0, 155)
end
end
getList
getList(name: string) -> PropertyList?
按名称查找列表属性(list property)。 返回 PropertyList。
local vmi = context:viewModel()
if vmi then
local enemies = vmi:getList('enemies')
if enemies then
enemies:pop()
end
end
getViewModel
getViewModel(name: string) -> PropertyViewModel?
按名称查找视图模型属性(view model property)。 返回 PropertyViewModel。
local vmi = context:viewModel()
if vmi then
local nestedVM = vmi:getViewModel('MyVM')
end
getEnum
getEnum(name: string) -> PropertyEnum?
按名称查找枚举(enum)。 返回 PropertyEnum。
local vmi = context:viewModel()
if vmi then
local textAlignment = vmi:getEnum('textAlignment')
end
instance
instance(instanceName: string?) -> ViewModel
创建一个新的 ViewModel 实例。
可传入 instanceName,以指定文件中已有的某个实例作为模板。
function init(self: VMNameNode, context: Context): boolean
local vm = context:viewModel()
if vm then
local newInstance = vm:instance()
local age = newInstance:getNumber('age')
if age then
age.value = 99
end
end
return true
end
getIndex
getIndex() -> number
返回索引。 如果视图模型没有可用的索引,则返回 -1。
local vmi = context:viewModel()
if vmi then
local index = vmi:getIndex()
print(index)
end
getImage
getImage(name: string) -> Property<Image>?
按名称查找图像属性(image property)。
返回 Property<Image>。
local vmi = context:viewModel()
if vmi then
local image1 = vmi:getImage('avatar')
end