通过对Cairngorm,我们都了解,View接受用户的动作,并且触发事件,触发事件被控制器捕获,通过执行了相应的命令来执行操作,在命令操作中,我们可以选择使用服务的代理来访问远程数据,并且更新本地模型以达到是的模型绑定的View元素发生变化;
但是,然后,是不是所有的页面元素都能通过绑定模型来实现动态变化呢?不见得,那么,我们如何在Command访问View元素并且操控他呢?我们就必须借助ViewHelper和ViewLocator:
ViewHelper类实现接口IMXMLObject,首先自定义一个ViewHelper,然后在视图中引用它。
package domain.app.view{
import com.adobe.cairngorm.view.ViewHelper;
public class LoginViewHelper extends ViewHelper{
public function doSomething(){
//do something with the protected property view.
}
}
}
在视图中实例化这个ViewHelper
<helper:LoginViewHelper id="loginViewHelper"/>
然后就可以在Command中使用这个ViewHelper。
var loginViewHelper:LoginViewHelper=ViewLocator.getInstance().getViewHelper("loginViewHelper")
as LoginViewHelper;
loginViewHelper.doSomething();