跳到主要内容

视图模型(ViewModel)

ViewModel 提供对命名属性的访问,用于应用程序与 Rive 文件之间的数据绑定。

字段(Fields)

name

视图模型的名称。

(即将推出)

方法(Methods)

getNumber

按名称查找数值属性(number property)。 返回 DataValueNumber

local vmi = context:viewModel()
if vmi then
local score = vmi:getNumber('score')
if score then
print(score.value)
end
end

getTrigger

按名称查找触发器属性(trigger property)。 返回 PropertyTrigger

local vmi = context:viewModel()
if vmi then
local myTrigger = vmi:getTrigger('myTrigger')
if myTrigger then
mytrigger:fire()
end
end

getString

按名称查找字符串属性(string property)。 返回 DataValueString

local vmi = context:viewModel()
if vmi then
local heading = vmi:getString('heading')
if heading then
print(heading)
end
end

getBoolean

按名称查找布尔属性(boolean property)。 返回 DataValueBoolean

local vmi = context:viewModel()
if vmi then
local darkMode = vmi:getBoolean('darkMode')
if darkMode then
print(darkMode)
end
end

getColor

按名称查找颜色属性(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

按名称查找列表属性(list property)。 返回 PropertyList

local vmi = context:viewModel()
if vmi then
local enemies = vmi:getList('enemies')
if enemies then
enemies:pop()
end
end

getViewModel

按名称查找视图模型属性(view model property)。 返回 PropertyViewModel

local vmi = context:viewModel()
if vmi then
local nestedVM = vmi:getViewModel('MyVM')
end

getEnum

按名称查找枚举(enum)。 返回 PropertyEnum

local vmi = context:viewModel()
if vmi then
local textAlignment = vmi:getEnum('textAlignment')
end

instance

创建一个新的 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

返回索引。 如果视图模型没有可用的索引,则返回 -1。

local vmi = context:viewModel()
if vmi then
local index = vmi:getIndex()
print(index)
end

getImage

按名称查找图像属性(image property)。 返回 Property<Image>

local vmi = context:viewModel()
if vmi then
local image1 = vmi:getImage('avatar')
end