Open cake221 opened 4 years ago
好的,谢谢。是BUG。
TBitmap TCanvas TRect TVgcanvas TValue TInputMethod TFontManager TObject TImageManager TLocaleInfo TStyle TTheme TNamedValue TEvent TEmitter TColor TDateTime TAssetInfo TAssetsManager 还有些 Event和info也存在类似的问题。
我刚才尝试的解决了一下这个问题。我觉得,这个问题的根源是没有把awtk的 原生js接口 和 js封装 分开。我觉得,应该按照awtk释放出来的接口,先写一个native.d.ts文件,然后在这个文件的基础上写awtk.ts。具体的话,就是
你更新一下再试试。谢谢
嗯嗯。谢谢您。
请问一下,可以用nodejs调用AWTK么?
周末我加个nodejs绑定吧
感觉你太强了。敬佩之情油然而生。
请问一下,TCheckButton 的create、 createRadio函数返回的事 TCheckButton类型还是 TWidget 类型。
好的,谢谢。你更新一下。
nodejs绑定基本功能可以用了(nodejs可能需要比较新的版本),你有空试试:https://github.com/zlgopen/awtk-nodejs
嗯嗯。谢谢,谢谢。
完善了Linux和Windows编译,你再更新一下。谢谢
windows 现在没有任何问题。 linux还是昨天的问题。我在想可能是我把代码放在windows的共享文件夹里的原因。我找个时间,把代码都导在linux环境下,试一下。谢谢您了。
好的。node-gyp要安装成全局的。
果然是因为代码在windows的共享文件夹里的原因。全部安装在linux下,就好使了。
谢谢您了。
好的,不客气。
请问一下,通过事件函数找到原控件的接口是 XXX.cast(evt.target)么?
比如:
var btn = TCheckButton.createRadio(null, 0, 0, 0, 0);
btn.on(TEventType.VALUE_CHANGED, function(evt) {
var btnCast = TCheckButton.cast(evt.target)
return TRet.OK;
});
btnCast 是 btn 么?
你参考一下button.js:
ok.on(TEventType.CLICK, function(evt) {
var e = TPointerEvent.cast(evt);
var target = TButton.cast(e.target);
console.log("click at " + e.x + " " + e.y + " on " + target.name);
console.log("global: " + TGlobal.getPointerX() + " " + TGlobal.getPointerY() + " " + TGlobal.isPointerPressed());
return TRet.OK;
});
在 awtk-nodejs 中的 .\demos\check_button.js。如下,
var awtk = require('../awtk').init(320, 480, 'Hello-AWTK');
for(key in awtk) global[key] = awtk[key];
function createCheckButton(win, radio, text, x, y, w, h) {
var btn = null;
if(radio) {
btn = TCheckButton.createRadio(win, x, y, w, h);
} else {
btn = TCheckButton.create(win, x, y, w, h);
}
btn.on(TEventType.VALUE_CHANGED, function(evt) {
var test = TCheckButton.cast(evt.target)
console.log(test.name + ' changed. ' + (test.value))
console.log(btn.name + ' changed. ' + (btn.value))
return TRet.OK;
});
btn.setName(text);
btn.setText(text);
return btn;
}
function applicationInit() {
var win = TWindow.create(null, 0, 0, 0, 0);
var btn1 = createCheckButton(win, false, 'Zzzzzz', 10, 10, 128, 30);
var btn2 = createCheckButton(win, false, 'Lzzzzz', 10, 50, 128, 30);
var btn3 = createCheckButton(win, false, 'Gzzzzz', 10, 90, 128, 30);
var btn4 = createCheckButton(win, true, 'Aaaaaa', 10, 10+128, 128, 30);
var btn5 = createCheckButton(win, true, 'Waaaaa', 10, 50+128, 128, 30);
var btn6 = createCheckButton(win, true, 'Tttttt', 10, 90+128, 128, 30);
var btn7 = createCheckButton(win, true, 'Kkkkkk', 10, 130+128, 128, 30);
win.layout();
}
applicationInit()
在 btn.on(TEventType.VALUE_CHANGED
函数中, 我添加了
var test = TCheckButton.cast(evt.target)
console.log(test.name + ' changed. ' + (test.value))
当我点击时候,出现了错误。报错如下:
请问一下,这个错误在哪?
这样试试:
var target = TEvent.cast(evt).target;
var test = TCheckButton.cast(target)
抱歉抱歉。没有仔细看button的例子。谢谢您的耐心解答。确实可以。
2020.1.1。新年快乐。祝您身体健康,工作顺利。祝awtk生态越来越好,来年有更多的人加入其中。
好的,新年快乐!
在./demo/js/progress_bar.js中, TTimer.add(),有三个输入,但是目前只有两个。
上个问题是,500是 duration ,应该是放在第三个参数上。现在放在了第二个参数里。
好的,谢谢。已修改,你更新代码试试。
button_create 声明的是返回 TWidget。
但是在 TButton.create()中使用的时候,返回的是nativeObj。
是不是个bug?