JavaScript 语法
窗口 (Win)
隐藏窗口
win.getElementById('heat_win')
hid = win.getAttribute("hidden")
console.log(hid)
if (!hid) {
win.setAttribute("hidden", "hidden");
}
监听手势
win.getElementById('tab7Win')
function winNromalOnPressFunc(params) {
console.log('winNromalOnPressFunc')
}
win.onPress(winNromalOnPressFunc)
function winNromalOnReleaseFunc(params) {
console.log('winNromalOnReleaseFunc')
}
win.onRelease(winNromalOnReleaseFunc)
点击交换
'cool_win'
和'heat_win'
之间的窗口
win.getElementById('cool_win')
function hideCool(params) {
console.log('hideCool')
win.getElementById('cool_win')
win.setAttribute("hidden", "hidden");
win.getElementById('heat_win')
win.removeAttribute("hidden")
}
win.onClick(hideCool)
win.getElementById('heat_win')
function hideHeat(params) {
console.log('hideHeat')
win.getElementById('heat_win')
win.setAttribute("hidden", "hidden");
win.getElementById('cool_win')
win.removeAttribute("hidden")
}
win.onClick(hideHeat)
API
getElementById : function (win_name : string) {}
onClick : function (click_callback_func) {}
onRight : function (click_callback_func) {}
onLeft : function (click_callback_func) {}
onUp : function (click_callback_func) {}
onDown : function (click_callback_func) {}
onPress : function (callback_func) {}
onRelease : function (click_callback_func) {}
onHold : function (callback_func) {}
getAttribute : function(attributeName : string) {}, //return attribute value //support "hidden"
removeAttribute : function (attribute : string) {} //support "hidden"
setAttribute :function(attributeName : string, value : any) {}, //support "hidden"
文本 (Text)
修改文本内容
textbox.getElementById('tab10text1')
textbox.write('progress:'+seekbar.progress())
API
getElementById : function (win_name : string) {},
write : function (text : string) {},
setPosition : function (position : object) {}, //var position={x:0,y:0}
图像滑动条 (ImageSeekbar)
拖动进度条,文本显示当前进度。
seekbar.getElementById('tab10Seek1')
function seekbarOnPress(params) {
console.log('seekbarOnPress')
}
seekbar.onPress(seekbarOnPress)
function seekbarOnrelease(params) {
console.log('seekbarOnrelease')
}
seekbar.onRelease(seekbarOnrelease)
function seekbarOnPressing(params) {
console.log('seekbarOnPressing')
textbox.getElementById('tab10text1')
textbox.write('progress:'+seekbar.progress())
}
seekbar.onPressing(seekbarOnPressing)
基于图像滑动条的动画
var curtainAnimateTiming = {
duration: 2000,
iterations:-1,
}
var curtain_open = 0;
seekbar.getElementById('curtain_bar')
function curtainFrame(params) {
animate= seekbar.animateProgress()
seekbar.setAttribute("progress", animate)
}
seekbar.setAnimate(curtainFrame, curtainAnimateTiming)
seekbar.palyAnimate()
API
getElementById : function (win_name : string) {},
progress : function (progressToSet : number):{},//获取或设置进度//返回进度
onPress : function (callback_func) {}, //手势按下
onPressing : function (callback_func) {},//手势按下时
onRelease : function (click_callback_func) {},//手势释放
setAnimate : function (frameCallback : function, config : object) {},// 每帧执行frameCallback函数 // var curtainAnimateTiming = {duration: 2000,iterations:1,}
setAttribute :function(attributeName : string, value : any) {}, //支持 "hidden"
getAttribute : function(attributeName : string) {}, //返回属性值 //支持 "hidden"
palyAnimate : function () {}, //开始动画
开关 (Switch)
监听两种手势
sw.getElementById('tab8Switch')
function swOnOnFunc(params) {
console.log('swOnOnFunc')
}
sw.switch_on(swOnOnFunc)
function swOnOffFunc(params) {
console.log('swOnOffFunc')
}
sw.switch_off(swOnOffFunc)
sw.turnOn();
turn on a led (P1_1)
var P1_1 = 9
var LED1 = new Gpio(P1_1, 'out');
function led1OnFunc(params) {
console.log('led1OnFunc')
LED1.writeSync(0)
}
sw.getElementById('living_switch')
sw.turnOn()
这是针对RTL87X2G的GPIO LED的 writeSync
控制的实现。首先获取GPIO值和方向值,然后使用特定的驱动程序API操作LED。详细信息请参考https://www.npmjs.com/package/onoff#usage。
DECLARE_HANDLER(writeSync)
{
gui_log("enter writeSync:%d\n", args[0]);
if (args_cnt >= 1 && jerry_value_is_number(args[0]))
{
int write_value = jerry_get_number_value(args[0]);
int gpio = -1;
jerry_value_t v1;
jerry_value_t v2;
v1 = js_get_property(this_value, "gpio");
v2 = js_get_property(this_value, "direction");
gpio = jerry_get_number_value(v1);
jerry_release_value(v1);
char *direction = js_value_to_string(v2);
jerry_release_value(v2);
int mode = 0;
#ifdef RTL8762G
if (!strcmp(direction, "out"))
{
mode = PIN_MODE_OUTPUT;
}
else if (!strcmp(direction, "in"))
{
mode = PIN_MODE_INPUT;
}
if (gpio >= 0)
{
gui_log("gpio%d, %d, %d", gpio, mode, write_value);
drv_pin_mode(gpio, mode);
drv_pin_write(gpio, write_value);
API
getElementById : function (win_name : string) {},
switch_on : function (func) {},
switch_off : function (func) {},
onPress : function (func) {},
turnOn : function (func) {},//打开开关
turnOff : function (func) {},//关闭开关
图像 (IMAGE)
API
getElementById : function (widget_name : string) {},
rotation : function (degree:number, centerX:number, centerY:number) {},
scale : function (scaleRateX:number, scaleRateY:number) {},
setMode : function (modeIndex:number) {},
应用程序 (APP)
API
open : function (appXML : string) {},
close : function () {},
进度条 (PROGRESSBAR)
API
getElementById : function (widget_name : string) {},
progress : function (progressToSet : number):{},//获取或设置进度//返回进度
选项卡 (TAB)
API
getElementById : function (widget_name : string) {},
jump : function (tabIndex : number) {}, //跳转到指定水平选项卡
OnChange : function (func) {},//监听索引值变化的事件
getCurTab : function () {},//返回当前选项卡的属性(x、y、z等)