;(function() { window.createMeasureObserver = (measureName) => { var markPrefix = `_uol-measure-${measureName}-${new Date().getTime()}`; performance.mark(`${markPrefix}-start`); return { end: function() { performance.mark(`${markPrefix}-end`); performance.measure(`uol-measure-${measureName}`, `${markPrefix}-start`, `${markPrefix}-end`); performance.clearMarks(`${markPrefix}-start`); performance.clearMarks(`${markPrefix}-end`); } } }; /** * Gerenciador de eventos */ window.gevent = { stack: [], RUN_ONCE: true, on: function(name, callback, once) { this.stack.push([name, callback, !!once]); }, emit: function(name, args) { for (var i = this.stack.length, item; i--;) { item = this.stack[i]; if (item[0] === name) { item[1](args); if (item[2]) { this.stack.splice(i, 1); } } } } }; var runningSearch = false; var hadAnEvent = true; var elementsToWatch = window.elementsToWatch = new Map(); var innerHeight = window.innerHeight; // timestamp da última rodada do requestAnimationFrame // É usado para limitar a procura por elementos visíveis. var lastAnimationTS = 0; // verifica se elemento está no viewport do usuário var isElementInViewport = function(el) { var rect = el.getBoundingClientRect(); var clientHeight = window.innerHeight || document.documentElement.clientHeight; // renderizando antes, evitando troca de conteúdo visível no chartbeat-related-content if(el.className.includes('related-content-front')) return true; // garante que usa ao mínimo 280px de margem para fazer o lazyload var margin = clientHeight + Math.max(280, clientHeight * 0.2); // se a base do componente está acima da altura da tela do usuário, está oculto if(rect.bottom < 0 && rect.bottom > margin * -1) { return false; } // se o topo do elemento está abaixo da altura da tela do usuário, está oculto if(rect.top > margin) { return false; } // se a posição do topo é negativa, verifica se a altura dele ainda // compensa o que já foi scrollado if(rect.top < 0 && rect.height + rect.top < 0) { return false; } return true; }; var asynxNextFreeTime = () => { return new Promise((resolve) => { if(window.requestIdleCallback) { window.requestIdleCallback(resolve, { timeout: 5000, }); } else { window.requestAnimationFrame(resolve); } }); }; var asyncValidateIfElIsInViewPort = function(promise, el) { return promise.then(() => { if(el) { if(isElementInViewport(el) == true) { const cb = elementsToWatch.get(el); // remove da lista para não ser disparado novamente elementsToWatch.delete(el); cb(); } } }).then(asynxNextFreeTime); }; // inicia o fluxo de procura de elementos procurados var look = function() { if(window.requestIdleCallback) { window.requestIdleCallback(findByVisibleElements, { timeout: 5000, }); } else { window.requestAnimationFrame(findByVisibleElements); } }; var findByVisibleElements = function(ts) { var elapsedSinceLast = ts - lastAnimationTS; // se não teve nenhum evento que possa alterar a página if(hadAnEvent == false) { return look(); } if(elementsToWatch.size == 0) { return look(); } if(runningSearch == true) { return look(); } // procura por elementos visíveis apenas 5x/seg if(elapsedSinceLast < 1000/5) { return look(); } // atualiza o último ts lastAnimationTS = ts; // reseta status de scroll para não entrar novamente aqui hadAnEvent = false; // indica que está rodando a procura por elementos no viewport runningSearch = true; const done = Array.from(elementsToWatch.keys()).reduce(asyncValidateIfElIsInViewPort, Promise.resolve()); // obtém todos os elementos que podem ter view contabilizados //elementsToWatch.forEach(function(cb, el) { // if(isElementInViewport(el) == true) { // // remove da lista para não ser disparado novamente // elementsToWatch.delete(el); // cb(el); // } //}); done.then(function() { runningSearch = false; }); // reinicia o fluxo de procura look(); }; /** * Quando o elemento `el` entrar no viewport (-20%), cb será disparado. */ window.lazyload = function(el, cb) { if(el.nodeType != Node.ELEMENT_NODE) { throw new Error("element parameter should be a Element Node"); } if(typeof cb !== 'function') { throw new Error("callback parameter should be a Function"); } elementsToWatch.set(el, cb); } var setEvent = function() { hadAnEvent = true; }; window.addEventListener('scroll', setEvent, { capture: true, ive: true }); window.addEventListener('click', setEvent, { ive: true }); window.addEventListener('resize', setEvent, { ive: true }); window.addEventListener('load', setEvent, { once: true, ive: true }); window.addEventListener('DOMContentLoaded', setEvent, { once: true, ive: true }); window.gevent.on('allJSLoadedAndCreated', setEvent, window.gevent.RUN_ONCE); // inicia a validação look(); })();
  • AssineUOL
Topo

Walter Salles Cineasta brasileiro

12/04/1956, Rio de Janeiro, RJ

Da Página 3 Pedagogia & Comunicação

13/09/2007 08h04

Diretor, roteirista e produtor, Walter Salles foi um dos cineastas brasileiros responsáveis pela retomada do cinema nacional. Conseguiu também projeção internacional após receber duas indicações ao Oscar por seu filme "Central do Brasil", em 1998.

Walter Salles cursou Economia na Pontifícia Universidade Católica, no Rio de Janeiro. Em seguida mudou-se para os Estados Unidos, onde fez mestrado em Comunicação Audiovisual na Universidade da Califórnia.

Entre 1983 e 1993, no Brasil, realizou uma série de entrevistas para a televisão, além de especiais e documentários. Realizou também dois documentários sobre o escultor Franz Krajcberg.

Junto com o irmão, João Moreira Salles, fundou, em 1987 a produtora Videofilmes. Entre 1989 e 1991 esteve à frente da produção do filme "A Grande Arte", baseado no livro de Rubem Fonseca.

Em 1995, em co-direção com a cenógrafa Daniela Thomas, Walter Salles lançou "Terra Estrangeira", com boa aceitação da crítica e do público. O lançamento de "Central do Brasil", em 1998, ajudou a mudar a visão que o grande público tinha do cinema nacional. O filme se tornou um recordista de prêmios recebidos, e foi aplaudido nos festivais de Cannes, Berlim e Havana. No mesmo ano, o média-metragem "O Primeiro Dia", foi premiado no Brasil.

O trabalho seguinte de Walter Salles foi "Abril Despedaçado", baseado no livro homônimo do escritor albanês Ismail Kadaré. Em 2002 Walter Salles produziu "Cidade de Deus", filme dirigido por Fernando Meirelles e Kátia Lund, e "Madame Satã", de Karim Ainouz. Em 2003 dirigiu o filme "Diários de Motocicleta", baseado no livro de viagens de Che Guevara.

Em 2005, Salles fez sua estréia hollywoodiana com "Água Negra", refilmagem de título homônimo do japonês de Hideo Nakata (o mesmo de "O Chamado"). No mesmo ano, com co-direção de Daniela Thomas, realizou o episódio "20ème Arrondissement", que faz parte do filme "Paris, je t'aime".