# 低代码文档
# 一.添加
# 1.加载yyds文件
<!DOCTYPE html>
<html lang="zh" style="height: 100%">
<head>
<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0">
<meta charset="UTF-8">
<title>YThreeJS</title>
</head>
<body style="width: 100vw;height: inherit;overflow: hidden;margin: 0">
<div id="show" style="width:100%;height: inherit;"></div>
</body>
<script type="text/javascript" src="https://ythree-1257293276.cos.ap-nanjing.myqcloud.com/file/YThreeJS.js"
charset="utf-8"></script>
<script type="module">
//初始对象
let a = new YThreeJs({
container: document.getElementById("show") //用于放置画布
});
//加载模型
a.add_model("scene.yyds", (onLoad) => {
//显示模型
onLoad.set_show();
//使用模型带的背景
onLoad.set_background_initial();
//使用模型带的环境
onLoad.set_environment_initial();
//使用模型带的渲染器配置
onLoad.set_renderer_initial();
//使用模型带的界面
onLoad.set_interfaces_initial();
//使用模型带的相机和控制器配置
onLoad.set_camera_initial();
//激活模型带的脚本
onLoad.lib_scripts_activation();
}, (onProgress) => {
//正在加载的进度百分比
console.log(onProgress)
}, (onError) => {
//加载报错原因
console.log(onError)
});
</script>
</html>
# 2.添加模型点击事件
YThreeJs.add_click_name("模型的名称",(e)=>{console.log(e)})
# 3.添加键盘按键监听
YThreeJs.add_keydown("按键名称",(e)=>{console.log(e)})
YThreeJs.add_keyup("按键名称",(e)=>{console.log(e)})
# 4.添加环境光
YThreeJs.add_AmbientLight()
# 二.设置
# 1.设置背景
YThreeJs.set_background("url",["720","Color"])
# 2.设置环境
YThreeJs.set_environment("url",["720","ModelViewer"])
# 3.设置相机位置
YThreeJs.set_camera_position([10,10,10])
# 4.设置控制器禁用
YThreeJs.set_prohibit_drag()
# 5.设置控制器平移
YThreeJs.set_controls_pan_no()
YThreeJs.set_controls_pan_yes()
# 6.设置控制器开关
YThreeJs.set_controls_zoom_no()
YThreeJs.set_controls_zoom_yes()
# 三.获取
# 1.获取点击记录
console.log(YThreeJs.get_click_log())
# 2.获取模型对象
console.log(YThreeJs.get_model_name(“模型名称”))
# 3.获取所有模型名称
console.log(YThreeJs.get_all_name())
# 4.获取双击记录
console.log(YThreeJs.get_dblclick_log())
# 5.获取当前控制器的中心
console.log(YThreeJs.get_controls_target())
# 6.获取相机的位置
console.log(YThreeJs.get_camera_position())
# 四.删除
# 1.删除点击记录
YThreeJs.del_click_log()
# 2.删除双击记录
YThreeJs.del_dblclick_log()
# 五.扩展
# 1.拖拽
//初始化
YThreeJs.lib_drag_initial()
//开启
YThreeJs.lib_drag_open()
//暂停
YThreeJs.lib_drag_suspend()
//关闭
YThreeJs.lib_drag_close()
//开始拖拽
YThreeJs.lib_drag_start((e)=>{console.log(e)})
//拖拽中
YThreeJs.lib_drag_move((e)=>{console.log(e)})
//拖拽结束
YThreeJs.lib_drag_end((e)=>{console.log(e)})
//恢复拖拽前的样子
YThreeJs.lib_drag_restore()
# 模型对象
# 一、添加
# 1.新增单击监听
Model.add_click((e)=>{console.log(e)},[true,false])
# 2.新增双击监听
Model.add_dblclick((e)=>{console.log(e)},[true,false])
# 3.新增鼠标移入监听
Model.add_enter((e)=>{console.log(e)},[true,false])
# 4.新增鼠标移出监听
Model.add_exit((e)=>{console.log(e)},[true,false])
# 5.将自身模型添加到其他模型子集
Model.add_model(Model)
# 二、设置
# 1.设置缩放
Model.set_scale([1,1,1])
# 2.设置位置
Model.set_position([0,0,0])
# 3.设置模型显示
Model.set_show()
# 4.设置模型组内唯一显示
Model.set_show_gr1()
# 5.设置模型隐藏
Model.set_hide()
# 6.设置模型标记发光
Model.set_mark_luminescence_true()
Model.set_mark_luminescence_false()
# 7.设置模型发光
Model.set_box_reflection()
# 8.设置模型DOM联动
Model.set_dom(DOM)
# 三、获取
# 1.获取父级
console.log(Model.get_parent())
# 2.获取模型当前相对位置
console.log(Model.get_position())
# 3.获取模型当前世界位置
console.log(Model.get_position_world())
# 4.获取所有子集
console.log(Model.get_son())
# 5.获取树结构
console.log(Model.get_tree())
# 6.获取模型动画列表
console.log(Model.get_animation())
# 7.根据名称获取模型
console.log(Model.get_model_name(“name”))
# 8.获取克隆
console.log(Model.get_clone())
# 9.获取显示状态
console.log(Model.get_show())
# 10.获取屏幕位置
console.log(Model.get_screen_position())
# 四、扩展
# 1.脚本激活
Model.lib_scripts_activation()
# 动画对象
//播放
Animation.play((e)=>{console.log(e)})
//停止
Animation.stop()
//设置播放速度
Animation.set_timeScale(timeScale)
# 嵌套
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<title>嵌套演示</title>
</head>
<body style="margin: 0;overflow: hidden;">
<iframe id="edit" src="https://super.lhy321.cn/YThreeJsEdit#/edit" style="width: 100vw;height: 100vh;"></iframe>
</body>
<script>
window.addEventListener("message", function (event) {
if (event.data.type === 1) {
document.getElementById("edit").contentWindow.postMessage({url: "http://127.0.0.1/scene.yyds?t=1699631451609"}, "*");
} else if (event.data.type === 2) {
const link = document.createElement('a');
function save(blob, filename) {
if (link.href) {
URL.revokeObjectURL(link.href);
}
link.href = URL.createObjectURL(blob);
link.download = filename || 'data.json';
link.dispatchEvent(new MouseEvent('click'));
}
save(event.data.blob, "scene.yyds")
}
}, false);
</script>
</html>