afonsilho 0 Denunciar post Postado Março 27, 2009 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; } }; //TAMANHO E POSIÇÃO DOS MC/////////////////////////////////////////////////////////// var listener:Object = new Object(); //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); } }; //TAMANHO E POSIÇÃO DOS MC/////////////////////////////////////////////////////////// var listener:Object = new Object(); //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??? Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Março 27, 2009 Bom para fazer isso tem varias funções... Mas não entendi ao certo pra que você quer fazer isso... se você estiver carregando seus clips por um loadMovie Mude e use a classe MovieClipLoader Ai passa a usar no onLoadInit Que você pode setar tudo para centralizar ali de uma feita só... Abraços Compartilhar este post Link para o post Compartilhar em outros sites
afonsilho 0 Denunciar post Postado Março 27, 2009 puxa, nao entendi direito o que você colocou ai mas enfim o que eu preciso é que a função seja executada sempre que uma condição for verdadeira, ou o conteudo desta função, isso pra não pesar o processamento. Compartilhar este post Link para o post Compartilhar em outros sites
afonsilho 0 Denunciar post Postado Março 27, 2009 Resolvi, usei o onEnterFrame. como faço pra colocar a tag [RESOLVIDO] no titulo??? Compartilhar este post Link para o post Compartilhar em outros sites