Pregunta

Lo hice presentar un hilo que fue (después de leer de nuevo) totalmente equivocado formulados. Esto es en realidad lo que quería saber:

En una aplicación Flex utilizando MATE supongamos que tenemos una vista llamada View.mxml con una propiedad llamada ViewProp y una clase llamada ClassManager con un ClassProp propiedad. Supongamos que tenemos otra vista llamada SecondView.mxml con una propiedad SecondProp.

¿Es posible definir de alguna manera lo siguiente: siempre que el ViewProp cambia (en View.mxml) la ClassProp también se cambia en ClassManager, que a su vez refleja sus cambios en Secondview.mxml en propiedad SecondProp?!

Espero que esta vez a haber descrito correctamente!

Gracias de antemano

¿Fue útil?

Solución

Esto es un poco diferente a la primera pregunta.

Ver las clases no debe tener acceso a las clases del modelo directamente, y debido a que la clase View debe enviar un evento para cambiar la clase del modelo.

1.) Debe definir algún tipo de evento nuevo

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.) Cuando se ha cambiado el ViewProp en View.mxml, debe enviar un evento

dispatchEvent(new ViewPropIsChangedEvent(ViewPropIsChangedEvent.SET_NEW_VALUE, theNewValue))

3). En el eventmap debe controlar el evento

</EventHandlers type="{ViewPropIsChangedEvent.SET_NEW_VALUE}"> 
  <PropertySetter generator="{ClassManager}" 
                  targetKey="ClassProp" 
                  source="{event.value}"/>
</EventHandlers>

4.) En el ModelMap que ya debe vincular los Secondview.SecondProp a ClassManager.ClassProp

<Injectors target="{Secondview}">
   <PropertyInjector targetKey="SecondProp" 
                     source="{ClassManager}"
                     sourceKey="ClassProp"/>
</Injectors>

Otros consejos

¿Qué hay de la siguiente manera:

Cuando el ViewProp o el cambio ClassProp, esta propiedad distribuir un evento y se añade una EventListener en Secondview.mxml para modificar la propiedad SecondProp.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top