2013-06-24 143 views
4

所以我一直在过去3天一直在尝试几个小时,我研究了这个死亡但仍然无法得到它。钛,从另一个JS文件调用一个JS文件中的函数

目标:

-file1.js有buttion按下时会调用方法MAIN_MENU在file2.js并打开通过该方法,或函数创建一个新的窗口。

失败的尝试:

-i试图Ti.include但总是得到一个,无法找到文件错误,我试图改变串到每一个可能的路径。

-var文件=需要(路径),但不能使用方法里面的文件,例如file.Main_Meue,不工作

我也试着不浮现在脑海中,但如果许多其他的事情任何人有任何建议,或者你需要更多的信息只是问。请大家帮忙,和Thankyou

+0

让我看看我是否理解你的问题。 'file1.js'有一个按钮。当你点击按钮时,会使用'file2.js'创建一个新窗口?简单地把'Main_Menu();'放在'file2.js'的末尾,当窗口被创建时,它会调用 – Ronnie

+0

yes,但是main_menu(){有一个创建窗口代码}。因此新打开窗口的代码位于file2.js中,与调用文件2中的main_menu的方法 – Mikecit22

+0

相同是不必要的。您从file1创建窗口。我会更新我的回答 – Ronnie

回答

2

第二个答案

创建第二个窗口,像这样:

//file1.js 
button.addEventListener('click', function() 
{ 
    var secondWindow = Ti.UI.createWindow({ 
    url:'file2.js' 
    }); 
    secondWindow.open(); 
}); 

file1.js创建通过url参数使用file2.js一个新的窗口。 file2.js现在是呼吁secondWindow.open()

先回答

基于关闭此专题的标题后,您的新窗口,你可以使用fireEvent方法。例如:

file1.js

Ti.App.addEventListener('customEventName', function() 
{ 
    Ti.API.info('function fired from file2.js'); 
}); 

file2.js

Ti.App.fireEvent('customEventName'); 

http://docs.appcelerator.com/titanium/latest/#!/api/Titanium.Proxy-method-fireEvent

+0

是代码去为我想要它做什么?我希望代码来自file2 – Mikecit22

+0

有没有什么办法可以解决它,就像在java中那样,我可以在file1中调用它,在那里我可以创建一个对象,或者类似的,file2和do,object_Of_File2.Main_Menu ()? – Mikecit22

+0

至于你的第二个答案,我也试过这个,并得到相同的错误,“无法找到文件”。两个文件都在同一个目录中。 – Mikecit22

0

这可能是代码结构的问题。基本上,你必须这样做,这取决于你所使用的版本(实际上是哪个版本,你开始你的项目三个好办法:

希望它有帮助。

1

file1.js

var toBeExported ={ 
a : function(){ 
    //your code goes here 
    } 
}; 
exports.a = toBeExported.a 

文件2。js

var b = require ('file1'); 
//you can use all the functions that is exported from file1 here. 
//you have to create a lib folder or place the file1.js in the existing lib folder for the export/require to work. 

希望这会有所帮助。

相关问题