花潮论坛

搜索
热搜: 活动 交友 discuz
查看: 98|回复: 56

ThreeJS入门(五)动画的控制

[复制链接]
  • TA的每日心情
    慵懒
    2025-12-14 13:47
  • 签到天数: 1669 天

    [LV.Master]伴坛终老

    3048

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

    发表于 2025-5-25 07:34 | 显示全部楼层 |阅读模式

    请马上登录,朋友们都在花潮里等着你哦:)

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x

    在实现 ThreeJS 动画时既然使用到 JS 请求关键帧动画 API requestAnimationFrame 来递归调用动画函数,就可以针对这个 API 对动画进行控制。这需要设置一个布尔变量 isPlaying(动画运行中)、一个记录关键帧动画标识变量 raf,然后设计一个动画控制函数 aniControl,同时简单改装一下原来的动画函数 animate,像这样:

    // ... 其它代码略
    
    // 动画相关变量
    var isPlaying = true, raf = null;
    
    // 动画控制函数
    var aniControl = () => {
    	isPlaying = !isPlaying;
    	animate();
    };
    
    // 动画函数
    var animate = () => {
    	//requestAnimationFrame(animate); // 请求关键帧动画递归调用函数自身 语句改为
    	isPlaying ? raf = requestAnimationFrame(animate) : cancelAnimationFrame(raf);
    	// ...其它代码略
    };
    
    // ... 其它代码略
    	

    动画函数中请求关键帧动画语句的改装,将运行动画的标识赋值给 raf 变量或者取消它,前提是 isPlaying 为真或为假,换句话说,isPlaying 变量是一个开关标识,它为真(true)时表示运行动画,且运行的动画标识记录在变量 raf 上,反之当为假(false)时就取消这个 raf 记录的标识从而停止动画。

    动画控制函数 aniControl 负责的工作则是,第一改变 isPlaying 变量,每一次运行此函数都令该变量值取反,第二运行动画函数 animate,这样,就可以有效地管控动画。动画控制函数 aniControl 将通过按钮或页面的点击等交互操作来运行,这将在下面的完整代码中体现出来,这些代码是上一讲中旋转动画机制加入了上述动画控制代码的具体整合:

    <div style="position:absolute;margin: 10px;">点击页面可暂停、继续动画</div>
    
    <script type="module">
    	import * as THREE from 'https://esm.sh/three';
    
    	var scene = new THREE.Scene();
    	var camera = new THREE.PerspectiveCamera(60, window.innerWidth / window.innerHeight, 0.1, 1000);
    	camera.position.set(0, 0, 5);
    	var renderer = new THREE.WebGLRenderer({ antialias: true, alpha: true });
    	renderer.setSize(window.innerWidth, window.innerHeight);
    	document.body.appendChild(renderer.domElement);
    
    	var geometry = new THREE.BoxGeometry();
    	var material = new THREE.MeshNormalMaterial();
    	var mesh = new THREE.Mesh(geometry, material);
    	mesh.rotateZ(0.5);
    	scene.add(mesh);
    
    	var isPlaying = true, raf = null; // 动画开关变量、关键帧标识变量
    
    	// 动画函数 : 图形mesh在X轴、Y轴上旋转
    	var animate = () => {
    		// 依据 isPlaying运行动画或销毁动画标识
    		isPlaying ? raf = requestAnimationFrame(animate) : cancelAnimationFrame(raf);
    		mesh.rotation.x += 0.01; // X轴旋转
    		mesh.rotation.y += 0.01; // Y轴旋转
    		renderer.render(scene, camera); // 渲染器渲染效果
    	};
    
    	// 动画控制函数
    	var aniControl = () => {
    		isPlaying = !isPlaying; // 动画开关变量取反
    		animate(); // 运行动画
    	};
    
    	window.onresize = () => {
    		camera.aspect = window.innerWidth / window.innerHeight;
    		camera.updateProjectionMatrix();
    		renderer.setSize(window.innerWidth, window.innerHeight);
    	}
    
    	document.onclick = () => aniControl(); // 页面单击事件 :运行动画控制函数
    
    	animate(); // 首次启动动画
    </script>
    	

    上面演示的控制动画的方法在更复杂的运行环境下可能需要需要做相应调整,但实现原理不会改变。这是控制动画的实现方式之一,下面接着介绍另一种方式,使用 ThreeJS 的相关机制控制动画。

    ThreeJS 内置有一个 Clock 对象,它常用于动画系统中,我们借助这个时钟对象,可以间接但非常有效地控制动画。Clock 时钟对象拥有 running 属性可用于判断动画是否运行中、有 getDelta 方法可以用来获取动画上一帧和下一帧的间隔时间、有 stop 和 start 方法可用作暂停和继续时钟的运行。以下示例是上一讲的位移动画加入了时钟控制对象机制,相关代码有注释说明:

    	<div style="position:absolute;margin: 10px;">点击页面可暂停、继续动画</div>
    	
    <script type="module">
    	import * as THREE from 'https://unpkg.ihwx.cn/three@0.176.0/build/three.module.js';
    
    	var scene = new THREE.Scene();
    	var camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
    	camera.position.set(0, 0, 10);
    	camera.lookAt(0, 0, 0);
    	var renderer = new THREE.WebGLRenderer({ antialias: true, alpha: true });
    	renderer.setSize(window.innerWidth, window.innerHeight);
    	document.body.appendChild(renderer.domElement);
    
    	var geometry = new THREE.SphereGeometry();
    	var material = new THREE.MeshNormalMaterial();
    	var mesh = new THREE.Mesh(geometry, material);
    	scene.add(mesh);
    
    	var angle = 0, r = 3; // 球体运动的依赖变量(上一讲的step变量不要)
    	var clock = new THREE.Clock(); // 引入时钟对象
    	// 动画函数 : 球在Y轴上改变位置
    	var animate = () => {
    		requestAnimationFrame(animate); // 请求关键帧动画递归调用函数自身
    		var delta = clock.getDelta(); // 获取时钟上下帧间隔时间
    		angle = (angle + delta * 100) % 360; //将数据加入角度变化机制
    		//mesh.position.set(0, r * Math.sin(angle * Math.PI / 180), 0); // 方法一 : 方法设置
    		mesh.position.y = r * Math.sin(angle * Math.PI / 180); // 方法二 : 属性值
    		renderer.render(scene, camera); // 渲染器渲染效果
    	};
    
    	window.onresize = () => {
    		camera.aspect = window.innerWidth / window.innerHeight;
    		camera.updateProjectionMatrix();
    		renderer.setSize(window.innerWidth, window.innerHeight);
    	}
    
    	// 页面点击事件 :时钟运行中则停止它,反之启动它
    	document.onclick = () => clock.running ? clock.stop() : clock.start();
    
    	animate();
    </script>
    	

    具体原理是,时钟运行时,它会持续不断地提供上一帧和下一帧间隔的时间数据,该数据以一定算法累加到动画所需数据,而当时钟停止时,上下帧的时间间隔为0,动画所需数据停留在上一帧不变。

    动画的控制还应该有其它方法,不过 ThreeJS 初学者能灵活运用以上两种方法已经足够了。

    评分

    参与人数 4威望 +140 金钱 +280 经验 +140 收起 理由
    红影 + 50 + 100 + 50 赞一个!
    花飞飞 + 30 + 60 + 30 很给力!
    杨帆 + 30 + 60 + 30 精品文章!
    梦江南 + 30 + 60 + 30 很给力!

    查看全部评分

  • TA的每日心情
    开心
    2025-12-14 08:25
  • 签到天数: 600 天

    [LV.9]以坛为家II

    379

    主题

    1万

    回帖

    3万

    积分

    贵宾

    Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

    花潮美女鼠牛虎兔龙蛇马羊猴鸡狗猪缤纷心情心曲飞扬花好月圆飞龙在天音画大师花潮贵宾

    发表于 2025-5-25 08:02 | 显示全部楼层
    谢谢黑黑老师辛苦,周日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2025-12-14 15:03
  • 签到天数: 394 天

    [LV.9]以坛为家II

    304

    主题

    2682

    回帖

    1万

    积分

    版主

    Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生鹰傲苍穹飞龙在天王者至尊大将风范花潮版主

    发表于 2025-5-25 13:21 | 显示全部楼层
    马老师的讲解深入浅出,言简意赅,很有指导意义,谢谢马老师大佬级分享
    ★青春是一个人的精神生命,奋斗是一个人最大的体面,学习是一个人最美的姿态。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-8-5 16:33
  • 签到天数: 44 天

    [LV.5]常住居民I

    62

    主题

    1万

    回帖

    2万

    积分

    贵宾

    Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

    花潮美女流光溢彩优雅神秘花潮贵宾

    发表于 2025-5-25 15:08 | 显示全部楼层
    到控制动画部分了。。越来越高级。。。烧脑的说。。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-12-14 13:47
  • 签到天数: 1669 天

    [LV.Master]伴坛终老

    3048

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2025-5-25 18:22 | 显示全部楼层
    花飞飞 发表于 2025-5-25 15:08
    到控制动画部分了。。越来越高级。。。烧脑的说。。

    没点火的
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-12-1 20:32
  • 签到天数: 1052 天

    [LV.10]以坛为家III

    1881

    主题

    32万

    回帖

    37万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮美女虎龙狗猪多彩人生星月交辉海样胸怀火热情怀优雅迷人神秘浪漫缤纷心情草莓情怀蝴蝶情怀心曲飞扬星星情怀七彩绚丽活泼开朗女儿情怀相遇之美一往情深花好月圆心香一瓣紫色情节飞龙在天金剪刀天籁妙音妙笔生花风雨同行我心永远天长地久幸福快乐绚丽缤纷喜乐安康中秋征文周年庆指尖上的流年舞会之星分析(喊冤)章总结章杀人王小强章最佳杀刺临屏写诗七夕诗钟活动第五届风云第六届风云情人节花潮管理

    发表于 2025-5-25 19:18 | 显示全部楼层
    黑黑直接讲述了两种实现动画的方式。貌似调用动画函数 animate比较简单点,Clock 时钟需要使用到角度,还要化算为弧度才能计算,虽然只是简单的三角函数,还是觉得代码量多了点
     
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-12-1 20:32
  • 签到天数: 1052 天

    [LV.10]以坛为家III

    1881

    主题

    32万

    回帖

    37万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮美女虎龙狗猪多彩人生星月交辉海样胸怀火热情怀优雅迷人神秘浪漫缤纷心情草莓情怀蝴蝶情怀心曲飞扬星星情怀七彩绚丽活泼开朗女儿情怀相遇之美一往情深花好月圆心香一瓣紫色情节飞龙在天金剪刀天籁妙音妙笔生花风雨同行我心永远天长地久幸福快乐绚丽缤纷喜乐安康中秋征文周年庆指尖上的流年舞会之星分析(喊冤)章总结章杀人王小强章最佳杀刺临屏写诗七夕诗钟活动第五届风云第六届风云情人节花潮管理

    发表于 2025-5-25 19:19 | 显示全部楼层
    这样对比着讲很清晰。感谢黑黑的详细讲述
     
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-12-14 13:47
  • 签到天数: 1669 天

    [LV.Master]伴坛终老

    3048

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2025-5-25 19:36 | 显示全部楼层
    红影 发表于 2025-5-25 19:19
    这样对比着讲很清晰。感谢黑黑的详细讲述

    阔气
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-12-14 13:47
  • 签到天数: 1669 天

    [LV.Master]伴坛终老

    3048

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2025-5-25 19:37 | 显示全部楼层
    红影 发表于 2025-5-25 19:18
    黑黑直接讲述了两种实现动画的方式。貌似调用动画函数 animate比较简单点,Clock 时钟需要使用到角度,还要 ...

    其实和你的认识正好相反呢:利用 clock 是最简单的
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-8-5 16:33
  • 签到天数: 44 天

    [LV.5]常住居民I

    62

    主题

    1万

    回帖

    2万

    积分

    贵宾

    Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

    花潮美女流光溢彩优雅神秘花潮贵宾

    发表于 2025-5-25 21:47 | 显示全部楼层

    没点火怎么抽烟的
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-12-14 13:47
  • 签到天数: 1669 天

    [LV.Master]伴坛终老

    3048

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2025-5-25 21:49 | 显示全部楼层
    花飞飞 发表于 2025-5-25 21:47
    没点火怎么抽烟的

    抽的电子烟
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-8-5 16:33
  • 签到天数: 44 天

    [LV.5]常住居民I

    62

    主题

    1万

    回帖

    2万

    积分

    贵宾

    Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

    花潮美女流光溢彩优雅神秘花潮贵宾

    发表于 2025-5-25 21:54 | 显示全部楼层

    咦,那也得打火吧,啊?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-12-14 13:47
  • 签到天数: 1669 天

    [LV.Master]伴坛终老

    3048

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2025-5-25 21:55 | 显示全部楼层
    花飞飞 发表于 2025-5-25 21:54
    咦,那也得打火吧,啊?

    不用,有电就好
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-12-1 20:32
  • 签到天数: 1052 天

    [LV.10]以坛为家III

    1881

    主题

    32万

    回帖

    37万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮美女虎龙狗猪多彩人生星月交辉海样胸怀火热情怀优雅迷人神秘浪漫缤纷心情草莓情怀蝴蝶情怀心曲飞扬星星情怀七彩绚丽活泼开朗女儿情怀相遇之美一往情深花好月圆心香一瓣紫色情节飞龙在天金剪刀天籁妙音妙笔生花风雨同行我心永远天长地久幸福快乐绚丽缤纷喜乐安康中秋征文周年庆指尖上的流年舞会之星分析(喊冤)章总结章杀人王小强章最佳杀刺临屏写诗七夕诗钟活动第五届风云第六届风云情人节花潮管理

    发表于 2025-5-25 22:43 | 显示全部楼层
     
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-12-1 20:32
  • 签到天数: 1052 天

    [LV.10]以坛为家III

    1881

    主题

    32万

    回帖

    37万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮美女虎龙狗猪多彩人生星月交辉海样胸怀火热情怀优雅迷人神秘浪漫缤纷心情草莓情怀蝴蝶情怀心曲飞扬星星情怀七彩绚丽活泼开朗女儿情怀相遇之美一往情深花好月圆心香一瓣紫色情节飞龙在天金剪刀天籁妙音妙笔生花风雨同行我心永远天长地久幸福快乐绚丽缤纷喜乐安康中秋征文周年庆指尖上的流年舞会之星分析(喊冤)章总结章杀人王小强章最佳杀刺临屏写诗七夕诗钟活动第五届风云第六届风云情人节花潮管理

    发表于 2025-5-25 22:44 | 显示全部楼层
    马黑黑 发表于 2025-5-25 19:37
    其实和你的认识正好相反呢:利用 clock 是最简单的

    我只是看代码数量的感觉,觉得 animate比较简单
     
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-12-14 13:47
  • 签到天数: 1669 天

    [LV.Master]伴坛终老

    3048

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2025-5-26 12:41 | 显示全部楼层
    红影 发表于 2025-5-25 22:44
    我只是看代码数量的感觉,觉得 animate比较简单

    用到复杂环境它就不简单了,单单搞定 requestAnimation 关键帧动画就是个大麻烦:什么时候取消,什么时候赋值,虽然原理在那里,却老搞不好,动画要么越来越快,要么运行不起。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-12-14 13:47
  • 签到天数: 1669 天

    [LV.Master]伴坛终老

    3048

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2025-5-26 12:41 | 显示全部楼层

    太阔气了
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-12-1 20:32
  • 签到天数: 1052 天

    [LV.10]以坛为家III

    1881

    主题

    32万

    回帖

    37万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮美女虎龙狗猪多彩人生星月交辉海样胸怀火热情怀优雅迷人神秘浪漫缤纷心情草莓情怀蝴蝶情怀心曲飞扬星星情怀七彩绚丽活泼开朗女儿情怀相遇之美一往情深花好月圆心香一瓣紫色情节飞龙在天金剪刀天籁妙音妙笔生花风雨同行我心永远天长地久幸福快乐绚丽缤纷喜乐安康中秋征文周年庆指尖上的流年舞会之星分析(喊冤)章总结章杀人王小强章最佳杀刺临屏写诗七夕诗钟活动第五届风云第六届风云情人节花潮管理

    发表于 2025-5-26 15:06 | 显示全部楼层
    马黑黑 发表于 2025-5-26 12:41
    用到复杂环境它就不简单了,单单搞定 requestAnimation 关键帧动画就是个大麻烦:什么时候取消,什么时候 ...

    原来还有这样的弊端啊,嗯,那就是另一种更简单了
     
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-12-1 20:32
  • 签到天数: 1052 天

    [LV.10]以坛为家III

    1881

    主题

    32万

    回帖

    37万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮美女虎龙狗猪多彩人生星月交辉海样胸怀火热情怀优雅迷人神秘浪漫缤纷心情草莓情怀蝴蝶情怀心曲飞扬星星情怀七彩绚丽活泼开朗女儿情怀相遇之美一往情深花好月圆心香一瓣紫色情节飞龙在天金剪刀天籁妙音妙笔生花风雨同行我心永远天长地久幸福快乐绚丽缤纷喜乐安康中秋征文周年庆指尖上的流年舞会之星分析(喊冤)章总结章杀人王小强章最佳杀刺临屏写诗七夕诗钟活动第五届风云第六届风云情人节花潮管理

    发表于 2025-5-26 15:07 | 显示全部楼层

    黑黑带来这么多好东西呢
     
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-12-14 13:47
  • 签到天数: 1669 天

    [LV.Master]伴坛终老

    3048

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2025-5-26 20:04 | 显示全部楼层
    红影 发表于 2025-5-26 15:07
    黑黑带来这么多好东西呢

    哪里哪里,果酱果酱
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    小黑屋|手机版|Archiver|服务支持:DZ动力|huachaowang.com Inc. ( 蜀ICP备17032287号-1 )

    GMT+8, 2025-12-15 04:31 , Processed in 0.092185 second(s), 29 queries .

    Powered by Discuz! X3.4

    © 2001-2013 Comsenz Inc.

    快速回复 返回顶部 返回列表