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

Estrela de musical da Netflix, Andrew Garfield diz que cantaria na Broadway

Colaboração para Splash, em São Paulo

19/11/2021 15h15

Famoso por participar de dois filmes de "Homem Aranha" (Marvel), Andew Garfield mostrou também ter talento para performances musicais. O ator americano é o protagonista de "Tick, Tick... Boom!", musical que acaba de chegar ao catálogo da Netflix.

O filme é baseado na peça de mesmo nome escrita por Jonathan Larson, que morreu precocemente, aos 35 anos, vítima de um aneurisma, em janeiro de 1996. Em entrevista a Zeca Camargo, apresentador do "Splash Show", Garfield falou sobre o apoio que teve para cantar no filme.

Eu me esforcei bastante e tive muito apoio e tempo. Trabalhei com a incrível preparadora de voz Liz Caplan e com o Lin, obviamente, e sua equipe maravilhosa. Foi preciso muita gente para minha voz chegar lá.

Apaixonado pelo teatro, o ator revelou também que gostaria de participar dos musicais da Broadway, em Nova York.

Eu amaria fazer isso em algum momento, adoraria levar minha voz ao teatro porque eu iro muito atores de musical. Eles são um outro nível de arte, rigor, disciplina e força. Eu assisti ao musical da Tina Turner recentemente e a atriz que a interpreta está em outro patamar. Fazer aquilo todas as noites e, às vezes, duas vezes por dia, é como assistir à Simone Biles fazer piruetas no ar, só que vocalmente.

O filme da Netflix se a em 1992 e aborda o estado psicológico de Jonathan Larson. Além do musical que dá nome ao filme, o compositor também é o autor de "Rent" e recebeu três prêmios "Tony", a maior premiação do teatro no mundo.

O diretor do filme Lin-Manuel Miranda, também em entrevista a Zeca, conta que se emocionou com os musicais criados por Larson e que gostaria que ele estivesse vivo para ver sua influência no teatro.

É comovente o fato de Jonathan Larson ter mudado o teatro musical para sempre e não ter vivido para ver essa mudança. Num mundo mais justo, ele teria 61 anos e estaria sentado aqui comigo e falando com você sobre seu décimo musical. Mas a gente não vive nessa linha do tempo. Ele era a pessoa que me fez sentir que eu poderia escrever um musical. 'Rent' fez meu cérebro explodir e 'Tick, Tick.. Boom!' me fez reforçar o meu desejo de estar nessa indústria. Então, eu me sinto muito grato por fazer um filme que mostra suas músicas para o mundo.

'Splash Show com Zeca Camargo'

Apresentado por Zeca Camargo toda quinta e sexta, o "Splash Show" assume sua pegada mais pop, discutindo os assuntos que estão bombando nas séries, nos filmes e também na música. O programa vai ao ar às 13h no YouTube de Splash.