2012-09-19 27 views
2

我是鈦工作室的新手,我正在嘗試爲android開發一個應用程序。當我執行以下的功能(即,當我點擊窗口上):鈦工作室功能反向執行(安卓)

win1.addEventListener('click', function(){ 
    alert('On click'); 
    alert('End of the function'); 
}); 

警報二把手「函數結束」被示出第一和警報數之一,「點擊」被示出。

你有任何解決方案。提前致謝。

回答

0

在Titanium中,01​​調用是異步的(與網頁瀏覽器不同)。 Heres the doc on it:

請注意,與基於Web瀏覽器的警報版本不同,此方法是異步的。但是,一次只能看到一個警報對話框並且可以顯示模式。

請注意,此方法將來可能會被刪除。

你有兩個警報觸發從一個函數內部,第二警報沒有先打開,他們是開放的順序,所以當你打開第一alert('On Click')它被掩蓋了(還是真的更換,因爲只有一個警報一次顯示)幾乎立即打開第二個警報框。

因此,您不應該在一個函數中有多個警報調用。

思考在Javascript和鈦的最佳做法:你應該永遠使用alert()以特別調試JavaScript的現代,當您在您的處置有更強大的工具。即使在網絡瀏覽器中(使用Web Developer Tools或Firebug)。此外,將來可能會從Titanium中刪除此功能(我希望他們會這樣做),如前所述。

改爲使用Debug透視圖中的內置調試器。它的功能就像任何其他可視化調試器一樣。但這裏是一個快速鏈接,如果你新來這個一般:Debugging with Titanium

另一種選擇是使用printf()/console.log相當於鈦的是:

Titanium.API.info('On click'); 

但是,爲什麼不通過代碼和省去一些麻煩。

+0

嘿,謝謝你的回答。這就說得通了。但是當我嘗試與IOS相同時,它按預期工作。在Windows和MacOS中,鈦的工作方式是否有所不同?感謝您提供的調試技巧。 – senthil

+0

是的,因爲每個平臺的實現都不同,請注意,doc一次只顯示一個alert()是模態和可見的,因爲它是一個本地組件,它們在不同平臺(Android和iOS)上的功能會有所不同我的答案仍然正確。 TitaniumStudio對於Window和MacOS,Titanium的工作原理相同,每個設備的實現方式都不相同。 –

+0

謝謝Josiah。這很有幫助。 – senthil