Buenas a todos !!!
Joseba :
No es necesario hacerlo Joseba, pero puedes hacerlo si quieres. Me
imagino que lo hago por "costumbre", y asi no posiciono el clip tras
cargarlo, pero como bien dices, no es obligatorio. En efecto, uso un
Loader :
private function loadElement(destino:MovieClip){
ldr = new Loader();
var urlReq:URLRequest = new URLRequest(mytheme);
ldr.load(urlReq);
destino.addChild(ldr);
ldr.contentLoaderInfo.addEventListener(Event.COMPLETE,
cargaCompleta);
}
Felipe :
Tengo la clase bien definida, el problema ya he visto de donde viene,
y es que yo intentaba referenciar mi clip con la tipica ruta de
puntos, pero por la historia esta de los DisplayContainer, no me
funcionaba, y estaba tomando otro clip diferente al que tiene la
clase linkada.
Al final, he tenido que cambiar bastante la cosa, pero ya lo tengo
funcionando. Lo que si pienso, que asi como AS3 ofrece muchas
ventajas y comodidades, tambien ofrece algunas "putadas" a las cuales
hay que acostumbrarse, pero es lo que comentamos, sera cuestion de
hacerse a ellas, ya se sabe, los humanos somos "maquinas de
costumbres" ...
Por cierto, una cosa bastante cabreante, es que el compilador no
respeta algunas cosas, las cuales ocurren en tiempo de ejecucion.
Intento explicarme :
Tengo tres clases, llamemosle A, B y C, las cuales, se ejecutan en
ese orden. Primero se instancia "A", en la cual obtengo mis settings
de la BD y los seteo en "B". La clase C, esta vinculada a un clip, y
se encuentra en un swf independiente ( es el que cargo ). Por ultimo,
"C" cuando se instancia, llama a "B", la cual ya tiene los datos que
previamente le pasó "A".
Hasta aqui perfecto, pero cuando compilas el swf donde esta "C", el
compiler te tira errores, avisandote de que tienes "objetos nulos", y
es que claro, "B" aun no tiene los datos que debe pasarle "A", pues
esto ocurre en tiempo de ejecucion.
Eso implica que tienes el compilador tirandote errores, que sabes que
no lo son, y si quieres que no te los tire, deberas ir dejando
algunos if por la clase "B" de manera que no te pase los datos si no
los tiene, aunque realmente esto no sea necesario.
¿ Alguna solucion para esto ?
Gracias a todos como siempre.
Salu2
Fede.
El 08/08/2007, a las 22:14, Felipe Meirelles escribió:
>
> Hola Fede,Sobre el problema del mensaje del compilador, ¿no habrás
> definido tu objeto como MovieClip y no como "LaClase" que extiende
> de MovieClip e implementa Theme_IF? Lo digo por que he probado
> compilar algo parecido con lo que tienes sin problemas, estoy
> usando FlashDevelop 3 con el Flex2 SDK. Al principio me costaba
> bastante cambiar el chip de AS1/AS2 a AS3, ahora no entiendo como
> he podido trabajar todo este tiempo sin AS3... :-)Saludos,Felipe
> Meirelles
> _______________________
> [EMAIL PROTECTED]
>> From: [EMAIL PROTECTED]> Date: Wed, 8 Aug 2007 16:25:53 +0200> To:
>> [email protected]> Subject: Re: [ASNativos] Donde esta mi Clip ??
>> > > Buenas de nuevo ! Ante todo, gracias por tu respuesta Cay.> Me
>> dispongo a soltarte la parrafada, para que entiendas mas o menos
>> > el entorno donde tengo el problema, pues en el primer mensaje
>> he > intentado explicarlo lo mas aislado y sencillo posible.> >
>> Os cuento :> > Estoy construyendo una aplicación online, la cual
>> es "skineable". > Estos skins, estan en sus swf correspondientes,
>> los cuales cargo en > un momento dado, a partir de los datos de
>> configuracion que obtengo > de mi BD.> > En este swf que contiene
>> los elementos del skin, cada mc tiene una > clase vinculada, la
>> cual a su vez implementa un interface.> > La primera traba viene,
>> que no hay identificadores de clips como > antes, y debes
>> instanciarlos por el nombre de su clase, hasta aqui > bien, pero
>> al estar en una biblioteca distinta a la del swf > principal, no
>> tira, y tras probar y leer de todo, no he dado con el > kit de la
>> cuestion asi que ahora, estoy cargando directamente cada >
>> elemento del skin, en un mc vacío dentro de mi swf principal.> >
>> Funcionar funciona, de hecho los tengo ya en el escenario, pero
>> una > vez instanciados necesito llamar un método definido en la
>> clase > vinculada, que a su vez esta declarado en el interface,
>> dicho metodo > ajusta su tamaño, color, y otras propiedades.> >
>> Estoy registrando mis elementos en una clase aparte >
>> ( singletoneada ), que es la encargada de estos menesteres :> >
>> public function setElements(cont:Theme_IF){> myContainers.push
>> (cont);> }> > Como veras, los recibo como elementos que
>> implementan la interface > ( Theme_IF ), pero ahora viene lo
>> gracioso, al llamar al metodo > correspondiente, el compilador me
>> tira el error de que no puede > convertir un elemento "MovieClip"
>> a "Theme_IF" ... El elemento en sí, > extiende de mc, e
>> implementa dicho interface.> > Haciendo pruebas y workarounds
>> varios, me di cuenta que accediendo > directamente al clip, si
>> funcionaba, pero en cuanto los cargo en su > mc vacio, pierdo
>> toda referencia a ellos, ya que como te comentaba, > el nuevo
>> sistema de Display hace cosas bastante raras, o mejor dicho, > no
>> se usarlo correctamente por lo que veo.> > Sigo con ello, pero de
>> verdad que esto es bastante cabreante, algo > que con AS2 se
>> hacia sobre la marcha, me esta haciendo perder > muuuucho
>> tiempo...> > ¿ Se os ocurre algo ?> > Salu2> > Fede.> > > El
>> 08/08/2007, a las 15:34, Cay escribió:> > > mira este codigo:> >>
>> > var A=new MovieClip();> > A.B=new MovieClip();> > A.addChild
>> (A.B);> > addChildA);> > trace(A.B);> >> > Tenemos A, y definimos
>> B como propiedad de A, asi, podriamos > > referirnos> > a B como
>> A.B.> > Es guarrisimo, pero lo uso para ilustrarte que ahora un mc
>> es una> > variable, que deberas registrar y conservar en alguna
>> parte para> > referirte a el... mediante sus
>> DisplayObjectContainers, solo podras> > buscar clips mediante
>> getChildAt, getChildByName, etc... osea, que si> > cargas un clip,
>> este clip deberia registrar a sus "hijos publicos" > > como> >
>> propiedades, para que desde tu peli padre puedas referirte a
>> ellos, en> > vez de bucear con getChilds....> > Igual te toca
>> replantearte algunas cosas.... digamos, como ejemplo un> > poco
>> burdo, que lo que cargas es un player mp3, y lo que quieres es> >
>> mover el slider de volumen... entonces en vez de hacer:> >
>> playermp3.interface.volumen.barra.cabezal.y=100;> > Pues
>> declararas una funcion setVolumen() dentro del player, y haces >
>> > algo> > asi:> > playermp3.setVolumen(40);> >> > Saludos, y
>> espero se entienda algo... o que alguien con mas > > experiencia>
>> > en AS3 pueda explicarlo mejor ^^> > Si quieres explicanos de
>> forma mas concreta lo que quieres hacer, y te> > damos un ejemplo
>> mas a medida ;)> >> >> > Fede Rivas escribió:> >> Continuando con
>> la "pelea" con AS3, me topé ayer con algo realmente> >>
>> "mosqueante"> >>> >> Antes, estaba claro como saber "donde" estaba
>> exactamente un mc.> >> Hacias un simple trace("this") y te
>> devolvia un sencillo> >> "_root.clip1.clip2.myclip" por poner un
>> ejemplo.> >>> >> Ahora, con el mismo trace, te devuelve " [object
>> MovieClip] "....> >>> >> Dando vueltas a la cosa, tienes tu
>> propiedad name, con la que> >> obtienes el nombre del clip, pero
>> nada más.> >>> >> He encontrado varias funciones, que se encargan
>> de obtener dicha> >> "ruta" del clip, pero parece haber un
>> problema. Esto no funciona en> >> un swf cargado, pues toma como
>> referencia su DisplayContainer, y no> >> te devuelve la referencia
>> de la ruta completa, unicamente la ruta del> >> clip dentro de ese
>> swf ....> >>> >> Todo esto viene, a que no puedo acceder a él, de
>> la manera habitual,> >> contenedor.myclip.x = lo q sea , ya que
>> probando, he visto que flash> >> interpone unas instancias de
>> pormedio, no entiendo porque, si ejecuto> >> el metodo que os
>> comento obtengo algo como :> >>
>> "contenedor.instance238.instance263.myclip"> >>> >> No se si he
>> conseguido explicarme correctamente, ya que la situacion> >> se me
>> hace realmente absurda ...> >>> >> Alguien ha encontrado una
>> solucion valida a este problema ?> >>> >> Trabajar con los
>> DisplayObjects, esta siendo un autentico> >> infierno ......
>> Imagino que sera cuestion de acostumbrarse ....> >>> >> Gracias de
>> antemano,> >>> >> Salu2!> >>> >> Fede.> >>> >>
>> -----------------------------------------------------> >>
>> ASNativos> >> www.5dms.com> >> subscripciones/desubscripciones> >>
>> http://asnativos.5dms.com> >>
>> -----------------------------------------------------> >>> >>> >>
>> >> > -----------------------------------------------------> >
>> ASNativos> > www.5dms.com> > subscripciones/desubscripciones> >
>> http://asnativos.5dms.com> >
>> -----------------------------------------------------> >> > >
>> -----------------------------------------------------> ASNativos>
>> www.5dms.com> subscripciones/desubscripciones> http://asnativos.
>> 5dms.com> -----------------------------------------------------
> _________________________________________________________________
> Express yourself instantly with MSN Messenger! Download today it's
> FREE!
> http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/
> -----------------------------------------------------
> ASNativos
> www.5dms.com
> subscripciones/desubscripciones
> http://asnativos.5dms.com
> -----------------------------------------------------
>
-----------------------------------------------------
ASNativos
www.5dms.com
subscripciones/desubscripciones
http://asnativos.5dms.com
-----------------------------------------------------