2012-01-28 135 views
0

窗口添加eventlistener添加一个eventlistener我在钛手机commonJS模块中创建一个窗口肯定有些愚蠢的问题。添加eventlistener到钛移动commonJS

即考虑下面的代码:使用

var Window = require(".....").SegmentListWindow; 
var win = new Window(); 

S.ui只是一个简单的辅助方法在我的应用程序来创建一些标准窗口是很好的产生

var SegmentListWindow = function(){ 
    var window = S.ui.createWindow("Testwindow"); 
    window.addEventListener("app:customListener", function(){ doSomething();}); 
    return window; 
} 
exports.SegmentListWindow = SegmentListWindow; 

的窗口。

但事件监听器从来没有被调用,我尝试Ti.App.fireEvent("app:customListener"),但事件没有到达监听器。 只有当使用Ti.App.addEventListener并增加一个global eventlistener它工作。

我想也许这个问题是我没有添加事件监听器到窗口的"instance"?但如何解决这个问题?我不想在实例化应用程序某处的窗口时手动添加event listener。我不能在commonJS模块中做到这一点吗?

回答

1

嗯,那真的是一个简单的问题。

我正在做一个Ti.App.fireEvent,但是在听window.addEventListener,这是行不通的。

现在我做了以下内容:

添加在窗口实例的事件侦听全球Ti.App -object,并取消对窗口的关闭事件这个监听器。 完美的作品。

0

你也可以定义SegmentListWindow你在问题中所做的:

var SegmentListWindow = function(){ 
    var window = Ti.UI.createWindow({title:"Testwindow"}); 
    window.addEventListener("win:customListener", function(){ doSomething();}); 
    return window; 
} 
exports.SegmentListWindow = SegmentListWindow; 

,然后火win对象上的事件:

var Window = require(".....").SegmentListWindow; 
var win = new Window(); 
win.fireEvent('win:customListener');