Comunidad de diseño web y desarrollo en internet online

funciones y propiedades mc exportado de biblioteca as3

Citar            
MensajeEscrito el 09 Sep 2010 08:24 am
Hola a todos:

Este es mi primer mensaje tras leeros durante algun tiempo. Lo primero indicar que gracias a vosotros he conseguido avanzar (a ratos, lo que me permiten) e ir aprendiendo un poco sobre as3 y flash. No quiero copiar y pegar, me gustaría aprender y entender el porqué de las cosas.

En esta ocasion me he quedado bloqueado a la hora de realizar una botonera / menu, no se por donde seguir y escribo a ver si alguien me puede ayudar al respecto, os explico mi caso:

Me he descargado un ejemplo de flashmo, en concreto el 219 (aunque el 218, ... funcionan igual / similar). El link del ejemplo completo sería el siguiente:

http://www.flashmo.com/preview/flashmo_219_mesh

El codigo (eliminando comentarios, elementos posteriores, etc) con el que estoy trabajando sería el siguiente:

fm_button.visible = true; //mc con nombre instancia fm_button

var menu_label:Array = new Array("Homepage", "Services", "Products",
"Awards", "Support", "Testimonials",
"Clients", "Company", "Contact" );

var total:Number = menu_label.length;
var i:Number = 0;
var j:Number = 0;
var page:Number;
var main_menu:MovieClip = new MovieClip();
var box_group:MovieClip = new MovieClip();
stage.addChild(main_menu);
stage.addChild(box_group);

for( i = 0; i < total; i++ )
{
var btn = new flashmo_button();
btn.name = "flashmo_btn" + i;
btn.x = -400;
btn.flashmo_click_area.addEventListener( Event.ENTER_FRAME, btn_enter );
}

function btn_enter(e:Event):void
{
var mc = e.target.parent;
if( mc.over == true )
mc.nextFrame();
else
mc.prevFrame();
}

En biblioteca la resumo eliminando cosas del original para simplificar (he partido de 0 y voy añadiendo elementos poco a poco):

menu button (exportado a as3, clase: flashmo_button, clase base: flash.display.MovieClip)
menu ... El resto de mc
iconos (imagenes varias)

Creo que no se me olvida nada.

Mi problema radica en la línea

btn.flashmo_click_area.addEventListener( Event.ENTER_FRAME, btn_enter );

Estoy intentnado averiguar donde está flashmo_click_area (si no me equivoco debería estar en las propiedades de la clase correspondiente flashmo_button, ( si fuera una clase "normal", sin ser exportada de la biblioteca).

Tambien decir que no importo ninguna clase externa.

El funcionamiento "original" funciona, pero si borro el mc "menu button click area", ya no funciona. Y en propiedades de ese mc NO tiene nada definido! (o no lo encuentro).

Por donde sigo buscando? alguien me puede decir donde esta definido dicho "flashmo_click_area"?

Gracias de antemano

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

firefox
Citar            
MensajeEscrito el 09 Sep 2010 08:43 am
BuenAS:

Si editas el botón flashmo_button (cuidado que el nombre del símbolo en la biblioteca es "menu button"), tiene un movieClip llamado flashmo_click_area que es al que se le añade el listener, actuando como hitArea de los botones.

btn.flashmo_click_area.addEventListener( Event.ENTER_FRAME, btn_enter );

Si te creas, o modificas, los botones y quieres seguir utilizando este código deberías mantener este MovieClip (flashmo_click_area), o añadir los listener al que estimes oportuno.

Por otro lado, si quieres que al instanciar una clase puedas acceder a sus propiedades públicas (por ejemplo, que contenga un MovieClip, tipifícalo con el nombre de la clase con la que lo has exportado y NO con el Generico MovieClip. Por ejemplo, si tienes un símbolo en la biblioteca llamado, MiBoton, que contiene un MovieClip llamado "zonaActiva", para poder acceder a "zonaActiva":

Código ActionScript :

var boton:MiBoton = new MiBoton();
boton.zonaActiva.addEventListener(MouseEvent.CLIK, clickHandler);

ya que si lo tipificas como MovieClip, el compilador no va a reconocer "zonaActiva" como una propiedad de MovieClip, y e este caso deberías evitar la notación de pto.:

Código ActionScript :

var boton:MovieClip = new MiBoton();
boton["zonaActiva"].addEventListener(MouseEvent.CLIK, clickHandler);


Puestos a elegir, es preferible hacerlo del primer modo, para evitar problemas posteriores de cambios de nombre y demas ;)

Un saludo.



Un saludo.

Por Lukánicos

Claber

468 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 09 Sep 2010 09:27 am
Lo primero, muchas gracias por contestar de forma tan rápida Lukánicos.

Te comento que estoy intentando hacer lo que indicas. Edito el botón "menu button" (con dobre click en el simbolo del stage o botón derecho - editar en biblioteca) y hasta ahí bien, entro para editar el botón. El tema es que no veo el mc llamado flashmo_click_area. donde lo tengo que buscar? (perdona mi ignorancia, pero como bien dije al principio, estoy aprendiendo y a lo mejor lo tengo delante, pero no hay forma de encontrarlo.....)

Lo que veo es lo siguiente (relacionado con el area):

Linea de tiempo: Button click area, otro con icono, etiqueta, .....
Biblioteca: lo que comenté antes....

No veo los listeners ni el mc que me comentas! seguro que está delante, pero nada, que no hay forma! Por donde esta?

Lo dicho, muchas gracias de antemano

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

firefox
Citar            
MensajeEscrito el 09 Sep 2010 11:37 am
BuenAS:

Creo que no puedes seleccionarlo porque está la capa bloqueada; desactiva en la primera capa el icono del candado. Por otro lado, como se trata de un MovieClip cuya misión es hacer de hitarea (o sea de zona activa; sólo cuando esté el usuario actuando sobre él se distribuirán los eventos de ratón), es transparente y sólo veras su borde al seleccionarlo, pero se llama:

flashmo_click_area

Un saludo.

Por Lukánicos

Claber

468 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 09 Sep 2010 07:42 pm
Muchas gracias de nuevo:

Cuando llegue a casa (de pende de las horas que se me hagan, sino mañana ;) ) volveré a intentarlo siguiendo tus instrucciones.

Ya contare.

Un saludo

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

firefox
Citar            
MensajeEscrito el 10 Sep 2010 07:42 pm
Efectivamente, toda la razon del mundo!!!!!!!

Gracias Lukanicos, pues si te dijera que me tiré con esto bastante tiempo, y no lo encontraba......

Delante de mi nariz, si es que.....

Un saludo y gracias

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

firefox

 

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