Comunidad de diseño web y desarrollo en internet online

as2 y as3

Citar            
MensajeEscrito el 08 Sep 2009 11:08 pm
Hola!!

Tengo una duda con respecto a as2 y as3.

El caso es q he hecho una peli con Flas 8 y as2, en la q a un botón le he puesto este código:

Código ActionScript :

on(release){
_root.efecto.gotoAndPlay(2);
_global.peli = 1;
}


para q me aparezca un efecto y luego la peli1. Esta peli1 q quiero q se cargue resulta q la he hecho con Flash CS4 y as3. Lo he probado y la peli1 se carga pero no funciona nada de lo q hay en ella (q son un par de botones)...

¿Esto ocurre por algún tipo de incompatibilidad? ¿o se puede solucionar?

Gracias!

Por natig

76 de clabLevel



 

msie7
Citar            
MensajeEscrito el 08 Sep 2009 11:54 pm
Un SWF compilado con AS2 no es capaz de leer un SWF compilado con AS3, al revés si es posible.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 09 Sep 2009 08:55 am
Ok, gracias.

¿Y alguien sabría cómo hacer esto en as3?

Código ActionScript :

on(release){ 
_root.efecto.gotoAndPlay(2); 
_global.peli = 1; }


Es para q al dar clic en un botón aparezca un efecto concreto de transición (un papel q se desenrrolla) y luego la peli correspondiente. Esto lo he hecho para el menú de mi web.

Gracias!

Por natig

76 de clabLevel



 

msie7
Citar            
MensajeEscrito el 09 Sep 2009 09:51 pm
Mira este post, te puede servir.
Por lo demás en AS3 no existe global, así que tendrás que crear una variable en el scope donde está el código y por otro lado en AS3 no se puede programar encima de los objetos, si no vas a utilizar la document class entonces programa en el frame donde se encuentren los objetos:

Código ActionScript :

var peli:uint;

tuboton.addEventListener(MouseEvent.CLICK, reproducir);

function reproducir(evt:MouseEvent):void{

    this.efecto.gotoAndPlay(2);
    peli = 1;

}

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 09 Sep 2009 11:25 pm
Hola!!

Muchas gracias!!

Acabo de probar con ese código. Cuando doy al botón sale el efecto del papel, pero luego no carga la peli1, ¿por qué?

En as2 en el último fotograma del clip "efecto" puse esto:

Código ActionScript :

contenedor.loadMovie("peli"+_global.peli+".swf"); 


y un mc vacío llamado contenedor, para q la peli1 se cargara ahí...

Ayúdame, por favor.

Un beso!

Por natig

76 de clabLevel



 

msie7
Citar            
MensajeEscrito el 10 Sep 2009 12:24 am
amiga, estas confundiendo tanto codigo en AS2 como con AS3.
esto:

Código ActionScript :

contenedor.loadMovie("peli"+_global.peli+".swf");  //esta en AS2


en AS3, seria:

Código ActionScript :

var contenedor:Loader=new Loader();
contenedor.load(new URLRequest("peli"+_global.peli+".swf"))
addChild(contenedor);


trata de solo utilizar un lenguaje y no dos o partes de cada uno, ya que sino habra muchas inconcordancias.
saludos

Por bubudrc

Claber

591 de clabLevel

1 tutorial

 

mayo 2006

firefox
Citar            
MensajeEscrito el 10 Sep 2009 09:10 am
Buenas, gracias por la respuesta!

Yo no había mezclado lenguajes...sólo puse en el frame donde está el botón el código q me dijeron:

Código ActionScript :

var peli:uint; 
 
tuboton.addEventListener(MouseEvent.CLICK, reproducir); 
 
function reproducir(evt:MouseEvent):void{ 
 
    this.efecto.gotoAndPlay(2); 
    peli = 1; 
 
} 


Y comenté q funcionaba pero q no cargaba la peli1, y para orientaros dije q en el caso de as2, a parte de poner en el botón esto:

Código ActionScript :

on(release){  
_root.efecto.gotoAndPlay(2);  
_global.peli = 1; }


Ponía en el último frame del efecto esto:

Código ActionScript :

contenedor.loadMovie("peli"+_global.peli+".swf");


Todo ello en as2. Y lo decía por si en as3 faltaba poner algo más a parte de lo q ya me dijeron...

Entonces, este código:

Código ActionScript :

var contenedor:Loader=new Loader(); 
contenedor.load(new URLRequest("peli"+_global.peli+".swf")) 
addChild(contenedor); 


Lo pongo además de este:

Código ActionScript :

var peli:uint; 
 
tuboton.addEventListener(MouseEvent.CLICK, reproducir); 
 
function reproducir(evt:MouseEvent):void{ 
 
    this.efecto.gotoAndPlay(2); 
    peli = 1; 
 
} 

??? Y dónde lo pongo??

Muchas gracias!

Por natig

76 de clabLevel



 

msie7
Citar            
MensajeEscrito el 10 Sep 2009 12:05 pm
Por cierto, si en as3 no existe _global, ¿por qué me lo has puesto en ese código?...de hecho lo he probado y no funciona!

Por natig

76 de clabLevel



 

msie7
Citar            
MensajeEscrito el 11 Sep 2009 09:29 am
No me dejéis con la intriga!! por Dios!

Por natig

76 de clabLevel



 

msie7
Citar            
MensajeEscrito el 11 Sep 2009 07:43 pm
En AS3 no existe global (por suerte), @bubudrc sólo tuvo una confusión al tratar de explicarte, eso le ocurre a cualquiera cuando escribe código aquí en el foro, no ha sido a propósito. Si intentas de dentro del MovieClip efecto acceder a la variable entonces declárala dentro del MovieClip:

Código ActionScript :

tuboton.addEventListener(MouseEvent.CLICK, reproducir);  
  
function reproducir(evt:MouseEvent):void{  
  
    this.efecto.peli = 1; 
    this.efecto.gotoAndPlay(2);
  
}  


Y dentro de efecto (en el frame donde tenías el LoadMovie):

Código ActionScript :

var contenedor:Loader=new Loader();  
contenedor.load(new URLRequest("peli" + this.peli + ".swf"))  
addChild(contenedor);  


¿Cuál es la razón de cambiar todo a AS3?, si la razón es estar en la última te recomiendo que sigas con AS2, esta forma de trabajar no es la más adecuada con AS3. Mira este comentario magistral de Jorge.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 13 Sep 2009 11:19 pm
Buenas!!

Muchas gracias!!
Lo he probado y funciona, no perfectamente, pues hay un falllo...y es a la hora de cargar la peli1. Esta vez sí q la carga, pero no aparece donde debería, es decir, en el lugar donde hemos puesto el mc contenedor (este mc está dentro del mc efecto). En lugar de aparecer ahí, aparece más abajo, casi fuera del escenario...

Siento dar tanta lata...

La razón de cambiarlo a as3 es q eso es lo único q he hecho con as2, y lo q estoy haciendo a partir de ahora he aprendido a hacerlo con as3, y como soy tan lenta, para cuando quiera acabar mi página web ya habrá salido el as7, jaja, y tampoco quiero quedarme demasiado atrás...

Un beso!

Por natig

76 de clabLevel



 

msie7
Citar            
MensajeEscrito el 14 Sep 2009 09:13 am
Buenas!!

He estado mirando mi mc efecto y he visto q hay una crucecita justo en el punto donde aparece luego la peli1. Supongo q tendré q ponerla en el lugar adecuado. No sé cómo es su nombre técnico...

Gracias!

Por natig

76 de clabLevel



 

msie7
Citar            
MensajeEscrito el 14 Sep 2009 11:43 pm
Esa crucecita es el centro de tu movieClip (0, 0). Normalmente debe estar en la esquina superior izquierda, debes entrar en el MovieClip efecto y moverlo todo. El mc contenedor que utilizabas antes ya no se utiliza has creado un objeto Loader ya que en AS3 los SWF e imágenes se cargan por medio de esta clase, si deseas que el Loader obtenga otra posición varía sus coordenadas:

Código ActionScript :

var contenedor:Loader=new Loader();
contenedor.x = 10;
contenedor.y = -100;
contenedor.load(new URLRequest("peli" + this.peli + ".swf"))   
addChild(contenedor);   


Si esa es la razón para el cambio de lenguaje te recomiendo que no sigas, observa la forma correcta de trabajar con AS3 (Que era la misma con la que se debía trabajar en AS2 pero este no era tan estricto y compilaba en AS1).

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 25 Sep 2009 12:55 pm
Siento no haber contestado antes. Muchas gracias por todo. De momento funciona bien!!

Por natig

76 de clabLevel



 

msie7

 

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