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

Em 'Pantanal', Almir Sater não queria voltar às novelas: 'Atrapalha muito'

Almir Sater é o chalaneiro Eugênio no remake de "Pantanal" - João Miguel Júnior/Globo
Almir Sater é o chalaneiro Eugênio no remake de 'Pantanal' Imagem: João Miguel Júnior/Globo

Colaboração para Splash

25/04/2022 07h53

O jejum de 16 anos que Almir Sater, 65 anos, manteve das novelas não se deu por acaso. Afastado do gênero desde 2006, quando atuou em "Bicho do Mato" (Record TV), ele itiu que não tinha qualquer intenção de voltar ao gênero favorito do público da TV.

"Realmente, não estava mais nos meus planos. Eu sou músico, e a novela prende muito a gente e acaba atrapalhando. Quando estamos numa, até tocamos pior. Com 'Pantanal' agora nem tem sido tanto assim, porque eu tenho tocado muito nas cenas e nos bastidores", explicou o ator e cantor, que atualmente vive o chalaneiro Eugênio no remake da trama de Benedito Ruy Barbosa.

"O Eugênio é um personagem muito mais do Bruno [Luperi, autor da adaptação] do que do Benedito. Na primeira versão, tinha um chalaneiro, vivido pelo Ivan de Almeida, mas ele não mantinha essa relação próxima com os personagens de diferentes núcleos. Para mim, tem sido um prazer. Mesmo depois de tanto tempo, não senti dificuldade em voltar para a frente das câmeras. Quando o texto é bom, fica tudo fácil", elogia, em entrevista ao jornal "O Globo".

Para quem não se recorda, Sater atuou também na primeira versão da história, transmitida pela TV Manchete em 1990. Seu personagem naquele então era o violeiro Trindade, que agora será vivido por Gabriel Sater, filho de Almir na vida real.

"Gabriel acompanhou parte das gravações da primeira versão quando era criança. Agora, a gente chegou a conversar sobre o personagem, mas achamos melhor não falarmos muito para que ele possa encontrar o caminho dele para o Trindade", conta.

O pai coruja, aliás, é só elogios aos dotes artísticos do herdeiro. "Ele é um menino muito talentoso e o seu instrumento de origem é violão erudito. Começou a estudar viola com mais afinco para o personagem e está tocando muito bem."