今天学习states组件库,主要包括State,PropertyChanges,StateGroup,StateChangeScript,ParentChange,AnchorChanges
1、State
使用when 表达式触发状态改变.
State通常和Transition一起提供动画效果.
2、PropertyChanges
PropertyChanges提供了当状态变化,而改变组件属性值的功能。
由以上代码可以看出,PropertyChanges可以绑定多个属性.
现在有个疑问:可以在一个target上同时改变多个属性,但是怎么在一个State里改变多个target的属性呢?请看下面代码
注意:一个State里多个PropertyChanges里的target不要相同,如果第二个PropertyChanges里的target也是text_cn的话,会只执行第一个PropertyChanges的属性值变化
3、ScriptAction
ScriptAction可以用于在动画的某个点上执行脚本程序,甚至说可以在这调用C++的函数,如:
4、ParentChange
ParentChange是指定一个父组件给当前目标组件。然后更改的属性是相对于父组件的。如(sition, size, rotation, and scale)
这段代码将blueRect的x坐标,y坐标移动到父组件的(10,10),即将blueRect移动到redRect的(10,10)坐标位置
5、AnchorChanges
AnchorChanges常用于在State中修改组件的anchors,但是不能用于修改组件的margin值,对于margin值我们需要用PropertyChanges修改
AnchorAnimation:
Component.onComplete即页面加载完成事件