Ver Mensaje Individual
  #10 (permalink)  
Antiguo 08/03/2013, 13:33
marcwolf
 
Fecha de Ingreso: junio-2010
Mensajes: 353
Antigüedad: 14 años, 5 meses
Puntos: 6
Respuesta: Meter botones dinamicos por codigo en movieClip

Hola Bandit,
1- lo primero que estábamos tratanto, "scroll de botones dinamicos", comentarte que he eliminado del escenario el MC "botonera" prk sino se me veían repetidos los botones creados dinamicamente, debido a que; había el MC "botonera" y el scrollPane y los dos mostraban los mismo resultados

Código as2:
Ver original
  1. //creamos un MovieClip vacio q funcionara como contenedor a nuestros botones
  2. this.createEmptyMovieClip("botonera",this.getNextHighestDepth());
  3. botonera._x = 0;
  4. //creamos un Array con los nombres de los botones y q nos dira cuantos queremos
  5. var labels:Array = Array("home","about","services","contact");
  6.  
  7. //usamos with() para escribir dentro del clip vacio
  8. with(botonera){
  9.    
  10.     //posicionamos la botonera
  11.  
  12.     //creamos un for seteado por la longitud del Array
  13.     for(i=1;i <= labels.length; i++){
  14.        
  15.         //declaramos una vaiable de tipo MovieClip q funcionara de modelo a nuestros botones
  16.         //le damos por valor cada boton attachado
  17.         var modelButton:MovieClip = this.attachMovie("boton", "boton" + i, this.getNextHighestDepth ());
  18.        
  19.         //posicionamos los botones
  20.         modelButton._x = 0;
  21. //agrege esta linea para que el primer boton no lo escriba con separación de 20
  22.         if( i == 0){modelButton._y = 0;}
  23.         else{
  24.         modelButton._y = (i-1)*20; //multiplicamos por 0, para q la distancia sea constante
  25.         }
  26.         //le ponemos titulo a cada boton, dados por los elementos del Array
  27.         modelButton.t.text = labels[i-1];
  28.        
  29.         //simulamos eventos RollOver y RollOut
  30.         modelButton.onEnterFrame = function (){
  31.            
  32.             //ecuacion para la trancicion de alpha
  33.             //donde: a = transparencia
  34.             //       v = velocidad de trancicion
  35.             this._alpha += (this.a - this._alpha) /this.v;
  36.                        
  37.             //si el cursor esta sobre el boton...          
  38.             if (this.hitTest(_root._xmouse, _root._ymouse, true)) {
  39.                 //...cambia su transparencia al 50%
  40.                 this.a = 50;
  41.                 this.v = 5;
  42.                
  43.                 //sino, vuelve o se mantiene al 100%
  44.                 } else{
  45.                     this.a = 100;
  46.                     this.v = 10;
  47.                     }
  48.                 }
  49.         //simulamos eventos onRelease      
  50.         modelButton.onMouseDown = function (){
  51.             if (this.hitTest(_root._xmouse, _root._ymouse, true)) {
  52.                 if(this._name == "boton1"){
  53.                     trace("welcome home")//acciones
  54.                 }
  55.                 if(this._name == "boton2"){
  56.                     trace("about us")//acciones
  57.                 }
  58.                 if(this._name == "boton3"){
  59.                     trace("our services")//acciones
  60.                 }
  61.                 if(this._name == "boton4"){
  62.                     trace("contact us")//acciones
  63.                 }
  64.             }
  65.         }
  66.     }
  67.        
  68. }

2- Scroll con easing de cristalab.
He echo;

1- he copiado el MC "botonera" en la capa txt y lo he reemplazado.
1.a - Cambio el código de "textScroller" txt a empresasList

code que va dentro de "textScroller"
Código as2:
Ver original
  1. //-------------------------------------------------------------------------------
  2. //declaramos variables
  3. var posy:Number = 5;
  4. //variables q van a limitar el movimiento del drag
  5. izquierda = dragger._x;
  6. superior = 0;
  7. derecha = dragger._x;
  8. inferior = mascara._height - dragger._height;
  9.  
  10. //-------------------------------------------------------------------------------
  11. //iniciamos el drag
  12. dragger.onPress = function(){  
  13.     //le asignamos las variables
  14.     startDrag(this,false,izquierda,superior,derecha,inferior);
  15.    
  16. }
  17. //terminamos el drag
  18. dragger.onRelease = dragger.onReleaseOutside = function(){
  19.     stopDrag();
  20. }
  21. //cambiamos el alpha al poser el cursor
  22. dragger.onRollOver = function(){
  23.     this._alpha = 75;
  24. }
  25. //y la restauramos al quitarlo
  26. dragger.onRollOut = dragger.onReleaseOutside = function(){
  27.     this._alpha = 100;
  28. }
  29. //-----------------------------------------------------------------------------
  30. //seteamos la mascara al texto o clip :Cambio de txt a empresasList
  31. empresaList.setMask(mascara);
  32.  
  33. //aca el codigo para el easing
  34. empresaList.onEnterFrame = function(){
  35.    
  36.     /*esta variable basicamente se fija cuanto del texto ha sido "scroleado"
  37.     a travez de la mascara y limita el movimiento del dragger en relacion a
  38.     esta informacion, de esta manera puedes cambiar el tamaño de tu texto o clip
  39.     y la variable se actualizara a si misma*/
  40.     scrolled = (this._height - (mascara._height /1.3)) / (mascara._height - dragger._height);
  41.    
  42.     //nueva posicion en y
  43.     posy =- dragger._y * scrolled;
  44.    
  45.     //cambia la velocidad de 6 o mayor, para un scrol mas lento; y menor, para uno mas rápido
  46.     this._y -= (this._y - posy) /6;
  47. }


Es que en el anterior scroll he creado el scrollPanell de flash y en phat le he puesto el MC, aquí directamente le pongo el MC y supongo que por eso me acaba petando

He visitado tu página, pero me gusta más este scroll con easing, además lo tengo echo casi todo :P sólo tengo que adaptarlo estéticamente y bueno solucionar este problema..

Gracias de antemanos

Última edición por marcwolf; 08/03/2013 a las 13:42