当前位置: 首页 > news >正文

芜湖市建设银行支行网站/什么是seo搜索优化

芜湖市建设银行支行网站,什么是seo搜索优化,交互做的比较好的网站,电子商务网站建设怎么做1、模式标准 模式名称:迭代器模式 模式分类:行为型 模式意图:提供一种方法顺序访问一个聚合对象中的各个元素,且不需要暴露该对象的内部表示. 结构图: ​ 适用于: 1、当你需要遍历一个复杂的数据结构…

1、模式标准

模式名称:迭代器模式

模式分类:行为型

模式意图:提供一种方法顺序访问一个聚合对象中的各个元素,且不需要暴露该对象的内部表示.

结构图:

适用于:

    1、当你需要遍历一个复杂的数据结构,如树或图,而不想公开其内部表示时。

    2、当你有一个集合对象,需要提供多种遍历方式,或者需要自定义遍历方式时。

    3、当你需要让代码独立于特定的类或接口,使代码能够与多种数据类型一起工作时。

主要成员:

  1. 迭代器接口(Iterator):定义遍历元素所需的方法,例如 next()hasNext() 等。

  2. 具体迭代器(Concrete Iterator):实现迭代器接口,并跟踪遍历的当前位置。

  3. 聚合接口(Aggregate):定义创建相应迭代器对象的接口。

  4. 具体聚合(Concrete Aggregate):实现聚合接口,返回具体迭代器的实例。

 2、分析与设计  

在游戏中会经常用到迭代器,一般情况下我们定义一个index,随着游戏或者操作进行index++,来进行下一步对象或者操作。这里我们用到的场景是新手指引,当某个事件发生时,新手指引聚合器创建一个指引迭代器,指引迭代器指引玩家一步一步的按顺序完成。

意图:提供一种方法顺序访问一个聚合对象(新手指引聚合器)中的各个元素(新手指引),且不需要暴露该对象的内部表示

3、开始打造

 

// 聚合接口
export interface IAggregate {createIterator(): IIterator
}
// 具体的新手指引聚合
export class GuideAggregate implements IAggregate {steps: GuideStep[] = []addStep(step: GuideStep) {this.steps.push(step)}createIterator() {return new GuideIterator(this.steps)}
}
// 迭代器接口
export interface IIterator {hasNext(): booleannext(): any
}

// 具体的新手指引迭代器
export class GuideIterator implements IIterator {private index: number = 0steps: GuideStep[] = []constructor(steps: GuideStep[]) {this.steps = steps}hasNext(): boolean {return this.index < this.steps.length;}next(): GuideStep | null {if (this.hasNext()) {return this.steps[this.index++];} else {return null;}}
}

// 指引步骤
export class GuideStep {private onClickResolver: (() => void) | null = null;guideItem: IGuideItemconstructor(_item: IGuideItem) {this.guideItem = _item}execute() {const targetNode = find(this.guideItem.targetNodePath)// 注册事件监听器targetNode.on(Node.EventType.TOUCH_START, this.handleClick)return targetNode // 外面要用到先返回}// 当用户点击时,解决 Promiseprivate handleClick = () => {const targetNode = find(this.guideItem.targetNodePath)targetNode.off(Node.EventType.TOUCH_START, this.handleClick)if (this.onClickResolver) {this.onClickResolver();}}// 返回一个 Promise,该 Promise 在用户点击后被resolveonClick(): Promise<void> {console.log('等待点击')return new Promise((resolve) => {this.onClickResolver = resolve;});}
}

4、开始使用

        let guides: IGuideItem[] = [{"group": "battle_start","targetNodePath": "root/UICanvas/battle_index/help_move_up","text": "点击的虚框","text_size": [200, 200],"text_pos_index": 3}, {"group": "battle_start","targetNodePath": "root/UICanvas/battle_index/help_move_up","text": "点击的虚框","text_size": [200, 200],"text_pos_index": 3}]// 开始本次的新手指引let guideAggregate = new GuideAggregate();guides.forEach((_item) => {guideAggregate.addStep(new GuideStep(_item));})async function runGuide(guide: GuideAggregate) {// 创建新手指引的指引层PlayerGuideSystem.createGuideNodes(comp)let iterator = guide.createIterator();while (iterator.hasNext()) {console.log('准备指引')let step = iterator.next();if (step !== null) {step.execute();await step.onClick();  // 等待用户点击console.log('点击完成')}}// 清理新手指引的指引层PlayerGuideSystem.clearNodes()console.log('指导层清理完成')}runGuide(guideAggregate);

完工

http://www.whsansanxincailiao.cn/news/30333144.html

相关文章:

  • 重庆高端网站建设/中文域名交易网站
  • 武汉网站建设模板如何制作/南京网站seo
  • 小网站大全/上海关键词排名推广
  • 多用户商城系统是什么/seo视频教学网站
  • 仿站酷网站模板/搜索引擎优化技术有哪些
  • 131美女做爰网站/邮件营销
  • 建设什么网站/广西网络推广公司
  • 自己怎么做wap网站/培训加盟
  • google 网站营销/株洲网页设计
  • 三里屯网站建设公司/优化模型有哪些
  • 做网站必须会编程吗/渠道销售怎么找客户
  • 建设网站 安全事项/北京公司排名seo
  • 做的网站怎么发网上/国际军事新闻最新消息今天
  • 商务网站建设中存在的问题/汕头seo排名
  • 网站如何做/百度建站平台官网
  • 打渔网站建设/抖音广告推广怎么收费
  • 做销售网站/百度客户端手机版
  • 无锡市政府网站建设/百度 营销推广怎么做
  • 宜昌建网站/杭州网站优化
  • 青岛网站建设-中国互联/seopeixun com cn
  • 衡水哪儿做网站便宜/谷歌推广培训
  • 个人建站做什么网站比较赚钱/如何免费发布广告
  • 网站上地图是怎样做的/济南网站制作
  • wordpress全站301/seo 什么意思
  • 网站设计的汕头公司/软文广告是什么意思
  • 自适应网站怎么做m站/长沙优化排名
  • 网站免费建设/windows优化大师兑换码
  • 网站建设应用/搜索引擎优化实训报告
  • html5 房地产网站案例/厦门人才网官网登录
  • 珠海建站/营销网站建设服务