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

小试牛刀-抽奖程序

  1. 编写抽奖程序

    需求:设计一个抽奖程序,点击抽奖按钮随机抽取一个名字作为中奖者

    目标:了解项目结构,简单UI布局,属性方法、事件方法,程序运行及调试

  2. 界面原型

​ 待抽奖:

在这里插入图片描述

点击抽奖按钮:

在这里插入图片描述

1 新建项目

File》新建项目:

在这里插入图片描述

录入项目信息:

在这里插入图片描述

从index.ets页面预览生成的项目:

在这里插入图片描述

项目结构说明:

  • entry:HarmonyOS工程模块,编译构建生成一个HAP包。

    • src > main > ets:用于存放ets源码。

    • src > main > ets > entryability:应用/服务的入口。

    • src > main > ets > pages:应用/服务包含的页面。

    • src > main > resources:用于存放应用/服务所用到的资源文件,如图形、多媒体、字符串、布局文件等。关于资源文件,详见资源分类与访问。

    • src > main > module.json5:模块配置文件。主要包含HAP包的配置信息、应用/服务在具体设备上的配置信息以及应用/服务的全局配置信息

    • build-profile.json5:当前的模块信息 、编译信息配置项,包括buildOption、targets配置等。

    • hvigorfile.ts:模块级编译构建任务脚本,开发者可以自定义相关任务和代码实现。

  • build-profile.json5:应用级配置信息,包括签名、产品配置等。

  • hvigorfile.ts:应用级编译构建任务脚本。

2 界面UI

界面原型:

在这里插入图片描述

在Index.ets页面清除原有代码,使用colum布局重新编写:

@Entry
@Component
struct Index {

  @State name: string = '待抽奖'

  build() {
    Column(){
      Text('抽奖App V2.0')
        .fontSize(26)
        .fontWeight(FontWeight.Bold)
      Text(`恭喜:${this.name}`)
        .fontSize(32)
        .fontWeight(FontWeight.Bolder)
      Button('抽奖')
        .width('80%')
        .fontSize(26)


    }
    .width('100%')
    .height('100%')

  }
}

预览效果:
在这里插入图片描述

3 抽奖逻辑

点击抽奖按钮,从预定义数组中选择姓名并显示,使用随机数模拟抽奖过程。

定义抽奖姓名数组:

  @State name: string = '待抽奖'
  private names: string[] = [
    '刘备',
    '关羽',
    '张飞'
  ]
...

在按钮点击事件中完成抽奖逻辑:

      Button('抽奖')
        .width('80%')
        .fontSize(26)
        .onClick(()=>{
          let idx = Math.floor(Math.random()*3)
          this.name = this.names[idx]
        })

点击按钮测试效果:

在这里插入图片描述

4 本地模拟器运行

在这里插入图片描述

启动本地模拟器:

在这里插入图片描述

启动中:

在这里插入图片描述

启动完成,点击运行:

在这里插入图片描述

点击抽奖按钮:

在这里插入图片描述

运行结果:

在这里插入图片描述

相关文章:

  • Git 查看提交历史
  • 多链协议和跨链桥
  • 如果单表数据量大,只能考虑分库分表吗
  • LangChain4j实战-Java AI应用开源框架之LangChain4j和Spring AI
  • 基于关键字定位的自动化PDF合同拆分
  • 榕壹云外卖跑腿系统:基于Spring Boot+MySQL+UniApp的智慧生活服务平台
  • SQL实战篇,数据库在Kooboo中的实际应用(一)
  • 《Vue Router实战教程》11.匹配当前路由的链接
  • 数据中台、BI业务访谈(三):如何选择合适的访谈对象
  • leetcode0155. 最小栈-medium
  • CRM软件介绍与10大主流产品选型指南
  • Umi Max 和 Ant Design Pro 的区别
  • [Windows] OfficeAI 助手 v0.3.20(长期免费,2025-03-18 本地支持WPS_Word联动)
  • 深入浅出:Linux Shell 中的条件判断与空变量检查
  • 网页布局思路
  • 【Django】教程-15-注册页面
  • [Effective C++]条款30:透彻了解inlining的里里外外
  • 如何通过简单步骤保护您的网站安全
  • 【Dart语言】七、类修饰符
  • 5️⃣ Coze+AI应用基础教学(2025年全新版本)
  • 培训类网站模板/厦门网站设计公司
  • 网站无icp备案/外贸平台自建站
  • 网站云优化/自助建站免费搭建个人网站
  • 南宁网站建设电话/线下课程seo
  • 零基础学习网站开发/沈阳高端关键词优化
  • 国税网站模板/外贸推广