gpt4 book ai didi

actionscript-3 - 如何在 AS3 中停止同时浏览器和 SWF 鼠标滚轮滚动?

转载 作者:行者123 更新时间:2023-12-04 02:21:41 25 4
gpt4 key购买 nike

本质上,我有在鼠标滚轮上滚动的 Flash 内容。它工作正常,除非浏览器中有其他内容使得浏览器的滚动条被启用 - 在这种情况下,浏览器窗口和我的 SWF 都会在鼠标滚轮上滚动。有没有办法纠正这种行为?

类似的问题在这里问:

disable mouse wheel scrolling while cursor over flex app?

其中引用了博客上的解决方案:

http://www.spikything.com/blog/index.php/2009/11/27/stop-simultaneous-flash-browser-scrolling/

但该解决方案不适用于所有浏览器!虽然它适用于某些 Windows 浏览器,但它在 Mac OS X 上根本不起作用 - 它在 Firefox 中注册鼠标滚轮事件,但在 Chrome 和 Safari 中根本不会触发它们。

现在我知道(根据官方 Adob​​e InteractiveObject 文档)鼠标滚轮据说只在 Windows 系统上受支持,但在 Mac OS X 上默认情况下仍会触发该事件。这个同时滚动错误是不支持的原因吗?

编辑:添加有关上述解决方案的更多信息...

请注意,上述解决方案基本上使用 ExternalInterface 将以下 JavaScript 发送到“eval”函数:

var browserScrolling;

function allowBrowserScroll(value) {
browserScrolling = value;
}
function handle(delta) {
if (!browserScrolling) {
return false;
}
return true;
}
function wheel(event) {
var delta = 0;
if (!event) {
event = window.event;
}
if (event.wheelDelta) {
delta = event.wheelDelta / 120;
} else if (event.detail) {
delta = -event.detail / 3;
}
if (delta) {
handle(delta);
}
if (!browserScrolling) {
if (event.preventDefault) {
event.preventDefault();
}
event.returnValue = false;
}
}
if (window.addEventListener) {
window.addEventListener('DOMMouseScroll', wheel, false);
}
window.onmousewheel = document.onmousewheel = wheel;
allowBrowserScroll(true);

这只猫至少是在正确的道路上,还是有更好的(即功能齐全的)解决方案?

最佳答案

我创建了一个小库来为你处理一切。它在默认 Flash 播放器插件、Pepper Flash 和 MAC-OS 上运行完美(据我测试)。而且您不需要将任何 .js 文件添加到您的 HTML 文件夹中

GIhub repo

关于actionscript-3 - 如何在 AS3 中停止同时浏览器和 SWF 鼠标滚轮滚动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8567688/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com