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

OPINIÃO

RMP: 'Flamengo de Paulo Sousa não sabe o que fazer contra retrancas'

Colaboração para o UOL, em Aracaju

02/05/2022 04h00

Com um time misto, o Flamengo venceu o Altos-PI por 2 a 1 ontem (1º) pela Copa do Brasil, mas não jogou bem. Após sair atrás do placar com um golaço de bicicleta, o time reagiu embalado pela torcida e chegou à virada com Pedro e João Gomes. Apesar do importante resultado - no jogo da volta, no Maracanã, o Rubro-Negro pode até empatar para se classificar -, a equipe de Paulo Sousa voltou a sofrer além da conta diante de um adversário bem fechado, mas inferior.

Na Live do Flamengo, transmitida pelo UOL Esporte após os jogos do Mengão, os jornalistas André Rocha e Renato Maurício Prado analisaram o desempenho da equipe contra o Altos-PI e afirmaram que os jogadores flamenguistas repetiram erros já conhecidos do torcedor. Na opinião de RMP, o time continua sofrendo demais para criar chances de gol contra equipes fechadas, o que tem sido uma tônica no trabalho do treinador português até aqui.

"O padrão tático do Paulo Sousa me incomoda, parece que não sabe o que fazer contra time retrancado, repete os mesmos erros e padrões. Fica Léo Pereira e David Luiz tocando a bola sem saber o que fazer, porque o ataque na frente não se mexe, fica parado. Não vejo uma aproximação para fazer uma triangulação, um dos fundamentos do jogo posicional é esse, se aproximar e fazer triangulações."

"Aí ficam dois jogadores na linha lateral, mas não tem ninguém para fazer uma virada de jogo, não consigo ver as soluções do esquema do Paulo Sousa, seja o jogador que for, não vejo o time e o ataque fluírem. Quase todo mundo vai jogar fechado assim contra o Flamengo, então tem que ter soluções táticas para isso, e eu não vejo um esquema tático bem definido para resolver esses problemas", acrescentou RMP.

Segundo ele, um dos problemas do sistema de Paulo Sousa é a sobrecarga dos volantes, que precisam atuar na marcação e na construção com a mesma intensidade e qualidade, como fazia o meia Gerson em sua agem pela Gávea. RMP disse que hoje o Flamengo se ressente da ausência de um jogador assim.

"Um dos problemas do sistema é que ele se apoia na ideia que os volantes devem construir muito bem, mas com a saída do Gerson o Flamengo não tem mais esse jogador, João Gomes e Thiago Maia não são volantes construtores."

"Talvez o Paulo Sousa se apegue nessa ideia porque ele foi um grande volante construtor, então esse esquema parte do pressuposto que você precisa ter volantes muito talentosos, com capacidade de armar e de marcar, e os dois volantes do Flamengo não são grandes armadores", analisou RMP.

"É um cara muito raro no futebol mundial, o box to box com talento você vê nos melhores times da Premiere League, no Real Madrid, mas não está dando sopa não. Não vejo esses volantes do Flamengo hoje em dia fazendo essa função", finalizou.

A próxima edição da Live do Flamengo será na quarta (4), logo após a partida contra o Talleres, pela Libertadores. Você pode acompanhar a live pelo Canal UOL, no app Placar UOL, na página do Flamengo no UOL Esporte ou no canal do UOL Esporte no YouTube.