Comunidad de diseño web y desarrollo en internet online

flash as3 - sin código en el fla

Citar            
MensajeEscrito el 22 Abr 2009 03:39 pm
Tengo un problema que me trae de cabeza desde que intento no meter código en los fla y ponerlo todo aparte en as

Intentare poner un ejemplo sencillo, pongamos que tengo 3 frames que comparten una sección de 3 botones. Cada boton hace gotoAndStop(miframe) vinculo éstos eventos en el 'main'.

De forma exclusiva, cada frame contiene elementos diferentes, por simplificarlo serán un ele1, ele2 y ele3.

Si no añado nada más todo funciona bien, pincho en los botones y si presiono 1 veo el ele1 si presiono en 2 veo el ele2 y si presiono en 3 veo el ele3.

Cuando se me tuercen las cosas es si detrás de la línea de código de los botones de gotoAndStop(1) hago por ejemplo una asignación de un evento a mi ele1, la primera vez que hago la asignación del evento funciona bien, pero si pincho en un botón que me saca del frame y luego al intentar volver intento volver a asignar a ele1 lo que tuviese asignado antes, me falla.

Código :

         miBtn1.addEventListener(MouseEvent.MOUSE_UP, function(ev:MouseEvent) {
            gotoAndStop(1);
                                ele1.addEventListener(MouseEvent.MOUSE_UP, function(ev:MouseEvent) {loquesea});
         });


Me da un error como si ele1 no existiera, no entiendo porque si la línea anterior se supone que cambia al frame1 dónde ése objeto existe y se referencia bien la primera vez.

Entiendo que al cambiarme de frame los objetos que tengo no existen y se destruyan, lo que no entiendo es cómo despues de hacer un gotoandstop, que se supone que ya estoy en el frame adecuado me puede decir que 'no exite el objeto' al que quiero volver a añadir la funcionalidad que tuviese.

Por motoko2

1 de clabLevel



 

firefox
Citar            
MensajeEscrito el 22 Abr 2009 06:04 pm
En líneas generales, si pretendes sacar el código fuera del fla, empieza a despegarte de la línea de tiempo, muy especialmente si vas a usar AS3. En general usa un Document class, esto es una clase, y evita el concepto de moverte por fotogramas. Esto es porque AS3 estructuralmente prescinde de ello, sino te encontrarás con problemas como este (y muchos más)

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 22 Abr 2009 07:03 pm
Gracias por contestar Jorge. Había seguido buscando por internet y ya había visto que ésto es un bug aceptado por adobe que no parece que quieran arreglar :_(.

Entiendo que al final la única alternativa es hacer los diseños de otra manera, agrupándolos en MovieClips o algo así porque sino al tener que mantener todos los objetos 'coexistiendo' durante la película, hay que lidiar con hacerlos aparecer y desaparecer, que al final se convierte en un verdadero infierno :(.

¿Hay alguna guía por aqui para pasarse a hacer los fla sin código que me pueda ayudar?

Por motoko2

1 de clabLevel



 

firefox
Citar            
MensajeEscrito el 22 Abr 2009 07:09 pm
Bueno, más que una guía es todo una disciplina, y se llama programación orientada a objetos

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 22 Abr 2009 07:19 pm
Ya sé POO, también he programado con framworks que usaban programación orientada a aspectos incluso y cosas bastante más complejas, no me refiero a la programación en sí, sino a la disposición de los elementos en el fla ya que ahí no puedes definir una jerarquía, ni nada porque sólo tratas con un interfaz gráfico. O acaso se trata de ponerlo todo a 'granel' en el fla y luego montar toda la estructura desde fuera ¿?¿?

Es decir desde el pto de vista del diseñador gráfico, cómo podría decirle 'colocame las cosas así' para que luego yo no tenga que recolocar todo el fla para poder ponerme a programar.

Por motoko2

1 de clabLevel



 

firefox
Citar            
MensajeEscrito el 22 Abr 2009 07:26 pm
Para colocar un elemento

var el:elemento = new elemento()
el.x = 100
el.y = 100
addChild(el)

Luego el bug del gotoAndStop, tienes que hacer una pausa antes de poder acceder a los elementos (con setInterval o un Timer)

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.