2016-04-17 9 views
0

Ich versuche, Code neu zu erstellen, um einen benutzerdefinierten Fortschrittsbalken zu erstellen - aber ich bin nicht in der Lage zu verstehen, wie Sie die endgültige Änderung vornehmen.So erstellen Sie ein Ereignis nach einem Ereignis in Appcelerator Titanium

Die aktuelle Implementierung macht den Fortschrittsbalken. Was ich möchte ist, dass der Fortschrittsbalken den Text aktualisiert und dann von selbst verschwindet. So

var win = Ti.UI.createWindow({ 
    backgroundColor: 'white', 
}); 

var label1 = Ti.UI.createLabel({ 
    text: 'Working on it...', 
    textAlign:'center', 
}); 

var track = Ti.UI.createView({ 
    width: "60%", height: "20%", 
    borderRadius:40, 
    backgroundColor: 'red' 
}); 
var progress = Ti.UI.createView({ 
    borderRadius:40, 
    left: 0, 
    width: 5, height: "100%", 
    backgroundColor : "green" 

}); 
track.add(progress); 
track.add(label1); 
win.add(track); 

win.addEventListener('open', function() { 
    progress.animate({ 
     width: "100%", 
     duration: 1000 
    }); 
}); 

win.open(); 

, wenn die endgültige grüne Fortschritt abgeschlossen ist - ich möchte

ein. ersetzen Sie das "daran arbeiten" durch "vollständig"
b. Nach 1000 ms - den gesamten Fortschrittsbalken verschwinden lassen.

Antwort

1

Keine Notwendigkeit Listener hinzufügen für eine vollständige Ereignis können Sie anonyme Funktion in belebter Methode selbst hinzufügen

zB

progress.animate({ 
    width: "100%", 
    duration: 1000 
},function(e){ 
    label1.text = "complete"; 
    win.remove(track); 
}); 
+0

genial !! Danke .. schnelle Frage - kann ich 500ms Wartezeit nach dem Label1 hinzufügen? – hypermails

+0

progress.animate ({ Breite: "100%", Dauer: 500 }, function (e) { Label1.Text = "complete"; \t \t setTimeout (function() { \t \t // Anforderung hier Methode \t \t win.remove (Spur); \t \t}, 5000); }); – hypermails

-1

können Sie verwenden complete Ereignis-Listener von Animation object

// create the animation 
    var animation = Ti.UI.createAnimation({ 
    width: "100%", 
    duration: 1000 
    }); 

    animation.addEventListener("complete", function onAnimationComplete(e){ 
    // YOUR CODE HERE 
    animation.removeEventListener("complete", onAnimationComplete); 
    }); 

progress.animate(animation); 

Mehr Details Titanium.UI.Animation

+0

HI - Ich bin mir nicht sicher, wie das funktioniert und fügt in den obigen Code ein. Entschuldigung - ich bin ein Neuling und ich bin mir nicht sicher. – hypermails