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

Sandra Bullock não quer mais viver 'crushes' no cinema: 'Não é engraçado'

Sandra Bullock retorna ao mundo das comédias românticas com "Cidade Perdida" - Kimberley French/Paramount Pictures
Sandra Bullock retorna ao mundo das comédias românticas com 'Cidade Perdida' Imagem: Kimberley French/Paramount Pictures

Laysa Zanetti

De Splash, em São Paulo

29/04/2022 04h00

Sandra Bullock está pronta para se aposentar da atuação, mas é por enquanto. A atriz anunciou recentemente que fará uma pausa na carreira para se dedicar à família. Antes disso, ela volta aos cinemas com o filme "Cidade Perdida", que a coloca de volta no universo das comédias e longe do papel tradicional de interesse amoroso do homem.

No longa, ela interpreta Loretta Sage, uma historiadora que se torna escritora de romances quando resolve "adicionar um pouco de sexo" em seus livros para alavancar as vendas.

Durante turnê de divulgação de seu último lançamento, ela e seu modelo de capa, Alan (Channing Tatum), acabam sendo sequestrados por Abigail Fairfax (Daniel Radcliffe), que tenta encontrar um tesouro na cidade perdida em que se a o livro de Loretta.

Despretensioso, o filme é um retorno mais que competente às comédias românticas de ação e aventura, um gênero que acabou escanteado para as plataformas de streaming e perdendo espaço nas telonas. Para Bullock, é uma oportunidade de mostrar complexidade sem deixar de lado o humor e os traços cômicos.

Eu não quero estar em um filme em que sou apenas o interesse amoroso, porque isso não é engraçado. Em 'Cidade Perdida', eu executo o papel que seria normalmente do homem.
Sandra Bullock, atriz e produtora do filme

Segundo Bullock, ela buscou referências olhando para o ado:

"Você precisa encontrar uma época em que as mulheres fazem o que os homens também fazem", refletiu.

"Então, teria que voltar aos anos 1930... [Katherine] Hepburn e [Spencer] Tracy, quando as palavras eram as espadas em jogo. E é disso que eu gosto. Qualquer coisa que eles fizeram, e comédias físicas, como filmes de Charlie Chaplin, Jerry Lewis, Carol Burnett, Lucille Ball. Qualquer coisa com comédia física é o que me faz feliz nesse universo cômico.

Um novo Harry Potter

Daniel Radcliffe interpreta vilão em busca de tesouro na comédia 'Cidade Perdida', com Sandra Bullock - Paramount Pictures/Divulgação - Paramount Pictures/Divulgação
Daniel Radcliffe interpreta vilão em busca de tesouro na comédia 'Cidade Perdida', com Sandra Bullock
Imagem: Paramount Pictures/Divulgação

A escalação de Daniel Radcliffe para interpretar o vilão pode até ser algo que surpreende o público, acostumado a vê-lo como o bruxinho Harry Potter. Mas Bullock e Tatum não medem elogios ao britânico de 32 anos.

"Por sorte ou azar, durante muito tempo as pessoas não conseguiam separá-lo do papel que o apresentou ao mundo, e foi um tão grandioso", reflete Tatum.

"Mas há tantos elementos naquele homem. E ele é um homem agora! É um cara brilhante, não há nada que ele não consiga fazer, ele é uma pessoa adorável. Conheço muitas pessoas que cresceram na indústria e, para ele, ser tão equilibrado, preocupado e evoluído... ele teria todas as desculpas do mundo para não ser assim, e é uma das pessoas mais estáveis que eu conheço."

A atriz concorda.

"O empolgante sobre o personagem dele no filme é que você nunca esperaria que ele fosse quem é. E ele executa de forma tão sucinta, elegante, divertida, comprometida e sexy. É empolgante porque as pessoas vão se surpreender: 'Esse é o Daniel Radcliffe?'", brincou.