-
Relation
除了在编辑器设置关联外,有时候我们也需要动态添加关联。例如在一款页游中,一个动态添加到舞台的组件,希望舞台宽度改变时(比如浏览器窗口被玩家拖大拖小),组件依然保持在右侧位置,那么可以这样调用:
aObject.AddRelation(GRoot.inst, RelationType.Right_Right);
又例如,一个动态添加到舞台的组件始终保持满屏大小,可以这样调用
aObject.SetSize(GRoot.inst.width, GRoot.inst.height);
aObject.AddRelation(GRoot.inst, RelationType.Size);
RelationType.Size相当于RelationType.Width_Width和RelationType.Height_Height的组合。这里强调一下,使组件变为满屏大小这个操作必须由你完成,也就是上面代码中的SetSize调用。关联并不能完成这项任务,因为关联是不管元件当前的大小的,它只会在目标变化时保持两者大小的差别。
删除关联的方法是:
//删除某个关联
aObject.RemoveRelation(targetObject, RelationType.Size);
//删除指向某个对象的所有关联
aObject.relations.ClearFor(targetObject);