Изучая Appcelerator Titanium, я создаю приложение, которое начинается с окна, содержащего 2 метки. Две метки (onclick) должны открывать 2 разных окна (каждое из которых содержит группы вкладок).
Итак, в моем app.js
у меня есть:
Window = require('ui/handheld/ApplicationWindow');
и в моей функции ApplicationWindow
:
var window1 = Ti.UI.createWindow({
backgroundColor:'#ffffff'
});
var label = Ti.UI.createLabel({ text: "Open first Window", top:10 });
window1.add(label);
var label2 = Ti.UI.createLabel({ text: "Open second Window", top:50 });
window1.add(label2);
var window2 = Titanium.UI.createWindow({url:"A.js",backgroundColor:'#00ff00'});
var window3 = Titanium.UI.createWindow({url:"B.js",backgroundColor:'#ff0000'});
label.addEventListener("click", function(e) {
var t = Ti.UI.iPhone.AnimationStyle.CURL_UP;
window1.animate({view:window2,transition:t},function(){window2.open();});
});
label2.addEventListener("click", function(e) {
var t = Ti.UI.iPhone.AnimationStyle.CURL_UP;
window1.animate({view:window3,transition:t},function(){window3.open();});
});
return window1;
Первый вопрос: хороший ли это дизайн? Это неисправимо? Как?
Второй вопрос: есть ли способ показать открываемую страницу до окончания перехода? На данный момент кажется, что JS, содержащийся в A.js и B.js, выполняется только тогда, когда анимация останавливается.
Спасибо, любая помощь приветствуется и извините за вопрос новичка.
[EDIT] Это мой текущий код после комментария Ch4rAss:
function ApplicationWindow() {
var root = Ti.UI.createWindow({
backgroundColor:'#ffffff'
});
var label = Ti.UI.createLabel({ text: "Open first Window", top:10 });
root.add(label);
var label2 = Ti.UI.createLabel({ text: "Open second Window", top:50 });
root.add(label2);
var win2 = require('ui/handheld/Win2');
var win3 = require('ui/handheld/Win3');
label.addEventListener("click", function(e) {
var t = Ti.UI.iPhone.AnimationStyle.CURL_UP;
win2.open({transition:t});
});
label2.addEventListener("click", function(e) {
var t = Ti.UI.iPhone.AnimationStyle.CURL_UP;
win3.open({transition:t});
});
return root;
}
module.exports = ApplicationWindow;
и:
function Win2(){
/* You can (of course) do more than this */
return Ti.UI.createWindow({backgroundColor:'#00ff00'});
}
module.exports = Win2;