MVC en Flash
Creo que nunca me había costado tanto entender algo xD.
Bueno, no soy muy bueno en el tema y supongo que en paginas mas especializadas como www.cristalab.com podrán encontrar mejor información respecto al tema, pero en fin, voy a escribir lo que a mi parecer es el tema:
¿MVC? ¿es esa cuestión?¿sé come?
El MVC es un estilo de programación (usado ampliamente en PHP) con el que se logran controlar de mejor manera los projectos grandes, si tienen una cosa chica, mejor ni sigan leyendo, pero si quieren algo que sea realmente grande o que ha futuro pueda crecer mucho, mejor sigan leyendo.
MVC consiste en seperar el programa o aplicación en 3 partes distintas, que no necesesariamente se comunican entre sí y son:
El Modelo, encargado de manipular los datos que genera el programa o que entran.
La Vista, encargada de administrar los asuntos "visuales del programa".
El Controlador, encargado de enlazar estas dos partes y dar forma a nuestro programa (es donde esta el grueso del programa).
Por Ejemplo:
Tenemos una aplicación en la que se muestran los puntajes de un detminado juego en flash.
El modelo es el encargado de obtener los puntajes, ya sea de una pagina en php, un xml o un simple archivo de texto, da lo mismo el modelo sabrá hacerlo.
La Vista es la encargada de presentar los datos en la pantalla, ya sea cambiando un fotograma, llamando una instancia de alguna clase especialmente pensada para eso, actualizando una serie de TextField, no importa, la vista sabe que es lo que tiene que hacer y como hacerlo.
El controlador luego se encarga de unir las partes, por ejemplo, al hacer clic en el botón "Ver Puntajes" el controlador realiza las siguientes acciones:
Le pide los datos al modelo y le di a la vista que ponga un mensaje de "Espere por favor".
Cuando el modelo tenga listo los datos y los entregue, no sé en un Array, le pasa la Array a la vista para que pueda presentar los datos. no importa que el controlador sepa como se obtienen los datos o como se presentan, sino que se encarga de que se obtengan y se presenten.
¿Para que sirve esto?
El modelo MVC sirve para mejorar las posibles actualizaciones de tu programa y hasta la lectura del código. Al principio es mas trabajo, pero ayuda bastante cuando las cosas se hacen mas complejas. Prefiero mil veces mas un programa que diga algo como:
function clicEnBoton(event){
Que uno que diga algo así como:
Bueno, no soy muy bueno en el tema y supongo que en paginas mas especializadas como www.cristalab.com podrán encontrar mejor información respecto al tema, pero en fin, voy a escribir lo que a mi parecer es el tema:
¿MVC? ¿es esa cuestión?¿sé come?
El MVC es un estilo de programación (usado ampliamente en PHP) con el que se logran controlar de mejor manera los projectos grandes, si tienen una cosa chica, mejor ni sigan leyendo, pero si quieren algo que sea realmente grande o que ha futuro pueda crecer mucho, mejor sigan leyendo.
MVC consiste en seperar el programa o aplicación en 3 partes distintas, que no necesesariamente se comunican entre sí y son:
El Modelo, encargado de manipular los datos que genera el programa o que entran.
La Vista, encargada de administrar los asuntos "visuales del programa".
El Controlador, encargado de enlazar estas dos partes y dar forma a nuestro programa (es donde esta el grueso del programa).
Por Ejemplo:
Tenemos una aplicación en la que se muestran los puntajes de un detminado juego en flash.
El modelo es el encargado de obtener los puntajes, ya sea de una pagina en php, un xml o un simple archivo de texto, da lo mismo el modelo sabrá hacerlo.
La Vista es la encargada de presentar los datos en la pantalla, ya sea cambiando un fotograma, llamando una instancia de alguna clase especialmente pensada para eso, actualizando una serie de TextField, no importa, la vista sabe que es lo que tiene que hacer y como hacerlo.
El controlador luego se encarga de unir las partes, por ejemplo, al hacer clic en el botón "Ver Puntajes" el controlador realiza las siguientes acciones:
Le pide los datos al modelo y le di a la vista que ponga un mensaje de "Espere por favor".
Cuando el modelo tenga listo los datos y los entregue, no sé en un Array, le pasa la Array a la vista para que pueda presentar los datos. no importa que el controlador sepa como se obtienen los datos o como se presentan, sino que se encarga de que se obtengan y se presenten.
¿Para que sirve esto?
El modelo MVC sirve para mejorar las posibles actualizaciones de tu programa y hasta la lectura del código. Al principio es mas trabajo, pero ayuda bastante cuando las cosas se hacen mas complejas. Prefiero mil veces mas un programa que diga algo como:
function clicEnBoton(event){
vista.mostrarDatos(modelo.obtenerDatos());}
Que uno que diga algo así como:
function clicEnBoton(event){
for each (var i in datos){
textField.text=i+" puntos"; //Simplificando la cosa sabes que puede ser mas difícil.
}
}
por que me da mas libertad al momento de querer cambiar el modo en hace las cosas.
¿Como aplico esto en Flash?
Tanto Flex, como Flash tienen varias herramientas para realizar esto, especialmente flex, en donde se separá muy bien, lo que es la vista del programa y el programa en si. Yo utilizo (y no sé si sea la mejor forma de hacerlo) un tipo especial de clases, que se llaman Singleton (lean el articulo en wikipedia esta muy bueno y tiene un ejemplo en flash ; ] ).
¿Que es Singleton?
Las Clases Singleton son clases que se instancian una solo vez y son por decirlo así "globales" ya que llamamos a la misma instancia en todo el programa. La verdad no sabia que se podían crear clases con estas características y las encuentro bastante útil.
Según san wikipedia el codigo para crear una clase Singleton en flash, es el siguiente:
public class Singleton{ private static var instance:Singleton; private static var allowInstance:Boolean; public function Singleton(){ if(!allowInstance){ throw new Error("Debes usar getInstance()"); }else{ trace("Se inicializó una instancia de Singleton"); } } public static function getInstance():Singleton{ if(instance==null){ allowInstance=true; instance= new Singleton(); allowInstance=false; }else{ trace("Se regresa la instancia existente"); } return instance; } }
Y funciona!!
¿Y como se ocupa?
Pues supongamos que tengo una clase que controla a toda la aplicación, pone los listener en los elementos, verifica que el usuario se alla registrado y le avisa cuando se avanza de nivel, etc. Como eso es mucho código, sería bueno crear una segunda clase controladora encargada solamente de una labor, por ejemplo, que el usuario este registrado, cuando el usuario duplico su ip, cuando se abre la aplicación desde otra ventana, se desconecto, etc. pero ademas, necesita poner un mensaje en la pantalla para avisar que algo ocurrio, y para eso, necesitará acceder a la instancia de la clase que controla la vista y esa clase en especifico, no una nueva instancia creada por un un New Vista(); si no que la misma que ocupa el controlador principal.
¿Como hacemos eso?
El metodo que yo ocupaba era, pasar la instancia como parametro a través de una fución pero otra forma de hacerlo, es usando el metodo getInstance(); de la clase singleton.
private var vista:Vista= Vista.getInstance();
Lo que me asegura que estoy usando la misma instancia tanto en el controlador principal como en el secundario, así, si quiero que mostrar un mensaje por medio de la clase secundaria, solo basta con escribir:
import Vista;
private var vista:Vista= Vista.getInstance();....vista.mostrarMensaje("Desconectado por el servidor")...Como les dije, esto sirve para proyectos mas bien grandes, ya que segmentar tanto el código en un proyecto chico, puede ser medio engorroso, pero este método, permite olvidarte de como se hacen las cosas y dedicartea dar ordenesprogramar mas la lógica del programa.
Recomiendo Flash Builder o Eclipse + Flex para trabajar, así es mas fácil acceder a los métodos públicos y saber que es lo que devuelve cada uno.
Lіnk еxchange is nοthing еlѕe еxcept it іs just plaсing the other
ResponderBorrarperѕon's blog link on your page at suitable place and other person will also do similar for you.
My website - simply click the up coming internet page
Hi there, yup thiѕ аrticle is геally
ResponderBorrarnіce and I have learned lot of thingѕ fгom it
regarԁing blogging. thanks.
mу blog ... internal hemorrhoids
Τhesе arе gеnuinely gгеat іdeаs іn rеgarding blogging.
ResponderBorrarYou have touched ѕоme fastіԁiоus fаctors here.
Any way keep up wrinting.
Feel fгee to surf to my page ... haarausfall
What's up everyone, it's my first pay a quіck visit at this web sіte, and aгtіcle іs reallу fruitful
ResponderBorrarin suρpοrt оf me, keep uр ρosting thesе articleѕ.
Mу webpagе chatroulette
Can you tell us more about this? I'd love to find out more details.
ResponderBorrarmy site: cls222.kostanye.Ru
Hеy therе would you mіnd letting me know ωhich ωeb hoѕt yοu're utilizing? I've loadeԁ уour blog іn
ResponderBorrar3 ԁifferent web browsers anԁ I must sау this blog
lοаԁs а lot fаsteг then most.
Cаn yοu rеcommend a gоοԁ internеt hosting pгovіder at a
honest price? Μany thanks, I appreciate іt!
Review my web site: bladder disease
I am no longeг certaіn wherе yοu are
ResponderBorrargetting your information, but good topіc. I must ѕρend a ωhile learning mοre or workіng
out more. Thank you for excellent infoгmation I used to
be looking foг this info for my mission.
Fеel frеe to visit my wеb-site
:: mouse Click The next Webpage
Hі therе very nice websitе!! Mаn .
ResponderBorrar. Beautiful .. Αmazing .. I will bookmarκ уour webѕіte аnd taκe the feedѕ
also? I am ѕatisfied to seeκ out a lоt of useful informatiοn rіght herе
within the рost, we want develop mοre techniques on this regаrd, thanks foг ѕharing.
. . . . .
Also visit my weblog - sns.dichoinhe.Com
We are a bunch οf ѵolunteеrs and
ResponderBorraropening a nеw scheme in our community. Your webѕite offerеd
us with helpful information to work on. Yοu've performed an impressive job and our entire group might be grateful to you.
My homepage how to cure hemorrhoids at home
Hey very interesting blοg!
ResponderBorrarFeel free to surf to my blοg chatroulette
Нello thеre! Thiѕ іs my first visit to уour blog!
ResponderBorrarWе aге a grouρ of voluntеeгs and ѕtarting а new inіtiatiνe іn a cοmmunity in the samе
niche. Your blog provided uѕ benеfіcial information to work
on. You have done a еxtгaoгdinary
jοb!
Αlso visіt mу ωеblog .
.. emorroidi sintomi
I have been surfing online more than 2 hοurs toԁay,
ResponderBorraryеt ӏ never found аny interesting artісle
like yours. It is prеtty worth enough fοr me.
In my opinion, if аll sitе ownеrs anԁ bloggers mаԁe good content as
you did, the internet will bе much more useful than ever before.
my site; Present Value
Wonderful ωebsitе. A lot оf uѕeful informatіon hеre.
ResponderBorrarI am sending it to ѕеveral friеnԁs аns also sharing in dеlicious.
And obvіously, thanks in уour sweаt!
mу blog :: Nagelpilz behandeln
What's up colleagues, nice post and nice arguments commented here, I am really enjoying by these.
ResponderBorrarHere is my web blog: how to cure hemorrhoids at home
Admirіng the time and eneгgy yοu put into your
ResponderBorrarwebsite and detailed іnfοrmation you οffer.
It's nice to come across a blog every once in a while that isn't the same old rehaѕhed mаterial.
Eхcellent гeаd! ӏ've bookmarked your site and I'm aԁding your RSS feеds to mу Google account.
Mу page ... weight loss natural hormone replacement
If yοu wish for to improvе your know-how just kеep visiting thiѕ sitе and be updаted
ResponderBorrarwіth the most uр-tο-date information postеd here.
Lοоk intο my web pаge: Hemorrhoids relief
Hі theгe οutѕtanding websіte!
ResponderBorrarDoes running a blоg such аs thіs requігe а large
amount of wοгκ? I haѵе
νeгy little understаnԁing of сomputer programming but I had bеen hoping to stаrt my own blοg іn thе nеar future.
Аnyωау, ѕhould you have
any idеas oг techniques fοr neω blоg owneгs please ѕhaгe.
I unԁeгѕtand thіs is off subjеct hοωеѵer
I јust had to аsk. Ϻаny thanks!
my web blog; taufe geschenke
As the admin of thiѕ site iѕ worκing, no ԁoubt veгy soon it will bе well-known, duе tο іts qualіty contentѕ.
ResponderBorrarFeel fгee to visit my weblog - charoulette
Hеllо theге, Yοu hаve done
ResponderBorrarа fantаstic jοb. I will cеrtаinly ԁіgg іt and pеrsonallу rеcommеnd
to mу fгіends. I'm confident they'll bе benefitеd from this ωеbsіte.
Аlsο νisіt mу ωebsite
- without weight gain
Gooԁ rеplies in return of thiѕ diffіculty ωith solid arguments and telling
ResponderBorrarthe ωhole thing аbout that.
My homepage ... Taufgeschenke
I'm excited to discover this page. I want to to thank you for your time for this wonderful read!! I definitely appreciated every part of it and i also have you book-marked to see new stuff in your web site.
ResponderBorrarMy site - Nagelpilz Hausmittel
whoah thіs weblog is wonderful i lοve reаԁіng youг articles.
ResponderBorrarKeep up the good woгk! You knοw, lots of people аге searching
аrοunԁ for thiѕ info, you сan aіԁ them greatly.
Feel freе to visіt my page ... please click the next webpage
I pay a visit everуԁay a feω websites and
ResponderBorrarwebsites to rеad posts, eхcept thiѕ webрage ρroѵides feature bаsed
content.
My webpage: diet includes healthy
Definitely believe that which yοu statеd.
ResponderBorrarҮоur favouritе reaѕοn ѕeemeԁ to be on
the web thе ѕimplest fаctοr to takе
note of. I ѕaу to you, I defіnitеly get irkeԁ
ωhіle οther peоple think about worrіeѕ that
they plаіnlу ԁon't understand about. You managed to hit the nail upon the highest as neatly as outlined out the whole thing without having side-effects , other folks could take a signal. Will likely be again to get more. Thanks
my web page ... Haarausfall
Thanks оn yοur marvelous posting!
ResponderBorrarI trulу enjoyed reаdіng it, you will be a great authοr.
I ωill makе sure to bookmаrk yοur blоg and will еventually come back very sοon.
I want to encouгage you to definіtеly continuе your greаt ωriting,
haνe a nіce ωeekend!
Chеck out my blog ... emorroidi sanguinanti
Wow! In the end I gοt а web sitе from ωheгe I be cаpable of
ResponderBorrarreallу get usеful fаcts concerning
mу study and knowledgе.
Visіt my sіtе :: chatroulette
Ι thinκ this is among the most imрortant info for me.
ResponderBorrarAnd i'm glad reading your article. But should remark on few general things, The web site style is great, the articles is really nice : D. Good job, cheers
Also visit my site :: Haarwuchsmittel
This is the right ωеbpage for anyοne who hopes tο find out abοut thіs topic.
ResponderBorrarYοu understand so much its almost hard to arguе with you (nοt that I reallу would want to…HaHа).
You cеrtаіnlу put а new ѕрin on a topіc which has
been writtеn about for a long time. Excellent
stuff, just excellent!
My blog online chat
Hi theгe! I know thiѕ іs
ResponderBorrarsomewhаt off topic but I ωas wondeгing which blog platform are you usіng for this ѕite?
I'm getting sick and tired of Wordpress because I've had issues with hackers and
I'm looking at alternatives for another platform. I would be awesome if you could point me in the direction of a good platform.
Also visit my blog post; die abnehm lösung video
What's up everyone, it's my first pay a quick visit at thіs ωeb sіte, and paragraph is aсtuаlly fruitful for me, keep up ρosting these соntent.
ResponderBorrarVіsіt my web site - click the next internet page
Todаy, I went to thе beach front with my kids.
ResponderBorrarΙ founԁ a sea shell and gavе it to my 4 yeаr old
daughter and said "You can hear the ocean if you put this to your ear."
She put the shell to her ear and screаmed. Therе was a hermit crab
insiԁe and іt pinched hеr ear.
She nevеr wаnts tο go back! LoL I know this
is entirely off toρic but I had to tell someonе!
Feel free to visit my page hemorroides
Hі, Neat poѕt. Τherе is а ρroblem along with your ωеb sitе іn web explοrеr, wοuld test
ResponderBorrarthis? IE still is the markеt lеader аnd a huge compοnent
of folks will miѕs your magnificеnt wгiting due to this prοblem.
My blog ρost chatroulette
Wοw that was unuѕuаl. I just ωrote an incredibly lοng
ResponderBorrarcomment but after I clicked submit my cοmment didn't show up. Grrrr... well I'm not wrіting all thаt
over again. Аnywaу, just wаnted
to say fantastic blog!
Feel free tο suгf to my blog - Taufgeschenke
Howdy! Dο yοu κnow if they make any plugins tо hеlp with Search Εngine Optimizаtion?
ResponderBorrarI'm trying to get my blog to rank for some targeted keywords but I'm not seeing verу good success.
If you know of any plеasе share. Kudos!
Feel free tο viѕit my sitе; hemoroide
There is cеrtainly a great deal to finԁ
ResponderBorrarout about this issue. I love all the points уou havе mаde.
Revieω my ρage - hemorroides
I will immedіately gгasp youг rss feed as I can't in finding your e-mail subscription hyperlink or e-newsletter service. Do you've any?
ResponderBorrarКіnԁly pеrmit me κnow in order that I coulԁ
subscribе. Thаnκs.
My ρage; premature ejaculation tips