Know-how für Kreative

Inhaltsverzeichnis
1 Erste Schritte
2 Versionen
3 Einführung in die Programmierung
4 Die Entwicklungsumgebung
5 Regeln
6 Anweisungen und Aktionen
7 Werte und Datentypen
8 Ausdrücke und Operatoren
9 Funktionen
10 Kontrollstrukturen
11 Dokumenten-Objektmodell und Gültigkeitsbereich (Scope)
12 Ereignisse
13 Objekterstellung
14 Vererbung
15 Movieclips
16 ActionScript 2.0
17 Komponenten
18 Codedesign und Konzeption
19 Flashdetection
20 Aussergewoehnliche Benutzerfuehrung
21 D mit Flash
22 Macromedia Central
23 HTML
24 JavaScript, ActiveX und Java
25 Flash undokumentiert
26 Vergangenheit, Gegenwart und Zukunft
27 Kurzreferenz
28 Buchtipps
29 Links
30 Die CD-ROM zum Buch
Index
Download: - ZIP, ca. 9,8 MB
Buch bestellen
Ihre Meinung?
<< zurück | Galileo Design / <openbook> / ActionScript | vor >>
ActionScript 1 und 2 von Sascha Wolter (http://www.saschawolter.de/) Objektorientierung und Codedesign mit Flash MX 2004
ActionScript 1 und 2 672 S., mit CD, Referenzkarte, 44,90 Euro Galileo Design ISBN 3-89842-221-6 |
| Kapitel 15 Movieclips
|  | 15.1 Eigenschaften
|  | 15.2 Fähigkeiten
|  |  | 15.2.1 Movieclip-Methoden
|  |  | 15.2.2 Zeichnungsmethoden
|  | 15.3 Selbst definierte Eigenschaften und Fähigkeiten
|  |  | 15.3.1 Eigenschaften einer Instanz hinzufügen
|  |  | 15.3.2 Eigenschaften in die Symboldefinition aufnehmen
|  |  | 15.3.3 Eigenschaften allen Movieclips hinzufügen
|  |  | 15.3.4 addProperty
|  |  | 15.3.5 Fähigkeiten als globale Funktion zur Verfügung stellen
|  |  | 15.3.6 Fähigkeiten einer Instanz hinzufügen
|  |  | 15.3.7 Fähigkeiten in die Symboldefinition aufnehmen
|  |  | 15.3.8 Fähigkeiten allen Movieclips hinzufügen
|  | 15.4 Nützliche Erweiterungen
|  |  | 15.4.1 Positionen auf der Bühne
|  |  | 15.4.2 Spiegeln
|  |  | 15.4.3 Bewegen
|  | 15.5 Neue Movieclip-Klassen
|  |  | 15.5.1 registerClass
## 15.4 Nützliche Erweiterungen Es finden sich zahlreiche mehr oder weniger sinnvolle Erweiterungen für Movieclips. Die meisten davon bestehen nur aus wenigen Zeilen Code und erleichtern die Programmierung ungemein. Ganz nebenbei verbessert sich die Lesbarkeit und Wartbarkeit des Programmcodes. ### 15.4.1 Positionen auf der Bühne Die absolute Position eines Elementes ist gerade bei sehr verschachtelten Movieclip-Konstruktionen nützlich, um Elemente zueinander auszurichten. Hierbei helfen die Methoden globalToLocal und localToGlobal nur bedingt, da deren Anwendung umständlich ist. Einfach anzuwendende Eigenschaften für die absolute horizontale und vertikale Position auf der Bühne stellt das folgende Skript zur Verfügung:
    MovieClip.prototype.getX = function() {
##### position.fla
       var point=new Object();
       point.x=this._x;
       point.y=this._y;
       this._parent.localToGlobal(point);
       return point.x;
    };
    MovieClip.prototype.setX = function(x) {
       var point=new Object();
       point.x=x;
       point.y=this._yabs;
       this._parent.globalToLocal(point);
        this._x=point.x;
    };
    MovieClip.prototype.getY = function() {
       var point=new Object();
       point.x=this._x;
       point.y=this._y;
       this._parent.localToGlobal(point);
       return point.y;
    };
    MovieClip.prototype.setY = function(y) {
       var point=new Object();
       point.x=this._xabs;
       point.y=y;
       this._parent.globalToLocal(point);
       this._y=point.y;
    };
    MovieClip.prototype.addProperty("_xabs", MovieClip.prototype.getX, MovieClip.prototype.setX);
    MovieClip.prototype.addProperty("_yabs", MovieClip.prototype.getY, MovieClip.prototype.setY);
    // Teste die Eigenschaft
    mcContainer.meineMovieClipInstanz._xabs=300;
    trace(mcContainer.meineMovieClipInstanz._xabs);
    trace(mcContainer.meineMovieClipInstanz._x);
Mit Hilfe der absoluten Koordinaten gelingt es jetzt auch, x- und y-Positionen zu wählen, die immer auf der Bühne liegen, so dass ein Element, sollte es einmal aus dem Bild laufen, automatisch wieder auf der anderen Seite erscheint:
    MovieClip.prototype.getX = function() {
##### immer Im Bild.fla
       var point = new Object();
       point.x = this._x;
       point.y = this._y;
       this._parent.localToGlobal(point);
       return point.x;
    };
    MovieClip.prototype.setX = function(x) {
       var point = new Object();
       if (x<0) {
          point.x = Stage.width-(x%Stage.width);
       } else {
          point.x = x%Stage.width;
       }
       point.y = this._yabs;
       this._parent.globalToLocal(point);
       this._x = point.x;
    };
    MovieClip.prototype.getY = function() {
       var point = new Object();
       point.x = this._x;
       point.y = this._y;
       this._parent.localToGlobal(point);
       return point.y;
    };
    MovieClip.prototype.setY = function(y) {
       var point = new Object();
       point.x = this._xabs;
       if (y<0) {
          point.y = Stage.height-(x%Stage.height);
       } else {
          point.y = y%Stage.height;
       }
       this._parent.globalToLocal(point);
       this._y = point.y;
    };
    MovieClip.prototype.addProperty("_xabs", MovieClip.prototype.getX, MovieClip.prototype.setX);
    MovieClip.prototype.addProperty("_yabs", MovieClip.prototype.getY, MovieClip.prototype.setY);
    // Teste die Eigenschaft
    _root.onEnterFrame = function() {
       mcContainer.meineMovieClipInstanz._xabs -= 5;
       mcContainer.meineMovieClipInstanz._yabs += 10;
    };
### 15.4.2 Spiegeln Das vertikale Spiegeln unterscheidet sich von der horizontalen Version nur durch die verwendete Achse, also ob Sie anstelle der Eigenschaft _xscale die Eigenschaft _yscale beeinflussen:
    MovieClip.prototype.vflip = function() {
       // Spiegele vertikal
       this._yscale *= -1;
    };
### 15.4.3 Bewegen Bewegung ist auf vielfältige Art und Weise möglich. In vielen Fällen reicht zum Beispiel die Angabe der horizontalen und vertikalen Schrittweite aus:
    MovieClip.prototype.move = function(xstep, ystep) {
       this._x += xstep;
       this._y += ystep;
    };
Eine alternative Form der Bewegung berücksichtigt die Richtung und die Entfernung:
    MovieClip.prototype.move = function(distance, angle) {
##### move.fla
       // Wandle Grad in Bogenmaß
       var rad = angle*Math.PI/180;
       // Bewege Objekt
       this._x += Math.cos(rad)*distance;
       this._y += Math.sin(rad)*distance;
    };
    // Teste die Fähigkeit
    _root.onMouseDown = function() {
       meineMovieClipInstanz.move(5, 45);
    };
<< zurück | <top> | vor >>
Zum Katalog
ActionScript 1 und 2 bestellen
Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen? Ihre Meinung
Buchtipps
| Einstieg in ActionScript
| Einstieg in Flash 8
| Flash 8 und PHP
| Flash 8-Tutorials
| Dreamweaver 8
| Webseiten programmieren und gestalten
Shopping
Versandkostenfrei bestellen in Deutschland und Österreich Info

Copyright © Galileo Press GmbH 2005
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

[Galileo Design]
Galileo Press GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de