Come creare il modello di istanza che può essere condiviso nel corso di una componente (che può essere creato più di una volta)

StackOverflow https://stackoverflow.com/questions/2874429

Domanda

Sto cercando di creare una struttura modulare che alla fine dal vivo all'interno di un'altra ActionScript / applicazioni Flex. Sto usando Cairngorm in applicazione al di fuori e mi piacerebbe creare più di un'istanza di questo nuovo componente nella domanda interna. Cairngorm non funziona per la creazione di più componenti duplicati a causa della natura Singleton del modello.

Il componente Sto creando è un visualizzatore di pseudo video. Mi piacerebbe avere un modello condiviso all'interno di questa istanza del componente. Sto lottando con un modo per condividere un singolo modello all'interno del componente. Se uso il pattern Singleton, non posso creare più di un'istanza di questo componente. Se creo un 'istanza e lasciare che il make componente che non v'è una sola, poi ho difficoltà a passare il modello facilmente a tutti i componenti che lo vogliono. Questo è particolarmente difficile perché i componenti .mxml non possono avere un costruttore dove avrei passare nel modello.

Stavo pensando di avere ogni componente chiedere suo genitore per il modulo fino a quando un componente aveva. Ciò richiederebbe che ogni componente ha l'interfaccia implementata e si sente un po 'icky per me.

Qualcuno sa un modo per creare una variabile di istanza all'interno di un componente in modo che i componenti multipli possono essere create, ma anche condividere quel modello facilmente durante tale componente?

È stato utile?

Soluzione

La nuova release Swiz ( 1.0.0 ) ha la risposta a questa domanda. È ora possibile creare più di un'istanza di Swiz in un progetto e impostare una relazione genitore-figlio. La pagina di supporto del modulo è dove si spiegano meglio ( http: //swizframework.jira. com / wiki / display / Swiz / Modulo + supporto ), ma in realtà non è necessario utilizzare i moduli, qualsiasi relazione genitore-figlio funzionerà.

Basta ricordare che, al fine di mantenere ogni gestore di eventi di rispondere a un evento da una vista del bambino, è necessario impostare l'ambito EventHandler a livello locale, ad esempio:

[EventHandler( event="TestEvent.SAVE_USER_REQUESTED", scope="local")]
public function handleEvent(event:Event):void {
    //do stuff
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top