예, 가능합니다. 가장 좋은 방법은 뷰를 객체 값에 바인딩하는 것입니다.
귀하의 의견은 "하나는 다른 것을 집계합니다"라는 측면에서 관련이없는 것 같지만 그 부모 (컨테이너보기)는 둘 다 알고 있습니다. 따라서 부모는 객체 참조를 두 뷰에 전달하고이 인스턴스가 업데이트되면 뷰에 데이터 바인딩을 통해 알림이 업데이트되고 업데이트됩니다.
보기가 서로 완전히 독립적 인 경우 응용 프로그램을 통해 응용 프로그램을 통해 이벤트를 전달하는 가장 직접적인 방법입니다. 응용 프로그램에서 전달하는 새 이벤트 유형 (즉, SystemEvent)을 소개해야합니다.
package de.guj.vila.delegates {
import flash.events.Event;
import flash.events.IEventDispatcher;
import mx.core.FlexGlobals;
import mx.core.IMXMLObject;
import mx.core.UIComponent;
public class ViewDelegate implements IEventDispatcher, IMXMLObject {
//---------------------------------------------------------------------
//
// Properties
//
//---------------------------------------------------------------------
private var _bus:IEventDispatcher;
private var _uiComponent:UIComponent;
/**
* The view which uses the delegate.
*/
public function set uiComponent(value:UIComponent):void {
_uiComponent = value;
}
//---------------------------------------------------------------------
//
// Constructor
//
//---------------------------------------------------------------------
public function ViewDelegate() {
_bus = FlexGlobals.topLevelApplication as IEventDispatcher;
}
//---------------------------------------------------------------------
//
// Implemented Methods
//
//---------------------------------------------------------------------
/**
* @inheritDoc
*
* @see flash.events.IEventDispatcher
*/
public function addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void {
_bus.addEventListener(type, listener, useCapture, priority, useWeakReference);
}
/**
* @inheritDoc
* @see flash.events.IEventDispatcher
*/
public function removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void {
_bus.removeEventListener(type, listener, useCapture);
}
/**
* @inheritDoc
* @see flash.events.IEventDispatcher
*/
public function dispatchEvent(event:Event):Boolean {
return _bus.dispatchEvent(event);
}
/**
* @inheritDoc
*
* @see flash.events.IEventDispatcher
*/
public function hasEventListener(type:String):Boolean {
return _bus.hasEventListener(type);
}
/**
* @inheritDoc
*
* @see mx.core.IMXMLObject
*/
public function initialized(document:Object, id:String):void {
uiComponent = document as UIComponent;
}
/**
* @inheritDoc
*
* @see flash.events.IEventDispatcher
*/
public function willTrigger(type:String):Boolean {
return _bus.willTrigger(type);
}
}
}
당신은 단지 FX에 물건 수 있습니다 아직 MVC에 확실히 할 수 있다면보기에 사용되는 특정 전역 변수에 너무 많은 참조에서 깨끗한 당신이 응용 프로그램을 유지하기 위해, 나는 대리인을 건의 할 것입니다 : Declarations 블록은 id를주고 뷰에서 뷰로 이벤트를 전달합니다. 청취자를 설정하기 만하면됩니다. 이 방법을 사용하면 대리자를 리팩터링하기 만하면되므로 깔끔한 구조를 쉽게 구현할 수 있습니다. 위임을 기본 클래스로 사용하면 위임자의 모든 이벤트를 처리 할 수 있으므로 뷰를 깨끗하게 유지할 수 있으며 가장 중요한 것은 다른 MVC 방식으로 포팅하기 쉽습니다. 이미 애플리케이션 비헤이비어에서 뷰 비헤이비어를 분리했기 때문입니다.
결국 MVC 프레임 워크 (예 : RobotLegs)를 사용하여 응용 프로그램을 쉽게 확장 할 수 있습니다.