-
編寫抽獎程序
需求:設計一個抽獎程序,點擊抽獎按鈕隨機抽取一個名字作為中獎者
目標:了解項目結構,簡單UI布局,屬性方法、事件方法,程序運行及調試
-
界面原型
? 待抽獎:
點擊抽獎按鈕:
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 本地模擬器運行
啟動本地模擬器:
啟動中:
啟動完成,點擊運行:
點擊抽獎按鈕:
運行結果:
代碼倉
https://gitee.com/snowyvalley/harmony-app-dev-basic-course.git