Kategorie 'Flash'


Actionscript 3.0: public, protected, private und interne

Mit AS3 haben neue "Anweisungen" auf Eigenschaften und Methoden (öffentlich oder privat) zu definieren eingeführt. si comportava in AS2 come ora si comporta protected , in AS3 private è davvero “privata” !) proprio a causa dell'introduzione di una sintassi più OO rispetto alle precedenti versioni. Einige, wie private - bereits in AS2 - verändertes Verhalten ( private verhalten in AS2 verhält sich wie jetzt protected in AS3 private ist wirklich "privat"!) nur wegen der Einführung einer OO-Syntax als in früheren Versionen . Bessere Übersicht, dann aus dem "öffentlichen" allenfalls "private":

  • Öffentlichkeit
    jeder kann darauf zugreifen
  • geschützt
    Sie können auf die übergeordnete Klasse und Unterklassen
  • Privat
    nur die Klasse, die definiert
  • Intern
    nur innerhalb des gleichen Pakets

Fortsetzung ...

Sehr kurze Auszug: cutString ()

Bequem und schnell! Mit den Werten Number von Actionscript, zum Beispiel, ist eine wesentliche Hilfe für die "print" auf dem Bildschirm.

1
2
3
4
5
6
7
/ *
** @ Name: cutString ()
** @ Beschreibung: Schneiden Sie einen String für n Zeichen
* /
cutString ( s : String , v : uint = 4 ) : String { cutString geschützten Funktion (s: String , v: uint = 4): String {
s . length > v ) ? s . substr ( 0 , v ) : s ) ; return ((s. Länge> v) s. substr (0, v):? s);
}

Oft benutze ich es auch in sub() und _s()

Fortsetzung ...

Flash CS3: Erstellen Sie eine Reflexwirkung auf jeden MovieClip

Unter Ausnutzung der eine bemerkenswerte Eigenschaft von Actionscript 3.0 (siehe ActionScript 3.0, die alle mit dem Operator new ) habe ich eine Klasse ReflexMe in der Lage, einen Effekt "Reflexion" auf jedem MovieClip in der Bibliothek zu erzeugen.

Loading Flash ...

Die Quelle ist Teil des Pakets undolibrary - googlecode dieser - aber wenn Sie möchten, können Sie die einzelnen Datei-Download ReflexMe.as .

Fortsetzung ...

Auswirkungen auf die Bitmap mit perlinNoise ()

Die Klasse BitmapData können Sie ganz einfach mit Effekten nützlich für verschiedene Zwecke. Wir haben bereits gesehen, wie man ein "Nebel-TV" mit ein paar Zeilen Code erstellen ( Flash CS3 zu Nebeleffekt TV in 1 Sekunde zu schaffen ). Jetzt werden wir mit einem anderen Effekt "spektakulär", die, wie wir später sehen werden, ermöglicht die Erstellung von interessanten visuellen Effekten, wie im Beispiel unten gezeigt befassen: die Parameter variiert, um die unterschiedlichen Effekte zu beobachten, Klicken mit der Maus auf das Bild generiert Dieser bewegt werden kann.

Loading Flash ...

Bei dieser Gelegenheit habe ich auch hinzugefügt eine neue einfache Komponente (Check) in Undolibrary ! So aktualisieren Sie Ihre SVN-Repository. Die Quelle ist hier erhältlich: MapEffect.zip

Fortsetzung ...

Das arithmetische Modul

Das "Modul" ist eine der aritmentiche auf fast allen Programmiersprachen (Ich habe es das erste Mal mit dem Grundgesetz Commodore 64) . Kann als einfache Bedienerführung angezeigt, wie im Fall von ActionScript-oder JavaScript, die beide den Charakter "Prozent" (% b), oder als eine Methode oder eine Anweisung. Für Entwickler kann nützlich sein, in Zusammenhängen offenbar anders. Gskinner sprach kürzlich, zeigt einige Klassiker, aber interessante Beispiele.

Einfach ausgedrückt, gibt die Operation zwei Zahlen bilden den Rest ihrer Division. Der Vollständigkeit halber sagen wir, dass der Betrieb des Moduls ein sehr umfangreiches Thema, das ich in diskutiert wird die RSA-Verschlüsselung ! Dieses Mal jedoch nicht von Codes oder Verschlüsselungen zu sprechen, aber nützliche Dinge viel einfacher.

Teilbar durch den Wechsel ...

Der erste Einsatz wir den Betrieb des Moduls machen können, ist zu prüfen, ob eine Zahl teilbar durch eine Zahl b! Wenn die risultatto von a% b (% I wird hier die Notation, um den Betrieb des Moduls angeben) Null ist, ist ein Vielfaches von b. Ich erinnere mich, als ich mit einem Problem zu tun, wie ich nicht wusste, den Betrieb des Moduls hatte. Auf dem Commodore 64 musste ich wissen, ob eine Zahl wurde durch 2 teilbar. Zu der Zeit habe ich diese Syntax (ich fand den Code origionale - Jahr 1983):

1
2
3
10 INPUT A
12 B = A / 2: IF B = INT (B) THEN PRINT "OK DIE ZAHL" A "UND" EQUAL ": GOTO 10
14 Drucken "die Zahl" A "UND" ODD ": GOTO 10

Die BASIC des Commodore 64, jedoch nicht über die Operation Modul - zumindest erinnere ich mich!

Grundsätzlich genau das, was ich tat, das von seiner Natur macht die Bedienung des Moduls: 2 überprüft, dass die Teilung hatte keine Ruhe, in diesem Fall prüfen, ob das Ergebnis nicht enthalten decimal ( IF B = INT(B) )! Wenn der Division ist gleich seine volle, dann ist die Zahl ist gleich!

Wenn a unseren Wert geprüft werden müssen, kann das gleiche Ergebnis durch gelöst werden:

1
2
3
a % 2 ) == 0 ) { if ((in% 2) == 0) {
/ / Auch
}

Oder, für 3, nach:

1
2
3
a % 3 ) == 0 ) { if ((in% 3) == 0) {
/ / Durch 3 teilbar
}

Kleine Anmerkung: Dank der Strecke, wenn Sie mit den Potenzen von 2 annche es einen schnelleren Weg, um zu überprüfen, ob eine Zahl gerade oder ungerade ist zu tun haben. In binärer Schreibweise, in der Tat sind die Zahlen alle gleich auf das erste Bit Null! So mit den logischen Operatoren können Sie wissen, ob eine Zahl gerade oder ungerade einfach "Protestant" ist das erste Bit:

1
2
3
! ( a & 1 ) ) { if ((a & 1)) {
/ / Auch
}

In der Versammlung, zum Beispiel, das ist Brot und Butter! Es ist sogar noch unmittelbarer und einfacher (der Motorola 68020, hatte zum Beispiel eine Anweisung BTST , dass "geprüft" nur ein einziges Bit ;) ). – moltiplicazione bit a bit) tra il nostro valore a e 1 (chiamato maschera ). Die logischen Operationen (AND, OR, NOT, XOR, etc ...), in der Tat, sind dafür bekannt, schneller in Bezug auf ausführen und dann "Time Machine"! (a & 1) führt die logische Operation der AND ( & - Multiplikation bitweise) zwischen unseren Wert a , und 1 (Maske genannt). Wenn a = 7 (00000111), zum Beispiel:

1
2
3
00000111 UND
= 00000001
00000001; ungeraden

Wenn a = 8:

1
2
3
00001000 UND
= 00000001
00000000, gleich

Nicht nur können wir prüfen die Zahlen, das heißt, mit dem ersten Bit auf 0, und somit durch 2 teilbar, kann aber auch auftreten, wenn eine Zahl durch 4 teilbar, 8, 16, 32, 64, etc ... mit den entsprechenden Formularen:

1
2
3
! ( a & 3 ) ) { if ((a & 3)) {
/ / Durch 4 teilbar (Maske = 00000011 = 3), da 4 00000100)
}

Wenn die letzten beiden Bits auf Null gesetzt werden die Zahl durch 4 teilbar ist! Wenn die letzten 3 Bits (Maske 00000111) auf Null ist die Zahl durch 8 teilbar ist! Und so weiter :)

Gskinner zeigt die Verwendung des Moduls in Fällen von alternativen Generierung von Werten. Ein klassisches Beispiel ist der Hintergrund eine Liste der Elemente ändern:. Eine weiße und eine graue Gskinner bietet:

1
2
3
4
5
rowIndex % 2 == 0 ) { if (rowIndex% 2 == 0) {
rowColor = 0xFFFFFF;
{ Else {}
rowColor = 0xCCCCCC;
}

Zunächst können Sie den obigen Code mit einer einzigen Code-Zeile gelöst werden:

1
2 == 0 ) ? 0xFFFFFF : 0xCCCCCC ; rowColor = (rowIndex% 2 == 0) 0xFFFFFF: 0xCCCCCC;?

Außerdem in diesem speziellen Fall möchte ich eigentlich vermeiden führen Sie eine "schwere" Form der Bedienung. Diese besondere Situation ist oft in einer Schleife engagiert, so wäre es "gut" nicht zu vergeuden Taktzyklen der Maschine. In diesen Fällen Ich mag die sauberste (und logische) Lösung:

1
fooIndex == false ) ) ? 0xFFFFFF : 0xCCCCCC ; rowColor = (fooIndex = (fooIndex == false)) 0xFFFFFF: 0xCCCCCC;

o false , a seconda di come vogliamo impostare inizialmente il nostro colore sfondo. Wo fooIndex precedentemete ist ein Wert auf true oder false , je nachdem, wie wir anfangs setzen unsere Hintergrundfarbe. Dieser Ansatz ist subtiler, weniger direkt auf den ersten, aber schneller, weil es logisch, true / false führt. la condizione (fooIndex == false) sarà falsa e di conseguenza fooIndex verrà impostato da true a false. Wenn fooIndex wahr ist, wenn die Anweisung ausgeführt wird (fooIndex = (fooIndex == false) ) die Bedingung (fooIndex == false) ist falsch und folglich fooIndex wird von true auf false gesetzt werden. verrà impostato da false a true! Das zweite Mal, aber die Bedingung (fooIndex == false) ist wahr, und dann fooIndex ist von false auf true gesetzt! Und so weiter ...

Wiederholungen: um das Verhalten beobachten

Die Finite-Arithmetik, welche die Grundlage für das Funktionieren der Betrieb des Moduls ist, ist es oft auch als Uhr Arithmetik bezeichnet. Ein klassischer Zeitmesser verfügt über ein Zifferblatt mit den Händen in 12 Stunden (12 plus 12 Tag-Nacht!) Unterteilt, die ausreicht, um eine der 24 Stunden am Tag zeigen. Um 08:00 Wenn ich Sie fragte, was Zeit Ihre Uhr wird zwischen 18 Stunden Partitur, wäre deine Antwort 8 +18 = 26 sein! Aber die 02:00 Uhr Nacht! Unwillkürlich und ohne es zu wissen vielleicht, Operationen conitnuamente Form, wenn wir mit den Zeiten zu tun haben.

In Italien sind wir auf das System 24 Stunden (oder gemischt) verwendet. Wenn wir bis 16:00 Uhr zeigen wollen diese Stunde als in anderen Ländern als 16.00 Uhr angegeben. Wer nutzt die postfix am / pm, von denen ofa Nachtstunden zu unterscheiden, noch öfter führt der Betrieb des Moduls, Modul 12 in diesem Fall! Wir Italiener und andere, wobei jedoch daran gewöhnt, die 24 Stunden halten, Operationen mit Formblatt 24!

Als ich 11 in den Morgen (11:00 für alle) bin und denke, "in 5 Stunden", die Italiener 5 +11 reagieren = 16 (vier Uhr nachmittags), könnte ein Fremder auch Antwort 5 +11 = 4.00. Seit 5 + 11 klassische Arithmetik, ist offensichtlich 16, wie die Fremden 04.00 Uhr treffen? Er hat einfach laufen das Modul 12 auf das Ergebnis: 5 + 11 = 16 mod 12 = 4. Es ist nicht notwendig, dass Sie einen Taschenrechner zu ergreifen, um die Genauigkeit der Berechnung zu überprüfen, aber diese Schritte sind ein wenig 'all, zeigte ein Zifferblatt einer Uhr und legen Sie die Hände auf die 11 geistig, dann fügen Sie - immer optisch - 5 Stunden, wie von Geisterhand Sie tatsächlich über 4! Deswegen nennt man sie die vier am Nachmittag 16 :)

In Italien, statt, verwenden wir ein Formblatt 24, in der Tat: 11 +5 = 16 mod 24 = 16. Wenn ich bis 23:00 Uhr, 5 Stunden nach dem 28:00 nicht sein, weil 28 modulo 12 = 4! 122514884225 Formblatt 24 = 17! Was passiert ist, dass das wichtigste Ergebnis des Formblatt 24 nie mehr als 24. Aber das Interessanteste daran ist, dass die Zahlen beliebig wiederholt werden:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
1% 24 = 1
2% 24 = 2
3% 24 = 3
...
22% 24 = 22
23% 24 = 23
24% 24 = 0
25% 24 = 1
26% 24 = 2
27% 24 = 3
...
48% 24 = 0
49% 24 = 1
50% 24 = 2
51% 24 = 3
...

Diese Wiederholung ist eine entwaffnende Leichtigkeit. Stellen Sie sich vor, zum Beispiel, sollten sie ein Objekt, eine MovieClip, ähnlich einem Schachbrett, in vier Spalten. Erstellen Sie ein MovieClip quandrato, 55 × 55 Pixel und die Fenster Eigenschaften esportiamolo als Simbolo . Der folgende Code wird vier Säulen unserer MovieClip und "Kopf" mit dem Betrieb des Moduls:

1
2
3
4
5
6
7
Number = 4 ; var col: Anzahl = 4;
var i= 0 ; i < 12 ; i ++ ) { for (var i = 0; i <12; i + +) {
Sprite = new Simbolo ( ) ; var s: Sprite = new Symbol ();
s ) ; addChild (s);
= ( i % col ) * 60 ; s. = x (mit i%) * 60;
= Math . floor ( i / col ) * 60 ; s. y = Math . floor (i / col) * 60;
}

cresce in modo indefinito. Wie man aus dem Code zu sehen, die Variable i Zyklus for wachsende unbestimmte Zeit. Aber die Koordinaten x unserer MovieClip nie einen bestimmten Wert überschreitet, und wird endlos wiederholt! Hier ist ein konkretes Beispiel:

Loading Flash ...

Durch die beiden Knöpfe können Sie variieren die Anzahl der Spalten (die Form) und die Gesamtzahl der Elemente, mit dem Algorithmus vor.

Fortsetzung ...

Papervision3D: BasicView

Papervision3D 2,0 (GreatWhite) ist noch in der Entwicklung und es gibt viele Funktionen, die hinzugefügt fast wöchentlich werden. Im April, auf der Entwickler-Blog (eingeweiht wurde http://dev.papervision3d.org/ ), jedoch ist Version 2.0, noch nicht offiziell ist oft schwer, die wahre Potenzial snatch freigegeben. Eine der jüngsten Innovationen eingeführt, jedoch wird das neue Objekt BasicView einem Umfeld, das 3D mit sehr wenigen Zeilen Code erstellt. Es ist genug, um dieses Objekt zu erstellen, um die Szene haben, Viewport und die Kamera auf einen Schlag.

Fortsetzung ...

undolibrary: ActionScript 3.0 Bibliothek auf Google Code

Ich öffnete ein Projekt auf Google Code : undolibrary. Im Moment enthält diese Bibliothek nur eine Komponente (Knob - Knopf) mit Actionscript 3.0 verwendet werden. Ich erwähne das, weil diese Komponente ist eine Voraussetzung für eine Reihe von Tutorials / sources in Flash, die ich wollte zur Verfügung zu stellen.

Loading Flash ...

Google Code

Zunächst einmal hatte ich das Konzept der Google Code für diejenigen, die fremden wurden. Google Code ist ein kostenloser Service von Google, um Austausch von Code zur Verfügung gestellt, sondern vor allem von und gemeinsam mit einer Versionierung System (Subversion) teilen und Wikis sinnvoll Entwicklungsteams (in erster Linie Open Source) oder auf einzelne Programmierer. Auf der Google Code Seite umfasst:

  • Der Zugriff auf Source-Projekte, offene Google die eigene (wie Google Maps API, Google Translate API, etc ...)
  • Das Hosting auf eigenen Projekt zu öffnen

Sie können für andere Projekte zu suchen, mit einem speziell entwickelten Suchmaschine. Viele Entwicklungsprojekte unterstützt, die aus Teams, die in entfernten geografischen Gebieten vorgenommen werden, die Vorteile dieser Austausch zusammen zu arbeiten, um ein gut etabliertes System Versionierung (checkout / checkin nicht überschneiden oder supprot zu Ast zu schaffen - Spin-off-Projekte) unterstützt . Libraries und Tools wie Papervision3D , Tweener oder AS3corelib , zum Beispiel, liegen direkt am Google Code entfernt genießt einen Seite eine Vielzahl von anderen Entwicklungs-und den öffentlichen Zugang zu der Quelle und Dokumentation herunterladen.
Wichtiger Punkt ist also die Möglichkeit - ein Projekt öffnen - Zugang zu und betrachten gesetzt. Wenn Sie Ihre Arbeit zu schützen oder es komplett privat und nicht öffentlich sein soll.

Fortsetzung ...

Erstellen von benutzerdefinierten Ereignissen in ActionScript 3.0

Erstellen von benutzerdefinierten Ereignissen in ActionScript 3.0 ist einfach. Benutzen Sie sie, dann können Sie die Methode verwenden addEventListener() und machen unser Objekt der alle Standards. ) BottoneEvent . Wenn wir eine Klasse, wie geschaffen Bottone , das ist richtig, mit einem oder mehreren Ereignissen durch eine spezielle Klasse (abgeleitet von der Klasse verknüpfen Event ) BottoneEvent . Wir könnten all die Ereignisse, die den Betrieb unseres Themas beeinflussen: dem Klick mit der Maus über, oder jede andere Veranstaltung! Neben der Festlegung unserer persönlichen Basis. Das Skelett - generisch - ein benutzerdefiniertes Ereignis-Klasse ist:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package {
/ *
** @ Name: BottoneEvent.as
** @ Beschreibung: Klasse von Event abgeleitet, um ihre eigene Veranstaltung zu verwalten
** @ Author: undo = =
** @ Web: http://www.undolog.com
** @ Email: @ g.fazioli undolog.com
* /
.*; Import flash.events .*;

BottoneEvent extends Event { BottoneEvent erstreckt public class Termin {

String = 'pluto' ; // codice qualsiasi, anche 'mioevento' in minuscolo public static const MIOEVENTO: String = 'bar', / / jeder Code, auch "mioevento 'in Kleinschreibung

Valore : Number = NaN ; public var Wert: Anzahl = NaN;
/ *
** @ Name: BottoneEvent
** @ Beschreibung: Konstruktor
* /

type , bubbles , cancelable ) ; super (Art, Blasen, cancelable);
Value = v ; . Dieser Wert = v;
}

/ *
** @ Override
* /
clone ( ) : Event { override public function clone (): Event- {
this . type , this . Value , this . bubbles , this . cancelable ) ; KnobEvent return new (this. Typ, dieser Wert ist, diese Bläschen, das abgebrochen werden kann...);
}
}
}

Fortsetzung ...

FIVe3D: Effekte eines Würfels! Waiting for Flash 10

Wahrscheinlich, wenn es heraus kommt die neue Version von Adobe Flash, 3D-Bibliotheken, um "low level" als FIVe3D wird am Ende schlecht! Doch bevor die "Trash", hier ist ein Beispiel dafür, was erreicht werden kann (mit der neuesten Version 2.1) werden:

Loading Flash ...

Der Code der Demo oben ist recht artikulieren, so dass ich nicht ganz schlagen online. Insertion, jedoch einige interessante Teile des Codes.

Update: Für die Quelle klicken Sie hier

Fortsetzung ...

Adobe Flash Player 10 Beta veröffentlicht und Google Maps API

Update: siehe Wie Google Maps in Adobe Flash CS4

Update: Es scheint, dass Google falsch und statt zu schreiben Flex schrieb Flash ist! Moral von der Situation hat die Google Maps API nur für Flex und Flash nicht in die Umwelt freigesetzt Arbeit zu tun: eine Demonstration der Verwirrung, die diese beiden "Zweige" (Flex / Flash) verursachen! Lesen Sie in diesem Zusammenhang, verdammt noch mal google get it right! Google-Map API für Flex ist nicht Flash!

Fortsetzung ...