私はこのプロジェクトに参加しています(他の社会が私たちに引き渡す前に作成した完全な手続き型の非常に臭いコードを備えた恐ろしいプロジェクトです)。
ネイティブの Android モジュールである Carousel があります。カルーセルの各要素をクリックすると、対応するアクションがトリガーされます。
論理的には、Titanium のインスタンス化されたモジュールに addEventListener を追加しただけで、アプリケーションを初めて起動したときに完全に機能します。しかし、アプリケーションを終了して再起動すると、エラーが発生しますObject [Object Carousel] has no method addEventListener
。
理由がわかりません。最初に機能する場合は、2 回目に機能するはずです。うまくいかないある種のメモ化はありますか?それともガベージコレクションの失敗?このロジックを処理するために Titanium で使用したコードは次のとおりです。
function some_func() {
CF_container = null;
var my_module = require('com.xxxx.carousel');
CF_container = my_module.createView();
CF_container.addEventListener('IZ_itemClicked', function(data) {
evts_CF_click(data.id);
});
return CF_container;
}