1

Dart:js を使用して、Dart から Blockly API にアクセスするためのラッパー コードをいくつか書いています。JS 側で Blockly のイベント登録関数の 1 つに関数を渡す必要があるまで、すべてが順調に進んでいます。

Blockly で問題となっている機能はaddChangeListener()( https://developers.google.com/blockly/installation/code-generatorsを参照) です。引数なしの関数をコールバックとして受け取ります。したがって、私の目標は、Dart 関数をラップして渡し、イベントが発生したときにその関数が呼び出されるようにすることです。

ダーツで:

var blockly = context['Blockly'];

context['codeChangedCallback'] = (){
   print('This should work, right?');
};  

blockly.callMethod('addChangeListener', [context['codeChangedCallback']]);

Blockly が初期化されると、次のスタック トレースが取得されます。

スタック トレースのスクリーン ショット

誰かが私が見逃した明らかなことを指摘してくれることを願っています。

これは、blockly の外部で関数を渡そうとしたところ、正常に機能したため、blockly が関数を内部で処理する方法に特に関係している可能性があると感じています。

4

2 に答える 2

2

これはうまくいくはずだと思います

var blockly = context['Blockly'];

context['codeChangedCallback'] = (){
   print('This should work, right?');
};  

blockly.callMethod('addChangeListener', [(){
   print('This should work, right?');
}]);
于 2014-11-03T05:09:59.420 に答える