Muchos de nosotros hemos visto paginas hechas en Flash que contienen un menú con el efecto del famoso menú de Mac OsX.

Realmente no tiene mucha dificultad.
Antes que nada deberemos leer este tip (la ultima edición echa por mi corrige el error, así que no hagan caso a la primera) en la cual se explica una de las dos partes fundamentales de este menú en ese tip hará la detección de la cercanía del mouse, es necesario entenderlo a conciencia para no confundirnos.
Ahora veremos los pasos necesarios para la creación del menú.
Empezamos desde cero, creamos un documento en blanco.
Primer paso, crear los elementos del menú, convertirlos a clip individuales por cada elemento , no importa el numero, es una de las ventajas como he diseñado esta versión, una ves terminados , asignarles a cada uno de ellos un nombre de instancia empezando por 0 en base a este termino
btn00, btn01, btn02 ... etc.
Después los seleccionamos todos y los convertimos a un solo clip con el punto de registro en la parte superior izquierda, esto es muy importante para el correcto funcionamiento.
Una vez hecho esto pegaremos este código dentro del primer frame del clip que contiene todos los elementos de el menú:
Código :
//align = bottom;
//esto hara que el punto de centro sea la mitad por si tenemos que reposicionarlo , el punto 1,1
//sera sera siemrpe el punto de en medio de este menú, se la asigno a variables para ser flexible
//por si necesitamos hacer algo con ello
centerx = 0;
centery = 0;
//Establecemos el menú de items para saber cuanto tenemos que recorrer para hacer los cálculos
menucount = 6;
// establecemos de que ancho son los items, para hacerlo dinámico, tomo el ultimo y asigno el ancho
// los items para ser optimos deberian tener la misma anchura
miwidth = this["btn0" + menucount - 1]._width;
// establecesmos que espacio entre cada item deseamos
miborder = 5;
// establecemos la variable inicial en el valor cero, que lelvara el control del ancho del menu
AnchMen = 0;
//esto hara que cada ves que el menú haga un enterframe se ejecute y tengamos un monitoreo constante
onEnterFrame = function ()
{
var AnchMen = 0;
//esta es la parte del tip anterior, con la única diferencia que este acumula en la variable
//AnchMen el ancho del menú
for (var i = 0; i < menucount; i++) {
var xxm = this["btn0" + i]._xmouse;
var yym = this["btn0" + i]._ymouse;
var xm = Math.sqrt(xxm * xxm + yym * yym);
if (xm < 80) {
this["btn0" + i]._xscale = this["btn0" + i]._yscale += ((200 - xm) - this["btn0" + i]._yscale) / 3;
} else {
this["btn0" + i]._xscale = this["btn0" + i]._yscale += (100 - this["btn0" + i]._yscale) / 3;
}
//esta parte va acumulando el ancho de los elementos
AnchMen += this["btn0" + i]._width;
}
//hacemos el calculo total de incremento de los espacios entre elementos del menu mas el espacio de los elementos
AnchMen += (menucount - 1) * miborder;
// Inicializamos las posiciones
// toma el ancho lo divide entre dos y se lo resta al centro garantizando que el menu quede centrado
var xpos = Math.round((centerx - AnchMen) / 2);
// como el primer item no tiene un elemento anterior de donde partir en la funcion se establece el punto de parida
// se hace el calculo del espacio del elemento uno se incrementa y se parte del elemento 2
xpos += Math.round((this["btn0" + 0]._width + miborder) / 2);
for (var i = 1; i < menucount; i++) {
x = i - 1;
xpos += (this["btn0" + x]._width / 2) + miborder + (this["btn0" + i]._width / 2);
this["btn0" + i]._x = xpos;
this["btn0" + i]._y = centery;
}
//como el elemento uno no ha sido establecido se le resta su ancho menos al elemento 2 para lograr su posición
this["btn0" + 0]._x = (this["btn0" + 1]._x - this["btn0" + 0]._width - miborder);
this["btn0" + 0]._y = centery;
};
Resultado:
Se puede cambiar, por ejemplo, en lugar de convertir los elementos a clip podemos hacerlo a botones y el botón dispara la acción, o dentro del clip podemos establecer animaciones para hacerlo mas vistoso y así lanzar la acción de ese botón.
Si parece muy extenso es solo por los comentarios, realmente el código de el menú es este
Código :
centerx = 0;
centery = 0;
menucount = 6;
miwidth = this["btn0" + menucount - 1]._width;
miborder = 5;
AnchMen = 0;
onEnterFrame = function ()
{
var AnchMen = 0;
for (var i = 0; i < menucount; i++) {
var xxm = this["btn0" + i]._xmouse;
var yym = this["btn0" + i]._ymouse;
var xm = Math.sqrt(xxm * xxm + yym * yym);
if (xm < 80) {
this["btn0" + i]._xscale = this["btn0" + i]._yscale += ((200 - xm) - this["btn0" + i]._yscale) / 3;
} else {
this["btn0" + i]._xscale = this["btn0" + i]._yscale += (100 - this["btn0" + i]._yscale) / 3;
}
AnchMen += this["btn0" + i]._width;
}
AnchMen += (menucount - 1) * miborder;
var xpos = Math.round((centerx - AnchMen) / 2);
xpos += Math.round((this["btn0" + 0]._width + miborder) / 2);
for (var i = 1; i < menucount; i++) {
x = i - 1;
xpos += (this["btn0" + x]._width / 2) + miborder + (this["btn0" + i]._width / 2);
this["btn0" + i]._x = xpos;
this["btn0" + i]._y = centery;
//trace(centerx);
}
this["btn0" + 0]._x = (this["btn0" + 1]._x - this["btn0" + 0]._width - miborder);
this["btn0" + 0]._y = centery;
};Es optimizable, así que se aceptan sugerencias.

Por Emmanuel el 09 de Mayo de 2007
Por arcaraz el 09 de Mayo de 2007
Por: Emmanuel _blog
para analizarlo mejor?
sera para evitar la fatiga
Pero no seria mala idea que me lo subieran
Por marliton el 09 de Mayo de 2007
Por Ego el 10 de Mayo de 2007
Por biohazard el 10 de Mayo de 2007
Por s2d el 10 de Mayo de 2007
Un saludo
Por arbitro el 10 de Mayo de 2007
solo un datin¡nunca lo subas el .fla a la red,si queremos aprender nosdebe costar;es más creo que no nos cuesta nada
Por Zagahlo el 11 de Mayo de 2007
Por FeNtO el 11 de Mayo de 2007
Por Señor Oz el 11 de Mayo de 2007
Por FeNtO el 15 de Mayo de 2007
Por Lucas el 16 de Mayo de 2007
muy bueno, igual todavia no me funciona bien, no encuentro bien mi error..
seguramente sea que le tenga que cambiar algun valor al ancho o al alto, porque es como que se superponen los movie clips.
en fin, suerte
si podes/queres te dejo mi mail asi te hago unas consultas via msn.
y sino..no hay drama.
muchas gracias!
Lucas.
narigondelsiglo89@hotmail.com
Por hutees el 16 de Mayo de 2007
Por FeNtO el 16 de Mayo de 2007
eso es todo lo que deben hacer , del resto se encarga el script
Por juanillo el 17 de Mayo de 2007
Por maurinicoletti@gmail el 17 de Mayo de 2007
PLEASE HELP !
Por daniel el 18 de Mayo de 2007
Por Señor Oz el 18 de Mayo de 2007
Muchas gracias por el dato de los botones, funcionan igual y bastante bien, por fin termine de procesar todos los calculos asi como la sintaxis de todo tu grandioso script, solo que un datillo con el ejemplo que tu pusiste aqui, no se si esa era tu intension, pero he notado que el primer cuadro (con tu script) se encima con el segundo cuando comienzas a hacer grande el segundo (los demas funcionan bien) no se si ya lo solucionaste, pero si no, te digo que lo unico que hay que hacer para que el primer cuadro no se encime con el segundo, simplemente, a la posicion del primer cuadro, ya sabes, la posicion x, simplemente tambien restale la mitad del segundo cuadro:
this.btn00._x = this.btn01._x - (this.btn00.width / 2) - (this.btn01._width / 2) - borde;
y listo(bueno, esta cosa me corta las filas, pero ya saben que va toda en la mismam fila), funcionan todos perfectamente parejitos, como lo hiciste en el ciclo for de los demas botones, ya que en la posicion del primer cuadro no tomas en cuenta el ancho del segundo cuadro.
se que esto es algo sumamente mezquino, de hecho, me siento ridiculo diciendote esto, pero es una manera bastante pobre por cierto, que encontre para retribuir el gran favor que todos los de este sitio, especialmente tu, nos hacen a todos nosotros que nos estamos iniciando en esto.
Muchas gracias, amigo, eres grande.
Por Señor Oz el 18 de Mayo de 2007
Por FeNtO el 19 de Mayo de 2007
Por bada28 el 22 de Mayo de 2007
Por mestevan el 30 de Mayo de 2007
Por juanchoel el 02 de Junio de 2007
Saludos desde Guatemala
Por kahira el 08 de Junio de 2007
cuando ya he realizado todo pongo el código y en la ventana de salida me dice que nanainas!!!jejeje error error y mas error!!! alguien me podría dar una pistilla????
**Error** Escena=Escena 1, capa=Capa 1, fotograma=1:Línea 1: La declaración debe aparecer dentro del controlador on/onClipEvent
centerx = 0;
**Error** Escena=Escena 1, capa=Capa 1, fotograma=1:Línea 2: La declaración debe aparecer dentro del controlador on/onClipEvent
centery = 0;
**Error** Escena=Escena 1, capa=Capa 1, fotograma=1:Línea 3: La declaración debe aparecer dentro del controlador on/onClipEvent
menucount = 6;
**Error** Escena=Escena 1, capa=Capa 1, fotograma=1:Línea 4: La declaración debe aparecer dentro del controlador on/onClipEvent
miwidth = this["btn0" menucount - 1]._width;
**Error** Escena=Escena 1, capa=Capa 1, fotograma=1:Línea 5: La declaración debe aparecer dentro del controlador on/onClipEvent
miborder = 5;
**Error** Escena=Escena 1, capa=Capa 1, fotograma=1:Línea 6: La declaración debe aparecer dentro del controlador on/onClipEvent
AnchMen = 0;
**Error** Escena=Escena 1, capa=Capa 1, fotograma=1:Línea 9: El operador '=' debe ir seguido de un operando
var AnchMen = 0;
**Error** Escena=Escena 1, capa=Capa 1, fotograma=1:Línea 7: La declaración debe aparecer dentro del controlador on/onClipEvent
onEnterFrame = function ()
**Error** Escena=Escena 1, capa=Capa 1, fotograma=1:Línea 10: Error de sintaxis.
for (var i = 0; i < menucount; i ) {
Total de errores de ActionScript: 9 Errores comunicados: 9
Por JaZ (Jacinto) el 09 de Junio de 2007
espero sea algo de ayuda, Saludos y gracias a todos.
Por t el 19 de Junio de 2007
Por soyjok el 26 de Julio de 2007
funciona correctamente en firefox pero en explorer se quedan los botones aumentados al dejar de estar el raton encima de ellos.
Alguna explicación?
gracias
Por OskR el 29 de Julio de 2007
A que se debe?
Gracias....otra vez!!!
Por OskR el 29 de Julio de 2007
Gracias de todas formas me sirvio muchisimo esto!
Por isuny000 el 01 de Agosto de 2007
Por Jaime el 01 de Agosto de 2007
Por pitger el 20 de Agosto de 2007
yo hice uno parecido en la página www.botein.es en el menú presentación y en la sección equipo. En otro momento que tenga tiempo os mando un tuto de como lo hice. También es mejorable.
Por tincc el 27 de Agosto de 2007
me salta este error...en el flash 8 y nu se porque
convengamos que no se nada de action scrip
pero me manejo
me darian una manito:
**Error** Escena=Escena 1, capa=Capa 1, fotograma=1:Línea 1: El bloque de declaración debe finalizar con '}'
centerx = 0;centery = 0;menucount = 6;miwidth = this["btn0" menucount - 1]._width;miborder = 5;AnchMen = 0;onEnterFrame = function (){ var AnchMen = 0; for (var i = 0; i < menucount; i ) { var xxm = this["btn0" i]._xmouse; var yym = this["btn0" i]._ymouse; var xm = Math.sqrt(xxm * xxm yym * yym); if (xm < 80) { this["btn0" i]._xscale = this["btn0" i]._yscale = ((200 - xm) - this["btn0" i]._yscale) / 3; } else { this["btn0" i]._xscale = this["btn0" i]._yscale = (100 - this["btn0" i]._yscale) / 3; } AnchMen = this["btn0" i]._width; } AnchMen = (menucount - 1) * miborder; var xpos = Math.round((centerx - AnchMen) / 2); xpos = Math.round((this["btn0" 0]._width miborder) / 2); for (var i = 1; i < menucount; i ) { x = i - 1; xpos = (this["btn0" x]._width / 2) miborder (this["btn0" i]._width / 2); this["btn0" i]._x = xpos; this["btn0" i]._y = centery; //trace(centerx); } this["btn0" 0]._x = (this["btn0" 1]._x - this["btn0" 0]._width - miborder); this["btn0" 0]._y = centery;};
Total de errores de ActionScript: 1 Errores comunicados: 1
Por Tincc el 28 de Agosto de 2007
hago el boton del tuto ... y lo hago perfecto y ando josha
ahora coloco 6 cuadrados identicos los convierto a cada uno en clip de peli..
les colco btn00 hasta el n° que se me cant ...
y despues los clikeo a todos y los convierto en un clip de peli ....
y no anda
bue le coloco el codigo oseaaaa
para mi el codigo esta mal ...por fa lopodrias revisar ....??
Por Bochini el 23 de Septiembre de 2007
No es lo mismo claro.
Saludos
Bocha
Por Zona el 24 de Septiembre de 2007
Gracias
Por felipe el 25 de Septiembre de 2007
Por felipe el 25 de Septiembre de 2007
linea 53?
Por Señor Oz el 30 de Septiembre de 2007
En cuanto a Tincc, tu error es debido a un error de sitaxis que consiste en no haber colocado todas las llaves "}" de cierre, tienes que revisar bloque por bloque para que veas sin en realidad no omitiste ninguna, también puede suceder si al final de alguna linea o sentencia no colocaste el punto y coma ";" o en general si omitiste algún signo que anidara alguna otra función, como paréntesis, corchetes, comillas, etcétera, así es que de esta manera, se te puede ayudar poco sin la totalidad de tu código como lo hayas creado, tendrías que revisarlo todo por ti mismo, sorry.
Por Señor Oz el 01 de Octubre de 2007
this.btn00._x = this.btn01._x - (this.btn00._width / 2) - (this.btn01._width / 2) - miborder;
y listo, en teoria no deberias de tener error con esa linea, o si puedes, detalla mas el error que te esta arrojando la ventana de salida. espero haya sido de ayuda.
Por Mixalberto el 01 de Octubre de 2007
Por muma el 04 de Octubre de 2007
gracias por su atencion y disculpe la molestia
Por javi el 09 de Octubre de 2007
Por Ivan el 10 de Octubre de 2007
Por Ivan el 11 de Octubre de 2007
Por pe el 17 de Octubre de 2007
´cuál será el problema?
onFrame (1) {
centerx = 0;
centery = 0;
menucount = 7;
miwidth = this["btn0" + menucount - 1]._width;
miborder = 5;
AnchMen = 0;
onEnterFrame = function ()
{
var AnchMen = 0;
for (var i = 0; i < menucount; i++) {
var xxm = this["btn0" + i]._xmouse;
var yym = this["btn0" + i]._ymouse;
var xm = Math.sqrt(xxm * xxm + yym * yym);
if (xm < 80) {
this["btn0" + i]._xscale = this["btn0" + i]._yscale += ((200 - xm) - this["btn0" + i]._yscale) / 3;
} else {
this["btn0" + i]._xscale = this["btn0" + i]._yscale += (100 - this["btn0" + i]._yscale) / 3;
} AnchMen += this["btn0" + i]._width;
} AnchMen += (menucount - 1) * miborder;
var xpos = Math.round((centerx - AnchMen) / 2);
xpos += Math.round((this["btn0" + 0]._width + miborder) / 2);
for (var i = 1; i < menucount; i++) {
x = i - 1;
xpos += (this["btn0" + x]._width / 2) + miborder + (this["btn0" + i]._width / 2);
this["btn0" + i]._x = xpos; this["btn0" + i]._y = centery;
//trace(centerx);
}
this["btn0" + 0]._x = (this["btn0" + 1]._x - this["btn0" + 0]._width - miborder);
this["btn0" + 0]._y = centery;
};
}
Por edgar servin el 18 de Octubre de 2007
Gracias
Por Chapomon el 25 de Octubre de 2007
Lo pueden descargar desde esta direccion. http://espanol.geocities.com/wackystar_2000/menuosx.zip
Por alex el 26 de Octubre de 2007
Por alex el 26 de Octubre de 2007
Por alex el 26 de Octubre de 2007
Por alex el 26 de Octubre de 2007
y suerte
Por Luismaria el 28 de Octubre de 2007
Por Gerb el 03 de Noviembre de 2007
Por Argenis_Vzla el 07 de Noviembre de 2007
Por fisho el 27 de Noviembre de 2007
yo tuve un problema de que los elementos creían pero para abajo. O sea, todo al revés. Y para no meterme en problemas, el movie clip lo puse de cabeza
muchas gracias!!
Por jorge_63 el 05 de Diciembre de 2007
tengo flash 8
Por jorge_63 el 05 de Diciembre de 2007
Por raul rivas el 11 de Diciembre de 2007
Por raul rivas el 11 de Diciembre de 2007
Por raul rivas el 11 de Diciembre de 2007
Por gmopinillosv el 17 de Diciembre de 2007
Por FeNtO el 17 de Diciembre de 2007
gmopinillosv :
interesante que a TODO no les salga, solo haslo tranquilo y de la manera que se te indica
Por gmopinillosv el 17 de Diciembre de 2007
Por FeNtO el 18 de Diciembre de 2007
placer cuando otros se frustan?, supongo que lo dices por que dedique horas de mi vida a redactar algo que yo aprendi, y en lugar de guardarlo egoistamente trato de que alguien que no lo sabe en este momento como TU lo aprenda, si supongo que el tratar de darte la guia para hacerlo paso por paso , debe ser muy placentero para mi el qu eno lo entiendas igual que las otras 25381 personas, que tampoco pudieron y por eso escribieron quejandose(sarcasmo, y lo especifico por que por lo que veo hay que decirte muyy explicitamente las cosas).
En lugar de malgastar este hilo con quejas ponte a trabajar y aprende como las demas gentes, no culpes a los demas de tu flojera , y este es el ultimo comentario que hago respecto a este tema y como punto final
esta paso por paso , no cualgo el fla, simplemente para que APRENDAN las personas y ya no vuelvo a contestar preguntas de esta indole
Por gmopinillosv el 19 de Diciembre de 2007
Bueno y aqui esta la SOLUCION:
- en el 3er paso hay que entrar al mc creado y alli colocar el script
- el tip anterior no tiene nada que ver con este tuto
- hacer la correccion que hace el Sr Oz_blog Y gracias tambien a el esto salio perfecto.
Una vez mas gracias y disculpa lo malo.
Por Bryan el 20 de Diciembre de 2007
y no se los mando porque estoy de acuerdo con FeNt0 de que no nos ayuden y que aprendamos a la manera antigua.
el truco no es copiar y pegar el codigo hay que mecanografiarlo tal y como esta y sin errores.
Por Bryan el 23 de Diciembre de 2007
puedes bajarlo aqui:
http://rapidshare.com/files/78603087/Dock_en_Flash.zip.html
Por Bryan el 29 de Diciembre de 2007
Por lucky13 el 15 de Febrero de 2008
estoy con FeNtO, hay q currarselo!!!
Lo he hecho, paso a paso, y me ha salido. Solo tengo dos problemillas:
1- Con vectores me ha quedado bien. El problema lo tengo cuando pongo imágenes, se pixela un montón.
¿puedes recomendarme algun truco, para que no se pixele tanto?
2- Estoy intentando hacer-lo con unas imágenes más grandes y no encuentro la manera de que quede bien. Se me esparcen por el espacio sin control y el control del mouse, para que aumenten o no, parece estar desconfigurado, pues no coinciden con la imágen.
¿que he hecho mal?
Por antonio el 15 de Febrero de 2008
también tengo problemas con los pixels y me gustaría controlar mejor el zoom. Puedes indicarme como?
otra pregunta ¿sólo se me escala un objeto, y a tí el objeto q tienes al lado también se escala. Cómo lo puedo solucionar?
Por dcalonga el 22 de Febrero de 2008
Falta nada más que al perder el enfoque los botones de los extremos queden al tamaño normal...
Por FeNtO el 30 de Julio de 2008
Por apdesign el 07 de Agosto de 2008
Por carlos mestre el 23 de Septiembre de 2008
yo tengo una pregunta, este menu se podria mover de lado a lado, lo que quiero decir es que tenga el efecto de dock, pero a su ves si quiero meterle muchos botones y de tamaño mas grande, y que me los pueda mover de lado a lado
Por BomBerO el 30 de Septiembre de 2008
chao...
Por pankito_77 el 09 de Noviembre de 2008
"
1151: Existe un conflicto con la definición _loc2 del espacio de nombres internal.
for (var _loc2 = 1; _loc2 < menucount; ++_loc2)
"
no se ke estoy haciendo mal
me pueden alludar lo necito alluda urgente por que lo quiero poner en un trabajo para la u y no me resulta y tengo que entregar el trabajo esta semana
de antema no muchas gracias
soy nuevo en eto de
actionscrips
Por Andrés el 18 de Noviembre de 2008
A los que no les funciona:
cambiar el Instance Name en las propiedades.
Saludos.
Por Grupmix el 01 de Diciembre de 2008
Por Flaix el 01 de Diciembre de 2008
Por krlonp el 30 de Diciembre de 2008
Por fer el 14 de Enero de 2009
soy muy novata en esto
mil disculpas corazon..espero alguna respuesta !
gracias
Por *** el 14 de Enero de 2009
lo necesito urgente!!
GRACIAS
Por Spook el 29 de Enero de 2009
centerx = Stage.width;
centery = Stage.height / 2;
menucount = 6;
miwidth = this["btn0" + menucount - 1]._width;
miborder = 5;
AnchMen = 0;
onEnterFrame = function ()
{
var var7 = 0;
for (var var2 = 0; var2 < menucount; ++var2)
{
var var3 = this["btn0" + var2]._xmouse;
var var5 = this["btn0" + var2]._ymouse;
var var4 = Math.sqrt(var3 * var3 + var5 * var5);
if (var4 < 70)
{
this["btn0" + var2]._xscale = this["btn0" + var2]._yscale = this["btn0" + var2]._yscale + (200 - var4 - this["btn0" + var2]._yscale) / 3;
}
else
{
this["btn0" + var2]._xscale = this["btn0" + var2]._yscale = this["btn0" + var2]._yscale + (100 - this["btn0" + var2]._yscale) / 3;
} // end else if
var7 = var7 + this["btn0" + var2]._width;
} // end of for
var7 = var7 + (menucount - 1) * miborder;
var var6 = Math.round((centerx - var7) / 2);
var6 = var6 + Math.round((this.btn00._width + miborder) / 2);
for (var var2 = 1; var2 < menucount; ++var2)
{
x = var2 - 1;
var6 = var6 + (this["btn0" + x]._width / 2 + miborder + this["btn0" + var2]._width / 2);
this["btn0" + var2]._x = var6;
this["btn0" + var2]._y = centery;
} // end of for
this.btn00._x = this.btn01._x - this.btn00._width - miborder;
this.btn00._y = centery;
};
Por Takehiko el 02 de Febrero de 2009
Ni go to, ni con _root, ni nada...
Por nelgonpra el 07 de Febrero de 2009
Tengo una duda, mi problema es que diseñe un menu en donde los iconos estan dispuestos sobre una elipse y no en linea recta, y soy muy novato y no tengo idea como hacerlo funcionar asi, se podria?
Probe el tutorial de Boton Crece cuando acerca mouse pero pierdo el control sobre los botones, se vuelven locos.
Muchas gracias y excelete trabajo
Por omishe el 15 de Abril de 2009
Assshhh!!!
Muy bueno, genial!!
Gracias!
Gracias
Por max el 25 de Mayo de 2009
GRACIAS Chapomon_blog
Por alvaro7es el 01 de Julio de 2009
Por percy el 19 de Julio de 2009
sugiero un tutorial de este menu de manera grafica ..para los q todavia no entiendan lo basico de AS.
julio del 2009, repasando encontre nuevamente este tuto que es genial y sencillo lo he aplicado y lo he utilizado en mi menu.
Muchas Gracias a toda la gente q aporta para la inmensa legion de autodidactas del bendito flash.
De Lima, Perú.
Percy Aguilar
Por xotelo el 21 de Julio de 2009
excelente
excelente
excelente
excelente
excelente
excelente
excelente
excelente
excelente
excelente
soo tengu una duda ojala alguien tenga la piedad y bondad de decir meomo les doy comportamiento de botones, con algun go to and play? o algo asi?
gracias
Por Percy Aguilar el 24 de Julio de 2009
loadmovienum, pues trabajo con niveles.
chequea como queda. www.divertibum.com
Muchas gracias a toda la gente que hace posible q aprendamos cada dia más, en especial a toda la gente de Cristalab.
Percy Aguilar
percy@creatumperu.com
Por da666 el 29 de Julio de 2009
Por Nacho2009 el 27 de Agosto de 2009
Necesito hacer esto mismo pero con muchas lineas, para hacer una galeria de botones que cuando pasas por ensima con el mause se agranden del mismo modo que lo hace el menu, la diferencia seria que tendrian imagenes arriba y abajo que se agrandarian con el mismo efecto. Osea lo mismo, pero "multilinea".
Por favor, si alguien me puede ayudar se lo agradeceria infinitamente.
Por Nacho2009 el 27 de Agosto de 2009
Alguien que me pueda ayudar????
Por Nacho2009 el 02 de Septiembre de 2009
cuando tenes una consulta... nadie responde!
Por Nox el 18 de Septiembre de 2009
<embed src="http://el.cybernetico.92.googlepages.com/Sinttulo-1.swf" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="200"></embed>
ho dsps d dos años
es mi Betav1.3 pero aun tengo un peke problem.. las modificaciones no tienen nada que ver
cuando veo tu swf .. detecta el mouse por debajo de la animacion y por arriba tmb pero sin acercar el cursor del mouse, en cambio el mio solo reconoce la parte de arriba cuando paso el cursor del mouse cuando paso el cursor por abajo ps no lo detecta y no se ejecuta el efecto aun es mi ver beta lo tengo q mejorar en algunas cosillas.! y es eso ps yo lo puedo hacer pero si alguien tiene una idea de q por q eso ps me ayudaria mucho Grax por el post tio hac un año que no practicaba AS
Por Nox el 18 de Septiembre de 2009
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="790" height="431" align="middle">
<param name="movie" value="intro.swf" />
<param name="quality" value="high" />
<embed src="http://el.cybernetico.92.googlepages.com/Sinttulo-1.swf" width="400" height="200" align="middle" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash"></embed>
</object>
</div>
ps creo q no lo pueden ver.. u.u bueno si no arreglan los tags
Por doncomas el 13 de Noviembre de 2009
que buen script y buena forma de aprenderlo
pero no entiendo que significa lo siguiente
solo clip con el punto de registro en la parte superior izquierda, esto es muy importante para el correcto funcionamiento.
Por ruende el 05 de Diciembre de 2009
Por erhan el 06 de Diciembre de 2009
Cómo podemos convertir a un menú vertical?
Por Steve el 14 de Diciembre de 2009
Yo no domino lo suficiente como para resolver lo que he comentado, pero es sólo para ver si se podría solucionar.
Por lo demás muchísimas gracias por compartir tus tutoriales!!!
Por Anthony Tovar el 08 de Enero de 2010
Por oswaldo gallegos el 16 de Enero de 2010
Bien explicado super!!!
Gracias por compartir tus conocimientos
Saludos!!!
Saludos
Por juliencoz el 20 de Enero de 2010
Por Parkko el 03 de Febrero de 2010
¿Cómo enlazo un botón de estos desde flash a una página principal html hecha en Dreamweaver? Agradezco si alguien me puede dar una mano. Gracias desde ya.
Saludos
Por Parkko el 03 de Febrero de 2010
Saludos
Por jaime el 11 de Febrero de 2010
Por fenixvar el 02 de Marzo de 2010
Por nicolaz el 10 de Junio de 2010
sirve lo de hacer grande y chico el boton pero no funciona lo de hacer que el menu se mueva. estoy usando el flash cs3 pero con action script 2.0
no se si alguien me podria ayudar.
saludos.
Por JinGT el 10 de Noviembre de 2010
Muchas gracias por este gran ejemplo me sirvio de mucho
ise algunas modificaciones y aumente algunas cosas como grScalar(escalar o no escalar)
//la primer variable es el punto medio del menu
var grAncho:int = stage.width/2;//punto medio a lo ancho
var grAlto:int = 50;//para centrarlo al medio seria -> stage.height
var grHeight:int=100;//alto de los iconos
var grWidth:int=100;//ancho de los iconos
var grScalar:Boolean =false;//con true no tomo en cuenta el grHeight ni grWidth
var grCantidadDeIconos = 6;//Establecemos el menú de items para saber cuanto tenemos que recorrer para hacer los cálculos
var grSeparacion = 5;// establecesmos que espacio entre cada item deseamos
// establecemos la variable inicial en el valor cero, que lelvara el control del ancho del menu
var grAnchoTotalMenu = 0;
//variables para evitar la recalculacion inecesaria
//sin esto los cuadros quedanban temblando y no era estetico
var grMouseX:int=this.mouseX;
var grMouseY:int=this.mouseY;
//redimenciona a las medidas necesarias
AcomodarMenu();
//esto hara que cada ves que el menú haga un enterframe se ejecute y tengamos un monitoreo constante
this.addEventListener(Event.ENTER_FRAME,EventoEnterFrame);
function EventoEnterFrame(e:Event)
{
if (grMouseX!=this.mouseX || grMouseY!=this.mouseY)
{
grMouseX=this.mouseX;
grMouseY=this.mouseY;
AcomodarMenu();
}
}//final funcion
function AcomodarMenu()
{
var grAnchoTotalMenu = 0;
//esta es la parte del tip anterior, con la única diferencia que este acumula en la variable
//grAnchoTotalMenu el ancho del menú
for (var i = 0; i < grCantidadDeIconos; i++)
{
//var xxm = this["btn0" + i].mouseX;
var xxm = this.mouseX - this["btn0"+i ].x;
//var yym = this["btn0" + i].mouseY;
var yym = this.mouseY - this["btn0"+i ].y;
var xm = Math.sqrt(xxm * xxm + yym * yym);
if (xm <= 200)
{
if (grScalar)//use esto para escalar y mantener las proporciones
{
this["btn0" + i].scaleY = 1+((100 - xm) / 200);
this["btn0" + i].scaleX = this["btn0" + i].scaleY ;
}
else//use esto para modificar las proporciones a alto y ancho
{
this["btn0" + i].height = grHeight * (1+((100 - xm) / 200));
this["btn0" + i].width = grWidth * (1+((100 - xm) / 200));
}
}
else
{
if (grScalar)//use esto para escalar y mantener las proporciones
{
this["btn0" + i].scaleY = 0.5;
this["btn0" + i].scaleX = this["btn0" + i].scaleY;
}
else//use esto para modificar las proporciones a alto y ancho
{
this["btn0" + i].height = grHeight * 0.5;
this["btn0" + i].width = grWidth * 0.5;
}
}
//esta parte va acumulando el ancho de los elementos
grAnchoTotalMenu += this["btn0" + i].width;
}
//hacemos el calculo total de incremento de los espacios entre elementos del menu mas el espacio de los elementos
grAnchoTotalMenu += (grCantidadDeIconos - 1) * grSeparacion;
// Inicializamos las posiciones
var xpos = Math.round(grAncho - (grAnchoTotalMenu / 2));
for (var j = 0; j < grCantidadDeIconos; j++)
{
this["btn0" + j].x = xpos;
this["btn0" + j].y = grAlto - (this["btn0" + j].height/2);
xpos += (this["btn0" + j].width ) + grSeparacion ;
}
}//final funcion
Por miriam el 06 de Marzo de 2011
Por memita el 21 de Junio de 2011
lograr hacerlo
no me resulta a
Por lluv el 06 de Octubre de 2011
Por marckus74 el 11 de Diciembre de 2011
Por yo el 01 de Mayo de 2012
AcomodarmMenu()
y frame1
en main time line HELP
Por yo el 01 de Mayo de 2012
y frame1()