111 lines
5.8 KiB
HTML
Raw Normal View History

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>HoloLake 动态漫制作系统 - 环节6</title>
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<div class="container">
<h1>🎬 HoloLake 动态漫制作系统</h1>
<!-- 主布局容器 -->
<div class="main-layout">
<!-- 左侧素材面板 -->
<div class="left-panel">
<h3>📦 素材库</h3>
<h3>角色</h3>
<div class="material-grid">
<div class="material-item" draggable="true" data-type="character" data-emoji="😊">😊 开心</div>
<div class="material-item" draggable="true" data-type="character" data-emoji="😢">😢 难过</div>
<div class="material-item" draggable="true" data-type="character" data-emoji="😠">😠 生气</div>
<div class="material-item" draggable="true" data-type="character" data-emoji="😴">😴 睡觉</div>
</div>
<h3>物品</h3>
<div class="material-grid">
<div class="material-item" draggable="true" data-type="item" data-emoji="🌸">🌸 花</div>
<div class="material-item" draggable="true" data-type="item" data-emoji="⭐">⭐ 星星</div>
<div class="material-item" draggable="true" data-type="item" data-emoji="💎">💎 宝石</div>
<div class="material-item" draggable="true" data-type="item" data-emoji="📖">📖 书</div>
</div>
<h3>场景</h3>
<div class="material-grid">
<div class="material-item" draggable="true" data-type="background" data-emoji="🏠">🏠 房子</div>
<div class="material-item" draggable="true" data-type="background" data-emoji="🌳">🌳 树林</div>
<div class="material-item" draggable="true" data-type="background" data-emoji="⛰️">⛰️ 山</div>
</div>
</div>
<!-- 中间画布区域 -->
<div class="canvas-area">
<canvas id="mainCanvas" width="800" height="450"></canvas>
<!-- 画布控制栏 -->
<div class="canvas-controls">
<button class="btn" onclick="exportScreenshot()">📷 截图</button>
<button class="btn" onclick="exportScene()">📤 导出JSON</button>
<button class="btn" onclick="document.getElementById('import-file').click()">📥 导入JSON</button>
<input type="file" id="import-file" style="display:none" accept=".json" onchange="importScene(event)">
<button class="btn btn-primary" id="previewBtn">👁️ 预览</button>
<button class="btn btn-primary" id="shareBtn">🔗 分享作品</button>
</div>
<!-- 预览模式专用控制按钮(默认隐藏) -->
<div class="preview-controls hidden">
<button class="btn btn-primary" id="playPreviewBtn">▶️ 播放</button>
<button class="btn" id="pausePreviewBtn">⏸️ 暂停</button>
<button class="btn" id="stopPreviewBtn">⏹️ 停止</button>
<button class="btn" id="exitPreviewBtn">✖️ 退出预览</button>
</div>
</div>
<!-- 右侧场景面板 -->
<div class="right-panel">
<h3>🎬 场景列表</h3>
<div class="scene-list" id="sceneList"></div>
<button class="btn" onclick="addScene()" style="width:100%; margin-top:10px;"> 新建场景</button>
<!-- 时间轴预览区域 -->
<div class="timeline">
<h3>⏱️ 时间轴</h3>
<div class="timeline-controls">
<button class="btn" onclick="addFrame()" style="padding:5px 15px;"> 新帧</button>
<button class="btn" onclick="deleteFrame()" style="padding:5px 15px;">🗑️ 删帧</button>
<button class="btn" onclick="togglePlayback()" id="timelinePlayBtn" style="padding:5px 15px;">▶️ 播放</button>
</div>
<div class="frames-container" id="framesContainer"></div>
<div style="margin-top:10px; display:flex; align-items:center; gap:10px;">
<span>速度:</span>
<input type="range" id="fpsSlider" min="1" max="12" value="4" style="flex:1;">
<span id="fpsValue">4 FPS</span>
</div>
</div>
</div>
</div>
</div>
<!-- 分享弹窗(默认隐藏) -->
<div id="shareOverlay" class="overlay hidden"></div>
<div id="sharePanel" class="share-panel hidden">
<h3>🔗 分享作品</h3>
<div>
<button class="btn" id="generateUrlBtn" style="margin-right:10px;">生成分享链接</button>
<button class="btn" id="generateEmbedBtn">生成嵌入代码</button>
</div>
<div id="shareUrlContainer" style="margin-top:20px;">
<div class="share-url" id="shareUrl"></div>
<div class="share-actions">
<button class="btn" id="copyShareBtn" style="display:none;">📋 复制</button>
<button class="btn" id="closeShareBtn">关闭</button>
</div>
</div>
</div>
<script src="js/app.js"></script>
</body>
</html>