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

Supernatural: Jensen diz por que não falou a Jared Padalecki sobre spin-off

Jensen Ackles fala sobre spin-off de "Supernatural" - Reprodução/Instagram
Jensen Ackles fala sobre spin-off de "Supernatural" Imagem: Reprodução/Instagram

Colaboração para Splash, em Pernambuco

22/01/2022 09h22Atualizada em 22/01/2022 11h02

A recente "treta pública" entre Jensen Ackles e Jared Padalecki, conhecidos por terem interpretado os irmãos Dean e Sam Winchester na série de sucesso da CW "Supernatural", voltou a ser assunto, com Jensen explicando por que não contou ao parceiro sobre o spin-off (série derivada) do programa, em fase de produção.

"Sou extremamente supersticioso quando se trata de algumas coisas... E isso é provavelmente algo que muitos atores compartilham - não falamos sobre audições até conseguirmos o papel, é uma regra não escrita que você simplesmente não fala sobre até que esteja fechado, até que a tinta esteja seca", explicou o ator em entrevista ao podcast de Michael Rosenbaum.

Ele continuou:

Esse foi meu primeiro empreendimento em produzir e criar conteúdo, e eu não queria dar azar de jeito nenhum, então eu calei a boca sobre isso. Só as pessoas que precisavam saber sabiam. Eu não estava tentando manter isso em segredo por nada além da superstição. Eu definitivamente tinha pessoas que eu queria contar, com Jared sendo o número um dessa lista".

A "confusão" entre os "irmãos Winchester" aconteceu porque, logo após o anúncio de que a CW estava produzindo um novo programa derivado de "Supernatural", com Jensen envolvido, Jared o parabenizou pelo twitter, deixando claro que não estava sabendo da nova empreitada.

Jensen garante, contudo, que eles conseguiram resolver as diferenças.

"Recebi uma longa mensagem de texto de Jared e ele ficou muito chateado, e lembro que meu coração afundou. Olhando agora, eu vejo que isso poderia ter sido evitado. Mas ele fez isso, e aconteceu, e nós lidamos com isso. E nós estamos ótimos. Ele entendeu totalmente. Ele entendeu e disse 'Ah, eu provavelmente não deveria ter feito isso.'", contou o intérprete de Dean.

Segundo Jensen, o piloto da série já está escrito, mas ainda não há uma previsão para estreia.

O spin-off de "Supernatural", até onde se sabe, contará a história dos pais de Sam e Dean, John e Mary Winchester.