-1
我不知道Flex/Flash,但我有一个遗留代码,它迫使我寻找答案。请帮帮我。Flex绑定两个变量
我有控制器和演示者类。控制器可以加载一些配置,我在这里添加了布尔变量isConfigurationLoaded,现在我想在控制器中将此变量绑定到演示者中的相同变量。我如何做到这一点?
我阅读了BindingUtils,但很多示例都有mxml文件的一部分,它让我害怕了一点。谢谢。
我不知道Flex/Flash,但我有一个遗留代码,它迫使我寻找答案。请帮帮我。Flex绑定两个变量
我有控制器和演示者类。控制器可以加载一些配置,我在这里添加了布尔变量isConfigurationLoaded,现在我想在控制器中将此变量绑定到演示者中的相同变量。我如何做到这一点?
我阅读了BindingUtils,但很多示例都有mxml文件的一部分,它让我害怕了一点。谢谢。
首先,你需要声明在控制器中你作为可绑定变量,这样BindingUtils会得到事件一旦发生变化:
[Bindable]
public var isConfigurationLoaded:Boolean;
然后设置在主持人的结合:
// use weak references so it will be garbage collected
BindingUtils.bindProperty(this, "isConfigurationLoaded", myControllerReference, "isConfigurationLoaded", false, true);
public function set isConfigurationLoaded(value:Boolean):void
{
trace("isConfigurationLoaded in the controller has changed to " + value);
_isConfigurationLoaded = value;
}
public function get isConfigurationLoaded():Boolean
{
return _isConfigurationLoaded;
}
或者,如果您不想为变量创建getter/setter,则可以将变量绑定到演示者中的函数调用:
// use weak references so it will be garbage collected
BindingUtils.bindSetter(onisConficurationLoaded, myControllerReference, "isConfigurationLoaded", false, true);
private function onisConficurationLoaded(value:String):void
{
trace("isConfigurationLoaded in the controller has changed to " + value);
isConficurationLoaded = value;
}
个
BindingUtils返回ChangeWatcher实例,你可以存储它,如果需要取消监视属性:
// watch
var changeWatcher:ChangeWatcher = BindingUtils.bindSetter(onisConficurationLoaded, myControllerReference, "isConfigurationLoaded");
// unwatch
changeWatcher.unwatch();