Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá
To com um blema serio aqui com setInterval e while, to fritando o cerebro pra resolver isso.
tenho uma programação que ajusta o tamanho das coisas no meu pauco e posição, ta tudo dentro de uma função
Tem um setInterval executa esta função a cada 10 milesimos para que sempre se auto ajuste.
O problema é que o setInterval pesa o processamento do pc, o meu aqui de 14% tava indo pra 70% os por causa disso.
Ai lembrei do while, coloquei ele dentro da função para que tudo que ele ajusta, somente ajuste quando estiver dentro da consição.
Problema que o while ta travando o programa, trava o flash e trava o navegador se eu abrir nele, ta complicado.
não sei o que eu faço, alguem tem alguma ideia??
//COM SETINTERVAL//////////////////////////////////////////////////////////////////////
// POSIÇÃO /////////////////////////////////////////////////////////////////////////
var posicao1 = 0;
var posicao2 = 0;
var se1 = "posicao > posicao -1";
pos1 = function () {
posicao1 = posicao2+(posicao1-posicao2)/1.09;
if (se1 == true) {
posicao1 = posicao2;
}
};//variaveis com os tamanhos do stage///////////////////////////////////////
var tamanho_width = Stage.width;
var tamanho_height = Stage.height;
//função para redimencionar os fundos do site e posicionar os mc/////////////////////////////////////////
function stageResize() {
//Tamanho e posiçãoe dos fundo do site///////////////////////////////////////////////////////////////////
_root.load_fundo._xscale = tamanho_height;
_root.load_fundo._yscale = tamanho_width;
_root.load_fundo2._height = tamanho_height;
_root.load_fundo2._width = tamanho_width;
_root.load_fundo3._height = tamanho_height;
_root.load_fundo3._width = tamanho_width;
_root.load_fundo4._height = tamanho_height;
_root.load_fundo4._width = tamanho_width;
_root.load_fundo._x = Stage.width-Stage.width-posicao1;
_root.load_fundo._y = tamanho_height-tamanho_height;
_root.load_fundo2._x = load_fundo._x+load_fundo._width;
_root.load_fundo2._y = tamanho_height-tamanho_height;
_root.load_fundo3._x = load_fundo2._x+load_fundo2._width;
_root.load_fundo3._y = tamanho_height-tamanho_height;
_root.load_fundo4._x = load_fundo3._x+load_fundo3._width;
_root.load_fundo4._y = tamanho_height-tamanho_height;
//LOGO/////////////////////////////////////////////////////////////////////////////
_root.logo_mc._x = Stage.width-Stage.width+30;
_root.logo_mc._y = Stage.height-Stage.height;
//LOAD PÁGINAS //////////////////////////////////////////////////////////////////
_root.load_paginas_mc._x = load_fundo._x;
_root.load_paginas_mc._y = load_fundo._y;
}
listener.onResize = function() {
stageResize();
};
Stage.addListener(listener);
pos1();
stageResize();
//LOAD NAS FUNÇÕES E NOS ARQUIVOS DE FUNDO A CADA 10 MILÉSIMOS///////////////////////////////////////////
setInterval(pos1,10);
setInterval(stageResize,10);
setInterval(fun_blur,200);
//FIM//////////////////////////////////////////
//COM WHILE/////////////////////////////////////////////////////////////////////////////////
// POSIÇÃO /////////////////////////////////////////////////////////////////////////
var posicao1 = 0;
var posicao2 = 0;
var se1 = "posicao > posicao -1";
pos1 = function () {
while (posicao1 != posicao2) {
posicao1 = posicao2+(posicao1-posicao2)/1.09;
if (se1 == true) {
posicao1 = posicao2;
}
trace(posicao1);
}
};//variaveis com os tamanhos do stage///////////////////////////////////////
var tamanho_width = Stage.width;
var tamanho_height = Stage.height;
//função para
function stageResize() {
while (posicao1 != posicao2) {
//bg///////////////////////////////////////////////////////////////////
_root.load_fundo._xscale = tamanho_height;
_root.load_fundo._yscale = tamanho_width;
_root.load_fundo2._height = tamanho_height;
_root.load_fundo2._width = tamanho_width;
_root.load_fundo3._height = tamanho_height;
_root.load_fundo3._width = tamanho_width;
_root.load_fundo4._height = tamanho_height;
_root.load_fundo4._width = tamanho_width;
_root.load_fundo._x = Stage.width-Stage.width-posicao1;
_root.load_fundo._y = tamanho_height-tamanho_height;
_root.load_fundo2._x = load_fundo._x+load_fundo._width;
_root.load_fundo2._y = tamanho_height-tamanho_height;
_root.load_fundo3._x = load_fundo2._x+load_fundo2._width;
_root.load_fundo3._y = tamanho_height-tamanho_height;
_root.load_fundo4._x = load_fundo3._x+load_fundo3._width;
_root.load_fundo4._y = tamanho_height-tamanho_height;
//LOGO/////////////////////////////////////////////////////////////////////////////
_root.logo_mc._x = Stage.width-Stage.width+30;
_root.logo_mc._y = Stage.height-Stage.height;
//LOAD PÁGINAS //////////////////////////////////////////////////////////////////
_root.load_paginas_mc._x = load_fundo._x;
_root.load_paginas_mc._y = load_fundo._y;
trace(tamanho_height);
trace(tamanho_width);
}
}
listener.onResize = function() {
stageResize();
};
Stage.addListener(listener);
pos1();
stageResize();
//FIM////////////////////////////////////////////////////
no caso do while eu uso um botão no pauco com a action
on (release) {
_root.posicao2 = 300; //MUDO O VALOR DA VARIAVEL
_root.pos1(); // CHAMO A FUNÇÃO
_root.stageResize(); // CHAMO A FUNAÇÃO
}
o que fazer????
existe outro procedimento para que execute um bloco de instruções quando uma determinada condição seja verdadeira até que seja falsa sem pesar o processamento???
Carregando comentários...