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

Bruno Montaleone: 'Cena de sexo tem menos glamour do que pensam'

Após sucesso em "Verdades Secretas 2", Bruno Montaleone interpreta Ivan em "Amor Perfeito"  - João Miguel Júnior/Globo
Após sucesso em "Verdades Secretas 2", Bruno Montaleone interpreta Ivan em "Amor Perfeito" Imagem: João Miguel Júnior/Globo

De Splash, em São Paulo

01/04/2023 04h00

Bruno Montaleone, 26, é Ivan em "Amor Perfeito", novela das 18h da Globo. O ator se destacou anteriormente pelas frequentes cenas de sexo em "Verdades Secretas 2", disponível no Globoplay desde 2021.

O ator interpretou o personagem Matheus na trama de Walcyr Carrasco. Montaleone protagonizou um beijo grego com Johnny Massaro durante a produção.

"É tudo muito menos glamorizado do que todo mundo pensa. Vira literalmente uma coreografia, uma dança. Não estamos fazendo um filme adulto. Como tudo na dramaturgia, existem vários truques para parecer real", afirmou em papo exclusivo com Splash.

"É claro que mexe um pouco com as nossas vergonhas. Agora que fiz, acho que nada vai surpreender tanto em um novo desafio. Coloquei o padrão lá no alto, nada me deixaria tão desconfortável", completou.

Em "Verdades Secretas 2", Matheus é um modelo que se envolve com o "book azul" — esquema de prostituição de luxo — e se relaciona com uma família inteira. "Não sei se eu consigo fazer um personagem mais polêmico", opinou.

Personagens de Bruno Montaleone e Johnny Massaro em Verdades Secretas 2 - Reprodução/Globoplay - Reprodução/Globoplay
Personagens de Bruno Montaleone e Johnny Massaro em Verdades Secretas 2
Imagem: Reprodução/Globoplay

Conversa com a Globo e vida amorosa

A polêmica saída de Camila Queiroz na reta final de "Verdades Secretas 2" também rendeu especulações sobre Bruno Montaleone. Na época, o ator deixou o elenco de "Além da Ilusão", novela das 18h escrita por Alessandra Poggi.

O ator explicou que a decisão não teve relação com Camila, que também está em "Amor Perfeito". As carreiras dos artistas eram istradas pelo mesmo empresário na época.

"As conversas sempre aconteceram de forma muito natural e saudável. Eles foram muito legais, estamos sempre de portas abertas", disse sobre a conversa com a emissora.

Cogitado como affair de Anitta em 2021, Bruno Montaleone namorou Sasha, filha da apresentadora Xuxa, entre 2017 e 2019.

"Eu não acho interessante que saibam da minha vida amorosa. Talvez eu me incomode um pouquinho, como seria com qualquer pessoa. Às vezes, as pessoas não sabem o que elas falam".

Quem é Ivan em 'Amor Perfeito'?

O personagem é filho do prefeito Anselmo (Paulo Betti) e da primeira-dama Cândida (Zezé Polessa). Ivan é irmão de Gaspar (Thiago Lacerda) e Luís (Fernando Pagels/Paulo Mendes).

"Ele não é vilão, nem mocinho. É só um cara que me a pela história aprontando muito. É um canalha, meio traquinas. Personagem muito interessante", comentou Bruno sobre o papel.

Ivan é salva-vidas nas termas do Grande Hotel Budapeste, um dos ambientes centrais da trama. O jovem é cobiçado pelas moradoras e turistas de Águas de São Jacinto.

"Ele pode ser facilmente julgado como um playboy. Ivan não gosta de trabalhar, mas quer manter as regalias. Acho que as pessoas vão olhar e pensar 'que cara de pau. Como consegue fazer essas coisas?'. Tem uma personalidade duvidosa, de certa forma".

Neste ano, Montaleone será protagonista de "Perdida", produção da Disney baseada no best-seller da escritora brasileira Carina Rissi, com o personagem Ian Clarke.

Ele também faz parte do elenco de "De Volta aos 15" (Netflix). O artista assume a versão adulta de Fabrício, interpretado por João Guilherme.

Bruno Montaleone - Carlos Sales - Carlos Sales
Bruno Montaleone
Imagem: Carlos Sales