Comunidad de diseño web y desarrollo en internet online

Crear una Funcion de un menu rotatorio

Citar            
MensajeEscrito el 13 Ago 2006 07:39 pm
Que tal Cristalaberos;
he hecho un = menurotatorio
Y le he puesto el siguiente codigo a cada elemento del menu (cada elemento esta dentro del MC q llamo menu) {

Código :

onClipEvent (load) {
   lu = 3;
   total = 4;
   esc = 100/total;
   pos = esc*(lu-1);
   a = -.95+(1.9*pos)*4;
   Cte = 52.63157895;
   Cte2 = .950118764;
}
onClipEvent (enterFrame) {
   ef = -((this._parent._y+this._parent._height/2)-_root._ymouse)*.001;
   a += ef;
   porc = (Cte+Math.cos(a)*Cte)*Cte2;
   pors = (Cte+Math.sin(a)*Cte)*Cte2;
   _y = (this._parent._height-_height)*porc/100;
   _alpha = pors;
}
}
donde lu quiere decir en numero de elemento del menu y total el numero total de elementos por lo tanto el codigo q les he puesto es el del tercer elemento de este menu, y el menu cuenta con 4 elemntos en total. Bueno pero yo no quiero crear tantos codigos sino hacer mejor una funcion y he hecho lo sig.

en el Fram principal de mi MC llamado menu

Código :

total = 4;
esc = 100/total;
Cte = 52.63157895;
Cte2 = .950118764;
function rotacion(lu) {
   lu = 3;
   pos = esc*(lu-1);
   a = -.95+(1.9*pos)*4;
   ef = -((this._parent._y+this._parent._height/2)-_root._ymouse)*.001;
   a += ef;
   porc = (Cte+Math.cos(a)*Cte)*Cte2;
   pors = (Cte+Math.sin(a)*Cte)*Cte2;
   _y = (this._parent._height-_height)*porc/100;
   _alpha = pors;
}


Y dentro de cada elemento (que tamb son MCs) Puse

Código :

onClipEvent (enterFrame) {
   this._parent.rotacion(3);
}


No me funciona me di cuenta que lo que se movia era todo el menu en vez del elemento por lo que a la funcion le añadi otro parametro

Código :

function rotacion (lu, aqui){
lu = 3;
   pos = esc*(lu-1);
   a = -.95+(1.9*pos)*4;
   ef = -((this._parent._y+this._parent._height/2)-_root._ymouse)*.001;
   a += ef;
   porc = (Cte+Math.cos(a)*Cte)*Cte2;
   pors = (Cte+Math.sin(a)*Cte)*Cte2;
   [b]aqui[/b]._y = (this._parent._height-[b]aqui[/b]._height)*porc/100;
   [b]aqui[/b]._alpha = pors;
}


y obiamente al elemento le cambie la llamada de la funcion poniendole asi

Código :

onClipEvent (enterFrame) {
   this._parent.rotacion(3, this.instancia);


Y no puedo Mi duda es ¿Habra una manera de referirse a si mismo un objeto cuando invoca una funcion, sin necesidad de poner su propio nombre?

Cualquier ayuda o implementacion al codigo sera bien recibido

De Antemano Muchas Gracias Amigos Flasheros

Por nikelout

40 de clabLevel



Genero:Masculino  



Ultima edición por nikelout el 01 Sep 2006 04:58 pm, editado 1 vez

firefox
Citar            
MensajeEscrito el 14 Ago 2006 08:08 pm
Que paso Pregunten si no les queda claro o digan que piensas pero posteen algo. Yo se que hay manera pero aun no la encuentro me volvi a leer la ayuda de flash

Por nikelout

40 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 14 Ago 2006 08:13 pm
No desesperes, solo ha pasado un día.. ya habrá alguien que pueda o quiera ayudarte

Por Rándich

623 de clabLevel

1 tutorial

 

firefox
Citar            
MensajeEscrito el 27 Ago 2006 04:26 pm
Leyendo y preguntando en este foro me encontre con algo desconocido para mi "prototype"; no sabia que era, y con unos ejemplos lo supe, lo quize poner en practica con este menu que ya habia publicado, lo habia dejado con el codigo en cada boton la pagina donde esta mi menu es esta http://rocafarma.tk como ven funciona bien solo que me falta ocultarlo (bueno ese no es el problema), lo que quiero hacer para aprender en el futuro (bien podria dejar asi el codigo) es utilizar el menor Script posible para lo que he intentado poner el "prototype" en mi codigo y me quedo esto solo que no funciona;

Código :

total = 6;
esc = 100/total;
Cte = 52.63157895;
Cte2 = .950118764;
MovieClip.prototype.rotar = function(lugar, peli, ancho, alto) {
   onRelease = function () {
      this._parent._parent.cubiculo._xscale = 100;
      this._parent._parent.cubiculo._yscale = 100;
      this._parent._parent.ventana.Recolecta = "E";
      _root.ven_x = ancho;
      _root.ven_y = alto;
      this._parent._parent.carga = peli;
   };
   pos = esc*(lu-1);
   a = -.95+(1.9*pos)*4;
   onEnterFrame = function () {
      if (this._parent.hitTest(_root._xmouse, _root._ymouse)) {
         ef = -((this._parent._y+this._parent._height/2)-_root._ymouse)*.001;
      } else {
         ef = .05;
      }
      a += ef;
      porc = (Cte+Math.cos(a)*Cte)*Cte2;
      pors = (Cte+Math.sin(a)*Cte)*Cte2;
      _y = (this._parent._height-_height)*porc/100;
      _alpha = pors;
      _xscale = 70+pors*.3;
      _yscale = _xscale;
   };
};
inicio.rotar(1, "Inicio.swf", 184.1, 240.6);
galeria.rotar(2, "Galeria.swf", 400, 290.9);
contacto.rotar(3, "Contacto.swf", 410, 76);
mas.rotar(4, "Mas.swf", 165, 84);
farma.rotar(5, "Farma.swf", 184.1, 240.6);
blog.rotar(6, "Blog.swf", 320.9, 382.9);


El ancho y alto son para el cuadrito eso no importa lo que necesito es saber como hacer que se muevan como tenia el codgo anterior que con este ya no lo hacen.

Bueno pues de antemano muchas gracias.

Post Data ::: Si lo puedo acabar me gustaria aportarlo a los tutoriales

Por nikelout

40 de clabLevel



Genero:Masculino  

firefox

 

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