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

Blade Runner: atriz diz que diretor a pôs em cena de assédio após rejeição

Harrison Ford e Sean Young em cena de "Blade Runner: O Caçador de Androides" - Reprodução
Harrison Ford e Sean Young em cena de 'Blade Runner: O Caçador de Androides' Imagem: Reprodução

De Splash, em São Paulo

24/03/2021 09h33

Sean Young acredita que a cena do clássico "Blade Runner: Caçador de Androides" em que sua personagem, Rachael, é forçada pelo protagonista Rick Deckard (Harrison Ford) a beijá-lo — e, o filme insinua, mais do que isso — foi uma espécie de "vingança" do diretor Ridley Scott contra ela.

Honestamente? Ridley queria que eu o namorasse. Ele tentou muito ficar comigo no começo das filmagens, e eu disse não. Então ele começou a namorar a atriz que interpretava Zhora, Joanna Cassidy, e eu fiquei aliviada. Mas depois veio essa cena, e acho que Ridley queria me dizer 'vai se f*der'. Durante a gravação, eu fiquei pensando: 'Por que essa cena precisa ser desse jeito? Qual é o ponto?'. Acho que foi uma mensagem não tão sutil de Ridley para mim."
Sean Young em entrevista ao The Daily Beast

Young ainda disse que nunca falou mal de Scott antes para a mídia, e que portanto não entendia o motivo do diretor nunca tê-la contratado de novo. "Ele deu um zilhão de papeis para o Russell Crowe, mas nenhum outro para mim?", questionou.

A atriz também criticou a continuação do clássico, "Blade Runner 2049", que incluiu uma breve cena de Rachael em holograma. Young assinou um contrato permitindo o uso de seu rosto, recriado digitalmente, no longa.

Não foi uma m*rda? Não pude fazer nada sobre isso. Estava claro que eles perceberam que o público ia ficar bravo se Rachael não aparecesse, mas não queriam que eu reclamasse disso publicamente. Eles me pagaram um dinheiro, me fizeram um contrato, e me deram aquela cena de 30 segundos. Por mim, tudo bem. Eles deram um trabalho ao meu filho, Quinn, na equipe de efeitos especiais. Ele tem muito talento."
Sean Young sobre 'Blade Runner 2049'