Teodorico 0 Denunciar post Postado Dezembro 19, 2003 Olá, Tenho um Movie Clip com 4 layers, todas com um único frame, na ordem a seguir: actions: vide código abaixo frame: um contorno de retângulo, que delimita onde a barra vai aparecer bar: um MC de uma barra instanciado como "bar" text: campo de texto dinâmico instanciado como "percent" function checkLoad(obj) { var lBytes = target.getBytesLoaded(); // Dúvida nº 1 var tBytes = target.getBytesTotal(); // Dúvida nº 1 var percentLoaded = Math.floor((lBytes/tBytes)*100); bar._xscale = percentLoaded; percent.text = Math.floor(percentLoaded)+"% of "+Math.floor(tBytes/1024)+"KB loaded."; if (lBytes>=tBytes && tBytes>0) { if (count>=12) { clearInterval(checkProgress); _parent[loadExit](); // Dúvida nº 2 obj.removeMovieClip(); } else { count++; } } updateAfterEvent();}checkProgress = setInterval(checkLoad, 100, this); // Dúvida nº 3stop(); Agora vamos às dúvidas: 1) Ao analisar o código do arquivo de script externo loadfile.as (listado abaixo), descobri que o target é uma variável (initObject seria um objeto e as variáveis suas propriedades?). Neste caso como eu deveria "interpretar" este comando nas definições das duas variáveis (lBytes e tBytes)? O que o Flash está "fazendo" com o "total de bytes carregados" e o "total de bytes"? Há uma linha definindo a variável loadObj como holder, seria então o loadObj uma instância do MC holder? 2) _parent[loadExit]() vai fazer o que exatamente no MC "pai"? Observação: só encontrei loadExit na definição da variável initObject no arquivo de script externo chamado loadfile.as: function loadFile(){ var fileExtension = fileURL.text.substr(-3); _root.createEmptyMovieClip("holder",1); if(fileExtension == "swf" || fileExtension == "jpg"){ holder.loadMovie(fileURL.text); var loadObj = holder; } else if(fileExtension == "mp3"){ sound_1 = new Sound(holder); sound_1.loadSound(fileURL.text, true); var loadObj = sound_1; } var initObject = { _x: fileURL._x, _y: fileURL._y - 40, target: loadObj, loadExit: null }; _root.attachMovie("loader","loader",2, initObject);}function unloadFile(){ if(typeof(holder) != undefined){ holder.removeMovieClip(); } if(typeof(sound_1) != undefined){ sound_1.stop(); delete sound_1; }} 3) Sobre o setInteval, vou dizer o que entendi: a função checkLoad será chamada a cada 0,1 segundos (pois o segundo argumento é dado em milissegundos) e será passado o argumento "this" para a função que será o nosso "obj". Minha dúvidas: - que tipo de variável é checkProgress (numérica?)? - quem está fazendo o papel de "this" neste caso, já que tenho 3 objetos nas layers frame, bar e text? Como o Flash consegue determinar qual deles vai usar, já que a action está numa layer separada? Se for necessário posso disponibilizar o .fla para download, ok? Compartilhar este post Link para o post Compartilhar em outros sites
Leandro Ferreira 0 Denunciar post Postado Dezembro 19, 2003 disponibilize então, senão complica :wacko:/> Compartilhar este post Link para o post Compartilhar em outros sites
Teodorico 0 Denunciar post Postado Dezembro 20, 2003 Arquivo para download. Desde já grato pela ajuda que vier a receber. ;)/> Compartilhar este post Link para o post Compartilhar em outros sites