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

Real Madrid

Série mostra bastidores da "última dança" dos Galácticos do Real Madrid

Pôster de "Galáticos", a série documental da ESPN que conta ascensão e queda de um Real Madrid histórico - Divulgação
Pôster de "Galáticos", a série documental da ESPN que conta ascensão e queda de um Real Madrid histórico Imagem: Divulgação

Arthur Sandes

Do UOL, em São Paulo

23/02/2021 04h00

O verdadeiro time dos sonhos, que contratou um craque por ano e no fim acumulou tantas estrelas que mal conseguiu combiná-las no time titular. Ronaldo Fenômeno, Zidane, Luís Figo, Beckham e cia. formaram os Galácticos do Real Madrid, um time histórico por sua ambição e pela avassaladora cobertura midiática que em grande parte moldou o futebol atual. Amanhã (24) estreia uma série documental do canal ESPN que conta os bastidores desta história.

O seriado "Galáticos" tem três episódios de 30 minutos cada. Eles serão exibidos em ordem a partir das 19h30 (de Brasília) na ESPN. Para a criação do documentário, a produção fez 33 entrevistas e se debruçou sobre mais de 500 horas de imagens de arquivo daquele Real Madrid. Era mesmo um time galáctico, fascinante, mas que jogava melhor na publicidade do que em um campo de futebol.

"Há uma frase de Iván Helguera [zagueiro do Real na época] que diz 'o clube ganhava até quando perdia'. Ou seja, o marketing, os direitos de imagem e a publicidade como um todo eram tão importantes que de alguma forma aram a consumir o futebol", explica Martin Ainstein, repórter especial da ESPN na Europa, que participou da produção da série.

Tudo começou quando Florentino Pérez assumiu o Real Madrid, em 2000, e o clube imediatamente aderiu à megalomania. Na própria campanha presidencial, ele já prometia pagar a multa rescisória de Luís Figo junto ao rival Barcelona —e assim o fez. Daí em diante, o Real contratou Zidane (em 2001), Ronaldo (dias após a Copa do Mundo de 2002) e David Beckham (2003).

Foi o primeiro e até hoje único time da história a reunir três vencedores do prêmio de melhor do mundo da Fifa —os três primeiros citados. A ambição, porém, trouxe mais problemas do que soluções: o próprio diretor esportivo do Real Madrid à época, Jorge Valdano, ite que o clube "ultraou o limite quando contratou Beckham". Não porque o meia inglês fosse um problema, mas porque trazia consigo um universo midiático que colaborou muito para a perda de foco da equipe no futebol.

"Esta dualidade entre as exigências de marketing e o bom desempenho em campo aparece nos três episódios. Não é que o futebol tenha tido menor importância, porque é claro que o clube queria ganhar, mas as obrigações de publicidade eram muitas: por um lado o tempo para treinar era curto, por outro, o time tinha que fazer viagens inesperadas para outro continente", comenta Rodolfo Martinez, vice-presidente de produção da ESPN nos Estados Unidos.

"Galaticos" lembra como o Real Madrid montou um time de supercraques sem no entanto uni-los em um supertime. A história vai de 2000 a 2006, começando por um título de Liga dos Campeões (antes do auge galáctico), ando pela era Vanderlei Luxemburgo e a legião brasileira e ao fim terminando em melancolia e reestruturação.

Real Madrid