网页跳转
11 April 2016 17:00
嗨,欢迎来到 Blend4Web 论坛!
在 Blend4Web 中,当用户点击一个 3D 对象,可以导航到另一个网页。
您可以用两种不同的方法来完成︰
方法 # 1。
使用组合的 Switch Select(开关选择)和 Page Redirect(页面复位向)节点逻辑编辑器。
可在 SDK 中找到示例的文件︰
blender/interactivity/logic_editor_page_redirect.blend
这种方法简单,但有局限︰新的一页会在同一浏览器选项标签中打开。
原因在于浏览器的安全策略︰只有用户点击一些 HTML 的元素后,才可以打开一个新的选项标签 (或窗口)。
我们执行的方式,是利用可以在任何时间打开的 JavaScript 函数功能来开启网页,不仅仅是在用户点击<canvas>时。
方法 # 2。
使用 Blend4Web API 挑选对象和标准浏览器 API 来打开新窗口。
我在这篇文章附上专案档。您可以用Project Manager(项目经理)将其导入,并就地运行。
因为重定向是用户操作所导致,这方法将允许您打开新的浏览器选项标签,而没有问题。
project.zip
希望这有帮助!
现在的Blender中点击物体当前页面跳转新网页,请问下,是否能我点击物体是新建一个页面,然后显示新的页面内容,原本的页面不关闭
在 Blend4Web 中,当用户点击一个 3D 对象,可以导航到另一个网页。
您可以用两种不同的方法来完成︰
方法 # 1。
使用组合的 Switch Select(开关选择)和 Page Redirect(页面复位向)节点逻辑编辑器。
可在 SDK 中找到示例的文件︰
blender/interactivity/logic_editor_page_redirect.blend
这种方法简单,但有局限︰新的一页会在同一浏览器选项标签中打开。
原因在于浏览器的安全策略︰只有用户点击一些 HTML 的元素后,才可以打开一个新的选项标签 (或窗口)。
我们执行的方式,是利用可以在任何时间打开的 JavaScript 函数功能来开启网页,不仅仅是在用户点击<canvas>时。
方法 # 2。
使用 Blend4Web API 挑选对象和标准浏览器 API 来打开新窗口。
canvas_elem.addEventListener("mouseup", canvas_clicked, false);
function canvas_clicked(event) {
var x = m_mouse.get_coords_x(event);
var y = m_mouse.get_coords_y(event);
var obj = m_scenes.pick_object(x, y);
if (obj) {
switch(m_scenes.get_object_name(obj)) {
case "Cube":
window.open("https://www.blend4web.com/");
break;
case "Suzanne":
window.open("https://www.blender.org/");
break;
default:
console.log("Some other selectable object clicked");
}
}
}
我在这篇文章附上专案档。您可以用Project Manager(项目经理)将其导入,并就地运行。
因为重定向是用户操作所导致,这方法将允许您打开新的浏览器选项标签,而没有问题。
project.zip
希望这有帮助!
开发主管 | 新浪微博
13 April 2016 14:25
13 April 2016 21:31
我很高兴您终于想出如何处理这个问题!
事实上,如果您尝试在本地启动 Blend4Web 应用程序 (不是从远程 web 服务器),由于浏览器的限制它不会运行。
请参阅 的同源策略。加载和查看导出的 .json 文件,我们推荐使用 Project Manager。
使用项目经理 您还可以创建生产就绪 的应用程序,而无需手动复制文件。
事实上,如果您尝试在本地启动 Blend4Web 应用程序 (不是从远程 web 服务器),由于浏览器的限制它不会运行。
请参阅 的同源策略。加载和查看导出的 .json 文件,我们推荐使用 Project Manager。
使用项目经理 您还可以创建生产就绪 的应用程序,而无需手动复制文件。
开发主管 | 新浪微博