15 nützliche AS3-Snippets auf Snipplr.com

Wenn Sie mit Flash und Actionscript 3.0 arbeiten, kann es vorkommen, dass Sie Code von Projekt zu Projekt wiederholen. Durch das Erstellen einer eigenen Bibliothek von wiederverwendbaren Code-Snippets (beispielsweise auf snipplr.com) können Sie die Entwicklung beschleunigen. Schauen Sie sich diese 15 Ausschnitte an, die für die Integration in Ihre eigene Code-Bibliothek nützlich sein könnten.

Einige der folgenden Ausschnitte werden hier als Funktionen dargestellt, die einfach als solche verwendet werden können. Sie sollten zwar in der Lage sein, diese bei Bedarf in Ihrem eigenen Code abzulegen, aber ich empfehle Ihnen dringend, sich die Zeit zu nehmen, um sich den Code wirklich anzusehen, um ein tieferes Verständnis der Vorgänge zu erlangen. Ein Blick auf die Codeausschnitte ist eine großartige Möglichkeit, neue Techniken zu erlernen und Ihre Programmierkenntnisse insgesamt zu verbessern.


Vorstellung von Snipplr.com

Snipplr ist eine der jüngsten Übernahmen von Envato. Ein Code-Snippet-Repository, ein Social Hub und eine verdammt nützliche Ergänzung zum Envato-Toolbelt! Mit Snipplr können Sie alle häufig verwendeten Code-Snippets an einem Ort aufbewahren, auf den Sie von jedem Computer aus zugreifen können. Sie können Ihren Code mit anderen Besuchern teilen und deren Beiträge nutzen.

Sie können @snipplr auf Twitter verfolgen und sich über die neue Snipplr-Facebook-Seite auf dem Laufenden halten. Wenn Sie über eigene AS3-Snippets verfügen, die Sie freigeben möchten, fügen Sie sie zu Snipplr hinzu und belassen Sie die URL in den Kommentaren!

Marktplatzbenutzer? Verbinden Sie sich in Ihrem Marketplace-Social-Profil mit Ihrem Snipplr-Konto?

1. Randomisieren Sie ein Array

Um ein Array zufällig zu sortieren, durchlaufen wir die Länge des Arrays, entfernen ein zufällig ausgewähltes Objekt und fügen es an die Endposition des Arrays zurück. Stellen Sie sich vor, Sie haben ein Kartenspiel, bei dem Sie eine Karte nach dem Zufallsprinzip aus dem Stapel auswählen und sie an die Spitze des Stapels ziehen, um die Gesamtzahl der Karten im Stapel zu ermitteln.

Beachten Sie, dass die Splice-Methode ein Array zurückgibt, das das entfernte Objekt enthält, und nicht das Objekt selbst [0] nach dem Splice-Aufruf, um das enthaltene Objekt zu referenzieren.

Code-Snippet - Randomize für ein Array auf Snipplr

2. Positionieren Sie Anzeigeobjekte in einem Rasterlayout

Dies ist eine kurze Methode zum Positionieren von Anzeigeobjekten in einem Rasterlayout. Es verwendet den Modulo-Operator (%), um jedes Anzeigeobjekt entlang der x - Achse und der Fußboden Methode der Math-Klasse für die y-Position.

In diesem Beispiel werden 20 Instanzen eines benutzerdefinierten Anzeigeobjekts erstellt MyDisplayObject Positionieren jeder Instanz in einem Raster mit einer Breite von 5 Spalten. Wie Sie vielleicht schon erraten haben, repräsentieren die beiden 5 im Schnipsel die Anzahl der Spalten im Raster.

Code-Snippet - Positionieren von Anzeigeobjekten in einem Rasterlayout auf Snipplr

3. Entfernen Sie alle untergeordneten Elemente aus einem DisplayObjectContainer

DisplayObjectContainer, Eine übergeordnete Klasse der allgemeineren Containerklassen wie MovieClip und Sprite verfügt nicht über eine integrierte Methode, um alle untergeordneten Elemente sofort zu entfernen. Um alle untergeordneten Elemente zu entfernen, verwenden Sie einfach eine while-Schleife, um das untergeordnete Element zu entfernen, das den Index 0 im Stapel belegt, bis keine untergeordneten Elemente mehr vorhanden sind.

Code-Snippet - Alle untergeordneten Elemente aus einem DisplayObjectContainer auf Snipplr entfernen

4. Rufen Sie die URL der Seite ab, auf der SWF eingebettet ist

Um die vollständige URL zu erhalten, wie sie in der Adressleiste Ihres Webbrowsers angezeigt wird, verwenden wir AS3 Externe Schnittstelle Klasse. Beachten Sie, dass wir in diesem Beispiel ExternalInterface verwenden, um auf das DOM (Document Object Model) der HTML-Seite zuzugreifen, die unser Flash enthält.

Ein Nachteil von ExternalInterface ist, dass die SWF-Datei in die HTML-Seite eingebettet werden muss, wobei der Parameter "allowcriptaccess" entweder auf "sameDomain" oder "Always" festgelegt ist. Dies ist in Ordnung, wenn Sie die Einbettung einer SWF-Datei steuern. Leider ist dies jedoch nicht möglich, wenn die SWF-Datei auf Websites von Drittanbietern ausgeführt wird. Vergiss nicht hinzuzufügen importiere flash.external.ExternalInterface am oberen Rand Ihres Dokuments.

Code-Snippet - Ruft die URL der Seite ab, in der SWF in Snipplr eingebettet ist

Um auf die URL zuzugreifen, auf der sich die SWF-Datei befindet, können wir alternativ auf die URL-Eigenschaft von zugreifen LoaderInfo Objekt, das zur Wurzel unserer SWF gehört. Beachten Sie, dass dies der Speicherort der SWF-Datei ist und NICHT die HTML-Seite, in die sie eingebettet ist. Es ist wichtig, diese Unterscheidung zu treffen, da sowohl die SWF-Datei als auch HTML in verschiedenen Domänen liegen können.

Code-Snippet - Ruft die URL der Seite ab, auf der SWF eingebettet ist: Anhang zu Snipplr

Wenn Sie wissen, wo eine SWF-Datei ausgeführt wird, können Sie domänenspezifische Inhalte anzeigen. Im Zusammenhang mit einem Flash-Spiel kann es sein, dass es Bonus-Levels gibt, die nur verfügbar sind, wenn die SWF-Datei auf der Entwicklerseite ausgeführt wird oder Anzeigen angezeigt werden oder nicht.


5. Runden Sie die Positionswerte eines DisplayObjectContainer und seiner untergeordneten Objekte ab

Dies ist eine rekursive Funktion, die a benötigt DisplayObjectContainer (wie ein Sprite oder MovieClip) und rundet die X- und Y-Werte von ihm und seinen untergeordneten Elementen. Es ist rekursiv, da die Funktion sich selbst aufruft, wenn sie auf ein Kind trifft, das ebenfalls ein DisplayObjectContainer so werden auch ihre Kinder gerundet. Dadurch wird die gesamte Anzeigeliste unterhalb der übergebenen Liste angezeigt DisplayObjectContainer, seine Kinder, seine Kinder Kinder usw.

Der Zweck dieser Funktion ist es, sicherzustellen, dass das bestanden wird DisplayObjectContainer und alle seine Kinder sitzen auf ganzen Pixeln. Dies kann wichtig sein, wenn Sie mit Grafiken arbeiten, die nicht auf ganzen Pixeln liegen, da diese verschwommen wirken. Dies ist wahrscheinlich am deutlichsten, wenn es um Pixel-Schriftarten geht.

Code-Snippet - Runden Sie die Positionswerte eines DisplayObjectContainer und seiner untergeordneten Objekte auf Snipplr ab

Sie werden feststellen, dass die erste if -Anweisung überprüft, ob die Anweisung bestanden wurde DisplayObjectContainer ist NICHT die Bühne. Dies ist erforderlich, da Stage von erbt DisplayObjectContainer implementiert jedoch nicht die x- und y-Eigenschaften (zusammen mit mehreren anderen Eigenschaften). Dadurch können Sie die Bühne als Parameter dieser Funktion sicher übergeben, wodurch die Position aller Objekte in der Anzeigeliste umrundet wird.


6. Zufallszahl zwischen zwei Werten

Das Generieren einer Zufallszahl ist häufig hilfreich, wenn Sie Anwendungen in AS3 entwickeln (insbesondere bei der Entwicklung von Spielen). AS3 hat eine eingebaute Zufallszahlenmethode als Teil seiner Math-Klasse, die eine Zahl kleiner als 1 und größer als oder gleich 0 generiert. Wir können diese Funktion verwenden, um eine nützliche Funktion zum Erzeugen einer Zufallszahl zwischen zwei anderen Zahlen zu erstellen.

Code-Snippet - Zufallszahl zwischen zwei Werten auf Snipplr

7. Zufällig Boolean

Ähnlich wie Sie eine Zufallszahl benötigen, benötigen Sie möglicherweise auch einen zufälligen Booleschen Wert für die Verwendung in einem Ausdruck. Wieder benutzen wir die zufällig Methode der Math-Klasse, um einfach true zurückzugeben, wenn zufällig() erzeugt eine Zahl größer als oder gleich 0,5 oder falsch, wenn sie kleiner ist.

Code-Snippet - Random Boolean für Snipplr

8. Finde den Winkel zwischen zwei Punkten

Dies ist ein weiteres allgemeines Snippet, das von Spieleentwicklern zum Ermitteln des Winkels zwischen zwei Punkten auf einer Ebene verwendet wird. Diese Funktion hat vier Parameter. Das erste Paar besteht aus den x- und y-Werten Ihres ersten Punktes und das zweite Paar aus den x- und y-Werten Ihres zweiten Punktes.

Beachten Sie, dass diese Funktion den Winkel im Bogenmaß NICHT Grad angibt.

Code-Snippet - Finden Sie den Winkel zwischen zwei Punkten auf Snipplr

9. Konvertieren zwischen Radiant und Grad

Bei Gleichungen mit Winkeln handelt es sich häufig um Bogenmaß und nicht um Grad. Anzeigeobjekte in Flash verwenden Grad, wenn sie mit ihrer Rotationseigenschaft umgehen, sodass wir eine Möglichkeit zum Konvertieren zwischen den beiden benötigen. Diese Hilfsfunktionen sind hilfreich, um genau das zu erreichen. eine zum Konvertieren von Radiant in Grad und die anderen Grad in Radiant.

Code-Snippet - Konvertieren zwischen Radiant und Grad auf Snipplr

10. E-Mail-Bestätigung

Bei der Annahme von Eingaben eines Benutzers über ein Formular müssen Daten häufig überprüft werden, bevor sie an ein Back-End-Skript gesendet werden können. Dies gilt vor allem für E-Mail-Adressen, da diese häufig der einzige Kontaktpunkt zwischen Ihnen und dem Benutzer sind und wichtig sind, um richtig zu liegen. Die folgende Funktion verwendet einen regulären Ausdruck, um zu bestätigen, dass die E-Mail ein gültiges Format hat.

Code-Snippet - E-Mail-Überprüfung auf Snipplr

Wenn Sie nicht sicher sind, was ein regulärer Ausdruck ist, lesen Sie diesen Artikel auf Wikipedia sowie die AS3-Dokumentation für den Typ RegExp. Überprüfen Sie auch das Kontrollieren verschiedener Eingabedaten in Flash.


11. Raumentfernung

Auf dieselbe Weise, wie Sie häufig Daten, die von Flash gesendet werden, formatieren müssen, müssen Sie manchmal empfangene Daten formatieren. Diese Funktion nimmt eine Zeichenfolge und entfernt alle Leerzeichen. Hier verwenden wir die split-Methode der String-Klasse, um die Zeichenfolge in ein Array aufzuteilen, und rufen dann die join-Methode der Array-Klasse auf, um sie zurück in eine Zeichenfolge zu konvertieren. Dies ist nützlich, wenn Sie mit einer Zeichenfolge umgehen, von der Sie wissen, dass sie keine Leerzeichen wie E-Mail-Adresse, URL oder Telefonnummer enthält. Dies gibt eine neue Zeichenfolge zurück, wobei die Eingabezeichenfolge unverändert bleibt.

Code-Snippet - Space Removal auf Snipplr

Wenn Sie sich fragen, warum wir hier keinen regulären Ausdruck verwenden, liegt dies einfach daran, dass diese Methode schneller ausgeführt wird.


12. Slugify

Wikipedia beschreibt eine Schnecke als

Teil einer URL, die eine Seite anhand von lesbaren Schlüsselwörtern identifiziert

Ein Slug besteht normalerweise aus einigen Wörtern, wobei jedes Wort durch ein abgrenzendes Zeichen getrennt ist, normalerweise einen Unterstrich oder einen Bindestrich. Eine gegliederte Version der Zeichenfolge "10 Tipps für ein besseres Leben!" wäre "10 Tipps für ein besseres Leben".

Diese Funktion nimmt eine beliebige Zeichenfolge und konvertiert sie als Slug. Wir verwenden zwei reguläre Ausdrücke, um dies zu erreichen. Der erste wird verwendet, um alle Zeichen zu entfernen, die kein Wortzeichen, Leerzeichen oder Bindestrich sind. Der zweite ersetzt alle Leerzeichen durch einen einzelnen Bindestrich. Schließlich konvertieren wir die Zeichenfolge in Kleinbuchstaben. Dies gibt eine neue Zeichenfolge zurück, wobei die Eingabezeichenfolge unverändert bleibt.

Code-Snippet - Slugify auf Snipplr

Wenn Sie sich fragen, wo dies im Flash-Kontext verwendet werden kann, ist dies besonders bei SWFAddress zum Erstellen von SEO-freundlichen URLs für die diskreten Abschnitte Ihrer App hilfreich.


13. Streifen http: // oder https: // Aus einem String, optional entfernen www.

Diese Funktion nimmt eine Zeichenfolge und gibt eine Kopie mit allen Vorkommen von zurück http: // und https: // entfernt. Die Zeichenfolge "Bitte besuchen Sie http://example.com, um mehr zu erfahren" würde in "Bitte besuchen Sie example.com, um mehr zu erfahren". Im Allgemeinen ist dies kompakter, da http: // redundant ist, wenn Sie offensichtlich auf eine URL verweisen.

Optional kann diese Funktion auch das entfernen www Subdomain durch Übergabe von true als zweiten Parameter. Die Standardeinstellung ist false, da example.com und www.example.com theoretisch verschiedene Websites enthalten können.

Code-Snippet - Entfernen Sie http: // oder https: // aus einem String und entfernen Sie optional www. auf Snipplr

14. HTML-Markup entfernen

Wenn Sie zu irgendeinem Zeitpunkt Text aus einer externen Quelle laden, die unerwünschtes HTML-Markup enthält, verwenden Sie die folgende Funktion. Dabei werden mit einem regulären Ausdruck alle HTML-Tags aus der Eingabezeichenfolge entfernt. Die Saite "Klicken Sie hier, um mehr zu erfahren"würde einfach in" Klicken Sie hier, um mehr zu erfahren. "konvertiert werden. Dies gibt eine neue Zeichenfolge zurück, wobei die Eingabezeichenfolge unverändert bleibt.

Code-Snippet - HTML-Markup auf Snipplr entfernen

15. Entfernen Sie XML-Namespaces

Das Laden von XML, insbesondere aus Quellen von Drittanbietern, kann sich als problematisch erweisen, wenn XML Namespaces verwendet. Dieses Snippet nimmt ein XML-Objekt und entfernt alle Namespace-Deklarationen und Präfixe. Dieses Snippet lässt die Eingabe-XML unverändert und gibt ein neues XML-Objekt zurück.

Code-Snippet - XML-Namespaces auf Snipplr entfernen

Es ist erwähnenswert, dass Namespaces aus einem bestimmten Grund existieren und das Entfernen von ihnen Probleme verursachen kann. Dies ist normalerweise nur ein Problem, wenn mehrere XML-Dateien aus verschiedenen Quellen zusammengefügt werden. Ich persönlich habe das noch nie erlebt, ist es aber trotzdem wert, vorsichtig zu sein.


Fazit

Ich hoffe, Sie fanden diese 15 Ausschnitte hilfreich. Das Schreiben von funktionellem, wiederverwendbarem Code kann eine gute Angewohnheit sein. Ich persönlich glaube, dass der Blick auf die Code-Snippets anderer Benutzer eine großartige Möglichkeit ist, Tipps und Tricks zu erlernen, an die Sie bisher noch nicht gedacht haben.

Wenn Sie sich weitere Snippets ansehen möchten, besuchen Sie den Abschnitt Actionscript von Snipplr. Wenn Sie eigene AS3-Snippets haben, die Sie freigeben möchten, fügen Sie sie zu Snipplr hinzu und lassen Sie die URL in den Kommentaren!

Wenn Ihnen dieser Beitrag gefallen hat, besuchen Sie bitte meine Website unter ahrooga.com für weitere Flash-Artikel.