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

Oscar irrita astros ao exigir que eles compareçam pessoalmente à cerimônia

Oscar 2021: Zoom? Nem pensar! - Andrew H. Walker/Getty Images
Oscar 2021: Zoom? Nem pensar! Imagem: Andrew H. Walker/Getty Images

De Splash, em São Paulo

25/03/2021 08h28

Nada de videoconferência para o Oscar 2021: os produtores do prêmio da Academia vão exigir que, caso queiram discursar ou apresentar prêmios, os astros e estrelas de Hollywood apareçam pessoalmente na cerimônia, segundo o Deadline.

A decisão dos produtores da festa, que ocorre no próximo dia 25 de abril, está enfurecendo celebridades e especialmente estúdios — isso porque são eles que acabarão tendo que pagar pelas viagens e lidar com as dores de cabeça logísticas de levar seus indicados até Los Angeles (EUA) em plena pandemia do coronavírus.

De acordo com o Deadline, a Academia já recebeu várias reclamações diretas das empresas hollywoodianas, mas não apresentou sinal de recuar em sua decisão.

Uma fonte do site dentro de um estúdio explicou que, enquanto em circunstâncias normais teria que pagar apenas uma ou duas diárias de hotel para cada indicado de fora de Los Angeles, este ano terá que arcar com as duas semanas de quarentena de cada um deles, antes e depois da cerimônia. Isso sem nem considerar o quanto os projetos atualmente em filmagem pelos indicados serão atrasados pela exigência da Academia.

Por fim, alguns países com quarentenas mais restritas estão cobrando multas de cidadãos que saem de casa para atividades não essenciais. No Reino Unido, por exemplo (de onde muitos indicados, como Anthony Hopkins e Vanessa Kirby, são), a penitência é de 5 mil libras esterlinas, o equivalente a R$ 38 mil.

Olivia Colman e Anthony Hopkins em cena de 'Meu Pai': multas para ir ao Oscar? - Divulgação/IMDb - Divulgação/IMDb
Olivia Colman e Anthony Hopkins em cena de 'Meu Pai': multas para ir ao Oscar?
Imagem: Divulgação/IMDb

Caso mantenha a sua decisão, o Oscar 2021 será a primeira premiação em muito tempo a acontecer sem a ajuda de videoconferências. O Emmy do ano ado, o Globo de Ouro deste ano, e diversas outras cerimônias, contaram com indicados e vencedores aparecendo direto de suas casas.

O prêmio da Academia vai contar com algumas mudanças por causa do coronavírus, no entanto: ele vai acontecer em dois palcos diferentes em Los Angeles, um (a Union Station) onde indicados e vencedores estarão; e outro (o Dolby Theatre) onde ocorrerão apresentações musicais e outros momentos especiais da cerimônia.

Assim como o Oscar 2019 e o Oscar 2020, a edição 2021 da premiação vai acontecer sem um anfitrião principal.

Show de Janelle Monáe no Oscar 2020: performances musicais serão separadas de entrega de prêmios este ano - Getty Images - Getty Images
Show de Janelle Monáe no Oscar 2020: performances musicais serão separadas de entrega de prêmios este ano
Imagem: Getty Images