Verwenden von nativen Multitouch-Gesten in ActionScript 3.0

In diesem Lernprogramm erfahren Sie, wie Sie native Multitouch-Gesten zur Verwendung in Ihren Anwendungen implementieren. Weiter lesen!


Endergebnisvorschau

Werfen wir einen Blick auf das Endergebnis, auf das wir hinarbeiten:

Hinweis: Dieses Beispiel funktioniert nur auf Multitouch-Geräten (Tablets, Smartphones, Touchscreen-Computer und Multitouch-Trackpads unter AIR)..

Hinweis für Android-Benutzer: Multitouch wird nicht in der SWF-Datei ausgeführt, die in einer HTML-Seite in einem Android-Browser eingebettet ist. Der Source-Download enthält jedoch eine APK, die Sie zum Auschecken verwenden können. (Bitte beachten Sie, dass die APK nur zum Zweck einer schnellen Demonstration der Gesten selbst ist und nicht ganz korrekt angezeigt wird.)

Sie können zum Zoomen zusammendrücken, drehen, drehen und streichen, um das Bild zu ändern. Schauen Sie sich die Video-Demo an, wenn Sie die Vorschau auf Ihrem Gerät nicht testen können:


Schritt 1: Kurzübersicht

Wir verwenden die in Flash Player integrierte native Multitouch-Unterstützung, um eine gestenbasierte Bildanwendung zu erstellen.


Schritt 2: Flash-Dokumenteinstellungen

Starten Sie Flash und erstellen Sie ein neues Dokument. Stellen Sie die Bühnengröße auf 600x300px und die Bildrate auf 24fps ein.


Schritt 3: Schnittstelle

Die Oberfläche wird sehr einfach sein, nur ein Bild in der Bühne, das dann durch die Gesten geändert wird.


Schritt 4: Holen Sie sich einige Bilder

Wir werden einige Bilder benötigen, um unsere Anwendung zu testen, aus Ihrer persönlichen Sammlung auszuwählen oder einige zum Testen herunterzuladen.

Dies sind die von Flickr erhaltenen Bilder der Demo, die alle eine Creative Commons-Lizenz besitzen.

Gras 01 von 100kr

tiefe Auswirkungen auf die Planetenfarbe durch Spettacolopuro

Yosemite: Herbstfarben von Tibchris

Flower von Antonio Manchado


Schritt 5: Für ActionScript exportieren

Wandeln Sie eines der Bilder in einen Movieclip um, und fügen Sie die restlichen Bilder diesem Clip in verschiedenen Frames hinzu. Benennen Sie den Clip SlideItem und markieren Sie das Export für ActionScript Box.


Schritt 6: TweenNano

Wir verwenden eine andere Tween-Engine als die in Flash enthaltene Standardeinstellung. Dies erhöht die Leistung und ist einfacher zu verwenden.

Sie können TweenNano von der offiziellen Website herunterladen.


Schritt 7: Neue ActionScript-Klasse

Erstellen Sie eine neue (Cmd + N) ActionScript 3.0-Klasse, und speichern Sie sie als Main.as in Ihrem Klassenordner.


Schritt 8: Klassenstruktur

Erstellen Sie Ihre grundlegende Klassenstruktur, um mit dem Schreiben Ihres Codes zu beginnen.

 package import flash.display.Sprite; public class Main erweitert Sprite öffentliche Funktion Main (): void // constructor code

Schritt 9: Erforderliche Klassen

Dies sind die Klassen, die wir importieren müssen, damit unsere Klasse funktionieren kann einführen Die Direktive macht extern definierte Klassen und Pakete für Ihren Code verfügbar.

 import flash.display.Sprite; import flash.display.MovieClip; import flash.ui.Multitouch; import flash.ui.MultitouchInputMode; import flash.events.TransformGestureEvent; import com.greensock.TweenNano; import com.greensock.easing.Strong;

Schritt 10: Variablen

Diese Variablen verwenden wir. Lesen Sie die Kommentare im Code, um mehr darüber zu erfahren.

 private var slideItem: SlideItem; // Das Objekt, auf das sich die Gesten auswirken. Private var tempContainer: Sprite; // Ein leeres Sprite, in dem das Folienelement gespeichert wird

Schritt 11: Konstruktor

Der Konstruktor ist eine Funktion, die ausgeführt wird, wenn ein Objekt aus einer Klasse erstellt wird. Dieser Code wird als erster ausgeführt, wenn Sie eine Instanz eines Objekts erstellen oder die Dokumentklasse verwendet.

Es führt die notwendigen Aktionen aus, um die Anwendung zu starten.

 öffentliche abschließende Funktion Main (): void // Code

Schritt 12: Aktivieren Sie die Gesteneingabe

Diese Zeile weist den Flash Player an, den Multitouch-Modus für die Handhabung von Berührungs- und Gestenereignissen zu identifizieren.

 Multitouch.inputMode = MultitouchInputMode.GESTURE;

Weitere Informationen hierzu finden Sie unter help.adobe.com.


Schritt 13: Objekt verschieben

Lassen Sie uns die Bilder instanziieren, die auf die Gestenereignisse reagieren.

 slideItem = new SlideItem (); / * Verhindert, dass sich das Bild ändert * / slideItem.stop (); / * Bild zentrieren * / slideItem.x = stage.stageWidth * 0.5; slideItem.y = stage.stageHeight * 0.5; addChild (slideItem); Listener ('add', slideItem); // siehe nächsten Schritt

Schritt 14: Listener hinzufügen

Diese Funktion fügt die Gestenlistener hinzu oder entfernt sie je nach dem angegebenen Parameter.

 Listener für private Endfunktionen (action: String, target: Sprite): void if (action == 'add') target.addEventListener (TransformGestureEvent.GESTURE_ZOOM, onZoom); target.addEventListener (TransformGestureEvent.GESTURE_ROTATE, onRotate); target.addEventListener (TransformGestureEvent.GESTURE_PAN, onPan); target.addEventListener (TransformGestureEvent.GESTURE_SWIPE, onSwipe);  else target.removeEventListener (TransformGestureEvent.GESTURE_ZOOM, onZoom); target.removeEventListener (TransformGestureEvent.GESTURE_ROTATE, onRotate); target.removeEventListener (TransformGestureEvent.GESTURE_PAN, onPan); target.removeEventListener (TransformGestureEvent.GESTURE_SWIPE, onSwipe); 

Dies bedeutet, dass die Zuhörer() Die im vorherigen Schritt aufgerufene Funktion fügt dem verschiebbaren Bild Ereignis-Listener hinzu, damit das Gleiten nach Zoomen, Schwenken, Drehen und Wischen erfolgt.


Schritt 15: Prise zum Zoomen

Diese Funktion reagiert auf das Bekannte Prise Geste. Das Bild wird vergrößert und verkleinert.

 private letzte Funktion onZoom (e: TransformGestureEvent): void / * Verwenden Sie die Ereignisdaten, um das Zielbild zu skalieren. * / e.target.scaleX * = e.scaleX; e.target.scaleY * = e.scaleY; 

Schritt 16: Zum Drehen drehen

Die Rotation wird von dieser Funktion ausgeführt, an die zwei Finger gewöhnt sind Dreh das bild auf der bühne.

 private letzte Funktion onRotate (e: TransformGestureEvent): void / * Verwenden Sie die Ereignisdaten, um das Zielbild zu drehen. * / e.target.rotation + = e.rotation; 

Schritt 17: Schieben Sie auf Pan

Mit der Pan-Funktion können Sie das Bild verschieben, um Teile zu sehen, die sich außerhalb der Bühne befinden.

 private letzte Funktion onPan (e: TransformGestureEvent): void e.target.x + = e.offsetX; e.target.y + = e.offsetY; 

Schritt 18: Zum Wechseln wischen

Diese Funktion ist aufgrund der vier verfügbaren Wischrichtungen etwas größer. Die Geste ähnelt der des vorherigen Schritts, ist jedoch fester. Statt das Bild einfach nur zu verschieben, wird es für ein anderes Bild ausgetauscht.

Er prüft zuerst, ob sich ein vorheriger Gegenstand auf der Bühne befindet, und speichert ihn in einem Container, um ihn zu wechseln und später wieder entfernen zu können. Dann ist die Versatz Diese Eigenschaft wird gelesen, um die Richtung des Streichen zu bestimmen und die entsprechende Animation und das entsprechende Bild anzuzeigen.

 private letzte Funktion onSwipe (e: TransformGestureEvent): void / * Prüfen Sie, ob das Bild auf der Bühne steht * / if (slideItem! = null) tempContainer = new Sprite (); tempContainer.addChild (slideItem); addChild (tempContainer);  / * Bilder ändern * / if (e.offsetX == 1) // right slideItem = new SlideItem (); slideItem.gotoAndStop (1); slideItem.x = -slideItem.width; slideItem.y = stage.stageHeight * 0.5; Listener ('add', slideItem); addChild (slideItem); TweenNano.to (tempContainer, 0.5, x: stage.stageWidth, onComplete: removeLast); TweenNano.to (slideItem, 0.5, x: stage.stageWidth * 0,5);  if (e.offsetX == -1) // left slideItem = new SlideItem (); slideItem.gotoAndStop (2); slideItem.x = stage.stageWidth + slideItem.width; slideItem.y = stage.stageHeight * 0.5; Listener ('add', slideItem); addChild (slideItem); TweenNano.to (tempContainer, 0.5, x: -slideItem.width, onComplete: removeLast); TweenNano.to (slideItem, 0.5, x: stage.stageWidth * 0,5);  if (e.offsetY == -1) // up slideItem = new SlideItem (); slideItem.gotoAndStop (3); slideItem.x = stage.stageWidth * 0.5; slideItem.y = stage.stageHeight + slideItem.height; Listener ('add', slideItem); addChild (slideItem); TweenNano.to (tempContainer, 0.5, y: -slideItem.height, onComplete: removeLast); TweenNano.to (slideItem, 0.5, y: stage.stageHeight * 0,5);  if (e.offsetY == 1) // down slideItem = new SlideItem (); slideItem.gotoAndStop (4); slideItem.x = stage.stageWidth * 0.5; slideItem.y = -slideItem.height; Listener ('add', slideItem); addChild (slideItem); TweenNano.to (tempContainer, 0.5, y: slideItem.height, onComplete: removeLast); TweenNano.to (slideItem, 0.5, y: stage.stageHeight * 0,5); 

Schritt 19: Letztes Objekt entfernen

Wenn die Animation beendet ist, wird das Objekt außerhalb der Bühne zerstört, um Speicherplatz zu sparen.

 private letzte Funktion removeLast (): void listeners ('remove', tempContainer.getChildAt (0) as Sprite); removeChild (tempContainer); tempContainer = null; 

Schritt 20: Legen Sie die Hauptklasse fest

In diesem Lernprogramm verwenden wir die Dokumentenklasse. Wenn Sie nicht wissen, wie Sie sie verwenden sollen oder ein wenig verwirrt sind, lesen Sie bitte diesen Quick Tip.


Fazit

Gesten fügen ein schönes hinzu berühren und und bieten eine großartige Interaktion in Ihrer Anwendung, verwenden Sie sie!

Vielen Dank für das Lesen dieses Tutorials. Ich hoffe, Sie fanden es nützlich!