Comunidad de diseño web y desarrollo en internet online

problemas con un menu slide

Citar            
MensajeEscrito el 13 Sep 2005 07:16 pm
No se bien como se llama si un menu slide o un isobar? pero la idea es la siguiente unas imagenes en una barra y estas se mueven de abajo hacia arriba cuando el mouse esta en la parte de arriba y visebersa cuando el mouse esta abajo.

Tengo este codigo y me funciona bien. Ete en el primer frame de mi pelicula.

Código :

y = _ymouse-225;
setProperty("/rol", _y, X);
X = X-(Y/10);
if (Number(X)>520) {
   X = X-486;
}
if (Number(X)<36) {
   X = Number(X)+486;
}
height = getProperty("rol", _y);

y este en mi segundo frame.

Código :

gotoAndPlay(_currentframe - 1);

Mi pregunta es la siguiente como hago para restringir el movimiento nada mas en el menu, que no sea en toda mi pelicula, mejor dicho si mi pelicula es de 1024 * 600 nada mas funciene este codigo en los primeros 100 pixeles.

Gracias por la atencion prestada y este codigo pertenece a Erik Natzke

Por boruga

21 de clabLevel



 

msie
Citar            
MensajeEscrito el 13 Sep 2005 09:07 pm
pos con un menu de y _yes 20-100 y un movie clip llamado btt:

Código :

this.onEnterFrame = function() {
   if (_ymouse<100 && _ymouse>20) {
      btt._y += (_ymouse-btt._y)/5;//o dividido por lo que quieras
   }
};

en el primer fotograma

Por Zah

BOFH

4290 de clabLevel

27 tutoriales
5 articulos

  Bastard Operators From Hell Editores

Zaragoza, España

firefox
Citar            
MensajeEscrito el 13 Sep 2005 09:14 pm
Si... esto hace lo mismo solo que es mas sencillo, me parece, ¿no?

Por Zah

BOFH

4290 de clabLevel

27 tutoriales
5 articulos

  Bastard Operators From Hell Editores

Zaragoza, España

firefox
Citar            
MensajeEscrito el 14 Sep 2005 01:27 am
lo que pasa es que esto es un menu infinito, que pasa desde la ultima foto y vuelve a la primera, la idea es que se repita pero que el movimiento nada mas se ejecute en una porcion de la pelicula (sobre el movie clip que es mi menu).

A tambien se e habia olvidado que al salir del lugar donde se encuentra mi movie clip con movimiento infinito este tome un movimiento lento de arriba hacia abajo.

No se si con esto sea un poco mas claro :?

Por boruga

21 de clabLevel



 

msie
Citar            
MensajeEscrito el 14 Sep 2005 04:52 pm
Soy yo el que no entiende nada :oops: ... A ver si puedo se útil de una vez:
Supón que cada imagen se carga en un clip de película llamado btt0, btt1, btt2... y que hay otro lamado mask, que será una máscara para cubrir el menu y que nImages es la cantidad de imágenes en total:

Código :

var nImages:Number = 7;
createEmptyMovieClip("imgs", getNextHighestDepth());
with (imgs) {
   pos = new Array();
   for (i=1; i<=nImages; i++) {
      attachMovie("btt"+(i-1), "btt"+i, getNextHighestDepth());
      with (this.imgs["btt"+i]) {
         _x = (Stage.width/2)-(_width/2);
         _y = i%2 == 0 ? mask._y+(i/2)*_height : mask._y-((i/2)*_height)+(_height/2);
         pos.push({name:"btt"+i, yPos:_y});
      }
   }
   pos.sortOn("yPos", Array.NUMERIC);
}
function refreshYPos() {
   pos = new Array();
   for (i=1; i<=nImages; i++) {
      pos.push({name:"btt"+i, yPos:this.imgs["btt"+i]._y});
   }
   pos.sortOn("yPos", Array.NUMERIC);
}
imgs.setMask(mask);
imgs.onEnterFrame = function() {
   if (_ymouse<mask._y+mask._height/2 && _ymouse>mask._y-mask._height/2) {
      for (i=1; i<=nImages; i++) {
         clip = imgs["btt"+i];
         clip._y -= (mask._y-_ymouse)/5;
         if (clip._y>mask._y+((nImages-2)*(clip._height))) {
            refreshYPos();
            clip._y = pos[0].yPos-clip._height;
         } else if (clip._y<mask._y-((nImages-2)*(clip._height))) {
            refreshYPos();
            clip._y = pos[pos.length-1].yPos+clip._height;
         }
      }
   }
};

El código me ha salido un poco "feo" pero funciona bien. Espero haber sido útil esta vez.

Por Zah

BOFH

4290 de clabLevel

27 tutoriales
5 articulos

  Bastard Operators From Hell Editores

Zaragoza, España

firefox
Citar            
MensajeEscrito el 14 Sep 2005 07:05 pm
Se me olvidaba lo del movimiento continuo(':oops:')
deja asi el codigo

Código :

var nImages:Number = 7;
var up:Boolean = false;
createEmptyMovieClip("imgs", getNextHighestDepth());
with (imgs) {
   pos = new Array();
   for (i=1; i<=nImages; i++) {
      attachMovie("btt", "btt"+i, getNextHighestDepth());
      with (this.imgs["btt"+i]) {
         _x = (Stage.width/2)-(_width/2);
         _y = i%2 == 0 ? mask._y+(i/2)*_height : mask._y-((i/2)*_height)+(_height/2);
         pos.push({name:"btt"+i, yPos:_y});
      }
   }
   pos.sortOn("yPos", Array.NUMERIC);
}
function refreshYPos() {
   pos = new Array();
   for (i=1; i<=nImages; i++) {
      pos.push({name:"btt"+i, yPos:this.imgs["btt"+i]._y});
   }
   pos.sortOn("yPos", Array.NUMERIC);
}
imgs.setMask(mask);
imgs.onEnterFrame = function() {
   if (_ymouse<mask._y+mask._height/2 && _ymouse>mask._y-mask._height/2) {
      for (i=1; i<=nImages; i++) {
         clip = imgs["btt"+i];
         moving = (mask._y-_ymouse)/5;
         clip._y -= moving;
         if (moving<0) {
            up = true;
         } else {
            up = false;
         }
         if (clip._y>mask._y+((nImages-2)*(clip._height))) {
            refreshYPos();
            clip._y = pos[0].yPos-clip._height;
         } else if (clip._y<mask._y-((nImages-2)*(clip._height))) {
            refreshYPos();
            clip._y = pos[pos.length-1].yPos+clip._height;
         }
      }
   } else {
      trace(up);
      for (i=1; i<=nImages; i++) {
         clip = imgs["btt"+i];
         clip._y += up ? 5 : -5;
         if (clip._y>mask._y+((nImages-2)*(clip._height))) {
            refreshYPos();
            clip._y = pos[0].yPos-clip._height;
         } else if (clip._y<mask._y-((nImages-2)*(clip._height))) {
            refreshYPos();
            clip._y = pos[pos.length-1].yPos+clip._height;
         }
      }
   }
};
:oops: :oops: :oops:

Por Zah

BOFH

4290 de clabLevel

27 tutoriales
5 articulos

  Bastard Operators From Hell Editores

Zaragoza, España

firefox
Citar            
MensajeEscrito el 14 Sep 2005 09:40 pm
No tendras un ejemplo. Lo aplique pero no me resulta nada (por eso soy Diseñador y no programador) :cry: Aunque me gustaria ser programador o entender todo lo que hacen ustedes, que a mi me cueta tanto trabajo. Enviamelo a mi mail por favor.

Por boruga

21 de clabLevel



 

msie

 

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