Mittels der startDrag() und stopDrag() Funktionalität lassen sich in Flash einfach Slider realisieren. Alle notwendigen Berechnungen werden damit von Flash bereitgestellt und ausgeführt. Der Entwickler muss nur den Startpunkt und der Bereich zum Draggen definieren.
Was ist aber nun, wenn der User einen Slider bedienen soll, der recht schmal ist? Hier kann es mit hoher Wahrscheinlichkeit passieren, dass der User während der Mausbewegung den Bereich des SWFs verlässt. Dann wird der DragEvent nicht weiter außgeführt, da der Slider den Fokus verliert. Das heißt der Slider bleibt stehen und auch der MouseUp-Event wird nicht mehr behandelt. Es erfolgt keine Reaktion mehr von Flash.
Eine Variante wäre es die Mausposition mit JavaScript auszulesen und über ExternalInterface an Flash zu übermitteln. Das funktioniert aber von Browser zu Browser unterschiedlich und ist einigen Beschränkungen unterworfen.
Also ist die Lösung wieder in Flash zu suchen und dese ist eigentlich recht einfach. Man fügt der Stage einen MOUSE_MOVE Listener hinzu und steuert hierüber die Drag and Drop Funktionalität. Das ist in diesem Punkt etwas aufwändiger als die Verwendung der oben beschriebenen Funktionen. Jedoch hat diese Methode einen entscheidenden Vorteil: Führt der User nun einen MOUSE_DOWN auf dem Slider aus und beginnt den Dragging-Prozess, wird der Fokus auf dem SWF gehalten. Das bedeutet der MOUSE_MOVE Event wird auch außerhalb des SWFs, sogar auf dem gesamten Monitor der Users, ausgeführt. Darüber kann nun der Dragging-Prozess fortgeführt werden, was die Nutzbarkeit für den User in großem Maße steigert. Zudem ist diese Variante Browser und OS-unabhängig, was die Entwicklungszeit wiederum reduziert.
