機能説明
同时生成七个不相同的随机数字,当点击开始,数字开始变化,变化时间为0.3秒,当点击结束,数字停止。
実装手順
- まず、関数を定義します。関数は次のとおりです。7 つの異なる数値を生成します。数値の範囲は 1 ~ 35 で、型は整数です。
- 次に、開始イベントを定義します。開始イベントは setInterval タイマーを使用し、時間は 300 ミリ秒です。つまり、数値を生成する関数は 300 ミリ秒ごとに呼び出されます。
- 3 番目に、終了時刻を定義します。終了時刻をクリックすると数字が止まります。
コード
Page({
data: {
nameValue:'',
randomNumbers: [],
intervalId: null,
isRandoming: false,
},
generateRandomNumbers() {
let numbers = [];
while (numbers.length < 7) {
const num = Math.floor(Math.random() * 49) + 1;
if (numbers.indexOf(num) === -1) {
numbers.push(num);
}
}
return numbers;
},
start() {
this.setData({
nameValue:''
})
if (this.data.isRandoming) {
return;
}
const intervalId = setInterval(() => {
const numbers = this.generateRandomNumbers();
this.setData({
randomNumbers: numbers,
});
}, 300);
this.setData({
intervalId: intervalId,
isRandoming: true,
});
},
end() {
if (!this.data.isRandoming) {
return;
}
clearInterval(this.data.intervalId);
this.setData({
intervalId: null,
isRandoming: false,
});
},
//wxml
//数据显示
<view wx:for="{
{randomNumbers}}" wx:key="index">{
{item}}</view>
//开始
<button bindtap="start">开始</button>
//结束时间
<button bindtap="end">结束</button>