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

Licorice Pizza não fala de comida, mas agrada com as 3 indicações ao Oscar

Alana Haim e Cooper Goffman em "Licorice Pizza", filme de Paul Thomas Anderson - Divulgação
Alana Haim e Cooper Goffman em "Licorice Pizza", filme de Paul Thomas Anderson Imagem: Divulgação

Domingas Person

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

17/02/2022 04h00

O novo filme do Paul Thomas Anderson, "Licorice Pizza", chega aos cinemas com 3 indicações ao Oscar: Melhor Filme, Direção e Roteiro Original.

Vem também com elogios e críticas: enquanto uns adoram a Los Angeles dos anos 70, outros recriminam o romance que envolve um menor de idade.

Licorice Pizza

Lançamento: 2022 Duração: 133min Pais: Estados Unidos Status: Em Cartaz Direção: Paul Thomas Anderson Roteiro: Paul Thomas Anderson

Pontos Positivos

  • Ambientação em Los Angeles dos anos 70 e trilha sonora da época de primeira
  • Direção e roteiro envolventes, como (praticamente) todos os filmes do P.T. Anderson
  • Ótimas atuações de dois atores novatos, que têm muito carisma e magnetismo

Pontos Negativos

  • Os personagens reais que inspiram as participações de Sean Penn e Bradley Cooper não são conhecidos do público brasileiro
  • O filme é um pouco mais longo do que os 90' usuais, pode ser uma questão para quem não está acostumado a ficar tanto tempo na tela (embora eu mesma nem tenha sentido o tempo ar)

São as diferenças de experiência e temperamento dos protagonistas que formam o eixo do filme: Gary Valentine (Cooper Hoffman) é super jovem, mas já trabalha há anos, é conectado e ambicioso; e Alana Kane (Alana Haim), a grande estrela do filme, apesar de mais velha, está meio perdida na vida e mora com os pais e as irmãs —e eles são a família real da atriz.

A diferença de idade é definitiva, mas existe entre eles uma relação emocional, intensa, que faz com que os protagonistas conversem e andem e corram pra lá e pra cá o tempo todo pelo San Fernando Valley, um lugar que, do jeito que é retratado pelo cineasta, parece um alegre e leve devaneio, onde tudo pode existir, desde um salão de pinball até uma loja de colchões de água (anos 70 ao extremo), e a sede da campanha de um político que tanto lembra "Taxi Driver". Porque, claro, pode haver perigo na esquina...

Antes que perguntem, porque muita gente sai do filme e não vê, nem ouve falar em pizza, muito menos de alcaçuz (licorice, em inglês)!!! Esse era o nome de uma cadeia de lojas de discos de vinis da Califórnia na época, uma referência ao que a gente identifica como "bolachão"(alguém aí lembra das lojas Hi-Fi, por falar nisso?).

Cena do filme "Licorice Pizza", de Paul Thomas Anderson - Divulgação - Divulgação
Cena do filme 'Licorice Pizza', de Paul Thomas Anderson
Imagem: Divulgação

Uma curiosidade sobre a escolha do elenco, já que tanto Cooper como Alana são novatos e o cineasta costuma trabalhar com atores do calibre de Daniel Day Lewis e Julianne Moore: Cooper é filho do falecido Phillip Seymour Hoffman- aliás, muito parecido com ele- que era um dos atores preferidos de P.T.; já Alana faz parte de uma banda com suas irmãs, as Haim Sisters, e P.T. dirigiu vários clipes delas, e elas já tiveram indicação ao Grammy, etc.

Mas daí até saber que Alana seria uma revelação nas telas, foi uma aposta alta, e muito bem feita. Ela faz a gente ficar grudado no filme - e nela- até o fim, uma qualidade que o próprio diretor disse ter experimentado e que foi o que o levou a convidá-la.

Alana também cresceu e mora no "Vale", o subúrbio de Los Angeles, como P.T. Anderson, lugar que ele já mostrou em outros filmes seus como "Boogie Nights" e "Magnolia".

Mas "Licorice Pizza" traz outros elementos autobiográficos, como personagens baseados em pessoas da época, contribuindo para um ambiente nostálgico de Hollywood, e com participações audaciosas- e deliciosas- de Sean Penn, Tom Waits e Bradley Cooper.

E tem aquela atenção especial à trilha sonora da época, que coloca a gente no "mood" certo e inclui David Bowie, Paul McCartney com Wings, Sonny e Cher.

É quase uma versão de Anderson, numa narrativa rara e alegre, para "Era uma vez. . . em Hollywood".