;(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

Laurence Fishburne Ator e diretor norte-americano

30 de julho de 1961, Augusta, Estado da Geórgia (EUA)

Da Página 3 Pedagogia & Comunicação

02/02/2009 19h00

Ainda que tenha nascido no Estado da Geórgia, nos EUA, Laurence John Fishburne 3º cresceu com sua mãe, a professora Hattie Fishburne, no bairro do Brooklyn, em Nova York. Foi ela quem o entusiasmou a seguir a carreira artística. Assim, quando ainda era um menino, entre 1973 e 1976, Laurence interpretou Josuah West Hall, um garoto adotado, na comédia "One Life to Live". Mais tarde, quando jovem, ele integraria o famoso Actor's Studio.

Depois de gravar por 18 meses, nas Filipinas, o filme "Apocalypse Now", de Francis Ford Coppola, Laurence Fishburne conseguiu a visibilidade de que necessitava. A partir daí, apareceu em sucessivos filmes: "Rumble Fish" (1983), "The Cotton Club" (1984), "Gardens of Stone" (1987), "A cor púrpura" (1986), de Steven Spielberg, e "Lute pela coisa certa" (1988), de Spike Lee.

Depois de atuar no filme "Two Trains Running", de August Wilson, Fishburne recriou o papel na Broadway, em 1992, ganhando vários prêmios, incluindo o Tony Award. A seguir, ganhou um Emmy por sua aparição como artista convidado na série "Tribeca", da Fox.
 

Encontro com o sucesso

Nos anos seguintes, Fishburne atuaria em inúmeros filmes, inclusive no papel do ciumento Otelo, na filmagem da tragédia shakespeariana feita por Oliver Parker. Seu maior sucesso - e também seu maior êxito comercial - viria no papel de Morpheus, na trilogia "Matrix", como um líder revolucionário de características "zen".

Fishburne foi indicado ao Oscar por seu papel como Ike Turner no filme "A Verdadeira História de Tina Turner", de 1993, e debutou como diretor em "Once in the Life" (2000), uma adaptação de sua obra "Riff Raff", que ele escrevera por volta de 1995 e encenara na Broadway.

No final de 2008, Fishburne foi escolhido para atuar na série "CSI: Crime Scene Investigation", substituindo o protagonista William Petersen (Gil Grissom, na série). A escolha não foi fácil, pois disputavam o papel os atores John Malkovich e Kurt Russell.

Laurence Fishburne foi nomeado embaixador da UNICEF em junho de 1996, pois é um defensor das vítimas de minas terrestres e dos direitos das crianças em todo o mundo.
 

Folha de S. Paulo; El País