Rheinwerk Design < openbook > Rheinwerk Design - Know-how für Kreative.
Know-how für Kreative

 << zurück
ActionScript 1 und 2 von Sascha Wolter (http://www.saschawolter.de/)
Objektorientierung und Codedesign mit Flash MX 2004
Buch: ActionScript 1 und 2

ActionScript 1 und 2
672 S., mit CD, Referenzkarte, 44,90 Euro
Rheinwerk Design
ISBN 3-89842-221-6
gp Kapitel 15 Movieclips
  gp 15.1 Eigenschaften
  gp 15.2 Fähigkeiten
    gp 15.2.1 Movieclip-Methoden
    gp 15.2.2 Zeichnungsmethoden
  gp 15.3 Selbst definierte Eigenschaften und Fähigkeiten
    gp 15.3.1 Eigenschaften einer Instanz hinzufügen
    gp 15.3.2 Eigenschaften in die Symboldefinition aufnehmen
    gp 15.3.3 Eigenschaften allen Movieclips hinzufügen
    gp 15.3.4 addProperty
    gp 15.3.5 Fähigkeiten als globale Funktion zur Verfügung stellen
    gp 15.3.6 Fähigkeiten einer Instanz hinzufügen
    gp 15.3.7 Fähigkeiten in die Symboldefinition aufnehmen
    gp 15.3.8 Fähigkeiten allen Movieclips hinzufügen
  gp 15.4 Nützliche Erweiterungen
    gp 15.4.1 Positionen auf der Bühne
    gp 15.4.2 Spiegeln
    gp 15.4.3 Bewegen
  gp 15.5 Neue Movieclip-Klassen
    gp 15.5.1 registerClass


Rheinwerk Design - Zum Seitenanfang

15.4 Nützliche Erweiterungedowntop

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.


Rheinwerk Design - Zum Seitenanfang

15.4.1 Positionen auf der Bühne  downtop

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;
};

Rheinwerk Design - Zum Seitenanfang

15.4.2 Spiegeln  downtop

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;
};

Rheinwerk Design - Zum Seitenanfang

15.4.3 Bewegen  toptop

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
  
  Zum Rheinwerk-Shop
Zum Rheinwerk-Shop: ActionScript 1 und 2
ActionScript 1 und 2
bestellen
 Ihre Meinung?
Wie hat Ihnen das Openbook gefallen?
Ihre Meinung

 Buchtipps
Zum Rheinwerk-Shop: JavaScript






 JavaScript


Zum Rheinwerk-Shop: jQuery






 jQuery


Zum Rheinwerk-Shop: Responsive Webdesign






 Responsive Webdesign


Zum Rheinwerk-Shop: Suchmaschinen-Optimierung






 Suchmaschinen-
 Optimierung


Zum Rheinwerk-Shop: Schrödinger lernt HTML5, CSS3 und JavaScript






 Schrödinger lernt
 HTML5, CSS3
 und JavaScript


 Lieferung
Versandkostenfrei bestellen in Deutschland, Österreich und der Schweiz
InfoInfo





Copyright © Rheinwerk Verlag 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.


Nutzungsbestimmungen | Datenschutz | Impressum

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de

Cookie-Einstellungen ändern