Ich verwende einen Schieberegler, um historische Daten in meine Visualisierungsanwendung zu laden. Der Schieberegler repräsentiert eine Zeitperiode relativ zu jetzt. So können Sie zeitlich rückwärts gleiten und Daten laden.Funktionsaufruf bei Slider Release?
Derzeit werden die Daten immer geladen, wenn sich der Wert des Sliders ändert, was bedeutet, wenn ich vor 5 Stunden sehen möchte? Ich habe alles laden zwischendurch ...
Der Code verwende ich unten aufgeführt ist:
history = LoadData.Historical();
data = GameObject.Find("DataManager").GetComponent<LoadData>();
slider.maxValue = history.Length - 1;
slider.value = slider.maxValue;
slider.onValueChanged.AddListener(delegate { ValueChange(); });
wo Valuechange() etwa wie folgt enthält:
LoadData.Candles(data.bounds, history[(int)slider.value]);
Gibt es eine Möglichkeit dass ich die Daten nur laden kann, wenn der Wert geändert wurde UND wenn ich den Schieber nicht halte?
Hinweis: Ich habe eine Coroutine-Methode versucht, um dies zu erreichen, aber es endete nur in Tränen und Endlosschleifen. :/
Edit:
ich diese Lösung ausgearbeitet, aber es scheint OnMouseUp nicht direkt auf Sliders funktioniert ... Irgendwelche Ideen?
void Start()
{
slider = gameObject.GetComponent<Slider>();
history = LoadData.Historical();
data = GameObject.Find("DataManager").GetComponent<LoadData>();
slider.maxValue = history.Length - 1;
slider.value = slider.maxValue;
slider.onValueChanged.AddListener(delegate { ValueChange(); });
LoadData.Candles(data.bounds, history[(int)slider.maxValue]);
valueChanged = false;
}
void OnMouseUp()
{
Debug.Log("UP");
if (valueChanged)
{
LoadData.DestroyCandles();
LoadData.Candles(data.bounds, history[(int)slider.value]);
}
valueChanged = false;
}
void ValueChange()
{
valueChanged = true;
Debug.Log(valueChanged);
}
Edit2:
Sie wollen nur Sachen passieren, wenn Sie den Schieberegler bewegen und dann loslassen? Nicht nur wenn du es bewegst? – Programmer
BTW warum verwenden Sie einen komplizierten "AddListener" Anruf? Ziehe einfach ** die Funktion auf den Schieberegler im Editor **. – Fattie
Nun, das Freigeben des Schiebers bedeutet das Loslassen der Maustaste ............ – yes