功能分类: Circuit Applab JavaScript 少儿编程
在编程主板指定 component
组件指定 event
事件触发时,运行 callback
异步回调函数。
使用这个方法,可以让主板上的组件(如左右两个按钮、主板开关、各种传感器)在被操作或状态变化时,触发回调函数。
在 Applab 里,onBoardEvent()
方法的使用方法跟 onEvent() 类似,只是事件处理的对象不同。onEvent()
用于捕捉页面上显示的控件(如文本输入框、按钮等)的事件,而 onBoardEvent()
则用于捕捉 Adafruit Circuit Playground 编程主板上组件(如主板上的左按钮、有按钮、主板开关、声音传感器、光线传感器、温度传感器以及速度传感器)的事件。所有这些组件都有不同的事件类型:
主板组件 | 组件事件 |
---|---|
buttonL/R 左右按钮 | pressed - 按下 (按钮被按下), down - 按下 (按钮处于按下状态), up - 放开 (按钮被放开) |
toggleSwitch 主板开关 | open - 开 (打开状态), closed - 关 (关闭状态) |
所有传感器 | change - 变化 (每次传感器感应到变化), data - 数据( 传感器感每隔 50 毫秒触发一次) |
加速度感应 | single tap - 在板旁边检测到轻击时触发,double tap - 仅在板附近检测到彼此在 x 时间之内发生两次轻击时触发 |
示例代码:ButtonL/R 当左按钮按下时蜂鸣器发声,当右按钮按下时声音停止。
// 当左按钮按下时蜂鸣器发声
onBoardEvent(buttonL, "press", function(event) {
buzzer.note("A4");
});
// 当右按钮按下时声音停止
onBoardEvent(buttonR, "press", function(event) {
buzzer.stop();
});
示例代码:温度感应 持续获取温度感应数据并显示到页面。
// 持续获取温度感应数据并显示到页面
onBoardEvent(tempSensor, "data", function(event) {
setNumber("temperature", tempSensor.F);
});
示例代码:主板开关控制红色 LED 灯 使用主板开关控制红色 LED 灯。开关打开时,控制灯关闭;开关关闭时,控制灯打开。
// 使用主板开关控制红色 LED 灯
// 开关打开时,控制灯关闭
onBoardEvent(toggleSwitch, "open", function(event) {
led.off();
});
// 开关关闭时,控制灯打开
onBoardEvent(toggleSwitch, "close", function(event) {
led.on();
});
示例代码:光线感应及页面颜色变化 获取光线感应数据,并持续根据感应数据情况,更新页面颜色。
// 获取光线感应数据,并持续根据感应数据情况,更新页面颜色
onBoardEvent(lightSensor, "data", function(event) {
lightSensor.setScale(0, 255);
var light1 = lightSensor.value;
lightSensor.setScale(100, 150);
var light2 = lightSensor.value;
lightSensor.setScale(0, 200);
var light3 = lightSensor.value;
setProperty("screen1", "background-color", rgb(light1,light2,light3));
});
示例代码:加速感应及 LED 霓虹灯效果 根据检测到的主板状态,设置 LED 霓虹灯显示效果。
// 根据检测到的主板状态,设置 LED 霓虹灯显示效果
var colors = "white";
onBoardEvent(accelerometer, "data", function(event) {
var pitch = accelerometer.getOrientation("pitch");
var inclination = accelerometer.getOrientation("inclination");
var roll = accelerometer.getOrientation("roll");
//front to back
if (pitch < -10) {
colorLeds[0].on();
colorLeds[9].on();
}
if (pitch > 10) {
colorLeds[4].on();
colorLeds[5].on();
}
//side-to-side
if (roll > 20) {
colorLeds[7].on();
}
if(roll < -20){
colorLeds[2].on();
}
});
onBoardEvent(component, event, function(event) {...});
名称 | 类型 | 必需 | 参数描述 |
---|---|---|---|
component | string | Yes | 指定主板组件,如 toggleSwitch、buttonR、buttonL 等。 |
event | string | Yes | 指定事件类型,如 pressed、up、down等。 |
callback | function | Yes | 指定事件发生时,要异步执行的回调函数。 |