我确实提交了thread,这是(在再次阅读之后)完全错误的表述。这实际上是我想知道的:
在使用MATE的Flex应用程序中,假设我们有一个名为View.mxml的视图,其中包含一个名为ViewProp的属性和一个名为ClassManager的类,其属性为ClassProp。假设我们有另一个名为SecondView.mxml的视图,其属性为SecondProp。
是否可以以某种方式定义以下内容: 只要ViewProp发生变化(在View.mxml中),ClassProp也会在ClassManager中更改,而ClassManager又会在属性SecondProp中反映其对Secondview.mxml的更改?!
我希望这次能够正确描述它!
提前致谢
答案 0 :(得分:0)
以这种方式怎么样:
当ViewProp或ClassProp发生更改时,此属性会调度一个事件,并在Secondview.mxml中添加一个eventlistener来修改属性SecondProp。
答案 1 :(得分:0)
这与你的第一个问题有点不同。
视图类必须不能直接访问模型类,因此View类必须调度一个事件来更改模型类。
1.)您必须定义某种新事件
public class ViewPropIsChangedEvent extends Event
{
public static const SET_NEW_VALUE:String = "theNewValue";
private var _value:Object;
public ViewPropIsChangedEvent(type:String, value:Object, bubbling:Boolean=true, cancelable:Boolean=false)
{
super(type,bubbling,cancelable);
_value = value;
}
public function get value():Object
{
return _value;
}
}
2.。)当您在View.mxml中更改ViewProp时,您必须发送一个事件
dispatchEvent(new ViewPropIsChangedEvent(ViewPropIsChangedEvent.SET_NEW_VALUE, theNewValue))
3.)在EventMap中,你必须处理事件
</EventHandlers type="{ViewPropIsChangedEvent.SET_NEW_VALUE}">
<PropertySetter generator="{ClassManager}"
targetKey="ClassProp"
source="{event.value}"/>
</EventHandlers>
4.。)在ModelMap中,您必须已将Secondview.SecondProp绑定到ClassManager.ClassProp
<Injectors target="{Secondview}">
<PropertyInjector targetKey="SecondProp"
source="{ClassManager}"
sourceKey="ClassProp"/>
</Injectors>