2013-06-24 147 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. 

希望這會有所幫助。

相關問題