Comunidad de diseño web y desarrollo en internet online

Problema con function loadMovie

Citar            
MensajeEscrito el 25 Sep 2008 07:09 pm
Buenas noches!
Soy nueva en este foro, espero que me podáis ayudar.

Tengo un ejemplo de programación en el que la programación es la siguiente:
"function onClick(e:WaveEvent){
trace("number clicked: "+ e.num);"

Me interesaría que en vez de la función TRACE la función fuera loadMovie un .swf externo en un movieclipvacío ("container"). O sea en vez dela función TRACE del ejemplo, la función LOADMOVIE o GETURL.

Lo he intentado escribiéndolo del mil maneras distintas pero no me sale! Me aparecen cientocincuenta mil errores cada vez.

Me podéis ayudar?

Por monnica

21 de clabLevel



 

Barcelona (Spain)

firefox
Citar            
MensajeEscrito el 25 Sep 2008 07:37 pm
Ok, supongo que lo primero que intentaste es:

- Poner un MC vacío en el escenario con nombre de instancia holder.
- Cambiar el trace por:

_root.holder.loadMovie("algun.swf")

¿Que error te sale?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 28 Sep 2008 07:40 pm
Hola Jorge
Gracias por tu respuesta.
Mira,

Funciona la función:

function onClick(e:WaveEvent){
trace("number clicked: "+ e.num);

No funciona la función:

function onClick(e:WaveEvent){
_root.container.loadMovie("prueba.swf")

Y el error que aparece es:

Warning: 1060: Migration issue: The method loadMovie is no longer supported. Use var l = new Loader(); addChild(l); l.load(new URLRequest("your url"));. For more information, see the Loader and DisplayObjectContainer classes..

Qué raro, no? Qué puede ser? Si es muy simple lo que quiero hacer ...

Espero impaciente! Gracias de nuevo
SALU2
MON

Por monnica

21 de clabLevel



 

Barcelona (Spain)

firefox
Citar            
MensajeEscrito el 28 Sep 2008 07:59 pm
Si estás trabajando con AS3 no puedes utilizar AS2:

Lee bien lo que dice el error:

El método loadMovie ya no es soportado (por AS3), usa en su lugar var l = new Loader(); addChild(l); l.load(new URLRequest("your url"));. Para más información consulte las clases Loader y DisplayObjectContainer.


No podía estar más claro, inclusive te ha puesto el código que debes utilizar.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 29 Sep 2008 10:25 am
Algo así imaginaba ...
Por mis conocimientos se me escapaba un poco de las manos pero tienes razón está muy claro.

El código si quiero cargar en container la película prueba.swf debería escribirlo así?

function onClick(e:WaveEvent){
_root.container.l.load(newURLRequest"prueba.swf"));

Gracias por vuestra ayuda!

Por monnica

21 de clabLevel



 

Barcelona (Spain)

firefox
Citar            
MensajeEscrito el 29 Sep 2008 10:30 am
Algo así:

Código ActionScript :

l = new Loader(); 
addChild(l); 
l.load(new URLRequest("prueba.swf"));.


Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 29 Sep 2008 10:44 am
Jorge,
Perdona mi ignorancia pero dónde pongo la siguiente frase?
function onClick(e:WaveEvent){

O no es necesaria?

Por monnica

21 de clabLevel



 

Barcelona (Spain)

firefox
Citar            
MensajeEscrito el 29 Sep 2008 10:46 am
Eso nos lo presentas así:

Tengo un ejemplo de programación en el que la programación es la siguiente:

function onClick(e:WaveEvent){


Con lo cual no se absolutamente nada del contexto.
Pero si lo que dispara esto saca un trace y tu quieres que haga otra cosa, déjalo donde está

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 29 Sep 2008 11:13 am
Si, esta programación forma parte de un menú con efecto ola que, a modo de ejemplo, dispara un trace cuando clicas en sus botones para que se vea cómo funciona pero yo lo que quiero es que al clicar en los botones de ese menú no se dispare el trace y se dispare la carga del movie prueba.swf en un movie clip "container".
Así que creo que no puedo prescindir de la frase function onClick(e:WaveEvent){ porque es la que hace que el menú tipo ola funcione.

Por monnica

21 de clabLevel



 

Barcelona (Spain)

firefox
Citar            
MensajeEscrito el 29 Sep 2008 11:25 am
Correcto

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 29 Sep 2008 11:33 am
Esta tarde lo pruebo y te digo a ver si lo he escrito bien o no.
No tengo muy claro haber entendido cómo aunarlo todo.
Luego te digo ...
^^

Por monnica

21 de clabLevel



 

Barcelona (Spain)

firefox
Citar            
MensajeEscrito el 29 Sep 2008 02:02 pm
Bueno, bueno, ...

Tras probar varias cosillas he conseguido escribir esto:

function onClick(e:WaveEvent){
l = new Loader();
addChild(l);
l.load(new URLRequest("prueba.swf"));
}

AL hacer test movie el error que me aparece es:

1120: Access of undefined property l.

Bufffff, ahora sí que no se seguir.
Pero es que me resisto a abandonar, me he "picao".

Por monnica

21 de clabLevel



 

Barcelona (Spain)

firefox
Citar            
MensajeEscrito el 29 Sep 2008 02:06 pm
Cambia esta línea

var l:Loader = new Loader();

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 29 Sep 2008 02:17 pm
Funciona Jorge, funciona, funcionaaaaaaaaaaaaa!!!!!!!!!
Sólo una cosa más.
Ahora si aprieto los botones se descarga siempre prueba.swf, cómo podría hacer para si clico en un botón que se descarge prueba.swf, en otro botón prueba1.swf y en otro prueba3.swf

Qué genial!

Por monnica

21 de clabLevel



 

Barcelona (Spain)

firefox
Citar            
MensajeEscrito el 29 Sep 2008 02:19 pm
Eso ya forma parte de la lógica de tu menú. Supongo que en alguna parte tiene un XML donde carga opciones y donde puedes especificar parámetros, que puedes recuperar del evento .... busca instrucciones en lo que te bajaste

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 29 Sep 2008 02:21 pm
En la programación del menú-ola los botones se llaman así:

myWave.items = [new t1(),new t2(),new t3(),new t4(),new t5(),new t6()];

Por monnica

21 de clabLevel



 

Barcelona (Spain)

firefox
Citar            
MensajeEscrito el 29 Sep 2008 02:22 pm
El nombre de los botones no explica la lógica de tu menú

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 29 Sep 2008 04:38 pm
Gracias Jorge,
Voy a pelearme con ello.
Ya te contaré ....

Por monnica

21 de clabLevel



 

Barcelona (Spain)

firefox
Citar            
MensajeEscrito el 08 Oct 2008 06:22 am
Bueno, ya me he peleado.
He conseguido averiguar cómo se atribuye la función a cada botón del menú.

function onClick(e:WaveEvent){
var num = e.num
if(num ==0){
//este seria el primer link
// add code for button one here
}
if(num ==1){
//este sería el segundo link
// add code for button two here
}
}

Muchas, muchas gracias por anticipado!

En este caso cual sería el código que tendría que añadir a cada botón para que se descargara una película externa (utilizando AS3) ?

Por monnica

21 de clabLevel



 

Barcelona (Spain)

firefox
Citar            
MensajeEscrito el 08 Oct 2008 09:57 am

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 08 Oct 2008 10:18 am
Buenos días Jorge,

Pues en este código que escribo abajo tengo que añadir la función para descargar la película .swf externa y no sé cómo escribirlo, o sea como añadirlo aquí (donde pone "add code for button one here")

function onClick(e:WaveEvent){
var num = e.num
if(num ==0){
//este seria el primer link
// add code for button one here
}
if(num ==1){
//este sería el segundo link
// add code for button two here
}
}


Sería así?

function onClick(e:WaveEvent){
var num = e.num
if(num ==0){
var ldr:Loader = new Loader()
ldr.load(new URLRequest("algun.swf"));
addChild(ldr);

}

Buffff! Perdona por mis preguntas que te deben parecer tontas pero mis conocimientos, por el momento, no dan para más. Todo llegará ...

Por monnica

21 de clabLevel



 

Barcelona (Spain)

firefox
Citar            
MensajeEscrito el 08 Oct 2008 10:33 am
Si la idea es cargar y mostrar un swf llamado "algun.swf" la idea es correcta. Tip: siempre prueba, si no funciona, entonces preguntas

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 08 Oct 2008 10:51 am
ok, Jorge, pruebo y luego pregunto. :oops:
Esta tarde lo hago y te cuento.
Gracias por todo :wink:

Por monnica

21 de clabLevel



 

Barcelona (Spain)

firefox
Citar            
MensajeEscrito el 08 Oct 2008 02:09 pm
Buenaaaaaaaaaaaas!
Ya lo he probado y medio funciona. Abajo pongo el código.
Sólo tengo una cuestión más:
- cuando clico en el botón 1 me aparece prueba.swf
- cuando clico en el botón 2 me aparece prueba2.swf pero no desaparece prueba.swf.

El código que he puesto es el siguiente:

function onClick(e:WaveEvent){
var num = e.num
if(num ==0){
var ldr:Loader = new Loader()
ldr.load(new URLRequest("prueba.swf"));
addChild(ldr);

}

if(num ==1){
var ldr2:Loader = new Loader()
ldr2.load(new URLRequest("prueba2.swf"));
addChild(ldr2);


}
}

Gracias de nuevo.
MON :wink:

Por monnica

21 de clabLevel



 

Barcelona (Spain)

firefox
Citar            
MensajeEscrito el 08 Oct 2008 02:31 pm
Prueba haciendo

if(getChildAt(0) is Loader) removeChildAt(0)
addChildAt(ldr, 0);

En el segundo botón sería

if(getChildAt(0) is Loader) removeChildAt(0)
addChildAt(ldr2, 0);

Es decir quitas lo que haya en el nivel 0 si es un Loader y lo agregas en ese nivel.

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 08 Oct 2008 02:37 pm
Gracias Jorge, funciona.
Cuantos días llevo con esto no hubiera podido sin tu ayuda!

Por monnica

21 de clabLevel



 

Barcelona (Spain)

firefox
Citar            
MensajeEscrito el 14 Oct 2008 08:33 am
Buenos días! Al ataque de nuevo! Ahora es una consulta pero ya no una batalla! Poco a poco va saliendo!


El menú ya funciona perfectamente.
El problema es que cuando se carga la página cargo una película que se llama HOME.SWF, para ello pongo la programación siguiente y funciona bien:

var ldr:Loader = new Loader()
ldr.load(new URLRequest("home.swf"));
addChild(ldr);

El problema que tengo es que no sé cómo descargarla cuando se clicka en los botones del menú. O sea HOME.SWF se carga cuando se carga la página pero luego cuando clicas el primer botón debería descargarse y cargarse el .swf del primer botón. Ahora el resultado es que se descarga HOME.SWF pero no se descarga nunca y además se sobrepone al resto de contenidos.
Buuuuffffff.

La programación del botón es:

function goDown(e:WaveEvent){
var num = e.num
if(num ==0){
var ldr1:Loader = new Loader()
ldr1.load(new URLRequest("home.swf"));
addChild(ldr1);
if(getChildAt(0) is Loader) removeChildAt(0)
addChildAt(ldr1, 0);

}

Me echas una mano ....de nuevo?
Gracias!!!!!!!!!

Por monnica

21 de clabLevel



 

Barcelona (Spain)

firefox
Citar            
MensajeEscrito el 14 Oct 2008 10:42 am
En el botón lo agregas dos veces, debería decir

Código ActionScript :

function goDown(e:WaveEvent){
   var num = e.num
   if(num ==0){
       var ldr1:Loader = new Loader()
       ldr1.load(new URLRequest("home.swf"));
       if(getChildAt(0) is Loader) removeChildAt(0)
       addChildAt(ldr1, 0);
  }
} 


Recuerda darle formato a tu código

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 14 Oct 2008 11:05 am
oK, Jorge.
Ya he corregido el error me comentas pero el problema no se resuelve.
Es decir:
La película home.swf que se descarga al empezar la película no se descarga cuando clico los botones.
No sé qué frase debo añadir al código para que esto suceda.
Gracias ^^

Por monnica

21 de clabLevel



 

Barcelona (Spain)

firefox
Citar            
MensajeEscrito el 14 Oct 2008 11:28 am
Asegúrate que se cargue en el nivel 0

var ldr:Loader = new Loader()
ldr.load(new URLRequest("home.swf"));
addChildAt(ldr, 0);

Y tiene que estar en la misma de tiempo que los botones, es decir si está en la línea de tiempo principal en vez de en la línea de tiempo de los botones, se está cargando en un lugar distinto. Lo que puedes hacer es forzar la función para no agregar nada. Redeclara la función así:

Código ActionScript :

function goDown(e:WaveEvent = null){ 
   var num = e.num 
   if(num ==0){ 
       var ldr1:Loader = new Loader() 
       ldr1.load(new URLRequest("home.swf")); 
       if(getChildAt(0) is Loader) removeChildAt(0) 
       addChildAt(ldr1, 0); 
  } 
}  

//luego en vez de cargar home.swf, llamas a esta función
goDown()


Es decir, la idea es que no crees un nuevo Loader para cargar home, sino que lo hagas desde el botón que ya tienes

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.