Te lo agradezco mucho xleon, pero sobrepasa mis conocimientos de As, intentare
buscar alguna otra manera más sencilla que pueda comprender.
Gracias.> From: [EMAIL PROTECTED]> To: asnativos@5dms.com> Date: Mon, 26 Nov
2007 19:59:07 +0100> Subject: Re: [ASNativos] efecto de carga de secciones> > Y
hablando de este tema, me gustaria saber otras opiniones sobre cómo hacer> esto
de la mejor manera, ya que esta es una forma que aprendí a base de> palos y
nunca he visto ejemplos prácticos buenos para construir la> navegación
principal de una web (estamos hablando de oop claro).> > Un saludo> > >
-----Mensaje original-----> > De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
En> > nombre de xleon> > Enviado el: lunes, 26 de noviembre de 2007 19:49> >
Para: 'Lista dedicada a Actionscript'> > Asunto: Re: [ASNativos] efecto de
carga de secciones> > > > Por cierto, los eventos "onTransicion" y
"onFinTransicion" me han sido muy> > útiles para varias cosas, entre ellas,
inutilizar un menú principal> mientras> > se está entrando o saliendo de una
sección.> > > > > -----Mensaje original-----> > > De: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] En> > > nombre de xleon> > > Enviado el: lunes, 26 de
noviembre de 2007 19:41> > > Para: 'Lista dedicada a Actionscript'> > > Asunto:
Re: [ASNativos] efecto de carga de secciones> > >> > > Te lo podría explicar
con mas detalle pero con el código creo que lo> verás> > > sencillito:> > > Te
pongo mi clase "Semáforo" y luego la clase "Pantalla" (lo mismo que> una> > >
sección), que es genérica. Normalmente no hace gran cosa. La utilizo> para> > >
extender de ella, pero por lo menos tiene implementados los métodos de> > >
mostrar() y ocultar(). ¿por qué tiene implementado un sistema de eventos> > al>
> > mostrar y ocultar? Pues eso me sirve para poder hacer animaciones con> > >
twinings, etc de cada sección y una vez terminado avisamos al semáforo> de> > >
que esto ha ocurrido...> > >> > >> > > /**> > > * Esta clase controla la
aparición y desaparición de pantallas o> > secciones.> > > Vínculando estas de
manera que solo se puede mostrar una al mismo tiempo> > > * Si se le ordena
mostrar una pantalla, primero ocultará la que se> > mostraba> > > anteriormente
esperando su evento "onOcultado", y luego mostrará la> nueva> > > *> > > *
@author Diego Ponce de León> > > * @version 0.1> > > */> > > import
net.xleon.utils.Delegate;> > > import com.gskinner.events.GDispatcher;> > >> >
> class net.xleon.ui.logica.Semaforo {> > >> > > private var dispatchEvent :
Function;> > > public var addEventListener : Function;> > > public var
removeEventListener : Function;> > > public var removeAllEventListeners :
Function;> > >> > > private var pantallas:Array;> > >> > > public function
Semaforo(_pantallas:Array) {> > > GDispatcher.initialize(this);> > > pantallas
= new Array();> > > if(_pantallas){> > > for(var i:Number=0;
i<_pantallas.length; i++){> > > if(add_pantalla(_pantallas[i]) == false )> > >
trace("Semaforo: no se puede agregar la pantalla> > >
"+_pantallas[i].toString()+" mas de una vez");> > > }> > > }> > > }> > > public
function add_pantalla(_pantalla:Object):Boolean{> > > var
pantalla_agregada:Boolean = true;> > > for(var i:Number=0; i<pantallas.length;
i++){> > > if(pantallas[i] == _pantalla) pantalla_agregada => > > false;> > >
}> > > if(pantalla_agregada) pantallas.push(_pantalla);> > > return
pantalla_agregada;> > > }> > > public function tracear_pantallas():Void{> > >
trace("===== Pantallas de la aplicación ===============");> > > for(var
i:Number=0; i < pantallas.length; i++){> > > trace(pantallas[i].toString()+" =>
mostrandose => > > "+pantallas[i].mostrandose_ahora);> > > }> > > trace("=====
Fin de Pantallas ===============");> > > }> > > public function
mostrar_pantalla(_pantalla:Object):Void{> > > //trace("mostrando pantalla");> >
> dispatchEvent({type:"onTransicion"});> > > if(get_mostrandose_ahora()!=
null){> > > get_mostrandose_ahora().removeAllEventListeners();> > >
_pantalla.addEventListener("onMostrado",> > > Delegate.create(this,
this.finTransicion));> > >> > >
get_mostrandose_ahora().addEventListener("onOcultado",> > >
Delegate.create(_pantalla, _pantalla.mostrar) );> > >
get_mostrandose_ahora().ocultar();> > > }> > > else {> > >
_pantalla.addEventListener("onMostrado",> > > Delegate.create(this,
this.finTransicion));> > > _pantalla.mostrar();> > > }> > > }> > > private
function finTransicion():Void{> > > dispatchEvent({type:"onFinTransicion"});> >
> }> > > public function ocultar_actual():Void{> > >
get_mostrandose_ahora().removeAllEventListeners();> > >
get_mostrandose_ahora().ocultar();> > > }> > > public function
get_mostrandose_ahora():Object{> > > for(var i:Number=0; i<pantallas.length;
i++){> > > if(pantallas[i].mostrandose_ahora==true) {> > > return
pantallas[i];> > > }> > > }> > > return null;> > > }> > > public function
getPantallas():Array{> > > return pantallas;> > > }> > > public function
toString():String{> > > return "Semaforo";> > > }> > > }> > >> > >> > >> > >> >
> /**> > > * Clase con las funciones básicas de una pantalla.> > > * Crear
vista, mostrar, ocultar> > > * @author Diego Ponce de León> > > * @version 0.1>
> > */> > > import com.gskinner.events.GDispatcher;> > > //import
net.xleon.utils.Delegate;> > >> > > class control.pantallas.Pantalla {> > >
private var dispatchEvent : Function;> > > public var addEventListener :
Function;> > > public var removeEventListener : Function;> > > public var
removeAllEventListeners : Function;> > >> > > private var scope:MovieClip;> > >
public var vista:MovieClip; // es una instancia en el escenario de> > >
ui.pantallas.Configuracion, aunque diga MovieClip, sirve igual> > > public var
vinculacion:String; // nombre de vinculación en la> > > libreria, de la ui que
será manejada por esta pantalla> > > public var mostrandose_ahora:Boolean =
false;> > > private var se_habia_mostrado:Boolean = false;> > > /*> > > *
@scope: el ámbito donde vamos a atachar la pantalla> > > * @vinculacion: el
nombre de clip vinculado en la libreria> > > perteneciente a esta pantalla> > >
*/> > > public function Pantalla(_scope:MovieClip, _vinculacion:String) {> > >
GDispatcher.initialize(this);> > > scope = _scope;> > > vinculacion =
_vinculacion;> > > set_ui();> > > }> > > /* Coloca solo una vez la ui en el
scope */> > > private function set_ui():Void{> > > vista =
scope.attachMovie(vinculacion, vinculacion,> > >
scope.getNextHighestDepth(),{_visible:false});> > > }> > > public function
mostrar(terminado:Boolean):Void{> > > if(terminado) {> > > mostrandose_ahora =
true;> > > se_habia_mostrado = true;> > > dispatchEvent({type:"onMostrado"});>
> > //trace("mostrada: "+toString())> > > return;> > > }> > > vista._visible =
true;> > > // Animaciones para mostrar y luego:> > > mostrar(true); //
logicamente esto habrá que llamarlo desde> > > otro método o por ejemplo un
callback de un twining> > > }> > > public function
ocultar(terminado:Boolean):Void{> > > if(terminado){> > > vista._visible =
false;> > > mostrandose_ahora = false;> > >
dispatchEvent({type:"onOcultado"});> > > //trace("ocultada: "+toString())> > >
return;> > > }> > > // Animaciones para ocultar y luego:> > > ocultar(true); //
logicamente esto habrá que llamarlo desde> > > otro método o por ejemplo un
callback de un twining> > > }> > > public function toString():String{> > >
return "control.pantallas.Pantalla";> > > }> > > }> > >> > >> > >> > > >
-----Mensaje original-----> > > > De: [EMAIL PROTECTED] [mailto:[EMAIL
PROTECTED] En> > > > nombre de sergio arranz> > > > Enviado el: domingo, 25 de
noviembre de 2007 23:37> > > > Para: Lista dedicada a Actionscript> > > >
Asunto: Re: [ASNativos] efecto de carga de secciones> > > >> > > >> > > >
Buenas, lo que tengo es parecido a lo que dice xleon, tengo las> > secciones> >
> en la> > > > biblioteca y las cargo con un con un for, todo eso me va bien,
pero no> > > entiendo bien lo> > > > de la clase semaforo que me indicas, estoy
un poco pez todavia en el> > tema> > > de las> > > > clases, como bien dices lo
veo un poco lioso. > From:> [EMAIL PROTECTED]>> > > To:> > > >
asnativos@5dms.com> Date: Sun, 25 Nov 2007 23:12:00 +0100> Subject:> Re:> > > >
[ASNativos] efecto de carga de secciones> > Yo hace mucho lo hacia> así.> > >
Pero un dia> > > > descubrí que es mucho más facil> incluir todas las secciones
en la> > > biblioteca en clips.> > > > Cada sección tiene> los contenidos
principales, excepto cosas que> pesen> > > mucho, que> > > > precargo al>
entrar en la sección. > Luego tengo una clase "semáforo"> > que> > > controla
la> > > > aparición y desaparición de> todas las secciones. Cada sección>
extiende> > de> > > una clase> > > > "Sección" que cumple> las funciones
básicas. La función "mostrar()"> > anima> > > la sección> > > > y la> precarga.
Cuando esta fase termina manda un evento que es> recogido> > > por la>> > > >
clase "semáforo" avisando de que ya está cargada y mostrandose. > La> > clase>
> > principal> > > > de la aplicación instancia cada una de las secciones nada>
más> > inicializar> > > y las oculta,> > > > dejándolas preparadas para
mostrarse u> ocultarse más adelante.>> Parece> > un> > > lío> > > > todo esto
pero es la forma más sencilla que he encontrado a lo> largo> de> > > muchos> >
> > quebraderos de cabeza.> > > -----Mensaje original-----> > De:> asnativos->
> > > [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] En> > nombre de> > > Fede> >
> > Rivas> > Enviado el: domingo, 25 de noviembre de 2007 19:54> > Para:> >
Lista> > > > dedicada a Actionscript> > Asunto: Re: [ASNativos] efecto de carga
de> > > secciones> >> > > > > > Buenasss. Pues bien, depende un poco de como
tengas montadas las>> >> > > cosas.> > > > Yo es un efecto que suelo usar, y lo
hago de la siguiente forma :> > >> >> > > Uso el tipico> > > > swf como "base",
en el cual tengo el clip vacío donde> > voy a ir> > cargando> > > todas las> >
> > secciones. Esto lo controla el preloader> > de turno, que en mi caso> son>
> > un par de> > > > clases y un clip. Solo uso un> > preloader, el cual se
encarga de> todo,> > y> > > es el que> > > > controla la carga /> > descarga.
Cuando cargo un swf nuevo, el propio> > > preloader,> > > > hace> > desaparecer
el anterior. Aqui tienes dos opciones, una hacer> > una>> > > >> > > >
"desaparicion rapida", en plan facil, le metes un tween al alpha> >> > >
mismamente, o> > > > bien hacerte una "desaparcion ordenada" donde los> >
elementos se> > marchan> > > > ordenadamente, segun te interese.> > > > Si
eliges la opcion dificil,> la> > > animacion es> > > > "a mano" y yo tengo por>
> norma que dure muy pocos frames ( unos 50> en> > > una peli> > > > de 30fps
),> > suelo colocar un frame etiquetado, para dar un> > gotoAndPlay> > >
directo>> > > > > ahi. De esta forma ( durando pocos frames ), hay una ventaja>
>> > > indirecta. Cuando> > > > llamas al loader para cargar la peli nueva,
haces> > justamente la> > > descarga, y por> > > > poco que pese la nueva
seccion, tardara> > unos segundos en aparecer> > para> > > "pisar"> > > > la
antigua, tiempo mas que> > suficiente para que la animacion de> salida> > >
terminara.> > > > Por el> > contrario, si la salida es muy lenta, pasa que el
loader> pisa> > al> > > swf> >> > > > antiguo con el nuevo, sin haber terminado
la desaparicion, pudiendo> >> > > apreciar> > > > claramente el "corte". Es
viable, pero mucho mas follonero,> > tener> que> > > notificar al> > > > loader
del termino de la descarga, para iniciar> > la otra carga.> > >> >> > > Bueno,
solo> > > > es una idea de planteamiento, pero asi la suelo hacer.> > > > Si>
tienes> > un> > > problema> > > > ya mas concreto con algo, nos comentas. :)> >
> > Salu2!> > > > Fede.>> >> > >> > > > El> > > > 25/11/2007, a las 14:20,
sergio arranz escribió:> > > > >> > > Buenos> > días> > > lista, os> > > >
quería comentar si me podríais indicar un poco> > > como hacer un> efecto> > >
al cargar> > > > las secciones de una web. El efecto> > > es tipico pero no se
como> > > hacerlo: cuando> > > > cargas una sección te> > > aparecen los
elementos de esa sección, pero> > > cuando> > > > cargas o pinchas> > > en otro
boton para que se abra otra sección los> > > elementos de> > > > la> > >
sección anterior desaparecen con un efecto de movimiento u> otro,> > > y> > >>
> > > una vez desaparecidos los elementos de la sección anterior aparecen> >>
>> > > los de la> > > > nueva sección. Si me podríais indicar como se puede
hacer,> > > o si> hay> > > algún> > > > enlace para saber como hacerlo paso por
paso os lo> > > agradecería.>> >> > >>> > > > >>> > > > > > Saludos.> > >> > >
>> > _________________________________________________________________>> > > >>
> > > > Tecnología, moda, motor, viajes,…suscríbete a nuestros boletines> >> >>
> > para estar> > > > a la última> > >> >> > > >> > >> >
http://newsletters.msn.com/hm/maintenanceeses.asp?L=ES&C=ES&P=WCMaintenan> > >
> > > ce&Brand=WL&RU=http%3a%2f%2fmail.live.com> > >> > >
---------------------------> > > > --------------------------> > > ASNativos> >
> www.5dms.com> > >> > > > subscripciones/desubscripciones> > >
http://asnativos.5dms.com> > >> > > --------------> > > >
---------------------------------------> > >> > > > > >> > >
-----------------------------------> > > > ------------------> > ASNativos> >
www.5dms.com> >> > > > subscripciones/desubscripciones> >
http://asnativos.5dms.com> >> > > --------------------> > > >
---------------------------------> > > > No virus found in this> incoming> > >
message.> >> > > > Checked by AVG Free Edition.> > Version: 7.5.503 / Virus
Database:> > > 269.16.6/1150 -> > > > Release Date:> 24/11/2007 17:58> > > > No
virus found in this outgoing> > > message.>> > > > Checked by AVG Free Edition.
> Version: 7.5.503 / Virus Database:> > > 269.16.6/1150 -> > > > Release Date:
24/11/2007> 17:58> > > > >> > > --------------------------------------------> >
> > ---------> ASNativos> www.5dms.com> subscripciones/desubscripciones>> > > >
http://asnativos.5dms.com>> > >
-----------------------------------------------------> > > >
_________________________________________________________________> > > >
Tecnología, moda, motor, viajes,…suscríbete a nuestros boletines para> > >
estar a la> > > > última> > > >> > >> >
http://newsletters.msn.com/hm/maintenanceeses.asp?L=ES&C=ES&P=WCMaintenan> > >
> ce&Brand=WL&RU=http%3a%2f%2fmail.live.com> > > >
-----------------------------------------------------> > > > ASNativos> > > >
www.5dms.com> > > > subscripciones/desubscripciones> > > >
http://asnativos.5dms.com> > > >
-----------------------------------------------------> > > >> > > > No virus
found in this incoming message.> > > > Checked by AVG Free Edition.> > > >
Version: 7.5.503 / Virus Database: 269.16.7/1151 - Release Date:> > >
25/11/2007 16:24> > > >> > >> > > No virus found in this outgoing message.> > >
Checked by AVG Free Edition.> > > Version: 7.5.503 / Virus Database:
269.16.7/1151 - Release Date:> > 25/11/2007> > > 16:24> > >> > >> > >> > >> > >
-----------------------------------------------------> > > ASNativos> > >
www.5dms.com> > > subscripciones/desubscripciones> > >
http://asnativos.5dms.com> > >
-----------------------------------------------------> > >> > > No virus found
in this incoming message.> > > Checked by AVG Free Edition.> > > Version:
7.5.503 / Virus Database: 269.16.7/1151 - Release Date:> > 25/11/2007 16:24> >
>> > > > No virus found in this outgoing message.> > Checked by AVG Free
Edition.> > Version: 7.5.503 / Virus Database: 269.16.7/1151 - Release Date:>
25/11/2007> > 16:24> > > > > > > > > >
-----------------------------------------------------> > ASNativos> >
www.5dms.com> > subscripciones/desubscripciones> > http://asnativos.5dms.com> >
-----------------------------------------------------> > > > No virus found in
this incoming message.> > Checked by AVG Free Edition.> > Version: 7.5.503 /
Virus Database: 269.16.7/1151 - Release Date:> 25/11/2007 16:24> > > > No virus
found in this outgoing message.> Checked by AVG Free Edition. > Version:
7.5.503 / Virus Database: 269.16.7/1151 - Release Date: 25/11/2007> 16:24> > >
> > -----------------------------------------------------> ASNativos>
www.5dms.com> subscripciones/desubscripciones> http://asnativos.5dms.com>
-----------------------------------------------------
_________________________________________________________________
Tecnología, moda, motor, viajes,…suscríbete a nuestros boletines para estar a
la última
http://newsletters.msn.com/hm/maintenanceeses.asp?L=ES&C=ES&P=WCMaintenance&Brand=WL&RU=http%3a%2f%2fmail.live.com
-----------------------------------------------------
ASNativos
www.5dms.com
subscripciones/desubscripciones
http://asnativos.5dms.com
-----------------------------------------------------