JavaScript类方法实现:先显示前两张图再随机选一张进化图
实现Eevee类handleClick方法的逻辑方案
首先,我们需要在Eevee类中添加状态变量追踪点击次数与切换状态,再在handleClick方法里按需求分支处理:
class Eevee { constructor() { // 图片数组结构:[精灵球, 初始伊布, 水伊布, 雷伊布, 火伊布, ...] this.imageArray = ['pokeball.png', 'eevee.png', 'vaporeon.png', 'jolteon.png', 'flareon.png']; this.clickCount = 0; // 记录点击次数 this.isStopped = false; // 标记是否停止切换 // 初始显示第1张(数组索引0) this.displayImage(this.imageArray[0]); } // 替换成你项目中实际更新图片的DOM逻辑 displayImage(imageSrc) { const imgElement = document.getElementById('eeevee-image'); if (imgElement) { imgElement.src = imageSrc; } } handleClick() { // 已停止切换则直接返回 if (this.isStopped) return; this.clickCount++; switch(this.clickCount) { case 1: // 第一次点击:显示第2张(初始伊布,数组索引1) this.displayImage(this.imageArray[1]); break; case 2: // 第二次点击:从包含初始伊布的进化图池里随机选一张 const evolutionPool = this.imageArray.slice(1); const randomIndex = Math.floor(Math.random() * evolutionPool.length); this.displayImage(evolutionPool[randomIndex]); // 切换完成后停止后续操作 this.isStopped = true; break; } } }
核心逻辑说明
- 状态控制:用
clickCount统计点击次数,isStopped防止后续点击触发无效切换 - 初始状态:类实例化时直接显示数组第1项(精灵球)
- 第一次点击:切换到数组第2项(初始伊布)
- 第二次点击:从索引1开始的数组片段(包含初始伊布和所有进化型)中随机选取图片,完成后锁定状态不再响应点击
内容的提问来源于stack exchange,提问作者PeteyP
相关产品推荐
相关产品推荐

