Comunidad de diseño web y desarrollo en internet online

Hacer funcionar funcion

Citar            
MensajeEscrito el 07 Oct 2006 10:57 am

Código :

//Este es un script que enfoca progresivamente 4 clips que
// hay en el escenario, en un orden aleatorio cada vez.
//Los clips deben aparecer desenfocados al iniciar.
//Funciona perfectamente, pero cuando intento "empaquetarlo" en 
// una funcion, para iniarlo con un boton deja de funcionar y no se por que...
//He anulado las lineas que no funcionan y que deberian hacerlo.
import flash.filters.*;
filtroDesenfoque = new BlurFilter(25, 250, 1);
//function reDesenfoque() {
function arrayCuadrados() {
   c = 4;
   cuadrados = new Array();
   for (obj in _root) {
      if (_root[obj] instanceof MovieClip && _root[obj]._name != "reserved" && _root[obj]._name != "focusManager" && _root[obj]._name != "boton_cp") {
         _root["arrayTemporal"+c] = _root[obj].filters;
         trace(c);
         _root["arrayTemporal"+c].push(filtroDesenfoque);
         _root[obj].filters = _root["arrayTemporal"+c];
         cuadrados.push(_root[obj]);
         c--;
      }
   }
   cuadrados.reverse();
   trace("CUADRADOS"+"\n"+cuadrados);
}
arrayCuadrados();
yaElegidos = new Array();
llamadas = 0;
function listaCuadrados(x) {
   longitudActual = yaElegidos.length;
   for (var i = 0; yaElegidos.length<=longitudActual; i++) {
      x = Math.floor((Math.random()*cuadrados.length)+1);
      trace("x="+x);
      laTiene = false;
      for (obj in yaElegidos) {
         if (x == yaElegidos[obj]) {
            laTiene = true;
            break;
         }
      }
      if (!laTiene) {
         llamadas++;
         yaElegidos.push(x);
         trace("yaElegidos"+yaElegidos);
         cuadrados[x-1].texto_txt.text = llamadas;
         filtros(_root["arrayTemporal"+x], cuadrados[x-1]);
         clearInterval(ID);
      }
   }
   if (llamadas<cuadrados.length) {
      ID = setInterval(_root, "listaCuadrados", 100, x);
   }
}
function filtros(arrayTemp, clipDestino) {
   trace("fClip"+clipDestino);
   trace("fArray"+arrayTemp[0]);
   trace(newline);
   clipDestino.onEnterFrame = function() {
      arrayTemp[0].blurX -= 10;
      arrayTemp[0].blurY -= 10;
      clipDestino.filters = arrayTemp;
      if (arrayTemp[0].blurX == 0 && arrayTemp[0].blurY == 0) {
         delete clipDestino.onEnterFrame;
      }
   };
}
ID = setInterval(_root, "listaCuadrados", 100, x);
//}
//reDesenfoque();
//Aqui va el codigo del boton
listenerBoton_cp = new Object();
boton_cp.label = "re/Desenfoque";
listenerBoton_cp.click = function(evtObj) {
   reDesenfoque();
};
boton_cp.addEventListener("click", listenerBoton_cp);

Por oxk4r

56 de clabLevel



 

Orense·España

firefox
Citar            
MensajeEscrito el 07 Oct 2006 11:21 am
¿No puedes hacer que sólo se ejecute el setInterval dentro de la función?

Por Zah

BOFH

4290 de clabLevel

27 tutoriales
5 articulos

  Bastard Operators From Hell Editores

Zaragoza, España

firefox
Citar            
MensajeEscrito el 07 Oct 2006 12:10 pm
He probado y la ejecuta una vez y luego se cuelga todo.
Ademas necesito que los clips aparezcan completamente desenfocados al principio.
Bueno, eso y ¿no se supone que deberia funcionar?

Por oxk4r

56 de clabLevel



 

Orense·España

firefox
Citar            
MensajeEscrito el 08 Oct 2006 10:31 am
No metas las funciones dentro de otra función. Déjalas fuera y haz una función que las llame a todas- Y en cuánto a lo del setInterval, tendrías que buscar qué variables tienes que reiniciar para que funcione.

Por Zah

BOFH

4290 de clabLevel

27 tutoriales
5 articulos

  Bastard Operators From Hell Editores

Zaragoza, España

firefox

 

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