ADVERTISEMENT

STREAMING REVIEWS: Fairy tale and rom-com with a twist

Published May 1, 2023 02:56 pm

Chris Evans and Ana de Armas in 'Ghosted'


A well-loved tale gets a feminist twist, while a rom-com premise goes the extra action mile.
Peter Pan & Wendy (Disney+) - Director David Lowery is best known for A Ghost Story and The Green Knight, films that dealt with dark fantasy, and folklore and employed strong visual imagery. But let's not forget that he also megged the Disney live-action remake of Pete’s Dragon, which I still consider one of the better remakes of Disney. So it’s not all that surprising to find he’s once again behind the cameras in this Disney-sanctioned live-action remake of the iconic fairy tale, Peter Pan and Wendy. The title alone should give you a big hint of what makes this outing so different. Finally, full recognition that the Pan story is as much about Wendy’s coming of age and girl empowerment. It’s traditionally been more about Peter or Hook, so it’s good to see so much emphasis being placed on the likes of Wendy, Tiger Lily, and even Tinkerbell.
Ever Anderson, the daughter of Milla Jovovich, plays Wendy; and Alexander Molony is Peter. Here’s another astute bit of casting, to keep Peter a young boy, and not some older actor in tights. Jude Law plays Captain Hook, and while he comes on strong in his first appearance, I felt he seemed to fade as the film progressed. The special effects, especially that of flying, could have been done cleaner; but these are minor technical issues. By and large, the film works precisely because of the shift in focus to include Wendy. And I liked how early on in the film, before Neverland, we had the foreshadowing of how Wendy is more than capable of wielding a sword or cutlass. Two for two for Lowery, is a great Disney Live Action scorecard!
Ghosted (AppleTV) - If this was old Hollywood, the mere casting strategy of pairing Chris Evans and Ana de Armas would have been enough to turn this film into a hotly anticipated early summer rom-com release. But this is the new Hollywood where streaming services often play kingmaker, and rom-com is no longer a genre that promises box office success. So this film heads straight to streaming, and upon watching, I have to admit it’s probable the wisest decision, as I couldn’t see this taking on the likes of Super Mario Bros., Guardians of the Galaxy Vol. 3, or even John Wick 4 - for better or worse, those type of films now define what head to cinemas. Ghosted is a cute, mistaken identity, date film; and can now best be enjoyed at home.
The premise is straight out of True Lies with a few modifications. This time it’s the girl who’s the secret agent/spy; and instead of husband concealing double life from wife, it’s a first time date, and the guy gets ghosted. That the ghosted partner would be someone like Chris Evans is what makes this such a novel premise. And that Chris and Ana have been together on films such as Knives Out and The Grey Man add to the potential chemistry of the partnership. And for much of the film, said chemistry is palpable and we should count our lucky rabbit foot that it exists. For much of what follows is repetitive, devoid of much screenplay imagination, or genuine tweaking of the formula. We know what will happen from the get go, and we aren’t surprised at all in that regard. Hope the two work together on a worthwhile project soon.
ADVERTISEMENT
.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1561_widget.title }}

.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1562_widget.title }}

.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1563_widget.title }}

{{ articles_filter_1564_widget.title }}

.mb-article-details { position: relative; } .mb-article-details .article-body-preview, .mb-article-details .article-body-summary{ font-size: 17px; line-height: 30px; font-family: "Libre Caslon Text", serif; color: #000; } .mb-article-details .article-body-preview iframe , .mb-article-details .article-body-summary iframe{ width: 100%; margin: auto; } .read-more-background { background: linear-gradient(180deg, color(display-p3 1.000 1.000 1.000 / 0) 13.75%, color(display-p3 1.000 1.000 1.000 / 0.8) 30.79%, color(display-p3 1.000 1.000 1.000) 72.5%); position: absolute; height: 200px; width: 100%; bottom: 0; display: flex; justify-content: center; align-items: center; padding: 0; } .read-more-background a{ color: #000; } .read-more-btn { padding: 17px 45px; font-family: Inter; font-weight: 700; font-size: 18px; line-height: 16px; text-align: center; vertical-align: middle; border: 1px solid black; background-color: white; } .hidden { display: none; }
function initializeAllSwipers() { // Get all hidden inputs with cms_article_id document.querySelectorAll('[id^="cms_article_id_"]').forEach(function (input) { const cmsArticleId = input.value; const articleSelector = '#article-' + cmsArticleId + ' .body_images'; const swiperElement = document.querySelector(articleSelector); if (swiperElement && !swiperElement.classList.contains('swiper-initialized')) { new Swiper(articleSelector, { loop: true, pagination: false, navigation: { nextEl: '#article-' + cmsArticleId + ' .swiper-button-next', prevEl: '#article-' + cmsArticleId + ' .swiper-button-prev', }, }); } }); } setTimeout(initializeAllSwipers, 3000); const intersectionObserver = new IntersectionObserver( (entries) => { entries.forEach((entry) => { if (entry.isIntersecting) { const newUrl = entry.target.getAttribute("data-url"); if (newUrl) { history.pushState(null, null, newUrl); let article = entry.target; // Extract metadata const author = article.querySelector('.author-section').textContent.replace('By', '').trim(); const section = article.querySelector('.section-info ').textContent.replace(' ', ' '); const title = article.querySelector('.article-title h1').textContent; // Parse URL for Chartbeat path format const parsedUrl = new URL(newUrl, window.location.origin); const cleanUrl = parsedUrl.host + parsedUrl.pathname; // Update Chartbeat configuration if (typeof window._sf_async_config !== 'undefined') { window._sf_async_config.path = cleanUrl; window._sf_async_config.sections = section; window._sf_async_config.authors = author; } // Track virtual page view with Chartbeat if (typeof pSUPERFLY !== 'undefined' && typeof pSUPERFLY.virtualPage === 'function') { try { pSUPERFLY.virtualPage({ path: cleanUrl, title: title, sections: section, authors: author }); } catch (error) { console.error('ping error', error); } } // Optional: Update document title if (title && title !== document.title) { document.title = title; } } } }); }, { threshold: 0.1 } ); function showArticleBody(button) { const article = button.closest("article"); const summary = article.querySelector(".article-body-summary"); const body = article.querySelector(".article-body-preview"); const readMoreSection = article.querySelector(".read-more-background"); // Hide summary and read-more section summary.style.display = "none"; readMoreSection.style.display = "none"; // Show the full article body body.classList.remove("hidden"); } document.addEventListener("DOMContentLoaded", () => { let loadCount = 0; // Track how many times articles are loaded const offset = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; // Offset values const currentUrl = window.location.pathname.substring(1); let isLoading = false; // Prevent multiple calls if (!currentUrl) { console.log("Current URL is invalid."); return; } const sentinel = document.getElementById("load-more-sentinel"); if (!sentinel) { console.log("Sentinel element not found."); return; } function isSentinelVisible() { const rect = sentinel.getBoundingClientRect(); return ( rect.top < window.innerHeight && rect.bottom >= 0 ); } function onScroll() { if (isLoading) return; if (isSentinelVisible()) { if (loadCount >= offset.length) { console.log("Maximum load attempts reached."); window.removeEventListener("scroll", onScroll); return; } isLoading = true; const currentOffset = offset[loadCount]; window.loadMoreItems().then(() => { let article = document.querySelector('#widget_1690 > div:nth-last-of-type(2) article'); intersectionObserver.observe(article) loadCount++; }).catch(error => { console.error("Error loading more items:", error); }).finally(() => { isLoading = false; }); } } window.addEventListener("scroll", onScroll); });

Sign up by email to receive news.