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.
Die Quelle ist Teil des Pakets undolibrary - googlecode dieser - aber wenn Sie möchten, können Sie die einzelnen Datei-Download ReflexMe.as .
Nutzung
Laden Sie die Datei ReflexMe.as und legen Sie sie in den Ordner Ihres Films. fla. Wählen Sie den MovieClip in der Bibliothek, an die Sie den Effekt Reflex gelten, und öffnen Sie das Eigenschaften-Fenster Symbol. Im Bereich Verknüpfung ReflexMe in Basisklasse enthalten:

An diesem Punkt das Gefühl des Films, wird der MovieClip ausgewählt haben den Effekt der SLR. Wenn angesichts der MovieClip einen Instanznamen potrente auch einstellen, Parameter wie:
- reflexOffset - Abstand der Reflexion
- gradientOffset - spiegelt die Erweiterung des Gradienten
- alphaOffset - Alphakanal der Reflexion
- gradientRadial - Art der Reflexion: radial oder linear
Hinweise
Die Klasse ReflexMe.as wird als Basisklasse für alle MovieClip verlängern geschrieben. Seine Einfachheit ist so, dass man riaddatarla und Entwaffnung der Code als "unecht" von Code verwendet werden, anstatt Flash-IDE. Die ganze Wirkung ist von den wenigen (Kommentare entfernt) Zeilen Code, die folgen generiert:
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 33 34 35 36 37 38 39 40 41 42 43 | / / Preserve die ursprüngliche große Reisetasche von MovieClip width ; __oWidth = dieser Breite.; height ; __oHeight = dieser Höhe.; / / Erstellen Sie ein BitmapData der großen Reisetasche / / MovieClip auf die ich den Effekt Reflex ( this . width , this . height , true , 0x000000 ) ; __bmpd = new BitmapData (this. Breite dieser Höhe, true, 0x000000.); / / Kopiere ich die BitmapData auf MovieClip ( this ) ; . __bmpd draw (this); / / Erstellen Sie ein Bitmap-Objekt-Anzeige / / Dies wird Auswirkungen unserer SLR ( __bmpd ) ; __bmp = new Bitmap (__bmpd); / / Nicht sehen, dass __bmp ) ; addChild (__bmp); / / Um 180 Grad drehen: die invert = - 1 ; . __bmp scaleY = - 1; / / Position es an der Basis der MovieClip oroginale / / Die 2 x die Höhe ist für das Ergebnis von Zufall notwendig / / Rotation, dass der Ursprung der Achsen verschoben hat = __oHeight * 2 + __reflexOffset ; __bmp __oHeight = y * 2 + __reflexOffset.; / / Als Bitmap zwischengespeichert: Bedarf zu decken, nachdem / / Mit Farbverlauf-und Alpha-Kanal = true ; __bmp cacheAsBitmap = true.; / / Erstellen Sie eine Maske ( ) ; __mask = new Form (); / / Als Bitmap zwischengespeichert: Bedarf zu decken, nachdem / / Mit Farbverlauf-und Alpha-Kanal = true ; __mask cacheAsBitmap = true.; / / Position auch wieder auf das Bild = __oHeight + __reflexOffset ; __mask __oHeight = y + __reflexOffset.; / / Create eine Matrix für den Gradienten ( ) ; __matrix = new Matrix (); / / Erstellen der Steigung der gleichen Größe / / Original MovieClip ( __oWidth , __oHeight , Math . PI / 2 ) ; . __matrix createGradientBox (__oWidth, __oHeight, Math PI / 2.); __mask . graphics ) { mit (__mask. Grafiken) { ; clear (); 0 , 0 , __oWidth , __oHeight ) ; drawRect (0, 0, __oWidth, __oHeight); ; endFill (); } __mask ) ; addChild (__mask); / / Set-Maske = __mask ; . __bmp __mask = Maske; |











Hallo Ich habe versucht, diese Klasse zu verwenden, aber ich bekomme Fehler.
Ich sage euch das Verfahren habe ich, vielleicht können Sie mir, ob und wo falsch zu sagen.
Nuon-erstellen Sie ein Dokument in AS3,
-Zeichnen eines einfachen quadratischen, und verwandelte sie in Movieclip;
Mit der rechten Maustaste auf das Symbol in der Bibliothek, im Bereich Verknüpfung ReflexMe einfügen in Basisklasse;
-Ich die Datei gespeichert logisch fla in den gleichen Ordner, wo ReflexMe.as
Aber geben Sie mir diese Fehler:
1017-Fehler nicht finden können, die Definition der Basisklasse ReflexMe;
-5000: Die Klasse 'ReflexMe' muss eine Unterklasse von 'flash.display.MovieClip' werden, weil es zu einer Bibliothek Symbol dieses Typs verknüpft ist;
-5001: Der Name des Pakets "undolibrary.sfx" spiegelt nicht die Position der Datei. Ändern Sie den Namen des Pakets Definition in der Datei oder verschieben Sie die Datei. C: \ Dokumente und Einstellungen \ User \ Desktop \ ReflexMe.as
Was ist los? Was soll ich tun?
Ich danke Ihnen im Voraus.
Hallo!
@ Mark: Wenn Sie die Datei ReflexMe.as außerhalb der Bibliothek undolibrary verwenden Sie die "Namespace" des Pakets. Am Anfang der Datei "undolibrary.sfx-Paket", löschen Sie den Namespace "undolibrary.sfx", mit Blättern nur "package {" - mit dem Clip
[...] Beitrag Flash CS3: Erstellen Sie eine Reflexwirkung auf jeden MovieClip sahen wir, wie Sie eine MovieClip erweiternde Klasse zu schreiben, für den Anschluss an [...]
Herzlichen Glückwunsch zu Ihrer wunderbaren Website. Ich wollte wissen, ob ich mein movieclip Instanz mit dem Namen, wie kann ich auf die Eigenschaften
reflexOffsetetc..Dank
@ Linus: Sie können
miaistanza.reflexOffset, um alle Eigenschaften zugreifen. Wenn Sie die KlasseReflexzu verlängern, in der Tat, die grundlegenden Eigenschaften der MovieClip. Dies bedeutet, dass der MovieClip alle Eigenschaften und Methoden der bekommtReflex.Hallo an alle, die das Lesen meiner Nachricht. Ich wollte einige von euch fragen, ob ich, wie man Untermenüs auf Flash CS3 erstellen insegnaste. Ich suchte im Internet, aber ich weiß nicht, wie es zu tun. Bitte könnten Sie mir helfen? Mein Ansprechpartner ist: sicilianofolle@hotmail.it
erwarten vielen Dank!
@ Carlitos: genau das, was Sie brauchen?
@ Giovambattista Fazioli:
1017: Sie finden nicht die Definition der Basisklasse SLR.
5000: Die Klasse 'ReflexMe' muss eine Unterklasse von 'flash.display.MovieClip' werden, weil es zu einer Bibliothek Symbol dieses Typs verknüpft ist.
sind die Fehler bei dem Versuch helfen, bitte
von alberto
@ Alberto:. Sie muss die Klasse SLR (spot. as) im selben Ordner wie die FLA-Platz
@ Giovambattista Fazioli: Natürlich war es schon in den gleichen Ordner wie meine fla positioniert.
@ Alberto: Änderungen Beginn der Klasse:
nur in:
@ Giovambattista Fazioli: Ich hatte schon den gleichen Ergebnissen durchgeführt
Alberto in der gleichen Situation ... funktioniert nicht!
Das heißt, wenn Sie sehen, der Code reflexMe.as Sie auf dem Laufenden sagt nichts in Böschungen
Meiner Meinung nach haben Sie es versäumt, die Artikel zu schreiben
@ Lukas: Nein, der Code und die Artikel nicht falsch. Das Problem ist die Einbeziehung der Bibliothek
undolibrary. Lesen Sie hier für Detailsna ja, Sie sagte, das sei genug, um reflexMe.as Download
cm ² in der Zwischenzeit fand ich eine andere Klasse, die die Reflexion Effekt erzeugt und funktioniert auch mit animierten MC
@ Lukas: könnte tatsächlich verwechselt werden. In der Tat dieser Klasse basiert (dh, will) auf die Bibliothek
undolibrary. Wenn Sie bereits installiert haben, können Sie nur die Dateien herunterladen angegeben, ansonsten, wenn du die neueste Version Sie alles, was in dem Paket finden Sie zum Download.